-
-
Notifications
You must be signed in to change notification settings - Fork 42
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
[question] best practices for versioning extensions #2444
Comments
This is uncharted territory. I do think there will need to be a change to Unsure how to approach it yet. One idea is a {
"name": "my-extension",
"version": "1.0.1",
"bud": {
"version": "6.16"
}
} I like this because the package maintainer can independently version their code. I think bud.js is in a place now where there is no need for packages to release updates just because we did. I also don't think this is maintainable or appealing for extension maintainers. My initial thinking: When a user running 6.16.1 runs the upgrade command, bud.js:
The unresolved question:
|
Yeah, I really like this idea. Having the ability for an extension to target a range of bud releases is ideal. +1 for your approach. As for what we do when there is no installation candidate: I ran
I quite like that, too. |
@talss89 I saw you did a bump on
{
...
"devDependencies": {
"@roots/bud": "nightly",
"@roots/bud-tailwindcss": "nightly",
"@roots/sage": "nightly",
"bud-localtunnel": "0.0.1"
}
}
[project] [hooks] › set package manager to yarn
[project] [hooks] › { required: '>=6.16.0', satisfies: true, version: '6.16.0' }
[project] [hooks] › Upgrading devDependencies
@roots/bud@6.16.0
@roots/bud-tailwindcss@6.16.0
@roots/sage@6.16.0
bud-localtunnel@0.0.2 {
...
"devDependencies": {
"@roots/bud": "6.16.0",
"@roots/bud-tailwindcss": "6.16.0",
"@roots/sage": "6.16.0",
"bud-localtunnel": "0.0.2"
}
} Running [project] [hooks] › { required: '>=6.16.0', satisfies: false, version: '6.15.0' }
[project] [hooks] › Upgrading devDependencies
@roots/bud@6.15.0
@roots/bud-tailwindcss@6.15.0
@roots/sage@6.15.0
bud-localtunnel@latest {
...
"devDependencies": {
"@roots/bud": "6.15.0",
"@roots/bud-tailwindcss": "6.15.0",
"@roots/sage": "6.15.0",
"bud-localtunnel": "^0.0.2"
}
} The logging leaves a bit to be desired and we should warn when a package doesn't have a match.. but overall it seems to be working. I'll cut a 6.17.0 release; we can patch things as needed from there. |
Awesome! Looks good to me. Just tested Sounds like a plan re. logging for |
OK, I lied. I'm going to merge this and do one last nightly. I think it's a better experience, overall. |
Hello! I've built a bud extension, and would really value some advice on how to tag / package versions to maintain compatibility with bud.
Ideally, I would like the package to be compatible with
bud upgrade
- which AFAIK means tracking the@roots/bud
release.This is fine, but I can see that creating a bit of friction between bud and 3rd party extensions. Say
bud
is at6.16.1
, but the 3rd party needs to release an update to their existing6.16.1
-compatible release, they will (unless I've overlooked something) need to unpublish / republish the package 😬, or wait until bud6.16.2
.I did wonder about using hyphen pre-releases (ie.
6.16.1-2
), but that a) negates the benefits of semver for the 3rd party extension, and b) requires that the intial release is tagged with a hyphen, as non-pre-release versions take priority over hyphenated pre-releases.If we flipped the above around - ie.
1.0.1-6.16.1
, we may be able to avoid a), but I think that'd require a change tobud upgrade
.I'm probably overlooking a simple solution.
The text was updated successfully, but these errors were encountered: