Contributing
We welcome contributions to dj-flexi-tag! Here’s how you can help:
Setting Up for Development
Fork the repository on Bitbucket
Clone your fork locally:
git clone https://bitbucket.org/your-username/dj-flexi-tag.git cd dj-flexi-tag
Create a virtual environment and install development dependencies:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -e ".[dev,test,docs]"
Set up pre-commit hooks:
pre-commit install
Running Tests
We use tox to run tests across different Python and Django versions:
tox
To run tests for a specific environment:
tox -e py39-django32
Or to run tests with your current Python version:
python runtests.py
You can also run specific tests:
python -m pytest flexi_tag/tests/test_utils/test_service.py -v
Code Style
We follow PEP 8 and use Black for code formatting. Run Black before submitting:
black flexi_tag
We also use ruff for linting:
ruff flexi_tag
Documentation
To build the documentation locally:
cd docs
make html
The documentation will be available in _build/html/.
Pull Request Process
Create a new branch for your feature or bugfix: git checkout -b feature/your-feature-name
Make your changes and add tests
Ensure all tests pass: tox
Update documentation if needed
Push your branch: git push origin feature/your-feature-name
Submit a pull request to the main repository
We aim to review and respond to pull requests within a few days.
Reporting Issues
When reporting issues, please include:
A clear description of the problem
Steps to reproduce
Expected vs. actual behavior
Django and Python versions
Any relevant logs or error messages
Feature Requests
Feature requests are welcome! Please provide:
A clear description of the feature
Any relevant use cases
How the feature would benefit the project
Release Process
For maintainers, the release process is:
Update version in setup.py
Update CHANGELOG.md
Create a new tag: git tag vX.Y.Z
Push the tag: git push origin vX.Y.Z
The CI/CD pipeline will build and publish to PyPI
Code of Conduct
We expect all contributors to be respectful and considerate of others. Any form of harassment or discriminatory behavior will not be tolerated.