fimbullinter / wotan

Pluggable TypeScript and JavaScript linter
Apache License 2.0
282 stars 23 forks source link

Update dependency dependency-cruiser to v11 - autoclosed #791

Closed renovate[bot] closed 1 year ago

renovate[bot] commented 2 years ago

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
dependency-cruiser ^9.0.0 -> ^11.0.0 age adoption passing confidence

Release Notes

sverweij/dependency-cruiser ### [`v11.10.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v11.10.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v11.9.0...v11.10.0) #### ✨ features - [`d0088f9`](https://togithub.com/sverweij/dependency-cruiser/commit/d0088f96) feature(report): markdown: format cycle, metric and module only violations ([#​619](https://togithub.com/sverweij/dependency-cruiser/issues/619)) - [`1bfe74b`](https://togithub.com/sverweij/dependency-cruiser/commit/1bfe74b1) feature(report): markdown: adds (configurable) ignored violations ([#​618](https://togithub.com/sverweij/dependency-cruiser/issues/618)) - [`3fff445`](https://togithub.com/sverweij/dependency-cruiser/commit/3fff445d) feature(metrics): calculate metrics when the current reporter's option specifies to show them ([#​617](https://togithub.com/sverweij/dependency-cruiser/issues/617)) (thanks to [@​czlowiek488](https://togithub.com/czlowiek488) for helping me see this improvement) - [`acab0db`](https://togithub.com/sverweij/dependency-cruiser/commit/acab0dbb) feature(mermaid-plugin): adds focus highlighting ([#​616](https://togithub.com/sverweij/dependency-cruiser/issues/616)) (thanks [@​MH4GF](https://togithub.com/MH4GF) for the PR review) - [`92c7fe8`](https://togithub.com/sverweij/dependency-cruiser/commit/92c7fe81) feature(report): converts the mermaid plugin to a regular reporter ([#​622](https://togithub.com/sverweij/dependency-cruiser/issues/622)) #### πŸ“– documentation - [`100b6c8`](https://togithub.com/sverweij/dependency-cruiser/commit/100b6c84) doc(report): metrics reporter: type the options parameter - [`7cf6ceb`](https://togithub.com/sverweij/dependency-cruiser/commit/7cf6ceb9) doc(rules-reference): makes formula fit mathjax syntax #### πŸ› fixes - [`d3a69bf`](https://togithub.com/sverweij/dependency-cruiser/commit/d3a69bf2) bugfix(report): metrics reporter: prevent error by ignoring folders for which Ca/Ce/I can't be calculated ([#​620](https://togithub.com/sverweij/dependency-cruiser/issues/620)) πŸ” sha-sum: `ad728a8e510c65b1887970e5396f45d0e2b5321e` ### [`v11.9.0`](https://togithub.com/sverweij/dependency-cruiser/releases/tag/v11.9.0) [Compare Source](https://togithub.com/sverweij/dependency-cruiser/compare/v11.8.0...v11.9.0) #### :sparkles: features - [`148cde2`](https://togithub.com/sverweij/dependency-cruiser/commit/148cde25) feature(report): adds (configurable) markdown reporter ([#​614](https://togithub.com/sverweij/dependency-cruiser/issues/614)) You can use this e.g. in conjunction with [GitHub actions job summaries](https://github.blog/2022-05-09-supercharging-github-actions-with-job-summaries/) to make dependency-cruiser's output appear there in a snazzied-up shape. ```yaml ### ... steps: - name: Saving dependency check report to the job summary run: depcruise src --config --output-type markdown >> $GITHUB_STEP_SUMMARY ### ... ``` ... which then could look something like the example below in its most expand form. It's possible to only emit parts of it - see the [markdown option documentation](https://togithub.com/sverweij/dependency-cruiser/blob/develop/doc/options-reference.md#markdown) for details. > ## Forbidden dependency check - results > > ### :chart_with_upwards_trend: Summary > > **495** modulesΒ Β Β Β **1224** dependenciesΒ Β Β Β **1** errorsΒ Β Β Β **0** warningsΒ Β Β Β **5** informationalΒ Β Β Β **0** ignored > > |rule|violations|ignored|explanation > |:---|:---:|:---:|:---| > |:grey_exclamation:Β *not-reachable-from-folder-index*|**3**|**0**|(sample rule to demo reachable rules with capturing groups)| > |:grey_exclamation:Β *utl-module-not-shared-enough*|**2**|**0**|(sample rule to demo demo rules based on dependents)| > |:exclamation:Β *not-unreachable-from-cli*|**1**|**0**|This module in the src/ tree is not reachable from the cli - and is likely dead wood. Either use it or remove it. If a module is flagged for which it's logical it is not reachable from cli (i.e. a configuration file), add it to the pathNot in the 'to' of this rule.| > > ### :fire: All violations > >
Violations found - click to expand > > |violated rule|from|to| > |:---|:---|:---| > |:exclamation:Β *not-unreachable-from-cli*|`src/schema/baseline-violations.schema.js`|`src/schema/baseline-violations.schema.js`| > |:grey_exclamation:Β *not-reachable-from-folder-index*|`src/cli/format.js`|`src/cli/format.js`| > |:grey_exclamation:Β *not-reachable-from-folder-index*|`src/cli/tools/wrap-stream-in-html.js`|`src/cli/tools/wrap-stream-in-html.js`| > |:grey_exclamation:Β *not-reachable-from-folder-index*|`src/cli/validate-node-environment.js`|`src/cli/validate-node-environment.js`| > |:grey_exclamation:Β *utl-module-not-shared-enough*|`src/utl/array-util.js`|`src/utl/array-util.js`| > |:grey_exclamation:Β *utl-module-not-shared-enough*|`src/utl/wrap-and-indent.js`|`src/utl/wrap-and-indent.js`| > >

