To best way to get support for signac is to join the signac-gitter channel. The developers and other users are usually able to help within a few minutes. Alternatively, you can send an email to firstname.lastname@example.org.
Please use the issue tracker of the individual :ref:`packages <package-overview>` to file bug reports or request new features!
Contributions to signac are very welcome! We highly appreciate contributions in the form of user feedback and bug reports on the gitter channel, the issue trackers of individual :ref:`packages <package-overview>`, or via email. Developers are invited to contribute to the framework by pull request to the appropriate package repository. The source code for all packages is hosted on github. We recommend discussing new features in form of a proposal on the issue tracker for the appropriate project prior to development.
All code contributed via pull request needs to adhere to the following guidelines:
- Use the OneFlow model of development: - Both new features and bug fixes should be developed in branches based on
master. - Hotfixes (critical bugs that need to be released fast) should be developed in a branch based on the latest tagged release.
- Write code that is compatible with all supported versions of Python (listed in the package
- Avoid introducing dependencies -- especially those that might be harder to install in high-performance computing environments.
- All code needs to adhere to the PEP8 style guide, with the exception that a line may have up to 100 characters.
- Create unit tests and integration tests that cover the common cases and the corner cases of the code.
- Preserve backwards-compatibility whenever possible, and make clear if something must change.
- Document any portions of the code that might be less clear to others, especially to new developers.
- Write API documentation as part of the doc-strings of the package, and put usage information, guides, and concept overviews in the framework documentation, the page you are currently on (source).
During continuous integration, the code is checked automatically with Flake8. Run the following commands to set up a pre-commit hook that will ensure your code is compliant before committing:
flake8 --install-hook git git config --bool flake8.strict true
Please see the individual package documentation for detailed guidelines on how to contribute to a specific package.