Contributing
Neo DevPack for Solidity is an open-source project, and we welcome contributions from the community! Whether you're fixing bugs in the Rust compiler, improving the EVM-to-NeoVM semantic mapping, or writing documentation, your help is appreciated.
How to Report Issues
If you find a bug, an unhandled EVM feature, or have a feature request, please open an issue on the Neo DevPack for Solidity GitHub Repository.
When reporting an issue, please include:
- The exact version of
neo-solcyou are using (neo-solc --version). - The Solidity source code that triggered the issue.
- The exact command-line arguments used.
- The expected behavior (usually what standard EVM solc does) vs the actual behavior on NeoVM.
Workflow for Pull Requests
We use the standard GitHub Pull Request workflow:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/my-new-feature). - Commit your changes (
git commit -am 'Add some feature'). - Push to the branch (
git push origin feature/my-new-feature). - Create a new Pull Request.
Running the Compiler Tests
Before submitting a PR, ensure the layered Rust, runtime, conformance, E2E, fuzz, and tooling suites that cover your change still pass.
To run the Rust compiler workspace tests:
cargo test --workspaceTo run the full production suite (including Node.js tooling tests):
make test-allDocumentation Style Guide
This documentation site is built using VitePress. When contributing to the docs:
- Ensure your page fits within the existing taxonomy (Basics, Language Description, Internals, etc.).
- Use the
::: tip 💡 NeoVM Differenceblockquote specifically to highlight areas where Neo's execution model diverges from Ethereum. - Check for dead links locally before submitting your PR by running
npm run docs:build.
