- If you don't have
uv
installed run:
make setup
This installs
uv
as a standalone application.
For more details, see also theuv
documentation.
- Initialize project dependencies with
uv
and installpre-commit
hooks:
make install-dev
make pre-commit-install
This will install project dependencies into the currently active environment. If you would like to
use uv's default behavior of managing a project-scoped environment, use uv
commands directly to
install dependencies. uv sync
will install dependencies and dev dependencies in .venv
and update the uv.lock
.
Before submitting your code please do the following steps:
- Add any changes you want
- Add tests for the new changes
- Edit documentation if you have changed something significant
You're then ready to run and test your contributions.
- Run linting checks:
make lint-all
- Run
tests
(including your new ones) with
make test
- Upload your changes to your fork, then make a PR from there to the main repo:
git checkout -b your-branch
git add .
git commit -m ":tada: Initial commit"
git remote add origin https://github.com/your-fork/mlm-extension.git
git push -u origin your-branch
Warning
There are multiple types of releases for this repository:
- Release for MLM specification (usually, this should include one for
stac-model
as well to support it) - Release for
stac-model
only
- Checkout to the
main
branch by making sure the CI passed all previous tests. - Bump the version with
bump-my-version bump --verbose <version-level>
.- Consider using
--dry-run
beforehand to inspect the changes. - The
<version-level>
should be one ofmajor
,minor
, orpatch
.
Alternatively, the version can be set explicitly with--new-version <version> patch
.
For more details, refer to the Semantic Versions standard;
- Consider using
- Make a commit to
GitHub
and push the corresponding auto-generatedv{MAJOR}.{MINOR}.{PATCH}
tag. - Validate that the CI validated everything once again.
- Create a
GitHub release
with the created tag.
Warning
- Ensure the "Set as the latest release" option is selected ✔️.
- Ensure the diff ranges from the previous MLM version, and not an intermediate
stac-model
release.
- Apply any relevant changes and
CHANGELOG.md
entries in a PR that modifiesstac-model
. - Bump the version with
bumpversion bump <version>
.- You can pass the new version explicitly, or a rule such as
major
,minor
, orpatch
.
For more details, refer to the Semantic Versions standard;
- You can pass the new version explicitly, or a rule such as
- Once CI validation succeeded, merge the corresponding PR branch.
- Checkout to
main
branch that contais the freshly created merge commit. - Push the tag
stac-model-v{MAJOR}.{MINOR}.{PATCH}
. The CI should auto-publish it to PyPI. - Create a
GitHub release
Warning
- Ensure the "Set as the latest release" option is deselected ❌.
- Ensure the diff ranges from the previous release of
stac-model
, not an intermediate MLM release.
You can contribute by spreading a word about this library. It would also be a huge contribution to write a short article on how you are using this project. You can also share how the ML Model extension does or does not serve your needs with us in the GitHub Discussions or raise Issues for bugs.