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!: migrate to pure ESM #3850

Merged
merged 22 commits into from
Feb 15, 2024
Merged

Conversation

JounQin
Copy link
Contributor

@JounQin JounQin commented Jan 12, 2024

Description

As title

Motivation and Context

close #3642
close #3705
close #3842

Usage examples

N/A

How Has This Been Tested?

Yes

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

TODO list after merged:

  • add changesets and related documentations
  • update more ESM packages
  • change to use exports field in package.json (via @marcalexiei)

@JounQin JounQin force-pushed the feat/esm branch 5 times, most recently from 2dd7414 to 74b4111 Compare January 12, 2024 17:06
@JounQin JounQin mentioned this pull request Jan 12, 2024
4 tasks
@JounQin
Copy link
Contributor Author

JounQin commented Jan 12, 2024

I haven't upgraded all dependencies to pure ESM like execa, I'd like to upgrade these legacy dependencies in another PR.

@JounQin JounQin changed the title feat: migrate to pure ESM feat!: migrate to pure ESM Jan 12, 2024
@escapedcat
Copy link
Member

Thanks @JounQin !

@JounQin JounQin force-pushed the feat/esm branch 2 times, most recently from 1055feb to f7b0772 Compare January 15, 2024 13:02
@JounQin
Copy link
Contributor Author

JounQin commented Jan 15, 2024

image image image

@escapedcat I'm not for sure to understand this failing test case. Would you like to help?

@JounQin
Copy link
Contributor Author

JounQin commented Jan 15, 2024

image

Interesting unexpected change here.


conventional-changelog-angular does not support fix(scope)!: actually.


Founded and fixed at 45b6f78 (#3850)

@JounQin
Copy link
Contributor Author

JounQin commented Jan 15, 2024

image

The last failing test case I've just found is that jest.mock nor jest.unstable_mockModule does not work for import() yet.

See also jestjs/jest#14856

@JounQin
Copy link
Contributor Author

JounQin commented Jan 15, 2024

I'll try to migrate to vitest tomorrow.

@ZynthCode
Copy link

I'll try to migrate to vitest tomorrow.

How did it go?

@JounQin
Copy link
Contributor Author

JounQin commented Jan 26, 2024

I'll try to migrate to vitest tomorrow.

How did it go?

Oh, I'm sorry, I was a bit business busy these days and totally forgot this PR. I'll find some time to work on this soon later.

@JounQin
Copy link
Contributor Author

JounQin commented Jan 27, 2024

@escapedcat I've rebased from master branch, CI is required to be approved.

@JounQin
Copy link
Contributor Author

JounQin commented Jan 28, 2024

CI is required to be approved again. 🤣

@JounQin
Copy link
Contributor Author

JounQin commented Jan 29, 2024

@escapedcat I've rebased from master branch, CI is required to be approved.

😅

Copy link
Contributor

@marcalexiei marcalexiei left a comment

Choose a reason for hiding this comment

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

Hello @JounQin,
thank you for your work in this migration!

I noticed a few things that might be changed in order to avoid additional workflow approval 😂

.github/workflows/CI.yml Show resolved Hide resolved
license.md Outdated Show resolved Hide resolved
@commitlint/rules/src/header-trim.ts Outdated Show resolved Hide resolved
@JounQin
Copy link
Contributor Author

JounQin commented Jan 29, 2024

@marcalexiei
Copy link
Contributor

Hey @JounQin,
I never worked on these specific tests but I’ll try to take a look in the next days.

Copy link
Contributor

@marcalexiei marcalexiei left a comment

Choose a reason for hiding this comment

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

@JounQin I tackled with the tests and I found a possible cause of the issue.
Does it make sense to you?

I have also added some additional thoughts.

auto-imports.d.ts Outdated Show resolved Hide resolved
@commitlint/load/src/load.ts Outdated Show resolved Hide resolved
@JounQin
Copy link
Contributor Author

JounQin commented Jan 30, 2024

👍 I'll take a look when I'm free enough.

@escapedcat
Copy link
Member

Should these be updated as well then?

  "engines": {
    "node": ">=v18"
  },

@JounQin
Copy link
Contributor Author

JounQin commented Feb 19, 2024

I think it's good to only support LTS versions.

@knocte
Copy link
Contributor

knocte commented Feb 19, 2024

I think it's good to only support LTS versions.

Ubuntu 24.04 is LTS and has Node 18. Please revert Node version back to 18.

@escapedcat
Copy link
Member

escapedcat commented Feb 19, 2024

Soo...
These pure "ESM only" tests fail with v18. This whole PR is a breaking change anyway.
How to deal with this?

We keep 18 but tests will be done in 20?

@knocte
Copy link
Contributor

knocte commented Feb 19, 2024

These pure "ESM only" tests fail with v18.

Why do you say that? CI was green.

@escapedcat
Copy link
Member

Sorry for the confusion. Reverted it. Somehow I got confused by the locally failing tests.
Happy Monday! :P

@escapedcat
Copy link
Member

Ping me if this can be published. Will wait with all other/unrelated PRs till then. No rush.

escapedcat pushed a commit that referenced this pull request Feb 27, 2024
BREAKING CHANGE: migrate to pure ESM

* feat: migrate to pure ESM

* chore: update snapshot

* fix: load `parserPreset` with another `await`

* test: migrate to vitest

* test: remove no replacement `--runInBand` test-ci script

* chore: fix code reviews

* refactor(load): rewrite resolve logic

* fix(config-nx-scopes): fix syntax error

* feat(resolve-extends): add resolveFrom and loadParserPreset

* feat(load): use resolveFrom and loadParserPreset from resolve-extends

* test: include only @commitlint/* packages src in coverage

* test: explicit import vitest utilities

* test: remove @jest/globals from dependencies

* fix(resolve-extends): `resolveFrom` output should be platform aware

* test: restore NO_COLOR to test script

* chore: fix linting issues

* fix: should use fileURLToPath instead of pathname for Windows compatibility

* Apply suggestions from code review

* fix: should reuse `cli` instead call `yargs()`

* feat(cli): set terminalWidth as wrap to avoid work break on help

* Update .eslintrc.cjs

* feat: migrate @commitlint/config-conventional to pure ESM

---------

Co-authored-by: Marco Pasqualetti <marco.pasqualetti@live.com>
@escapedcat
Copy link
Member

@escapedcat
Copy link
Member

Thanks everyone! Please give it a try

@escapedcat
Copy link
Member

Any idea?
#3936

@JounQin
Copy link
Contributor Author

JounQin commented Feb 27, 2024

Any idea?

#3936

@escapedcat I'll take a look if reproduction provided.

@CJKay
Copy link
Contributor

CJKay commented Mar 7, 2024

We are still seeing the behaviour described by #3949 on 19.0.0 and 19.0.3. 😞

@JounQin
Copy link
Contributor Author

JounQin commented Mar 8, 2024

@CJKay commitizen is not controlled by commitlint, if you're not ready for pure ESM commitlint, don't upgrade.

@frantic1048
Copy link
Contributor

@CJKay, because commitizen does not support ESM (commitizen/cz-cli#916), issues are expected to arise when @commitlint/cz-commitlint becomes an ESM module.

A temporary workaround, as described in #3949 (comment), involves wrapping @commitlint/cz-commitlint into a CJS module and allowing commitizen to use the wrapped module as an adapter under every developer's project.

The long-term fix is to add ESM support in commitizen. There are no fixes required on the side of @commitlint/cz-commitlint.

@JounQin
Copy link
Contributor Author

JounQin commented Mar 8, 2024

@frantic1048 Considering the workaround, I have an idea to make @commitlint/cz-commitlint into a dual package, do you want to raise a PR? If not, I'll do it myself.

@frantic1048
Copy link
Contributor

@JounQin

Given the facts that:

  1. @commitlint/cz-commitlint is intended for use with commitizen
  2. commitizen currently does not support ESM, and this may persist given that their issue supporting ESM was raised two years ago

It follows that the latest @commitlint/cz-commitlint will not work because no version of commitizen supports ESM.

I'm not opposing the ESM-only or any particular module format; however, could we address the usability issue for @commitlint/cz-commitlint specifically (not entire @commitlint scope) by providing an alternate CJS export?

@JounQin
Copy link
Contributor Author

JounQin commented Mar 8, 2024

@frantic1048 Yes, that's what I sad to make it a dual package, do you want to raise a PR?

@frantic1048
Copy link
Contributor

@JounQin, yes, allow me some time to delve into the codebase.

@JounQin
Copy link
Contributor Author

JounQin commented Mar 8, 2024

@frantic1048 It's just easy to add a src/index.cts entry and wrap await import('./index.js'), and add an exports field into package.json.

@frantic1048
Copy link
Contributor

@JounQin, I have proposed a PR that adds an CJS export for @commitlint/cz-commitlint and have tested it in my own repositories; it works fine. Please take a look. 👀

#3963

@CJKay
Copy link
Contributor

CJKay commented Mar 8, 2024

@JounQin @escapedcat Right-o, sorry, these errors threw me for a bit of a loop - I'm not particularly familiar with the JavaScript ecosystem.

escapedcat pushed a commit that referenced this pull request Mar 11, 2024
* feat: add CJS export for cz-commitlint

relates to: #3850 (comment)

resolves #3949

* chore: add .cts to eslintrc

* fix: workaround cts issues of vitest and typescript
remcolakens pushed a commit to remcolakens/next-boilerplate that referenced this pull request Mar 25, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@commitlint/cli](https://commitlint.js.org/)
([source](https://togithub.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli))
| [`^18.6.1` ->
`^19.2.1`](https://renovatebot.com/diffs/npm/@commitlint%2fcli/18.6.1/19.2.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@commitlint%2fcli/19.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@commitlint%2fcli/19.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@commitlint%2fcli/18.6.1/19.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@commitlint%2fcli/18.6.1/19.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@commitlint/config-conventional](https://commitlint.js.org/)
([source](https://togithub.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional))
| [`^18.6.3` ->
`^19.1.0`](https://renovatebot.com/diffs/npm/@commitlint%2fconfig-conventional/18.6.3/19.1.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@commitlint%2fconfig-conventional/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@commitlint%2fconfig-conventional/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@commitlint%2fconfig-conventional/18.6.3/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@commitlint%2fconfig-conventional/18.6.3/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@commitlint/cz-commitlint](https://commitlint.js.org/)
([source](https://togithub.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cz-commitlint))
| [`^18.6.1` ->
`^19.2.0`](https://renovatebot.com/diffs/npm/@commitlint%2fcz-commitlint/18.6.1/19.2.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@commitlint%2fcz-commitlint/19.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@commitlint%2fcz-commitlint/19.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@commitlint%2fcz-commitlint/18.6.1/19.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@commitlint%2fcz-commitlint/18.6.1/19.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>conventional-changelog/commitlint
(@&#8203;commitlint/cli)</summary>

###
[`v19.2.1`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#1921-2024-03-19)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v19.2.0...v19.2.1)

**Note:** Version bump only for package
[@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

###
[`v19.2.0`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#1920-2024-03-15)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v19.1.0...v19.2.0)

##### Features

- **cli:** introduce new --last flag, to stop recommending HEAD~1
([#&#8203;3916](https://togithub.com/conventional-changelog/commitlint/issues/3916))
([99f4f3f](https://togithub.com/conventional-changelog/commitlint/commit/99f4f3f4839190a2758083df7ba20b988e7b68a6))

###
[`v19.1.0`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#1910-2024-03-12)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.3...v19.1.0)

**Note:** Version bump only for package
[@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

####
[19.0.3](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.2...v19.0.3)
(2024-02-28)

**Note:** Version bump only for package
[@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

####
[19.0.2](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.1...v19.0.2)
(2024-02-28)

**Note:** Version bump only for package
[@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

####
[19.0.1](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.0...v19.0.1)
(2024-02-27)

##### Bug Fixes

- drop `resolve-from`, `resolve-global` and `import-fresh`, resolve
global packages correctly
([#&#8203;3939](https://togithub.com/conventional-changelog/commitlint/issues/3939))
([8793c63](https://togithub.com/conventional-changelog/commitlint/commit/8793c639c083c33714da0a29429b338776813d0c)),
closes
[#&#8203;3938](https://togithub.com/conventional-changelog/commitlint/issues/3938)

###
[`v19.0.3`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#1903-2024-02-28)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.2...v19.0.3)

**Note:** Version bump only for package
[@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

###
[`v19.0.2`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#1902-2024-02-28)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.1...v19.0.2)

**Note:** Version bump only for package
[@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

###
[`v19.0.1`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#1901-2024-02-27)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.0...v19.0.1)

##### Bug Fixes

- drop `resolve-from`, `resolve-global` and `import-fresh`, resolve
global packages correctly
([#&#8203;3939](https://togithub.com/conventional-changelog/commitlint/issues/3939))
([8793c63](https://togithub.com/conventional-changelog/commitlint/commit/8793c639c083c33714da0a29429b338776813d0c)),
closes
[#&#8203;3938](https://togithub.com/conventional-changelog/commitlint/issues/3938)

###
[`v19.0.0`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#1900-2024-02-27)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v18.6.1...v19.0.0)

- feat!: migrate to pure ESM
([#&#8203;3850](https://togithub.com/conventional-changelog/commitlint/issues/3850))
([3423735](https://togithub.com/conventional-changelog/commitlint/commit/342373559bdf7c783c4ef37ff05dc38a5f681159)),
closes
[#&#8203;3850](https://togithub.com/conventional-changelog/commitlint/issues/3850)

##### Reverts

- Revert "chore!: minimum node version v20"
([2816783](https://togithub.com/conventional-changelog/commitlint/commit/2816783d00e7eb967de3ac9347c2fc43dc8b94fa))

##### BREAKING CHANGES

-   migrate to pure ESM

-   feat: migrate to pure ESM

-   chore: update snapshot

-   fix: load `parserPreset` with another `await`

-   test: migrate to vitest

-   test: remove no replacement `--runInBand` test-ci script

-   chore: fix code reviews

-   refactor(load): rewrite resolve logic

-   fix(config-nx-scopes): fix syntax error

-   feat(resolve-extends): add resolveFrom and loadParserPreset

- feat(load): use resolveFrom and loadParserPreset from resolve-extends

-   test: include only @&#8203;commitlint/\* packages src in coverage

-   test: explicit import vitest utilities

- test: remove [@&#8203;jest/globals](https://togithub.com/jest/globals)
from dependencies

-   fix(resolve-extends): `resolveFrom` output should be platform aware

-   test: restore NO_COLOR to test script

-   chore: fix linting issues

- fix: should use fileURLToPath instead of pathname for Windows
compatibility

-   Apply suggestions from code review

-   fix: should reuse `cli` instead call `yargs()`

-   feat(cli): set terminalWidth as wrap to avoid work break on help

-   Update .eslintrc.cjs

- feat: migrate
[@&#8203;commitlint/config-conventional](https://togithub.com/commitlint/config-conventional)
to pure ESM

####
[18.6.1](https://togithub.com/conventional-changelog/commitlint/compare/v18.6.0...v18.6.1)
(2024-02-13)

**Note:** Version bump only for package
[@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

</details>

<details>
<summary>conventional-changelog/commitlint
(@&#8203;commitlint/config-conventional)</summary>

###
[`v19.1.0`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/config-conventional/CHANGELOG.md#1910-2024-03-12)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.3...v19.1.0)

**Note:** Version bump only for package
[@&#8203;commitlint/config-conventional](https://togithub.com/commitlint/config-conventional)

####
[19.0.3](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.2...v19.0.3)
(2024-02-28)

**Note:** Version bump only for package
[@&#8203;commitlint/config-conventional](https://togithub.com/commitlint/config-conventional)

###
[`v19.0.3`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/config-conventional/CHANGELOG.md#1903-2024-02-28)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.0...v19.0.3)

**Note:** Version bump only for package
[@&#8203;commitlint/config-conventional](https://togithub.com/commitlint/config-conventional)

###
[`v19.0.0`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/config-conventional/CHANGELOG.md#1900-2024-02-27)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v18.6.3...v19.0.0)

- feat!: migrate to pure ESM
([#&#8203;3850](https://togithub.com/conventional-changelog/commitlint/issues/3850))
([3423735](https://togithub.com/conventional-changelog/commitlint/commit/342373559bdf7c783c4ef37ff05dc38a5f681159)),
closes
[#&#8203;3850](https://togithub.com/conventional-changelog/commitlint/issues/3850)

##### Reverts

- Revert "chore!: minimum node version v20"
([2816783](https://togithub.com/conventional-changelog/commitlint/commit/2816783d00e7eb967de3ac9347c2fc43dc8b94fa))

##### BREAKING CHANGES

-   migrate to pure ESM

-   feat: migrate to pure ESM

-   chore: update snapshot

-   fix: load `parserPreset` with another `await`

-   test: migrate to vitest

-   test: remove no replacement `--runInBand` test-ci script

-   chore: fix code reviews

-   refactor(load): rewrite resolve logic

-   fix(config-nx-scopes): fix syntax error

-   feat(resolve-extends): add resolveFrom and loadParserPreset

- feat(load): use resolveFrom and loadParserPreset from resolve-extends

-   test: include only @&#8203;commitlint/\* packages src in coverage

-   test: explicit import vitest utilities

- test: remove [@&#8203;jest/globals](https://togithub.com/jest/globals)
from dependencies

-   fix(resolve-extends): `resolveFrom` output should be platform aware

-   test: restore NO_COLOR to test script

-   chore: fix linting issues

- fix: should use fileURLToPath instead of pathname for Windows
compatibility

-   Apply suggestions from code review

-   fix: should reuse `cli` instead call `yargs()`

-   feat(cli): set terminalWidth as wrap to avoid work break on help

-   Update .eslintrc.cjs

- feat: migrate
[@&#8203;commitlint/config-conventional](https://togithub.com/commitlint/config-conventional)
to pure ESM

####
[18.6.2](https://togithub.com/conventional-changelog/commitlint/compare/v18.6.1...v18.6.2)
(2024-02-14)

##### Bug Fixes

- **config-conventional:** use default export
([#&#8203;3911](https://togithub.com/conventional-changelog/commitlint/issues/3911))
([bc48408](https://togithub.com/conventional-changelog/commitlint/commit/bc4840832f9484186d3281d13ab5e0b4f9f63113))

####
[18.6.1](https://togithub.com/conventional-changelog/commitlint/compare/v18.6.0...v18.6.1)
(2024-02-13)

**Note:** Version bump only for package
[@&#8203;commitlint/config-conventional](https://togithub.com/commitlint/config-conventional)

</details>

<details>
<summary>conventional-changelog/commitlint
(@&#8203;commitlint/cz-commitlint)</summary>

###
[`v19.2.0`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cz-commitlint/CHANGELOG.md#1920-2024-03-15)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v19.1.0...v19.2.0)

**Note:** Version bump only for package
[@&#8203;commitlint/cz-commitlint](https://togithub.com/commitlint/cz-commitlint)

###
[`v19.1.0`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cz-commitlint/CHANGELOG.md#1910-2024-03-12)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.3...v19.1.0)

##### Bug Fixes

- add missing cjs entry in package
([#&#8203;3967](https://togithub.com/conventional-changelog/commitlint/issues/3967))
([9cea6fd](https://togithub.com/conventional-changelog/commitlint/commit/9cea6fdb7b1bf7cfc9a86e882e2742379b4b6aec))

##### Features

- add CJS export for cz-commitlint
([#&#8203;3963](https://togithub.com/conventional-changelog/commitlint/issues/3963))
([6ae3c6a](https://togithub.com/conventional-changelog/commitlint/commit/6ae3c6a827de8622d827146ffb0984a9e62fe505)),
closes
[/github.com/conventional-changelog/commitlint/pull/3850#issuecomment-1984932236](https://togithub.com//github.com/conventional-changelog/commitlint/pull/3850/issues/issuecomment-1984932236)
[#&#8203;3949](https://togithub.com/conventional-changelog/commitlint/issues/3949)

####
[19.0.3](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.2...v19.0.3)
(2024-02-28)

**Note:** Version bump only for package
[@&#8203;commitlint/cz-commitlint](https://togithub.com/commitlint/cz-commitlint)

####
[19.0.2](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.1...v19.0.2)
(2024-02-28)

**Note:** Version bump only for package
[@&#8203;commitlint/cz-commitlint](https://togithub.com/commitlint/cz-commitlint)

####
[19.0.1](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.0...v19.0.1)
(2024-02-27)

**Note:** Version bump only for package
[@&#8203;commitlint/cz-commitlint](https://togithub.com/commitlint/cz-commitlint)

###
[`v19.0.3`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cz-commitlint/CHANGELOG.md#1903-2024-02-28)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.2...v19.0.3)

**Note:** Version bump only for package
[@&#8203;commitlint/cz-commitlint](https://togithub.com/commitlint/cz-commitlint)

###
[`v19.0.2`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cz-commitlint/CHANGELOG.md#1902-2024-02-28)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.1...v19.0.2)

**Note:** Version bump only for package
[@&#8203;commitlint/cz-commitlint](https://togithub.com/commitlint/cz-commitlint)

###
[`v19.0.1`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cz-commitlint/CHANGELOG.md#1901-2024-02-27)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v19.0.0...v19.0.1)

**Note:** Version bump only for package
[@&#8203;commitlint/cz-commitlint](https://togithub.com/commitlint/cz-commitlint)

###
[`v19.0.0`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cz-commitlint/CHANGELOG.md#1900-2024-02-27)

[Compare
Source](https://togithub.com/conventional-changelog/commitlint/compare/v18.6.1...v19.0.0)

- feat!: migrate to pure ESM
([#&#8203;3850](https://togithub.com/conventional-changelog/commitlint/issues/3850))
([3423735](https://togithub.com/conventional-changelog/commitlint/commit/342373559bdf7c783c4ef37ff05dc38a5f681159)),
closes
[#&#8203;3850](https://togithub.com/conventional-changelog/commitlint/issues/3850)

##### Reverts

- Revert "chore!: minimum node version v20"
([2816783](https://togithub.com/conventional-changelog/commitlint/commit/2816783d00e7eb967de3ac9347c2fc43dc8b94fa))

##### BREAKING CHANGES

-   migrate to pure ESM

-   feat: migrate to pure ESM

-   chore: update snapshot

-   fix: load `parserPreset` with another `await`

-   test: migrate to vitest

-   test: remove no replacement `--runInBand` test-ci script

-   chore: fix code reviews

-   refactor(load): rewrite resolve logic

-   fix(config-nx-scopes): fix syntax error

-   feat(resolve-extends): add resolveFrom and loadParserPreset

- feat(load): use resolveFrom and loadParserPreset from resolve-extends

-   test: include only @&#8203;commitlint/\* packages src in coverage

-   test: explicit import vitest utilities

- test: remove [@&#8203;jest/globals](https://togithub.com/jest/globals)
from dependencies

-   fix(resolve-extends): `resolveFrom` output should be platform aware

-   test: restore NO_COLOR to test script

-   chore: fix linting issues

- fix: should use fileURLToPath instead of pathname for Windows
compatibility

-   Apply suggestions from code review

-   fix: should reuse `cli` instead call `yargs()`

-   feat(cli): set terminalWidth as wrap to avoid work break on help

-   Update .eslintrc.cjs

- feat: migrate
[@&#8203;commitlint/config-conventional](https://togithub.com/commitlint/config-conventional)
to pure ESM

####
[18.6.1](https://togithub.com/conventional-changelog/commitlint/compare/v18.6.0...v18.6.1)
(2024-02-13)

**Note:** Version bump only for package
[@&#8203;commitlint/cz-commitlint](https://togithub.com/commitlint/cz-commitlint)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone
Europe/Amsterdam, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/remcolakens/next-boilerplate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjAuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
7 participants