👍 🎉 First off, thank you for taking the time to contribute! 🎉 👍
The following is set of guidelines for contributing to deduplify
hosted on GitHub.
These are mostly guidelines, not rules.
Use your best judgment and feel free to propose changes to this document in a pull request.
Table of Contents:
- Code of Conduct
- I don't want to read the whole thing, I just have a question!
- How can I contribute?
- Style Guides
This project and everyone participating in it is governed by the project's Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behaviour to [email protected].
Please open an issue and we'll try to help you as soon as possible.
We believe it's actually really difficult to tell if something not working is due to a bug or if there's something missing in the code that allows users to do something.
Therefore, we don't have bug
and enhancement
labels/issue templates.
Instead we have a support
template that asks for details of what a user expected to happen.
We can then begin a discussion from there as to whether this requires a bugfix or a feature release.
If you think you've found something missing or broken within deduplify
, please open a support issue and we will try to help find a solution.
Please try to complete the template to the best of your ability with as much detail as possible.
This will help us work out what's happening and what needs to be done.
If you find or file an issue in the project that you would like to work on, here are the steps to take:
- Please add a comment on the issue stating you would like to work on it. This reduces the chance of duplicated work.
- Work on any changes in a fork of this repository.
- When you open your Pull Request, please complete the PR template to the best of your ability.
- Please try to maintain passing status checks on your Pull Request. However, the project team can help with tricky test failures.
We use a package called incremental
to simplify the changing the semantic version of the package.
A GitHub Action workflow is configured to build and publish the package on PyPI when a new release is published.
To make a release, follow these steps:
- Bump the package version using
incremental
. Add and commit the edited_version.py
file in thededuplify
folder. This can either be done as a commit in a larger Pull Request, or in a PR by itself.- To increase the patch of the version, run:
python -m incremental.update --patch deduplify
- To increase either the major or minor tag of the version, run:
where
python -m incremental.update --newversion X.Y.Z deduplify
X.Y.Z
matches a valid SEMVAR version number.
- To increase the patch of the version, run:
- In the GitHub browser, make a new release tag.
- Click the
Releases
tab at the top of the repository - Click the
Draft a new release
button - In the
Choose a tag
dropdown menu, type your new version with a leadingv
, e.g.,vX.Y.Z
. This tag won't exist yet, so selectCreate new tag on publish
. - Click
Auto-generate release notes
to automatically generate the release notes - Click
Publish release
- Click the
deduplify
is a Python package and we try to maintain certain formatting standards for readability and consistency, but also that you don't have to worry about the style either!
All Python files within this project are run through black
, flake8
, pyupgrade
and isort
for formatting and linting using pre-commit
.
pre-commit
will automatically apply the required changes to all Python files in order to ensure they conform to the style guide.
You can see the pre-commit
config file in the repository.