Community

NumFOCUS

The signac framework is part of the community of NumFOCUS Affiliated Projects.

Code of Conduct

All community members are expected to follow the signac project’s code of conduct.

Chat Support

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 signac-support@umich.edu.

Please use the issue tracker of the individual packages to file bug reports or request new features!

Contributions

Contributions to signac are very welcome! We highly appreciate contributions in the form of user feedback and bug reports. Such contributions are best communicated through our Slack workspace, which we use for developer discussions, the issue trackers of individual packages, 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 setup.py file).
  • 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).

Tip

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

Note

Please see the individual package documentation for detailed guidelines on how to contribute to a specific package.