Agora is in its very early, alpha stage. At the moment, there is absolutely nothing set in stone regarding the design, the API, the runtime and the compiler.
For this reason, contributions are welcome in the following areas:
- Bug fixes. Something that clearly doesn't work as expected.
- Documentation. If parts of the language are unclear, or plain wrong.
In any case, the steps are the following, provided you already have a GitHub account:
- File an issue (if it doesn't already exist)
- Fork the repository
- Create a working branch from the next branch
- Add test(s) to prove the bug, and write the fix. Make sure to use
gofmt
on your Go code - Run all the tests to make sure the fix did not break something else
- Submit the pull request
For the other areas, such as optimizations, clean-up, design changes, etc., please file an issue first to start a discussion on the subject. The reason being that, since the language is so young and unstable right now, I may already have taken a different direction. I'm more than open to challenge any design decision, but I wouldn't want to make you waste your time on submitting code contributions for something that is already - or in the process of becoming - obsolete.