Hi there! Welcome to the tilesets-cli contributing document. Issues, comments, and pull requests are welcome. Please tag @mapbox/maps-api for any questions or reviews.
Install uv (https://docs.astral.sh/uv/) and then clone the repo and cd into the folder:
# clone
git clone git@github.com:mapbox/tilesets-cli.git
cd tilesets-cli
# install deps (creates .venv)
uv sync --group dev
# include optional estimate-area dependencies
uv sync --group dev --extra estimate-area
# confirm installation was successful
uv run tilesets --help
uv run tilesets --versionWe use pre-commit hooks to auto-format and validate code before committing. pre-commit is included with the dev dependency group, but you must run:
$ uv run pre-commit installwithin the repo to have the actions specified in .pre-commit-config.yaml registered.
Releases to PyPi are handled via Github Actions and GitHub tags. Once changes have been merged to master:
- Update the version in
pyproject.toml - Update the changelog
- Commit changes to your branch. For example
git commit -am '0.2.0' && git push origin HEAD - Get a review and merge your changes to master.
- Get the latest changes locally from master
git checkout master && git pull origin master - Tag on GitHub with
git tagand push tags. For examplegit tag -a v0.2.0 -m 'v0.2.0' && git push --tags - Watch for tag build on Github Actions at https://github.com/mapbox/tilesets-cli/actions
- Once Github Actions completes successfully, look for the release at https://pypi.org/project/mapbox-tilesets/#history
All tests are runnable with pytest. pytest is installed via the dev dependency group:
uv sync --group devRunning tests
uv run pytest