Skip to content

Document release process for Crossplane extensions. #913

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 12, 2025

Conversation

jastang
Copy link
Member

@jastang jastang commented Apr 9, 2025

Adds a new Guide detailing the conventional release process with GitHub Actions for Crossplane extensions.

Fixes #785

Copy link

netlify bot commented Apr 9, 2025

Deploy Preview for crossplane ready!

Name Link
🔨 Latest commit f117b12
🔍 Latest deploy log https://app.netlify.com/projects/crossplane/deploys/6849e659186ba40008ad63c0
😎 Deploy Preview https://deploy-preview-913--crossplane.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 60 (🔴 down 23 from production)
Accessibility: 90 (🔴 down 2 from production)
Best Practices: 83 (no change from production)
SEO: 100 (no change from production)
PWA: 70 (no change from production)
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@jastang jastang force-pushed the 785-extensions-release-process branch from 69668fc to 5e5345b Compare April 9, 2025 08:00
@jastang jastang requested a review from jbw976 April 9, 2025 08:02
Copy link
Member

@jbw976 jbw976 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a great start @jastang, thank you for stepping up to take on a long annoying gap in the community's knowledge base! 🙇‍♂️

I think we're still missing some high level and general information for folks that aren't ready to see the details of pipeline steps. Could you consider adding two IMO important focus areas to this guide?

  • A high level general outline of what an extension release is, how the parts all fit together
  • A practical set of steps that they follow to release their extension. This will probably be THE most useful and popular section of this guide. People would hopefully be able to come to this list and mostly follow it without thinking too much 😉

@jastang jastang requested a review from jbw976 June 10, 2025 14:03
Copy link
Member

@jbw976 jbw976 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for updating this guide @jastang! I think we have a lot of what we need here, maybe just a few small things to tie together the quick starts with the general guidance more strongly.

There may not be much this guide can do about the ecosystem fracturing we've caused, but let's see if there's anything we can do to improve on that, e.g. give folks concrete guidance to follow a single path instead of being confused about the options they have.

```

3. Commit the workflow file to the default branch of the GitHub repository.
4. The workflow should now be available to trigger via the GitHub UI in the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

something that still feels missing is the choices/actions around the release itself. do you feel like those are in scope here too? e.g. creating a release branch and/or tagging the release version.

or perhaps it could be as simple as adding here ...when you are ready to publish a release of your provider 😇

Copy link
Member

@jbw976 jbw976 Jun 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

beyond that though, I'm still personally struggling with the inconsistency we have introduced over time into the provider ecosystem. e.g. the ci.yaml for upjet-provider-template publishes on every CI run: https://github.com/crossplane/upjet-provider-template/blob/main/.github/workflows/ci.yml#L320-L322. It's sort of odd that we now have a separate workflow that is manually triggered, instead of just letting ci.yml publishing do the publishing itself.

This first came up in crossplane/org#88, we've sort of fractured the ecosystem into different paths that folks have to figure out themselves. is there much we can do in these docs to help people understand a single easy path to take? 🤔

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fractured the ecosystem into different paths

completely agree here -- this became obvious as I was writing these docs. my understanding is that the reusable workflows are meant to be the desired "golden path" that requires fewer changes to Makefiles and other subtle configuration (cc @jeanduplessis @sergenyalcin to keep me honest here). I'm highlighting that path in these docs, but a follow-up would be to update the provider templates to include the reusable workflow and deprecate the publishing portion from ci.yml.

@jastang jastang force-pushed the 785-extensions-release-process branch from 990a6f0 to f6bafbd Compare June 11, 2025 14:37
Signed-off-by: Jason Tang <[email protected]>
@jastang jastang requested a review from jbw976 June 11, 2025 15:01
@jastang
Copy link
Member Author

jastang commented Jun 11, 2025

Thanks for the quick reviews @jbw976 🙇🏼 . I put the updates in a new commit here to hopefully make re-review easier.

Copy link
Member

@jbw976 jbw976 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i like where we are ending up here @jastang - this is pretty much ready to go but a couple minor suggestions and a question about version inferring for you to consider - let me know when you feel good here and we can go ahead and merge! 🎉

@jbw976 jbw976 merged commit 2f69572 into crossplane:master Jun 12, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Document how to release Crossplane extensions (providers, functions, etc.)
2 participants