dependency-cruiser@11.9.0 / 2022-06-06T17:54:43.948Z

:book: documentation

  • b44cfcc doc: clarify when the showMetrics dot reporter attribute works and when it doesn't (#​615) - thanks @​czlowiek488 for the question that led to this fix
  • 7ad82e3 doc: first step to introduce strict variants of types for internal use (#​607)

:bug: fixes

:construction_worker: maintenance

  • 01b4137 style: rename lodash function use to their real names
  • 97ddcb0 chore: adds highlighting configuration for modules 'matching focus'
  • 042be53 refactor(extract): use getExtension instead of endsWith to determine scannability of extensions (#​609)
  • f7d95e8 build(npm): update external dependencies

πŸ” shasum: ba3d5cdb800a9a3bb04dc0ede2252d95c96163a0

v11.8.0

Compare Source

✨ features

  • 5e89c69 feature(init): makes jsconfig.json dectection a separate thing (#​602)
  • 92754de feature(init): don't put dependency-types in doNotFollow (#​603)
  • dcf12a4 feature(plugin): adds mermaid.js reporter plugin (#​599) - thanks @​MH4GF for the PR (and for your patience)!
  • 29b8ab5 feature(depcruise-fmt): adds a --prefix command line option (#​606)

πŸ› fixes

  • 713ccae bugfix(validate): also include the 'from' when validating via's/ & viaNot exceptions to cycle rules (#​605) - thanks @​epaillous finding and raising the bug report for this!

πŸ“– documentation

  • e422bb5 doc(cli): to the --ts-config cli description adds it's possible to pass a jsconfig.json

πŸ‘· maintenance

  • e638dde build(npm): update external dependencies

Thanks @​ronalson for raising the issue that led to making the --init option more intuitive for jsconfig.jsons.

πŸ” shasum: 1463295cfda195dbddac2528ca144fa702e7679f

v11.7.1

Compare Source

πŸ› fixes

  • 719e5db bugfix(report): also anonymize folders; module dependents (#​598)
  • 6f0c0dd bugfix(main): also check via's for regex safety (#​596)
  • 621f0e7 bugfix(main): also normalize viaOnly and viaSomeNot (#​595)
  • 0e76178 bugfix(main): don't sort the moduleSystems passed as options; change default order from most used to least used (#​594)

πŸ“– documentation

πŸ‘· maintenance

πŸ” shasum: 81e76968cdd74fcb8e197516368f5958a9b8664c

v11.7.0

Compare Source

✨ features
  • 6040154 feature(extract): makes an type import and an import of the same module in the same file two separate dependencies (#​593) (thanks @​fforres raising this issue!)
  • 84eac45 feature(init): exclude 'type-only' dependencies from the duplicate dependency type check in the initial template and the rule in configs (#​592)
  • 5518dde feature(validate): adds group matching to folder scoped rules (#​591)
  • b71566d feature(validate): adds viaOnly, viaSomeNot restrictions + group matching on those and the via and viaNot restrictions (#​589) (thanks @​PetFeld-ed for triggering the implementation of this feature)
πŸ“– Documentation
  • bfded6b doc(faq): adds performance tweak section - hides details for other sections in 'details' tags
πŸ‘· maintenance
  • e660ef0 build(npm): update external dependencies
  • 2eda48e refactor(test): bring validation rules closer to the 'validate' tests (#​587)
  • b1ad574 chore: updates react and yarn-berry real world sample graphs
  • 818b5b7 chore(ci): adds node 18 to the environments to test against - drops node 17 from the same
  • 50d86e3 chore(ci): removes node 12 from the test matrix (node 12 is still supported - there's just some devDependencies that don't support node 12 anymore)

πŸ” shasum: e8390c1acb2fec171ff01b4aa8eadc6a0bcd4102

v11.6.0

Compare Source

✨ features
πŸ› fixes
:wrench: maintenance
  • 5cdb278 build(npm): update external dependencies

πŸ” shasum of the published package: 11b85bc9e189c25a511568d3a522da8ed30254bf

v11.5.0

Compare Source

:sparkles: features

9bb6786 feature(report): show folder cycles in textual reporters (#​580) 3c83b7a feature(validate): adds possibility to validate folder cycles (#​579) a0f6078 feature(enrich): detect folder cycles (#​578)

:bug: fixes

79f4c11 bugfix(faq): correct links (#​577)

:wrench: maintenance

39676fe build(npm): update external dependencies

πŸ” shasum of the published package: fda117dfd09c5f10a1c2fe68dff9384f58f4c818

v11.4.1

Compare Source

πŸ‘· Maintenance

πŸ” shasum of the published package: d1dab68baf8d1d6481bc373ba1211757ff868ce5

v11.4.0

Compare Source

✨ features

πŸ› fixes

  • 4536eae bugfix(init): removes 'assert' from deprecated core rule (#​573) - thanks again to @​btiernay for reporting this bug

πŸ‘· maintenance

You might have noticed the publishing e-mail address for this package on npm also change from one on yandex.com to one on yahoo.com. This is intentional.

πŸ” shasum of the published package: 0a66cb83bd492a35d60e009436dc5951760461f4

v11.3.1

Compare Source

πŸ› fixes

  • b83cca8 bugfix(ci): ensure the prettier script actually checks files
  • d88e789 bugfix(extract): makes esm url matching more specific (#​568) (thanks to @​lukesmurray for reporting the issue!)
  • a3c187b bugfix(doc|init): fix link to dependencyType documentation (#​561) (thanks @​Silvere112 for detecting the bug and the submitting the fix!)

πŸ“– documentation

  • 06ec5c8 doc(output-format): add the 'folders' attribute & a link to the graphical schema overview

πŸ‘· maintenance

v11.3.0

Compare Source

✨ features

  • 1d5a7aa feature(extract): add vue script setup support (#​556) - thanks @​bashess for the addition of this feature!
  • 90c140a feature(validate): adds possibility to validate folder-dependency metrics (#​554)

πŸ“– documentation

  • 7fbd38d doc(real-world-samples): adds howto to the dependency-cruiser graphs

πŸ‘· maintenance

v11.2.1

Compare Source

πŸ› Bugfixes

  • 75b330a bugfix(types): adjusts 'format' type signature to use IFormatOptions (#​552) - thanks @​hikerpig for raising the bug report for this!

πŸ‘· Maintenance

  • 4783292 chore(make): updates makefile to regard all relevant sources (#​549)

v11.2.0

Compare Source

🌟 features

  • 3ea1b5a feature(report): adds instability metrics to the err-html reporter (#​544)
  • fc866d4 feature(report): adds instability metrics to the teamcity reporter (#​543)
  • 9c19219 feature(enrich|report): adds instability metrics to the err reporter (#​542)

πŸ“– documentation

  • 854f0fa doc(rules-reference): adds a caution about using metrics-as-a-gospel

πŸ‘· maintenance

🏭 refactoring

  • c05bc9c refactor(validate): re-organizes dependency validation (#​548)
  • b33a42b refactor(extract): re-organizes metrics derivation (#​546)
  • b9ee63f refactor(tools|schema): splits off violation type and minifies generated .js schemas (#​545)
  • a9a73c7 refactor(test): splits get-dependencies spec (#​541)

🧹 chores

  • d688d84 chore: make double-sure generated meta.js is prettier'ed
  • 2a026b5 chore: set metrics config to include only bin & src

v11.1.0

Compare Source

🌟 features

  • eef06ff feature(dot): shows (module-level) instability metrics if they're available (#​536)
  • fdd6b84 feature(dot): makes showing metrics switcheable independent of whether they're available or not (#​537)
  • a788777/ 67f1af4/ 3a90580 feature(validate): adds moreUnstable attribute to enforce stable dependencies (#​538)

πŸ› fixes

  • a02044a doc(README): corrects a typo
  • b01e262 bugfix(test): makes the io unit test run more reliably (#​539)

πŸ‘· maintenance

v11.0.0

Compare Source

🚨 breaking changes

b8516ac feature: TypeScript support in Vue files (BREAKING CHANGE) (#​526)

This change is breaking only if you

  • use vue single file components AND
  • use typescript as the scripting language in them AND
  • you happen to have rules defined that touch these components.

In these cases rules might be triggered that weren't triggered before. When this occurs you can either fix the violations or temporarily ignore them (See --ignore-known in the documentation).

Thanks @​rklos for raising the issue and for writing the pull request!

457a5d0 bugfix(extract): consistently treat .d.ts as a separate extension (BREAKING CHANGE) (#​530)

This change is breaking only if

  • you have set the options.enhancedResolveOptions.extensions in your .dependency-cruiser.js AND
  • in there you did specify .d.ts and didn't specify .ts AND
  • you have rules that touch .d.ts modules

In these cases rules might be triggered that weren't triggered before. When this occurs you can either fix the violations or temporarily ignore them (See --ignore-known in the documentation).

v10.9.0

Compare Source

This is a release of the v10 branch of dependency-cruiser. v10.9.0 contains the same changes as v11.1.0, with the exception of the ones listed below. On npm the v10 branch is published with the version-10 tag.

πŸ”™ backports

  • da2af61 backport: removes cycle from type definitions

v10.8.0

Compare Source

Version 11 will be published soon. As an experiment we'll back port non-breaking features & fixes to v10 for some time when possible - these will be published on npm under the version-10 tag (latest will from the next release on be reserved for v11).

🌟 features

  • a0767fa feature: adds instability metric + dedicated metrics reporter (#​524) - thanks @​tujger for the suggestion and the feedback!

πŸ› fixes

  • e137300 bugfix: re-baseline so cycle fixed in v11 doesn't bother us here
  • 1d7c08d bugfix(known-violations): also soften self-cycling violations (#​532)
  • 0ed8e28 doc(FAQ): correct some links + copy fixes

πŸ‘· maintenance

v10.7.0

Compare Source

🌟 features

  • 2c76e2c feature(report): makes the teamcity report ignore known errors (#​521)

πŸ‘· maintenance

  • dd6f1a3 lint: :arrow_up: eslint-plugin-budapestian
  • f7d0acb chore(ci): adds node 17

v10.6.0

Compare Source

🌟 features

🧰 maintenance

v10.5.0

Compare Source

🌟 features

πŸ› fixes

πŸ‘· maintenance

v10.4.0

Compare Source

🌟 features
  • a3f27ab feature(extract): label typescript type-only imports as such (#​499)
  • 6d20f99 feature(validate): adds 'via' restrictions for cycles (#​507)
  • 4b7a63c feature(report): makes the err-html reporter 'ignore-known' aware (#​513)
πŸ“– documentation
πŸ‘· maintenance

v10.3.1

Compare Source

πŸ› bugfixes

  • 745d58e bugfix(known-violations|summary): compare cyclic violations by cycle, properly (#​502)
  • c456d10 bugfix(summary): fix ignore count in the model's schema + add it to the schema for the summary (#​504)
πŸ‘· maintenance

v10.3.0

Compare Source

🌟 features

  • d8079c8 feature: adds support for baselining known violations (#​494)
  • af8556d feature(extract): adds an option to specify extra (typically non-parseable) extensions to scan (#​492)

(thanks @​binary64 for suggesting the both of these)

πŸ‘· maintenance

v10.2.0

Compare Source

🌟 features

  • 9ea7401 feature(extract): makes it possible to use tsc as the primary parser (#​489)

πŸ‘· maintenance

For some production dependencies dependency-cruiser started to use version ranges in package.json. This should reduce the # of maintenance updates and it might reduce dependency-cruiser's footprint in node_modules.

v10.1.1

Compare Source

πŸ“– Documentation

  • a989d0a doc: re-enables the archi graph
  • 073e8a9 doc(FAQ): adds a howto with npx + more stronlgy recommend local install - fixes #​487

πŸ› Bugfixes

πŸ‘· Maintenance

v10.1.0

Compare Source

🌟 Features

  • 919f359 feature(resolve): adds yarn virtual dependency resolution (#​483)
  • ad5586c feature(init): adds a text and a 'focus' script to the experimental-scripts default config (#​482)
  • 7be9128 feature(init): write to .dependency-cruiser.cjs when package type equals module (#​479)

πŸ› Fixes

  • 41e0c5c bugfix(ts-config): pass an absolute path to tsconfig.json so typescripts parsing still works under yarn 3 (#​481)
  • 9f6b697 bugfix(init): makes --init work under yarn 3
  • 08e671f bugfix(resolve): also puts triple slash directive dependencies through the resolution algorithm(s) (#​484)

πŸ‘· Maintenance

v10.0.7

Compare Source

πŸ‘· maintenance

v10.0.6

Compare Source

πŸ› fixes

  • 286b06f bugfix(report): minifies compiled handlebars templates This makes the compiled templates smaller and hence dependency-cruiser smaller to download and (a little) faster to load

πŸ‘· maintenance

v10.0.5

Compare Source

πŸ› fixes

  • e82891e bugfix(wrap-stream-in-html): de-buffer so it can handle larger streams (#​474)

πŸ‘· maintenance

v10.0.4

Compare Source

πŸ‘· maintenance

  • a2f5ba0 build(npm): :arrow_down: commander

v10.0.3

Compare Source

πŸ‘· maintenance

v10.0.2

Compare Source

πŸ› bug fixes

πŸ‘· maintenance

v10.0.1

Compare Source

πŸ› bugfixes
  • e5e3a7d bugfix(init): update the doc output of --init experimental-scripts
  • 8a86689 bugfix(resolve): work around enhanced-resolve's hashmark-in-filenames problem (#​461)
πŸ‘· maintenance
  • 9ffbe85 build(npm): :arrow_up: enhanced-resolve, eslint-plugin-unicorn

v10.0.0

Compare Source

πŸ‘·β€β™€οΈ maintenance

91e353f build: drop support for node <12.20 (πŸ’₯ breaking change)
What changed?

From this version on dependency-cruiser supports node ^12.20, ^14 and >=16 (which are not coincidentally the same as the ones nodejs supports).

##### Why? - Dependency-cruiser follows the support schedule of nodejs - which de-supported node 10 this month. Many of its dependencies also stopped supporting it, so it's getting less easy (and safe!) to maintain that situation. - Likewise nodejs doesn't support node 13 anymore, and soon won't support node 15 any longer. You can safely upgrade to node 14 and 16 respectively (see the [release page](https://nodejs.org/en/about/releases/) on the nodejs website. - Node 12.20 contains some useful features earlier versions didn't have, which dependency-cruiser either is already using or will start using in the near future. ##### What is the impact? **None** if you're on node 12.20, ^14 or >= 16 which is likely. **Low** in all other cases (see _How to migrate_ below) ##### How to migrate If you still are on one node 10.x, 13.x or 15.x there's two options: - upgrade your node version to a supported version (^12, ^14, ^16 or even ^17 when that comes out) - keep using dependency-cruiser@9.26.1

πŸ› bugfixes

3fc204d3 bugfix(validate): correctly filter out dependents from pathNot (#​460) (πŸ’₯ breaking change)
What changed?

This is technically a breaking change: if you had a rule with dependents in them and a pathNot attribute in the from part, the validator would treat the paths in pathNot as if they were regular paths. This is obviously wrong, but if your ruleset relies on this erroneous behaviour rules might fire that didn't before.

Thanks @​davidparkagoda who both spotted the error and contributed this bugfix!

##### Why? The previous implementation was (quite obviously, in hindsight) wrong. ##### What is the impact? **None** if you're not using dependents rules with a pathNot attribute. ##### How to migrate - If you intended the new behaviour in the first place you now get the correct behaviour. - If you did not intend it, but instead put the restriction in a pathNot instead of a `path` attribute - rename pathNot to path (or merge the things in path and pathNot if a `path` attribute already existed).


Configuration

πŸ“… Schedule: Branch creation - "after 10pm,before 6am" in timezone Europe/Berlin, 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 this update again.



This PR has been generated by Mend Renovate. View repository job log here.