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

Serenity/JS should automatically propose updates when they're available #2209

Open
1 of 3 tasks
jan-molak opened this issue Feb 5, 2024 · 0 comments
Open
1 of 3 tasks
Labels
enhancement A good idea that should be implemented

Comments

@jan-molak
Copy link
Member

jan-molak commented Feb 5, 2024

What's the problem you're trying to solve?

Most teams don't use tools like Renovate or Dependabot to help them keep up with dependency updates. Since Serenity/JS releases new patches and features at least several times a month, numerous community members have asked for some utility to help them discover when a new release is available.

How would you like to solve it?

Create a new Serenity/JS module that:

  • discovers the versions of project-local Serenity/JS dependencies
  • checks if there are updates available
  • informs the developer on how to get them

Any communication with the developer should have the form of a polite reminder to install the patches and should not install anything by itself or mutate the execution environment in any way. The reminder could be emitted via ConsoleReporter.

Acceptance criteria:

  • The check should be fast and limited to only necessary HTTP requests; we don't want an HTTP request to npmjs.com per module as that would be 14 requests already
  • The check should be optional; many teams have already automated their dependency updates or run Serenity/JS in air-gapped environments that don't allow contacting the public Internet. They should be able to disable the mechanism entirely, or under specific conditions (e.g. don't run on CI, but run locally).
  • The check should be allowed to fail; if GitHub, NPM, or Serenity/JS websites are down, we should notify the developer that a check is not possible and move on to make sure we never stop or slow down their work
  • The check might involve "other modules of interest", such as Playwright, WebdriverIO, Mocha, Cucumber, or Jasmine to help developers stay up to date with Serenity/JS-related tools
  • The check could be implemented as a StageCrewMember that runs when the tests run, or as a CLI tool that developers add to their postintall script in package.json. We might also want to have both options to allow for a wider range of usage scenarios.
  • The check should be compliant with the Serenity/JS privacy policy

Are there any alternatives?

The alternative is for developers to follow Serenity/JS releases on GitHub, LinkedIn, or the Serenity/JS websites and apply updates manually. We could have a more convenient way to do it, though.

How can we make it happen?

@jan-molak jan-molak changed the title Serenity/JS should propose updates when they're available Serenity/JS should automatically propose updates when they're available Feb 5, 2024
@jan-molak jan-molak added the enhancement A good idea that should be implemented label Feb 5, 2024
jan-molak added a commit that referenced this issue Feb 7, 2024
to help developers stay up to date with Serenity/JS releases

Related tickets: re #2209
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement A good idea that should be implemented
Projects
None yet
Development

No branches or pull requests

1 participant