Skip to content

Releases: QuiiBz/sherif

v0.8.4

13 Apr 13:43
Compare
Choose a tag to compare

What's Changed

  • Revert "feat(multiple-dependency-versions): report peerDependencies (#50) by @QuiiBz

Full Changelog: v0.8.1...v0.8.4

v0.8.1

02 Feb 20:11
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.8.0...v0.8.1

v0.8.0

02 Feb 13:53
Compare
Choose a tag to compare

Preserve the JSON indentation on autofix

If you're using a formatter (e.g. Prettier) for your package.json files, you might have noticed that Sherif ignores the indentation and always uses two spaces. This is no longer the case and Sherif will automatically detect and use the correct indentation (2 spaces, 4 spaces, tabs) when autofixing issues!

Yarn nohoist workspaces

We now support the Yarn nohoist workspaces configuration, where the root package.json's workspaces field looks like:

"workspaces": {
  "packages": ["packages/*"],
  "nohoist": []
}

Misc

  • The multiple-dependency-versions will now also report duplicated versions in peerDependencies
  • Reduce the binary size by half

What's Changed

  • perf: reduce binary size by @QuiiBz in #48
  • feat(multiple-dependency-versions): report peerDependencies by @QuiiBz in #50
  • chore: update ignoring with star example by @QuiiBz in #52
  • fix: clippy warnings by @QuiiBz in #55
  • feat: preserve JSON indentation by @QuiiBz in #56
  • feat: support Yarn nohoist workspaces by @QuiiBz in #57

Full Changelog: v0.7.0...v0.8.0

v0.7.0

23 Dec 08:33
Compare
Choose a tag to compare

Skipping autofix for multiple-dependency-versions rule

When running Sherif with --fix, the multiple-dependency-versions asks to choose a version to use across the monorepo. If you're not sure yet which version you need, you can now choose to skip it by pressing "Escape":

Screenshot 2023-12-23 at 09 33 21

Allow folder path and globs for --ignore-package option

It's now even easier to ignore a specific package, either by its name or path, or all packages matching a specific name or path:

# Ignore all issues in the `@repo/tools` package
sherif -p @repo/tools
# Ignore all issues for packages name matching `@repo-internal/*`
sherif -p @repo-internal/*
# Ignore all issues in the package inside `./integrations/react`
sherif -p ./integrations/react
# Ignore all issues for packages inside `./integrations/*`
sherif -p ./integrations/*

What's Changed

  • feat(multiple-dependency-versions): allow skipping autofix by @QuiiBz in #42
  • fix: packages resolution when workspace path is at root by @QuiiBz in #44
  • feat: allow paths and globs for --ignore-package by @QuiiBz in #47

Full Changelog: v0.6.1...v0.7.0

v0.6.0

25 Nov 16:07
Compare
Choose a tag to compare

Autofix for multiple-dependency-versions

When running Sherif with --fix, the multiple-dependency-versions rule will ask you which version to use by showing all the ones currently declared in the monorepo. The selected version will then automatically be updated in every package using this dependency:

Screenshot 2023-11-25 at 17 06 43

Fix root-package-manager-field

The check to show this rule was checking the presence of the private field instead of the packageManager field of the root package.

What's Changed

  • fix(root-package-manager-field): wrong detection by @QuiiBz in #32
  • feat: autofix multiple-dependency-versions by @QuiiBz in #33
  • feat: disallow --fix in CI by @QuiiBz in #35

Full Changelog: v0.5.0...v0.6.0

v0.5.0

14 Nov 14:41
Compare
Choose a tag to compare

Support excluded paths

Add support for excluded paths in the workspace, starting with a !. In this example, all packages under packages will be registered, plus the docs package, but excluding the packages/abc package and any package matching packages/d*:

packages:
  - 'packages/*'
  - 'docs'
  - '!packages/abc'
  - '!packages/d*'

New non-existant-packages rule

All paths defined in the workspace (the root package.json' workspaces field or pnpm-workspace.yaml) should match at least one package.

More rules autofixable

--fix now supports the non-existant-packages and packages-without-package-json rules, and fixes a bug in types-in-dependencies. See #6 for more information.

What's Changed

  • feat: support excluded paths by @QuiiBz in #25
  • fix(multiple-dependency-versions): increase versions padding by @QuiiBz in #26
  • feat: new non-existant-packages rule by @QuiiBz in #27
  • fix(types-in-dependencies): autofix when package doesn't have devDependencies by @QuiiBz in #28
  • fix(multiple-dependency-versions): improve formatting for single packages by @QuiiBz in #29
  • feat: autofix non-existant-packages by @QuiiBz in #30
  • feat: autofix packages-without-package-json by @QuiiBz in #31

Full Changelog: v0.4.2...v0.5.0

v0.4.2

09 Nov 08:23
Compare
Choose a tag to compare

What's Changed

  • fix: multiple-dependencies should work with only devDeps by @QuiiBz in #21

Full Changelog: v0.4.1...v0.4.2

v0.4.1

03 Nov 09:07
Compare
Choose a tag to compare

New --fix option to autofix fixable issues

Some issues can now be fixed automatically when appending the --fix option:

  • empty-dependencies will remove any empty dependency (dependencies, devDependencies...) field
  • root-package-private-field will add/set the private field to true inside the root package.json
  • types-in-dependencies will move any @types/* package declared in dependencies to devDependencies

More issues will be autofixable in the future: #6

What's Changed

New Contributors

Full Changelog: v0.3.1...v0.4.1

v0.3.0

27 Sep 11:55
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.2.0...v0.3.0