These are notes to help me remember how to build and release osxmetadata. They may be useful for contributors.
The build is managed by doit and uv.
Version management uses bump2version.
Documentation is updated with cog and mkdocs.
pytest is used for testing.
To bump the minor version, run bumpversion minor --verbose --dry-run to see what will happen then again without the --dru-run to implement the change. This updates the __version__ constant in the package as well as the pyproject.toml version.
- Change to the project directory
- Install uv:
curl -LsSf https://astral.sh/uv/install.sh | sh - Create the virtual environment:
uv venvoruv venv --python 3.13to specify a specific version - Activate the virtual environment:
source .venv/bin/activate - Install package dependencies:
uv pip install -r pyproject.toml --extra devoruv sync --extra dev
The doit test task (doit test) will run pytest to test the package.
Note that a couple of tests are currently failing on Ventura even though the same code works fine when run directly. I've not figured out why this is happening yet.
To test and build the package, run doit. This will build the package and run the tests. Run doit list to see the available tasks. doit tasks are defined in dodo.py.
Uses mkdocs:
mkdocs buildmkdocs gh-deploy
Use auto-changelog:
auto-changelog --ignore-commit-pattern CHANGELOG -l 5