If you value this software or depend on it for your product, consider sponsoring it and contributing to its codebase. Your support will help ensure the sustainability and growth of the project.
There are many ways to contribute:
- Sponsor the project: Show your appreciation on GitHub or ko-fi.com.
- Find bugs and submit bug reports: Help making Courlan an even more robust tool.
- Write code: Fix bugs or add new features by writing pull requests with a list of what you have done.
A special thanks to the contributors who have played a part in Courlan.
Courlan requires Python 3.10 or higher. Follow these steps to set up a local development environment, run tests and linters, and prepare a pull request.
- Clone and create a virtual environment
git clone https://github.com/adbar/courlan.git
cd courlan
python -m venv .venv
# macOS / Linux
source .venv/bin/activate
# Windows (PowerShell)
.\.venv\Scripts\Activate.ps1- Install dependencies
pip install --upgrade pip
pip install -e '.[dev]'- Run tests and quality checks (recommended sequence)
# run unit tests
pytest -q
# linting
ruff check courlan tests
# apply formatting if needed
ruff format courlan tests
# static typing
mypy -p courlan- Pre-commit and CI
- Run
pre-commit run --all-filesif pre-commit is configured locally. - Ensure all CI checks pass (tests, ruff, mypy) before opening a PR. CI expectation: tests green, linting passes, and type checks report no new errors.
- Pull request guidance
- Branch from
masterand use a descriptive branch name:fix/url-cleaningorfeat/urlstore-persistence. - Update or add tests for bug fixes and new features.
- Keep commits small and focused. Use conventional commit messages where helpful. Include the Co-authored-by trailer when relevant.
- In the PR description, explain the problem, your approach, and any user-facing changes (CLI flags, default behavior).
- Contact and support
If you have questions, open an issue on GitHub or reach out via the contact details in the README.
Thanks,
Adrien