The following is a set of guidelines for contributing to AssemblyScript and its packages, which are hosted in the AsssemblyScript Organization on GitHub. These are mostly guidelines, not rules. Use your best judgement, and feel free to propose changes to this document in a pull request.
Code of Conduct
This project and everyone participating in it is governed by the AssemblyScript Code of Conduct. By participating, you are expected to uphold this code.
Filing Issues
Bugs and enhancement suggestions are tracked as GitHub issues.
How Do I Submit A (Good) Bug Report?
After you've determined which repository your bug is related to and that the issue is still present in the latest version of the main branch, create an issue on that repository and provide the following information:
- Use a clear and descriptive title for the issue to identify the problem.
- Explain which behavior you expected to see instead and why.
- Describe the exact steps to reproduce the problem in as many details as necessary.
- When providing code samples, please use code blocks.
How Do I Submit A (Good) Enhancement Suggestion?
Instructions are similar to those for bug reports. Please provide the following information:
- Use a clear and descriptive title for the issue to identify the suggestion.
- Provide a description of the suggested enhancement in as many details as necessary.
- When providing code samples, please use code blocks.
Submitting Pull Requests
Instructions are similar to those for bug reports. Please provide the following information:
- If this is not a trivial fix, consider creating an issue to discuss first and later link to it from the PR.
- Use a clear and descriptive title for the pull request.
- Provide a description of the changes in as many details as necessary.
- Document your new code where necessary.
- Please refrain from refactoring (unrelated code) as it makes your pull request easier to review.
- Create tests for your new code where necessary. For creating or updating tests, please see the Test Instructions.
Before submitting your pull request, also make sure that the following conditions are met:
- Your new code adheres to the code style through running
npm run check. - Your new code passes all existing and new tests through running
npm run test. - Your PR excludes distribution files in
dist/**. - You appended yourself to the list of contributors in the NOTICE file.
Please note that if a pull request is rather complicated, i.e. touches lots of internals, or became stale, it is not uncommon that a core contributor performs the final integration to get it done in good conscience while naming you as a co-author.
Guidelines for AI-assisted Contributions
AI tools are welcome as helpers, not authors. Keep these practices in mind:
- Stay accountable: only submit changes you understand and can justify; be ready to explain behavior, edge cases. If an AI suggestion feels unclear, rewrite or drop it.
- Keep humans in the loop: discuss non-trivial ideas early via Issues or Discord, especially when you are unsure about design or impact.
- Use AI for acceleration, optimization and verification: treat AI output as a draft for code, tests, or docs; run linters/tests and review the logic yourself.
- Be transparent in PRs: note briefly if AI was used and for what (e.g., initial draft, test scaffolding), and call out any parts where you want extra review.
- Prefer small patches over large dumps; if you cannot confidently explain an AI-produced change, open a well-described issue instead.
Thank you!