Note that this file only contains a guide for code contributions. However, there are many other ways how to contribute to the LibrePCB project, see librepcb.org/contribute for details.
- Before spending lots of time on something, please ask for feedback on your idea first! Also note that we do not accept major changes (e.g. changes affecting the file format) at any time, see details in our development workflow documentation.
- Please search issues and pull requests before adding something new to avoid duplicating efforts and conversations.
- Issues which are considered to be easy to solve are marked with the label
easy
: Browse all easy issues. - To contact us use one of the following options:
- Our discussion platform (preferred)
- GitHub issues
- Telegram or Libera.Chat (they are automatically synchronized)
- Make sure you have a GitHub account.
- Open a new issue for your idea, assuming one does not already exist.
- Fork the repository on GitHub.
- Have a look at our development resources, especially at the developers documentation.
- When using QtCreator, import and use our code style guide file.
- Create a topic branch from where you want to base your work.
- This is usually the master branch.
- To quickly create a topic branch based on master:
git checkout -b my_contribution master
- Please avoid working directly on the
master
branch.
- Write code which follows our
code style guides
and .editorconfig settings.
- You can use clang-format to
automatically format the code. To format all files at once, just run the
script
./dev/format_code.sh
.
- You can use clang-format to
automatically format the code. To format all files at once, just run the
script
- Make commits of logical units.
- Make sure your commit messages are in the
proper format:
ScopeGuardList: Fix crash when constructing with size Default constructed std::function is empty and throws an std::bad_function_call when being called. Check if it is empty and use reserve() when constructing with size. Fixes #62
- Make sure your commit messages are in the
proper format:
- Make sure you have added the necessary tests for your changes.
- Run all tests to ensure nothing else was accidentally broken.
- This is done by running the binary
./build/tests/unittests/librepcb-unittests
.
- This is done by running the binary
- If you like, feel free to add yourself to the AUTHORS.md file.
- Push your changes to a topic branch in your fork of the repository.
- Submit a pull request to the repository in the LibrePCB organization.
- We will then check the pull request and give you feedback quickly.
Please also take a look at our Pull Request Guidelines.