This document provides guidelines and instructions for contributing to the project.
- Ensure you have Python 3.10 or higher installed
- Install Poetry for dependency management
- Clone the repository:
git clone https://github.com/feynmanix/pipask.git cd pipask - (If needed) activate the desired python version
- Install dependencies:
poetry install
- Write tests for new functionality
- Run tests with
poetry run pytest - Run integration tests with
poetry run pytest -m integration(requires internet access) - Run static checks and formatting using
./run-checks.sh
To ensure pipask works across different environments, test various installation methods and platforms:
Installation Method of pipask |
Execution environment | Unix | Windows |
|---|---|---|---|
| pipx | Global | ✅ | |
| pipx | venv | ✅ | |
| Global pip | Global | ✅ | |
| Global pip | venv | ✅ | |
| venv pip | venv | ✅ |
Other edge cases to consider (some may not be currently supported):
- installing extras (e.g.
pipask install black[d]) - installing from a requirements file (e.g.
pipask install -r requirements.txt) - installing from
- local directory (e.g.
pipask install .) - git (e.g.
pipask install git+https://github.com/feynmanix/pipask.git) - a file (e.g.
pipask install pipask-0.1.0-py3-none-any.whl) - alternative package repository (e.g.
pipask install --index-url https://pypi.org/simple/ requests)
- local directory (e.g.
- editable installs
#egg=namesyntax- installation flags
--user--upgrade--force-reinstall
- installing an already installed package
- Bump version before releasing with
bumpver, e.g.:poetry run bumpver update --minor
- Push the created tag to the repository, e.g.:
git push origin tag 1.0.0 # OR # git push --tags
- Create a new release with the newly created tag. The name of the release should correspond to the version number (e.g.,
v1.0.0).
When reporting issues, please include:
- A clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Python version and environment details
Feel free to open an issue for any questions or if you need help with your contribution.