π€ Contributing to mifarepy
Thank you for considering a contribution to mifarepy! We value all forms of contributionsβbug reports, feature requests, documentation improvements, and code enhancements. To make collaboration smooth and efficient, please follow the guidelines below.
π Code of Conduct
Our community is governed by a Code of Conduct. By participating, you agree to uphold its principles and treat everyone with respect and courtesy.
π Get Started
1. Report Issues
- Use GitHub Issues to report bugs or request features.
- When filing an issue:
- Provide a clear title and description.
- Include steps to reproduce, expected vs. actual behavior, and environment details.
- Attach logs, screenshots, or minimal code snippets if helpful.
2. Fork & Clone
git clone https://github.com/SparkDrago05/mifarepy.git
cd mifarepy
git checkout -b feature/your-topic
- Use a descriptive branch name prefixed with
feature/,fix/, ordocs/.
3. Set Up Development Environment
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -e .
pip install -r requirements-dev.txt
- This installs mifarepy in editable mode and developer dependencies (linting, testing).
π§ Writing Code
- Follow PEP8 style; project uses Pycharm (auto-format) and Flake8 (linting).
- Write clear, modular code with meaningful names and docstrings.
- Add or update pytest tests under
tests/to cover new behavior. - Ensure all tests pass:
- Maintain or improve code coverage, especially for critical paths.
π¬ Commits & Pull Requests
Commit Messages
- Follow Conventional Commits:
feat: add new reader methodfix: correct CRC calculationdocs: update usage guidechore: bump version to 1.2.0
Pull Request
- Push your branch and open a PR against the
mainbranch. - In the PR description:
- Summarize the change, motivation, and any linking issue.
- List manual testing steps, if applicable.
- Respond to review feedback and update your PR until approved.
β After Merge
- Celebrate! π Your contributions help improve mifarepy for everyone.
- Keep your fork and branches tidy by deleting merged branches.
π License
By contributing, you agree that your changes will be licensed under the project's LGPL v3.0 or later.