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
Support for canary releases based on changesets? #855
Comments
This sounds like snapshot releases (or at least the intent behind them).
Using @Andarist I'm kinda thinking we should have a "snapshot version template" config option, So you could make have some variables that we provide like:
and the default would be
Snapshot releases should definitely use exact versions for dependencies (I'm surprised that's not already true tbh). Do you want to create a PR for that? |
Oh, wow, I totally missed the I tested it now, and here are my thoughts:
I can open the following PRs:
Does it make sense? Thanks @mitchellhamilton |
@mitchellhamilton I created a PR to fix the exact versioning when snapshot release is performed: #857 |
@mitchellhamilton Created another PR for adding |
Are there any downsides to updating CHANGELOGs there? You are not supposed to commit the output of a snapshot release anyway. |
Yeah, not committing it, just noticed it's generated anyway (while testing locally). I guess it's very minor :) |
It might actually be somewhat nice to have those generated because you might always easily check in the package itself what kind of a change has been published in a given snapshot release. |
Hi there!
We at The Guild are working with
changesets
extensively. One of the solution we implement on top of the current implementation ofchangesets
is the ability to easily connect canary/alpha releases, based on activechangesets
.To do that, we are applying a minimal
patch
file to changesets code, in order to allow flexibility in the release flow.I'm sharing an overview of the technical changes we are doing today, and I can also create a PR if this makes sense. I was thinking of a workflow of
changesets version canary
in the CLI.The
canary
/alpha
workflowsassembleReleasePlan
and builds the complete plan as changesets plan to release it (on the next release planned){plannedVersion}-canary.{COMMIT_ID}
applyReleasePlan
to apply the change temporarily--tag canary
Here's the script we are using: https://github.com/B2o5T/graphql-eslint/blob/master/scripts/canary-release.ts
This way - changesets are used as the source of truth to the packages that actually was changed and needs to be released - and we apply an empheral change to the versioning before publishing it to npm.
Allowing non-ranged publishing
As part of the canary release workflows, we want to make sure to get rid of all possible ranges (
^
/~
) in the internal packages dependencies, to make sure to get the exact versions of the canary changes.To do that, we added a new argument to
versionPackage
function, calledignoreRange
Reference: https://github.com/B2o5T/graphql-eslint/blob/master/patches/%40changesets%2Bapply-release-plan%2B6.0.0.patch#L19
The text was updated successfully, but these errors were encountered: