Thoughts on adapting release process to cater for consumers #715
Replies: 3 comments 5 replies
-
I'd recommend a simpler approach, using 2 persistent branches
With the following rationale
With regards to the questions
I don't see why not. Storybook compiles to a static site. You can easily host it at very low cost.
I'd recommend to only do it for breaking changes, including redesigns. I'd also recommend to only have 1
Docs are statically generated to. Hosting them doesn't really cost much.
Allow hotfixes both for |
Beta Was this translation helpful? Give feedback.
-
Regarding the impact this has has on documentation. Carbon have multiple versions of their documentation portal. https://carbondesignsystem.com/ - Production Docs for v11 of their design system (current) |
Beta Was this translation helpful? Give feedback.
-
Thanks for this writeup - really good. My main thoughts:
I agree with @webbertakken on this one – I'd only use next for major breaking changes. By default, minor releases should be less risky (especially for components we consider stable at that point). From using Changesets previously for beta releases, having multiple feature branches as the component
My main question would be – wouldn't the storybook builds on PRs anyway cater for this? Do the Version PRs have their own deployed temporary storybook currently? If not, that would probably be the way I'd handle this.
We've talked about doing this before. As above, I imagine our PR previews should cater for this mostly. The main thing we may want in the future is to keep older versions of the docs site for previous major releases. We've talked about this in the past, but may be one to think about again in the future.
Agree with @webbertakken – should just be regular releases into both branches (if a |
Beta Was this translation helpful? Give feedback.
-
After our team discussion yesterday around versioning, particularly how we're going to handle beta releases, I just wanted to create this discussion, mainly for my own benefit around how we're currently releasing, and things we need to start thinking about before consumers start adopting packages.
With changesets, we currently have a versioning mechanism that allows us to tag components on npm as either next / beta / latest - see here.
Despite the ability to publish components under different tags, we don't really have a process in place for when a tag other than latest is required.
Current Problems
If we continue with our current process of merging into
main
, we're going to run into maintenance problems on our side, and potential confusion for consumers.At the moment, we tend to always merge changes directly into main, meaning packages will always get versioned as latest.
This will need to change when we have consumers adopting our packages. If we advertise beta versions of our packages, they should be tagged as such to prevent issues around consumers accidentally consuming a version of a package that isn't ready for adoption. It also allows us to have full control of when we promote a package from beta > latest (perhaps a wider discussion needed around fortnightly / monthly releases or similar?)
Proposed workflow changes to combat some of these problems:
This approach would bring our process more in-line with other design systems:
Other systems that follow this repos that utilise this approach with changesets:
Shopify Polaris - Shopify/polaris#9865
Astro - withastro/astro#7897
It also presents a number of questions that would need to be answered:
Beta Was this translation helpful? Give feedback.
All reactions