Skip to content

Automate releases and reduce bus-factorΒ #530

@mpkorstanje

Description

@mpkorstanje

πŸ€” What's the problem you're trying to solve?

From what I can tell the Cucumber Eclipse plugin is published in two manners:

  1. The Eclipse Market Place entry, manually updated by @girijant. It has been updated quite recently, but the previous update appears to be from around 2017.

  2. The update site is automatically updated on a push to main and always uses the latest from main. There have been no tagged stable releases since 2021.

  3. There are no branch protections in place. This makes deleting main, or deleting the update site quite trivial.

So we currently have bus-factor of 1 on the Eclipse market place entry and no stable releases for users to fall back on.

✨ What's your proposed solution?

I've already put branch protections in place for main and gh-pages. So the solution comes in two parts:

a. Either transfer the Eclipse Marketplace entry from @girijant to Cucumber, or create a new user for Cucumber and publish the plugin using that. The credentials for the Cucumber user would be kept in keybase so the whole core team has access.

b. Adopt a release strategy. In short:

  • All notable changes go into the CHANGELOG.md file.
  • All pushes to main are published to the update site for snapshots.
  • When making a release the change log rolls over and a new release/<x.y.z> branch is created and the release commit tagged. This branch is then used publish plugins to to the stable update site and make a release on Github. (Sounds complicated but with polyglot-release that is all reduced to 1-CLI command and some Github Actions).
  • Automatically update the Eclipse Market place entry on stable releases (if possible).

⛏ Have you considered any alternatives or workarounds?

No response

πŸ“š Any additional context?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions