Skip to content

Current state of @commitlint/config-lerna-scopes #4262

Closed
@janbiasi

Description

@janbiasi

Hey!

Currently, the @commitlint/config-lerna-scopes depends on the deprecated @lerna/project which is not maintained, nor does it exist anymore. I'd be willing to contribute to the package to make the deprecated dependency an optional peer dependency, however a few thoughts crossed my mind which I'd want to discuss before investing time;

  • Wouldn't it be a good idea to split the config-workspace-scopes into a separate package - with no dependencies - for the users who only need support for workspaces in package.json?
  • What is your policy regarding backwards compatibility? I saw that the current implementation even implements support for v3 and lower which correlate to Node.js v6.x & v8.x (support ended on 31st of December 2019, also no commercial support available).
  • With Lerna v5 they set the default mode for package resolution to the package.json workspaces field, so most of the users transitioned to them
  • After the takeover from nrwl the project got into a pretty messy phase without really stable APIs as they proxied most of the internal work to nx and I wasn't able to find a reliable way in each version on how to retrieve them safely
  • With v7.1.0 they re-introduced a detectProjects method which allows to programmatically retrieve the project graph, this is also still present in v8. However most of the users already have transitioned to nx because of the state of the project.

My summary as well as proposal would be:

  • Create a config-workspace-scopes for those who are only using yarn or npm workspaces with the existing logic part from the lerna config
  • Drop support for lerna < 7.1.0, get rid of the deprecated @lerna/project and use their "new" API to retrieve the packages

I'm looking forward to your feedback and thoughts on this topic!

*edited to fix misspelled words

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions