{"id":13425577,"url":"https://github.com/scale-it/algo-builder","last_synced_at":"2026-01-12T05:45:17.748Z","repository":{"id":36961290,"uuid":"273015943","full_name":"scale-it/algo-builder","owner":"scale-it","description":"Framework to automate development of Algorand Assets and Smart Contracts.","archived":false,"fork":false,"pushed_at":"2023-07-18T22:44:29.000Z","size":12540,"stargazers_count":128,"open_issues_count":15,"forks_count":43,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-10-04T16:57:22.891Z","etag":null,"topics":["algorand","algorand-assets","blockchain","javascipt","pyteal","smart-contracts","teal","typescript","yarn"],"latest_commit_sha":null,"homepage":"https://algobuilder.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scale-it.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-06-17T15:48:47.000Z","updated_at":"2025-08-17T20:14:47.000Z","dependencies_parsed_at":"2024-01-03T05:16:35.316Z","dependency_job_id":"a0adc15b-4220-400b-ab39-4235600f22d9","html_url":"https://github.com/scale-it/algo-builder","commit_stats":{"total_commits":1025,"total_committers":23,"mean_commits":44.56521739130435,"dds":0.6565853658536585,"last_synced_commit":"c07b978651def4891768c618f0bc9cd7fab69bca"},"previous_names":["scale-it/algorand-builder"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/scale-it/algo-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scale-it%2Falgo-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scale-it%2Falgo-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scale-it%2Falgo-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scale-it%2Falgo-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scale-it","download_url":"https://codeload.github.com/scale-it/algo-builder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scale-it%2Falgo-builder/sbom","scorecard":{"id":803313,"data":{"date":"2025-08-11","repo":{"name":"github.com/scale-it/algo-builder","commit":"c07b978651def4891768c618f0bc9cd7fab69bca"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.1,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":5,"reason":"Found 11/22 approved changesets -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":8,"reason":"binaries present in source code","details":["Warn: binary detected: packages/algob/test/fixture-projects/support-tmpl-parameters/assets/algobpy/__pycache__/__init__.cpython-38.pyc:1","Warn: binary detected: packages/algob/test/fixture-projects/support-tmpl-parameters/assets/algobpy/__pycache__/parse.cpython-38.pyc:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/01-main.yaml:1","Warn: no topLevel permission defined: .github/workflows/05-examples.yaml:1","Warn: no topLevel permission defined: .github/workflows/reusable-workflow.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/05-examples.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/scale-it/algo-builder/05-examples.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/05-examples.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/scale-it/algo-builder/05-examples.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/05-examples.yaml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/scale-it/algo-builder/05-examples.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/05-examples.yaml:128: update your workflow using https://app.stepsecurity.io/secureworkflow/scale-it/algo-builder/05-examples.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/05-examples.yaml:130: update your workflow using https://app.stepsecurity.io/secureworkflow/scale-it/algo-builder/05-examples.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/05-examples.yaml:140: update your workflow using https://app.stepsecurity.io/secureworkflow/scale-it/algo-builder/05-examples.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/05-examples.yaml:189: update your workflow using https://app.stepsecurity.io/secureworkflow/scale-it/algo-builder/05-examples.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/05-examples.yaml:191: update your workflow using https://app.stepsecurity.io/secureworkflow/scale-it/algo-builder/05-examples.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/05-examples.yaml:201: update your workflow using https://app.stepsecurity.io/secureworkflow/scale-it/algo-builder/05-examples.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/reusable-workflow.yaml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/scale-it/algo-builder/reusable-workflow.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/reusable-workflow.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/scale-it/algo-builder/reusable-workflow.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/reusable-workflow.yaml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/scale-it/algo-builder/reusable-workflow.yaml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/05-examples.yaml:36","Warn: pipCommand not pinned by hash: .github/workflows/05-examples.yaml:38","Warn: pipCommand not pinned by hash: .github/workflows/05-examples.yaml:146","Warn: pipCommand not pinned by hash: .github/workflows/05-examples.yaml:148","Warn: pipCommand not pinned by hash: .github/workflows/05-examples.yaml:207","Warn: pipCommand not pinned by hash: .github/workflows/05-examples.yaml:209","Warn: pipCommand not pinned by hash: .github/workflows/reusable-workflow.yaml:40","Warn: pipCommand not pinned by hash: .github/workflows/reusable-workflow.yaml:42","Info:   0 out of  12 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   8 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 19 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"77 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2024-230 / GHSA-248v-346w-9cwc","Warn: Project is vulnerable to: PYSEC-2023-135 / GHSA-xqr8-7jwr-rhp7","Warn: Project is vulnerable to: PYSEC-2022-43178 / GHSA-2p9h-ccw7-33gf","Warn: Project is vulnerable to: GHSA-3ww4-gg4f-jr7f","Warn: Project is vulnerable to: GHSA-5cpq-8wj7-hf2v","Warn: Project is vulnerable to: PYSEC-2024-225 / GHSA-6vqw-3v5j-54x4","Warn: Project is vulnerable to: GHSA-9v9h-cgj8-h64p","Warn: Project is vulnerable to: GHSA-h4gh-qq45-vh27","Warn: Project is vulnerable to: PYSEC-2023-254 / GHSA-jfhm-5ghh-2f97","Warn: Project is vulnerable to: GHSA-jm77-qphf-c4w8","Warn: Project is vulnerable to: GHSA-v8gr-m533-ghj9","Warn: Project is vulnerable to: GHSA-w7pp-m8wf-vj6r","Warn: Project is vulnerable to: GHSA-x4qr-2fvf-3mr5","Warn: Project is vulnerable to: PYSEC-2024-60 / GHSA-jjg7-2v4v-x38h","Warn: Project is vulnerable to: PYSEC-2022-42969","Warn: Project is vulnerable to: PYSEC-2024-3 / GHSA-j225-cvw7-qrx7","Warn: Project is vulnerable to: GHSA-mr82-8j83-vxmv","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2023-74 / GHSA-j8r2-6x86-q33q","Warn: Project is vulnerable to: GHSA-34jh-p97f-mpxf","Warn: Project is vulnerable to: PYSEC-2023-212 / GHSA-g4mx-q9vg-27p4","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v","Warn: Project is vulnerable to: PYSEC-2023-192 / GHSA-v845-jxx5-vc9f","Warn: Project is vulnerable to: PYSEC-2024-187 / GHSA-rqc4-2hc7-8c8v","Warn: Project is vulnerable to: GHSA-jfmj-5v4g-7637","Warn: Project is vulnerable to: GHSA-cr5q-6q9f-rq6q","Warn: Project is vulnerable to: GHSA-j6gc-792m-qgm2","Warn: Project is vulnerable to: GHSA-pj73-v5mw-pm9j","Warn: Project is vulnerable to: GHSA-48wp-p9qv-4j64","Warn: Project is vulnerable to: GHSA-4qw4-jpp4-8gvp","Warn: Project is vulnerable to: GHSA-636f-xm5j-pj9m","Warn: Project is vulnerable to: GHSA-7vh7-fw88-wj87","Warn: Project is vulnerable to: GHSA-fmx4-26r3-wxpf","Warn: Project is vulnerable to: GHSA-52p9-v744-mwjj","Warn: Project is vulnerable to: GHSA-353f-x4gh-cqq8","Warn: Project is vulnerable to: GHSA-5w6v-399v-w3cc","Warn: Project is vulnerable to: GHSA-mrxw-mxhj-p664","Warn: Project is vulnerable to: GHSA-r95h-9x8f-r3f7","Warn: Project is vulnerable to: GHSA-vvfq-8hwr-qm4m","Warn: Project is vulnerable to: GHSA-xc9x-jj77-9p9j","Warn: Project is vulnerable to: GHSA-2rxp-v6pw-ch6m","Warn: Project is vulnerable to: GHSA-4xqq-m2hx-25v8","Warn: Project is vulnerable to: GHSA-5866-49gr-22v4","Warn: Project is vulnerable to: GHSA-r55c-59qm-vjw6","Warn: Project is vulnerable to: GHSA-vg3r-rm7w-2xgh","Warn: Project is vulnerable to: GHSA-vmwr-mc7x-5vc3","Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-xwcq-pm8m-c4vf","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-4q6p-r6v2-jvc5","Warn: Project is vulnerable to: GHSA-8jmw-wjr8-2x66","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-76p7-773f-r4q5","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-f9xv-q969-pqx4","Warn: Project is vulnerable to: GHSA-m95q-7qp3-xv42"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-23T11:05:52.459Z","repository_id":36961290,"created_at":"2025-08-23T11:05:52.459Z","updated_at":"2025-08-23T11:05:52.459Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28335226,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"online","status_checked_at":"2026-01-12T02:00:08.677Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorand","algorand-assets","blockchain","javascipt","pyteal","smart-contracts","teal","typescript","yarn"],"created_at":"2024-07-31T00:01:15.051Z","updated_at":"2026-01-12T05:45:17.731Z","avatar_url":"https://github.com/scale-it.png","language":"TypeScript","funding_links":[],"categories":["Development \u0026 Tools","Development Tools","TypeScript"],"sub_categories":["Language SDKs \u0026 Tools","Languages"],"readme":"\u003cimg src=\"/docs/media/logo-website.png\" height=\"200\" title=\"Algo Builder\" /\u003e\n\nThe Algo Builder project is composed from the following packages:\n\n- `algob`: framework to automate development of Algorand Assets and Smart Contracts.\n- `web`: a package to interact with contracts from react app/frontend app.\n- `runtime`: light Algorand runtime and TEAL interpreter.\n\n## Objectives\n\nAlgo Builder is an trustworthy framework for Algorand dapps (Decentralized Applications). Its main goal is to make shipping Algorand applications simple, efficient, and salable. Think about it as a Truffle suite for Algorand. The framework provides following functionality through the `algob` tool:\n\n- REPL (console Read-Eval-Print-Loop) to quickly and easily interact with Algorand Standard Assets and Smart Contracts\n- integrated testing framework,\n- helpful boilerplates allowing developers to focus on use-cases rather than code organization, examples\n- Algorand private net\n- templates/examples and guides to easily onboard developers\n\nTo attract more web developers we plan to build a JavaScript DSL for TEAL with TypeScript bindings (for TEAL inputs). Furthermore we would like to collaborate with SDKs teams to improve the overall development experience and make it ready for enterprise projects. Finally we want to collaborate with Algorand Wallet team to ensure a smooth wallet integration.\n\n## Documentation\n\n- [Home Page](https://algobuilder.dev/)\n- [User Docs](https://algobuilder.dev/guide/README)\n- [Quick Start](https://algobuilder.dev/guide/README#quick-start)\n- [GitHub](https://github.com/scale-it/algo-builder)\n\n## Examples\n\nIn the `/examples` directory we developped an extensive list of smart contract templates: from simple ASA management, security tokens to DAO implementations. Check the [list](./examples/README.md).\n\n## dApp Templates\n\nIn the `Algo Builder dApp Templates` [repository](https://github.com/scale-it/algo-builder-templates), several templates can be found to use as a base for implementing dApps.\n\nUsing the `algob unbox-template` command, the developers can get a pre-built dApp project containing scripts to deploy assets and smart contracts with react.js interactive frontend. The templates use [AlgoSigner](https://github.com/PureStake/algosigner) to securely sign and send transactions to an Algorand Blockchain Network.\n\nDetailed description about the templates can be found [here](https://github.com/scale-it/algo-builder-templates#algo-builder-templates).\n\n# Contributing\n\n### Branch policy\n\n- The active branch is `develop` - all ongoing work is merged into the `develop` branch.\n- `master` is the release branch - `develop` is merged into `master` during the release.\n- Hot fixes are cherry picked to `master`.\n\n## Working with monorepo\n\nWe use **yarn workspaces** to manage all sub packages. here is a list of commands which are helpful in a development workflow\n\n- `yarn workspaces info`\n- `yarn workspaces list`\n- `yarn workspaces \u003cpackage-name\u003e \u003ccommand\u003e`, eg: `yarn workspaces mypkg1 run build` or `yarn workspaces mypkg1 run add --dev react`\n- `yarn add algosdk` -- will add `algosdk` to all sub projects (workspaces)\n\n`yarn` does not add dependencies to node_modules directories in either of your packages  –  only at the root level, i.e., yarn hoists all dependencies to the root level. yarn leverages symlinks to point to the different packages. Thereby, yarn includes the dependencies only once in the project.\n\nYou have to utilize yarn workspaces’ `noHoist` feature to use otherwise incompatible 3rd party dependencies working in the Mono-Repo environment.\n\n### Creating a local project using algob from source\n\nIf you want to test the latest algob version from the `develop` branch, you can:\n\n- `cd \u003cpath to algo-builder repo\u003e/packages/algob` and run `./project-dev-script.sh`\n- create a new node project and use link (`npm link` or `yarn link`) to link dependencies\n\n### Testing\n\nEach package has rich test suites. Whenever you add something new make sure you provide a test.\n\nRestarting tests by hand is a bit more time consuming. We are using `mocha` framework to execute tests. It has a very useful feature: `mocha --watch` -- which will monitor for all file changes and re-execute tests when a file changed without adding a time overhead to start node and load all TypeScript modules.\n\nTo execute tests in a package (eg `packages/runtime`) run:\n\n```\ncd packages/runtime\nyarn build\nyarn run test\n```\n\nNOTE: you always have to build the typescript files first. If you are in a development mode, then it's worth to run build in a _watch_ mode (will watch for file changes and automatically recompile project, very fast). You can combine it with a watch mode for tests:\n\n```\n# in the project root:\nyarn build:watch\n\n# in new terminal:\ncd packages/runtime\nyarn run test -w\n```\n\nTo execute tests in all workspace projects, run the following from the root directory:\n\n```\nyarn run test\n```\n\nTo execute and watch tests in all workspaces, run the following from the root directory. Note: it will spawn multiple processes in the same terminal session. So if you want to stop the all processes you can either call `pkill -f mocha` or kill the terminal session.\n\n```\nyarn run test:watch\n```\n\nNOTE: For the moment test watching in `packages/algob` is not stable because of tear down issues in some test suites. We advise to **not use** test watcher in `packages/algob`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscale-it%2Falgo-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscale-it%2Falgo-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscale-it%2Falgo-builder/lists"}