Fetching contributors…
Cannot retrieve contributors at this time
79 lines (62 sloc) 4.03 KB

Contributing Guidelines


  • Before spending lots of time on something, ask for feedback on your idea first!
  • 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. Some issues even have a mentor assigned: Browse all mentored issues.
  • To contact us use either GitHub or join our IRC or Telegram chat (they are automatically synchronized).

Getting Started

Making Changes

  • 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.
  • Make commits of logical units.
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 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/output/librepcb-unittests
  • If you like, feel free to add yourself to the file.

Submitting Changes

  • 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.

Other Contributions

This project welcomes non-code contributions, too! The following types of contributions are welcome:

  • Ideas: Participate in an issue thread or start your own to have your voice heard.
  • Bugreports: Found a bug in LibrePCB? Just open an issue and describe how to reproduce that bug.
  • Small Fixes: Fix typos, clarify language, and generally improve the quality of the content.
  • Documentation: Create/improve documentations for users or developers of LibrePCB.
  • Translations: Add/improve translations for LibrePCB using Transifex. Follow this guide to get started.
  • Website: Improve our website which is hosted in the repository LibrePCB/
  • Sharing: Speak about LibrePCB with your friends and colleagues, or write about it in the internet!
  • Donations: Become a Patron or donate to the LibrePCB developers with Bitcoin: 1FiXZxoXe3px1nNuNygRb1NwcYr6U8AvG8

Additional Resources