Contributing to pretalx¶
You want to contribute? That’s great! Being an open source project, pretalx thrives if it receives regular contributions from the community. Everyone is able to contribute, and contributions can come in many forms: Code, Documentation, Translations, Graphics, Feedback …. We appreciate them highly! If you’re not sure how to make something work, feel free to open a GitHub Discussion about it.
Don’t forget to head over to The development setup to read about how to set up your local copy of pretalx for development and testing.
Pull Request Workflow¶
If you want to add some change to pretalx itself or its documentation, you can do so by opening a Pull Request on GitHub.
If you are not familiar with GitHub, the workflow is basically this: You register an account on GitHub, then you “fork” pretalx, and work on your copy of it until you’re done. Then, you submit your changes as a Pull Request. We’ll review the PR and help you make any changes required to get it merged. Have a look at the GitHub documentation and other documentation on git for further information.
We have tagged some issues as small, and they are probably a good place to start. If you want to tackle an issue, please leave a comment to make sure nobody else will work on it in the meantime.
We recommend that you create a branch for every issue you work on. While our continuous integration will run all tests and style checks against your PR, it makes sense for you to run the test suite locally first, to work on any problems ahead of time – but if you can’t figure out why tests are breaking, don’t hesitate to submit your PR regardless. We’ll help you figure it out.
We also expect tests and documentation to be included with Pull Requests if appropriate – if you’re not sure where to start on those, let us know, and we’ll help.
Style Guide¶
Following a uniform style within a project makes it more maintainable. This goes doubly for projects with many contributors, such as open source projects, so we’d like to ask you to follow these style guide notes:
Code¶
Generally, pretalx Python code follows PEP8. We run flake8
, isort
and black
as style checkers, so those should help you if you’re not sure
how to format something. They are configured via the setup.cfg
file in the
src
directory, and can be run like this:
$ isort .
$ black .
$ flake8 .
$ djhtml -i .
While we enforce no strict line length, please try to keep your lines below 120 characters. Other than that, we generally subscribe to the Django project style guide.
For JavaScript and (S)CSS files we follow the conventions established by prettier, with 2 spaces for indentation in (S)CSS files and 4 spaces in JavaScript files:
$ prettier --no-semi --write path/to/file
Changes should be covered by tests. Our tests run with pytest, so please use
their assert
statement conventions.
Remember to mark all user-facing strings for translation, and please avoid unnecessary changes to existing translations, as they require manual re-translation in all languages.
Documentation¶
Documentation is written in Sphinx-style ReStructured Text format. Please wrap lines at 80 characters.
If you are a native speaker: We’re always grateful for any improvements in phrasing and clarity, particularly in our documentation.
Commit messages¶
Please wrap all lines of your commit messages at 72 characters at most – bonus points if your first line is no longer than 50 characters. If your commit message is longer than one line, the first line should be the subject, the second line should be empty, and the remainder should be text.
If you want to address or close issues, please do so in the commit message
body. Closes #123
or Refs #123
will close the issue or show the
reference in the issue log on GitHub.