Contributions to the package's development must be compatible with Python 3.8+ and debian-based Linux distros. It is strongly recommended to use the provided Makefile to duplicate workflows.
Install with development dependencies:
git clone https://github.com/gampnico/scintillometry.git
make install-dev
If conda is unavailable:
git clone https://github.com/gampnico/scintillometry.git
pip install -e .[dev]
With Python 3.9+, optionally install Scalene to profile your code.
Follow Git-Flow where possible, but please feel free to create feature branches that branch off from develop
.
Prefix branches with feat-
, feature-
, or hotfix-
, followed by the issue number and a description, e.g. feat-I3-description
.
Avoid excess conflicts by following these guidelines:
- Write commit messages in the style of conventional commits.
- Write tests before committing features.
- Push many small commits instead of a single large one.
- Push new features to
develop
. Never push tomain
.- Push documentation separately. Don't push built documentation.
- Follow the Google Style Guide.
- Format all code with black, line length 88.
- Format docstrings with line length 72.
- Format .rst files with 3-space indents, line length 80.
- Break lines in Markdown only at the end of paragraphs.
- Spaces, not tabs.
Please use the provided rc files for pylint and coverage. Ensure any changes are covered by a relevant test. Always format and run tests with Python 3.8 before committing:
make tests
Tests can take a couple of minutes to run.
After adding changes with git add
, run:
make commit
This formats code and runs tests before launching the commit dialogue. Write a useful commit message:
feat(backend): compute bar with function foo
Adds function foo that does bar.
Begins:
#ABC: select input for foo via cli
#DEF: fix bug in foo
Refs: #ABC, #DEF, #XYZ, ...
Finally push to the appropriate branch.