cdevents / sdk-python

Python SDK for CDEvents
Apache License 2.0
4 stars 8 forks source link

Fidelity 20230404 141441 #21

Closed elmsdata closed 1 year ago

elmsdata commented 1 year ago

Fixes #20

Changes

Create Github Action to automate releases and changelog based on pull requests.

One line description for the changelog

Create Github Action to automate releases and changelog based on pull requests.

afrittoli commented 1 year ago

Thanks, @elmsdata for this PR.

If I read this correctly, the automation will trigger a release every time there is a push to main i.e. every time a PR is merged. How is the versioning of releases going to work? Can we make patch releases for previous releases? Is there a way to associate an SDK release with a spec release?

It would be useful as a follow-up to add some documentation about how releases are managed for this package.

elmsdata commented 1 year ago

Thanks, @elmsdata for this PR.

If I read this correctly, the automation will trigger a release every time there is a push to main i.e. every time a PR is merged. How is the versioning of releases going to work? Can we make patch releases for previous releases? Is there a way to associate an SDK release with a spec release?

It would be useful as a follow-up to add some documentation about how releases are managed for this package.

Hey @afrittoli and thanks for reviewing my PR! Great questions, I was going to originally have a fully automated process that would try to be smart about incrementing the version change (either major, minor or patch) based on the tags in the pull request. However, I saw other projects that did this and it works great for large, complicated projects that are fully mature in their contribution model. For our Python SDK, I wanted to take your approach where we still have a manual step to set the version.

So I wrote the script to pull the version based on the pyproject file, line 3. Then each time a pull request is open, the contributor would have to manually update the project file. If the community felt it was a breaking change then we would increment the minor patch. This can also be easily leveraged for spec release, just simply open a pull request with the incremental change to the project file! I was also going to update the pull request template to include a new checkbox to increment the project version.

Still experimenting with the versioning, why I set the version to 0.0.0 in the project file. It works great in my local github workspace but ran into a few challenges once I merged it. 😄 Once I'm down and have added the automation to release to the python public location I would love to add documentation around the process!

For other SDK projects, the only item that would change is how we pull the version and from which file.