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

feat(esm): convert to esm (#2569) #2607

Merged
merged 20 commits into from Jan 6, 2023
Merged

feat(esm): convert to esm (#2569) #2607

merged 20 commits into from Jan 6, 2023

Conversation

travi
Copy link
Member

@travi travi commented Nov 11, 2022

for #2543

remaining tasks:

  • get remaining tests passing
    two tests remain:
    * one in test/index.test.js related to plugin name using a string
    * one in test/integration.test.js that might be just related to a change in output from aggregate-error, which was upgraded
  • xo: remove in favor of prettier?
  • raise minimum supported node version to v18
  • promote beta of env-ci to latest: promote the beta release to latest env-ci#248
  • update dependency on env-ci to latest
  • remove overrides definition in package.json
  • verify real usage for some period of time
    - [ ] consider if any plugins that are direct dependencies can/should also be converted to esm (not a requirement, but an option if it makes sense to do while we are waiting to verify enough real usage)
    - [ ] should we raise the minimum required version of git? (search issues for features that might be motivating for this)

for #2543

BREAKING CHANGE: semantic-release is now ESM-only. since it is used through its own executable, the impact on consuming projects should be minimal

BREAKING CHANGE: references to plugin files in configs need to include the file extension because of executing in an ESM context
which deduped env-ci to the esm-only version, allowing test double to stub properly
@travi
Copy link
Member Author

travi commented Nov 12, 2022

successful publishes using the beta:

@travi
Copy link
Member Author

travi commented Nov 19, 2022

Reminder that this is a release branch, so we should not squash when merging into the mainline

@travi
Copy link
Member Author

travi commented Nov 21, 2022

looks like the commit for the node version minimum lost the BREAKING CHANGE token, so we'll want to make sure we note that in the release notes when we promote to stable

@travi
Copy link
Member Author

travi commented Nov 26, 2022

since we get lots of questions about unsupported project structures or workflows, i think it could be worth considering documenting these as unsupported more clearly and maybe call them out as "breaking changes". these wouldnt actually change what is supported, but would give something more clear to point to for those types of requests.

unsupported:

  • monorepos
  • gitflow and other workflows that include releasing in order to enable testing in consumers before stable releases

supported:

  • microrepos
  • trunk-based development
  • github flow

encourage:

  • continuous integration
  • continuous releases/continuous deployment
  • confidence to integrate and release

is this going too far to include as part of this release?

@travi
Copy link
Member Author

travi commented Dec 2, 2022

is this going too far to include as part of this release?

we decided to consider this and the potential raising of the minimum git requirement after promoting the changes from this PR, so those could be considered for a future breaking change rather than the current one

@travi travi marked this pull request as ready for review December 7, 2022 04:12
This was referenced Dec 9, 2022
@hongaar
Copy link
Contributor

hongaar commented Dec 10, 2022

raise minimum supported node version to v18

If possible it would be nice for users to be able to run this on maintenance + LTS versions (Node 14, 16 and 18). Adoption of latest LTS generally takes a while and CI systems also lag behind in docs/images, e.g.:

@travi
Copy link
Member Author

travi commented Dec 11, 2022

If possible it would be nice for users to be able to run this on maintenance + LTS versions (Node 14, 16 and 18)

appreciate the feedback, @hongaar. however, reducing the supported node versions helps the maintenance team significantly and is in line with our node support policy. most CI services enable releasing with a different version of node than is used for the rest of the pipeline, which we outline here.

if the options outlined there are not possible, our recommendation is to simply continue using the previous version since it has been stable for some time.

Copy link
Member

@gr2m gr2m left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's gooooo

@travi
Copy link
Member Author

travi commented Dec 20, 2022

After discussion, we've decided to wait until after the holidays to promote this to stable/latest so we don't surprise consumers with the breaking changes during the holidays.

@travi travi merged commit b9b5c76 into master Jan 6, 2023
@travi travi deleted the beta branch January 6, 2023 19:54
@github-actions
Copy link

github-actions bot commented Jan 6, 2023

🎉 This PR is included in version 20.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants