yosys/CONTRIBUTING.md

2.7 KiB

Contributing to Yosys

Thanks for considering helping out. If this is your first time contributing to an open source project, please take a look at the following guide about the basics: https://opensource.guide/how-to-contribute/#orienting-yourself-to-a-new-project.

Asking questions

If you have a question about how to use Yosys, please ask on our Discourse forum. The Discourse is also a great place to ask questions about developing or contributing to Yosys.

We have open dev 'jour fixe' (JF) meetings where developers from YosysHQ and the community come together to discuss open issues and PRs. This is also a good place to talk to us about how to implement larger PRs.

Using the issue tracker

The issue tracker is used for tracking bugs or other problems with Yosys or its documentation. It is also the place to go for requesting new features.

Bug reports

Learn more here about how to report bugs. We fix well-reported bugs the fastest.

Contributing code

If you're adding complex functionality, or modifying core parts of Yosys, we highly recommend discussing your motivation and approach ahead of time on the Discourse forum.

Using pull requests

If you are working on something to add to Yosys, or fix something that isn't working quite right, make a pull request (PR).

An open PR, even as a draft, tells everyone that you're working on it and they don't have to. It can also be a useful way to solicit feedback on in-progress changes. See above to find the best way to ask us questions.

Continuous integration

Continuous Integration (CI) tools automatically compile Yosys and run it with the full suite of tests. If you're a first time contributor, a maintainer has to trigger a run for you. We test on various platforms, compilers. Sanitizer builds are only tested on the main branch.

Labels

We use labels to help categorise issues and PRs. If a label seems relevant to your work, please do add it; this also includes the labels beginning with 'status-'. The 'merge-' labels are used by maintainers for tracking and communicating which PRs are ready and pending merge; please do not use these labels if you are not a maintainer.

Coding style

Learn more here.