The posit-sdk
is a software development kit (SDK) for working with Posit's professional products.
Before contributing to the posit-sdk
, ensure that the following prerequisites are met:
- Python >=3.9
[!INFO] We require using virtual environments to maintain a clean and consistent development environment. Any Python virtual environment will do.
Warning
Executing make
will install third-party packages in your .venv
virtual Python environment. Please review the Makefile
to verify behavior before executing any commands.
- Fork the repository and open it in your development environment.
- Activate your Python environment (e.g.,
source .venv/bin/activate
) - Run
make
to run the default development workflow. - Make your changes and test them thoroughly using
make test
- Run
make fmt
andmake lint
to verify adherence to the project style guide. - Commit your changes and push them to your forked repository.
- Submit a pull request to the main repository.
Use the default make target to execute the full build pipeline. For details on specific targets, run make help
, or review the Makefile itself.
We use Ruff for linting and code formatting.
All proposed changes must successfully pass the make lint
rules prior to merging.
Utilize make fmt lint
to format and lint your changes.
This project is configured for pre-commit. Once enabled, a git commit
hook is created, which invokes make fmt lint
.
To enable pre-commit on your machine, run pre-commit install
.
To start a release create a semver compatible tag.
For this example, we will use the tag v0.1.0
. This tag already exists, so you will not be able run the following commands verbatim.
Step 1
Create a proper SemVer compatible tag. Consult the SemVer specification if you are unsure what this means.
git tag v0.1.0
Step 2
Push the tag GitHub.
git push origin v0.1.0
This command will trigger the Release GitHub Action.
Step 3
Once complete, the release will be available on PyPI.
Any tags denoted as a pre-release as defined by the SemVer 2.0.0 specification will be marked as such in GitHub. For example, the v0.1.rc1
is a pre-release. Tag v0.1.0
is a standard-release. Please consult the specification for additional information.