Contributing¶
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
Environment setup¶
Nothing easier!
Fork and clone the repository, then:
cd mdbom
task setup
!!! note If it fails for some reason, you'll need to install Poetry manually.
You can install it with:
```bash
python3 -m pip install --user pipx
pipx install poetry
```
Now you can try running `make setup` again,
or simply `poetry install`.
You now have the dependencies installed.
You can run the application with poetry run mdb [ARGS...]
.
Run task --list
to see all the available actions!
If you want to know more about a specific task then run
task <name> --summary
to get a detailed description.
Development¶
As usual:
- create a new branch:
git checkout -b feature-or-bugfix-name
- edit the code and/or the documentation
If you updated the documentation or the project dependencies:
- run
task check-docs
- run
task check-code
Before committing:
- run
task format
to auto-format the code - run
task check
to check everything (fix any warning) - run
task test
to run the tests (fix any issue) - follow our commit message convention
If you are unsure about how to fix or ignore a warning, just let the continuous integration fail, and we will help you during review.
Don't bother updating the changelog, we will take care of this.
Commit message convention¶
Commits messages must follow the Angular style:
<type>[(scope)]: Subject
[Body]
Scope and body are optional. Type can be:
build
: About packaging, building wheels, etc.chore
: About packaging or repo/files management.ci
: About Continuous Integration.docs
: About documentation.feat
: New feature.fix
: Bug fix.perf
: About performance.refactor
: Changes which are not features nor bug fixes.style
: A change in code style/format.tests
: About tests.
Subject (and body) must be valid Markdown. If you write a body, please add issues references at the end:
Body.
References: #10, #11.
Fixes #15.
Pull requests guidelines¶
Link to any related issue in the Pull Request message.
During review, we recommend using fixups:
# SHA is the SHA of the commit you want to fix
git commit --fixup=SHA
Once all the changes are approved, you can squash your commits:
git rebase -i --autosquash master
And force-push:
git push -f
If this seems all too complicated, you can push or force-push each new commit, and we will squash them ourselves if needed, before merging.