Skip to content
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

Continuous deployment #66

Open
SimonAlling opened this issue Jun 24, 2021 · 2 comments
Open

Continuous deployment #66

SimonAlling opened this issue Jun 24, 2021 · 2 comments

Comments

@SimonAlling
Copy link
Owner

As discussed in #44, we should be able to automate releases in some way, now that we use Conventional Commits. I believe @avallete has some valuable experience on this matter, and maybe @lydell too.

Initial questions:

  • How should version bumps be done in the code base? package.json should reflect the current release, shouldn't it?
  • How should we do the actual npm releases? New patch release after each merged Dependabot PR – pros/cons?
  • Is it practical to backport security fixes etc to older major versions? I'm currently maintaining a v1 branch alongside the master branch, but it seems to me like that will grow unwieldy pretty quickly.
@avallete
Copy link
Contributor

Hi there.

Here is my 2 cents on this topic:

  1. Depending of what you use to do the semantic versioning, it's not required to bump the version in the code base itself (see: here) and we may only keep a "boilerplate" version like 0.0.0-dev in the code.
  2. I don't really see any downside to a full continuous release process. However, it's always possible to go for a "manual release trigger" with github actions if you want more control. Note that it's not the recommended approach though.
  3. I would argue that having back-port is always a nightmare to maintain especially for small sized projects. IMO you should go for a single maintained version, if anyone want to maintain a specific version of the project and keep the dependencies up to date, you can still fork it, rollback your fork the the commit you want, and maintain this version.

@SimonAlling
Copy link
Owner Author

  1. Depending of what you use to do the semantic versioning, it's not required to bump the version in the code base itself (see: here) and we may only keep a "boilerplate" version like 0.0.0-dev in the code.

That would certainly be neat.

  1. I don't really see any downside to a full continuous release process. However, it's always possible to go for a "manual release trigger" with github actions if you want more control. Note that it's not the recommended approach though.

The one major downside I see is that if we were to add, say, three new breaking features, then we'd suddenly see a threefold major version bump and the current version would suddenly be 4.0.0. Confusing, no?

  1. I would argue that having back-port is always a nightmare to maintain especially for small sized projects. IMO you should go for a single maintained version, if anyone want to maintain a specific version of the project and keep the dependencies up to date, you can still fork it, rollback your fork the the commit you want, and maintain this version.

I agree. No more backporting!

SimonAlling added a commit that referenced this issue Jul 18, 2023
This version is breaking for any dependent userscripts that use the
`allowJs` configuration option (#91).

The checked-in version number is changed from 1.3.3 to 2.0.0, but v1.4.0
and v1.5.0 also exist – just not on the trunk, but on a separate `v1`
branch. Back then, the plan was to keep backporting features and fixes
to older major versions, but I've abandoned those ambitions, since it's
_a lot_ of work for little gain. From now on, new versions will only be
released in a linear fashion.

Since we don't (yet) have automated releases (#66), this PR adapts the
CI configuration to enable PRs like this one, whose subject start with a
lowercase letter.

💡 `git show --color-words='[0-9.]+|.'`
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

No branches or pull requests

2 participants