Developer instructions ====================== Guidance for Firelink developers Pre-Config and Black -------------------- For developers, Bleeding edge dependency testing uses `pre-commit `_ to run the `black `_ code formatter before each commit. In a nutshell what happens is: * You edit some code locally, then ``git add`` and ``git commit`` * As the commit is registered by ``git``\ , the ``pre-commit`` package runs ``black`` on any changed files in the commit. (You can also run ``pre-commit run --all-files`` to run on all files) and will show as having *failed* if it has made any edits. If ``black`` has made edits to the edited files, you need to re-add and re-commit those specific files. * Then you can ``git push`` to your hearts' content! * The ``black`` code formatter forces our hand on code formatting and style - that means that all of the code follows the same style, and we can focus on the meat of the issue. The first time you clone Firelink into a new environment, you need to run ``pre-commit install`` after pip/conda installation. You do *not* need pre-commit to just run Firelink. If you have a pre-existing environment, go ahead and ``pip install pre-commit`` and you should be fine. Generally, only PRs with black styling will be accepted by the Firelink team. Contribution guidelines ----------------------- Keep an eye on the `issues `_. We are always happy for help, including such things as: - Bug reports - Feature requests - Commenting on issues ("me too!" and "+1" can be helpful) - Positive feedback (It's always lovely to hear!) - Negative feedback (but be nice) - Pull Requests to fix a bug - Pull Requests to implement a feature (though we wouldn't mind discussing first)