-
If you don't have
uvinstalled run:make setup
This installs
uvas a standalone application.
For more details, see also theuvdocumentation. -
Initialize project dependencies with
uvand installpre-commithooks: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, useuvcommands directly to install dependencies.uv syncwill install dependencies and dev dependencies in.venvand update theuv.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) withmake 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-modelas well to support it) - Release for
stac-modelonly
- Checkout to the
mainbranch by making sure the CI passed all previous tests. - Bump the version with
bump-my-version bump --verbose <version-level>.- Consider using
--dry-runbeforehand 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
GitHuband push the corresponding auto-generatedv{MAJOR}.{MINOR}.{PATCH}tag. - Validate that the CI validated everything once again.
- Create a
GitHub releasewith 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-modelrelease.
- Apply any relevant changes and
CHANGELOG.mdentries in a PR that modifiesstac-model. - Bump the version with
bump-my-version bump --verbose <version-level> --config-file stac-model.bump.toml.- 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
mainbranch that contains 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(if not automatically drafted by the CI).
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.