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

Change Request: Update release infrastructure to support previous versions #18691

Open
9 of 12 tasks
Tracked by #18621
mdjermanovic opened this issue Jul 15, 2024 · 6 comments
Open
9 of 12 tasks
Tracked by #18621
Assignees
Labels
accepted There is consensus among the team that this change meets the criteria for inclusion infrastructure Relates to the tools used in the ESLint development process

Comments

@mdjermanovic
Copy link
Member

mdjermanovic commented Jul 15, 2024

ESLint version

v9.7.0

What problem do you want to solve?

Our ESLint release infrastructure currently does not fully support publishing new versions of the previous major line (v8.x at the moment). We made minimal changes to be able to release v8.57.0 while in the v9 prerelease phase, but not everything would work well now that we have released v9.0.0 final.

What do you think is the correct solution?

Update the following. I'll use v8 and v9 as a reference for simplicity, the changes would apply to any future versions of course.

  • eslint-release feat: Support updates to previous major versions eslint-release#62
    • Should correctly calculate the changelog and consequently the version that's going to be released. The current logic is based on the assumption that all version tags point to the history of the branch it's working on. This logic worked for v8.57.0 by chance rather than by design when we were still in the v9 prerelease phase but needs to be updated now.
    • Should not publish a new v8.x to npm with the latest tag when v9.0.0 final is already released. It should be either a new tag (e.g., maintenance as proposed in Change Request: Create supported versions policy #18621 (comment)) or no tag.
    • Should ensure that the GitHub release for a new v8.x is not marked as Latest when v9.0.0 final is already released.
  • Makefile.js build: Support updates to previous major versions #18870 and build: Support updates to previous major versions #18871
    • Should update the right branch for the docs site - a new version of v8.x should update the v8.x branch, not the latest branch when v9.0.0 final is already released.
    • Should update docs/src/_data/versions.json on the main branch.
    • Should also update CHANGELOG.md on the main branch.
  • Jenkins jobs
    • eslint Release
      • Rename v8.x to v8.x-dev in RELEASE_BRANCH list.
      • Add maintenance to RELEASE_TYPE list.
    • eslint-js Release
      • Rename v8.x to v8.x-dev in RELEASE_BRANCH list.
      • Add maintenance.patch and maintenance.minor to RELEASE_TYPE list.
      • Update script to handle new release types.

(this is an initial list, they may be more tasks)

Participation

  • I am willing to submit a pull request for this change.

Additional comments

No response

@mdjermanovic mdjermanovic added infrastructure Relates to the tools used in the ESLint development process accepted There is consensus among the team that this change meets the criteria for inclusion labels Jul 15, 2024
@mdjermanovic mdjermanovic self-assigned this Jul 15, 2024
@mdjermanovic
Copy link
Member Author

Seems like we should also discuss branches.

While we were in the v9 prerelease phase, we used the v8.x branch for development. The corresponding docs site branch was latest, because v8 was still the latest.

When we released the final v9.0.0, v8.x branch became the branch for v8 docs, and now all changes to this branch are live on https://eslint.org/docs/v8.x/. Now, if we'd like to add to v8.x line some bug fix or a feature that includes a docs update, that docs update shouldn't be live until we release a new version, so it looks like we need a new branch for v8 development (e.g., v8.x-maintenance )?

@nzakas
Copy link
Member

nzakas commented Jul 18, 2024

Good point. Maybe just v8.x-dev or v8.x-head to keep it shorter?

@mdjermanovic
Copy link
Member Author

v8.x-dev sounds good to me.

@nzakas
Copy link
Member

nzakas commented Sep 2, 2024

@mdjermanovic is anything else blocking this work? We're continuing to get people complaining about #18723 (i.e., eslint/rewrite#116), so I think it would be good if we get an updated v8.x release out soonish.

@mdjermanovic
Copy link
Member Author

I'll start working on this now.

@mdjermanovic
Copy link
Member Author

I created v8.x-dev branch and updated the Branch name pattern to v*.x-dev in the Branch protection rule.

fasttime pushed a commit that referenced this issue Sep 13, 2024
* build: Support updates to previous major versions on v8.x-dev branch

Refs #18691

* add `overrides` for `@sinonjs/fake-timers`

* remove `overrides`, pin `@sinonjs/fake-timers` in root devDependencies

* upgrade eslint-release
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted There is consensus among the team that this change meets the criteria for inclusion infrastructure Relates to the tools used in the ESLint development process
Projects
Status: Feedback Needed
Development

No branches or pull requests

2 participants