2025-12-02 19:48:32 +01:00
# Contributing to Yosys
2025-02-20 02:15:34 +01:00
2025-12-02 19:48:32 +01:00
Thanks for considering helping out. If this is your
2025-02-20 02:15:34 +01:00
first time contributing to an open source project, please take a look at the
2025-12-02 19:48:32 +01:00
following guide about the basics:
2025-02-20 02:15:34 +01:00
https://opensource.guide/how-to-contribute/#orienting-yourself-to-a-new-project.
2025-12-02 19:48:32 +01:00
## Asking questions
2025-02-20 02:15:34 +01:00
2025-12-02 19:48:32 +01:00
If you have a question about how to use Yosys, please ask on our [Discourse forum ](https://yosyshq.discourse.group/ ).
The Discourse is also a great place to ask questions about developing or
contributing to Yosys.
We have open [dev 'jour fixe' (JF) meetings ](https://docs.google.com/document/d/1SapA6QAsJcsgwsdKJDgnGR2mr97pJjV4eeXg_TVJhRU/edit?usp=sharing ) 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
2025-02-20 02:15:34 +01:00
The [issue tracker ](https://github.com/YosysHQ/yosys/issues ) 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
2025-12-02 19:48:32 +01:00
Learn more [here ](https://yosyshq.readthedocs.io/projects/yosys/en/latest/yosys_internals/extending_yosys/contributing.html#reporting-bugs ) about how to report bugs. We fix well-reported bugs the fastest.
2025-02-20 02:15:34 +01:00
2025-12-02 19:48:32 +01:00
## Contributing code
2025-02-20 02:15:34 +01:00
2025-12-03 01:49:15 +01:00
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 ](https://yosyshq.discourse.group/ ).
2025-12-02 19:48:32 +01:00
### Using pull requests
2025-02-20 02:15:34 +01:00
If you are working on something to add to Yosys, or fix something that isn't
2025-12-02 19:48:32 +01:00
working quite right,
make a [pull request (PR) ](https://github.com/YosysHQ/yosys/pulls ).
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
2025-12-03 01:49:15 +01:00
changes. See above to find the best way to [ask us questions ](#asking-questions ).
2025-02-20 02:15:38 +01:00
2025-12-02 22:32:51 +01:00
### Continuous integration
[Continuous Integration (CI) ](https://github.com/YosysHQ/yosys/actions ) 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.
2025-02-20 02:15:34 +01:00
### Labels
We use [labels ](https://github.com/YosysHQ/yosys/labels ) to help categorise
issues and PRs. If a label seems relevant to your work, please do add it; this
2025-12-02 19:48:32 +01:00
also includes the labels beginning with 'status-'. The 'merge-' labels are used
2025-02-20 02:15:34 +01:00
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.
2025-12-02 19:48:32 +01:00
### Coding style
2025-02-20 02:15:34 +01:00
2025-12-02 19:48:32 +01:00
Learn more [here ](https://yosys.readthedocs.io/en/latest/yosys_internals/extending_yosys/contributing.html ).