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`|
>
>
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
3090ae4 bugfix(mermaid-plugin): replace some meta chars (#613) thanks again to @MH4GF
: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)
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
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
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)
6c5b14a chore: change e-mail address away from yandex
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
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).
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
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)
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.
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
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.
[ ] If you want to rebase/retry this PR, click this checkbox.
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
^9.0.0
->^11.0.0
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`| > >: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 fix7ad82e3
doc: first step to introduce strict variants of types for internal use (#607):bug: fixes
3090ae4
bugfix(mermaid-plugin): replace some meta chars (#613) thanks again to @MH4GF:construction_worker: maintenance
01b4137
style: rename lodash function use to their real names97ddcb0
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 dependenciesThanks @ronalson for raising the issue that led to making the --init option more intuitive for
jsconfig.json
s.π 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
31e5d54
doc: adds/ updates some typings (#597)π· maintenance
6c64985
/ed1eb77
build(npm): update external dependenciesπ 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 dependencies2eda48e
refactor(test): bring validation rules closer to the 'validate' tests (#587)b1ad574
chore: updates react and yarn-berry real world sample graphs818b5b7
chore(ci): adds node 18 to the environments to test against - drops node 17 from the same50d86e3
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
bae8559
feature(wrap-stream-in-html): adds ability to 'pin' a highlight with a left mouse click (#582) (thanks @KrekkieD for the suggestion!) You can try it on dependency-cruiser's own dependency-graph573fda7
feature(wrap-stream-in-html): adds simple help system (#584)6aefb35
feature(validate): adds possibility to put path restrictions in folder-scoped rules (#583)π fixes
2f2f9ef
fix(doc): webpack typo (#581) (thanks @bestmike007 for detecting & submitting the fix):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
d8d69ca
:arrow_up: @babel/core, @babel/plugin-transform-modules-commonjs, @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, commander, eslint, eslint-config-moving-meadow, eslint-plugin-unicorn, inquirer, mocha, prettier, yarnπ shasum of the published package:
d1dab68baf8d1d6481bc373ba1211757ff868ce5
v11.4.0
Compare Source
β¨ features
b9aa0f2
feature(schema): allow known violations to be commented (#574) - thanks to @btiernay for suggesting this ππ fixes
4536eae
bugfix(init): removes 'assert' from deprecated core rule (#573) - thanks again to @btiernay for reporting this bugπ· maintenance
b343116
build(npm): :arrow_up: @babel/core, @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, @vue/compiler-sfc, enhanced-resolve, eslint-config-prettier, lint-staged, mocha, typescript6c5b14a
chore: change e-mail address away from yandexYou 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 filesd88e789
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
7c2453b
build(npm): β¬οΈ @babel/core, @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, @vue/compiler-sfc, ajv, chai, commander, enhanced-resolve, eslint, lint-staged, mocha, sveltev11.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
0ec0068
build(npm): :arrow_up: @babel/core, @babel/plugin-transform-modules-commonjs, @babel/preset-typescript, @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, @vue/compiler-sfc, acorn, acorn-loose, ajv, c8, eslint-plugin-import, eslint-plugin-unicorn, lint-staged, mocha, shx, svelte, typescript βοΈ this commit also ensures dependency-cruiser can handle the new way swc represents dynamic imports in their AST (while remaining backwards compatible).e9478f5
chore(test): classifies tests - puts mocks in separate folders from fixtures (#557)d470c0c
chore: makes depcruise:graph:view show more details54888eb
chore: adds requireJSON as an exotic-require76555ea
chore: updates issue templates557c69f
chore: happy 2022v11.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
330e584
build(npm): :arrow_up: @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, lint-stagedπ 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'ed2a026b5
chore: set metrics config to include only bin & srcv11.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 typob01e262
bugfix(test): makes the io unit test run more reliably (#539)π· maintenance
f0a4355
/f9e2f11
/5623acd
chore: improves naming & ergonomy of depcruise scripts in package.json44152bf
bugfix(schema|types): adds metrics flag to options schema (#534)6cb12ac
chore: adds .mailmap0a5e178
build(npm): @babel/core, @babel/plugin-transform-modules-commonjs, @babel/preset-typescript, @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, @vue/compiler-sfc, prettier, svelte, teamcity-service-messages, typescriptv11.0.0
Compare Source
π¨ breaking changes
b8516ac
feature: TypeScript support in Vue files (BREAKING CHANGE) (#526)This change is breaking only if you
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
options.enhancedResolveOptions.extensions
in your .dependency-cruiser.js AND.d.ts
and didn't specify.ts
AND.d.ts
modulesIn 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 definitionsv10.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 here1d7c08d
bugfix(known-violations): also soften self-cycling violations (#532)0ed8e28
doc(FAQ): correct some links + copy fixesπ· maintenance
9149e9f
perf(enrich): use different caching strategy for finding modules by name (#531)b9afb72
ci: add v10 branch to checked branchesfa2ac33
build(npm): :arrow_up: @babel/core, @babel/plugin-transform-modules-commonjs, @babel/preset-typescript, @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, @vue/compiler-sfc, acorn, ajv, chalk, eslint, eslint-plugin-import, eslint-plugin-unicorn, lint-staged, prettier, svelte, tsconfig-paths-webpack-plugin, typescriptv10.7.0
Compare Source
π features
2c76e2c
feature(report): makes the teamcity report ignore known errors (#521)π· maintenance
dd6f1a3
lint: :arrow_up: eslint-plugin-budapestianf7d0acb
chore(ci): adds node 17v10.6.0
Compare Source
π features
ed52c71
feature(extract) adds vue3 @vue/compiler-sfc template compiler support (#519) A huge thanks to @annamooseity for this addition!!π§° maintenance
2f385ef
build(npm): :arrow_up: @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, commander, eslint, lint-staged, sveltev10.5.0
Compare Source
π features
babe39a
feature(validate): adds a dependencyTypesNot restriction (#518) - thanks @rklos for the suggestion (#516)!π fixes
14d292b
bugfix(enrich/summarize): Adds knownViolations to summary (#517) thanks @radiantly for the excellent PR!π· maintenance
edd5585
build(npm) :arrow_up: @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint-plugin-import, eslint-plugin-unicorn, figures, lint-staged, mocha, svelte, typescript, yarnd2c2061
chore: updates lint-staged to check mjs in test folderc1d4728
refactor(report/anon): simplify random string algo, add 'apps' and 'libs' to the whitelistv10.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
43289cc
doc: updates contribution documentation (#506)π· maintenance
56d366f
build(npm) :arrow_up: @babel/core, @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, c8, coffeescript, inquirer, lint-staged, svelte, yarn61e27b4
refactor(report): simplify the 'ignored-violations' handling of the err reporters (#510)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
a4211e5
build(npm): :arrow_up: @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, coffeescript, enhanced-resolve, glob, mocha, sveltea2dddb0
chore: adds exceptions for (some) .json orphans in dependency-cruiser config(s)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
201768a
chore(resolve): adds typings391db89
build(npm): :arrow_up: @babel/core, @babel/plugin-transform-modules-commonjs, @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, acorn, acorn-loose, acorn-walk, ajv, c8, commander, eslint-plugin-unicorn, inquirer, prettier, svelte, typescriptv10.2.0
Compare Source
π features
9ea7401
feature(extract): makes it possible to use tsc as the primary parser (#489)π· maintenance
14b3b21
chore(ci): on the ci temporarily down upem so the ci also runs on node 1232e2324
git ca build(npm): :arrow_up: @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint-plugin-import, husky, mocha, svelte, typescriptFor 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 graph073e8a9
doc(FAQ): adds a howto with npx + more stronlgy recommend local install - fixes #487π Bugfixes
dee158a
bugfix(init): makes init template yarn pnp proof (#488)π· Maintenance
499dbd6
/7d52237
build(npm): :arrow_up: @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint-plugin-import, mocha, prettier, sveltecd29303
chore(ci): adds a workflow for running under yarn/berry (#486)3f642c8
refactor: deep import semver functions & :arrow_up: semver-try-requirev10.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 308e671f
bugfix(resolve): also puts triple slash directive dependencies through the resolution algorithm(s) (#484)π· Maintenance
2e3c7e6
build(npm): :arrow_up: @babel/core, @babel/plugin-transform-modules-commonjs, @babel/preset-typescript, @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint-plugin-import, eslint-plugin-unicorn, lint-staged, sveltev10.0.7
Compare Source
π· maintenance
d4801cd
chore: removes deepcode configurations672e70d
build(npm): :arrow_up: @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, c8, chalk, commander, eslint, mocha, svelte, yarnv10.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
6fdabe7
test: converts tests to esm (#476)c5b7049
chore: move configs & schemas from json to js (#475)8bee23d
build(npm): :arrow_up: @babel/core, @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, ajv, eslint, inquirer, lint-staged, normalize-newline, sveltev10.0.5
Compare Source
π fixes
e82891e
bugfix(wrap-stream-in-html): de-buffer so it can handle larger streams (#474)π· maintenance
34bf285
chore: replaces nyc with c82903563
build(npm): :arrow_up: @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, acorn-jsx, acorn-walk, ajv, commander, eslint, eslint-plugin-unicorn, mocha, typescriptv10.0.4
Compare Source
π· maintenance
a2f5ba0
build(npm): :arrow_down: commanderv10.0.3
Compare Source
π· maintenance
21c68e9
build(npm): :arrow_up: @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, acorn, commander, sveltev10.0.2
Compare Source
π bug fixes
017fd51
bugfix(cli): fix --exit-code flag (#470) thanks for the PR @neelance !π· maintenance
c8a3d4d
refactor(swc): consolidate swc call (#466)d379ac6
chore(tools): convert to ESM (#464)f3ce5ea
build(npm): @babel/core, @babel/plugin-transform-modules-commonjs, @babel/preset-typescript, @swc/core, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, acorn, ajv, eslint, eslint-plugin-import, eslint-plugin-mocha, eslint-plugin-unicorn, inquirer, mocha, semver-try-require, typescript, vue-template-compilerv10.0.1
Compare Source
π bugfixes
e5e3a7d
bugfix(init): update the doc output of --init experimental-scripts8a86689
bugfix(resolve): work around enhanced-resolve's hashmark-in-filenames problem (#461)π· maintenance
9ffbe85
build(npm): :arrow_up: enhanced-resolve, eslint-plugin-unicornv10.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).
π 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!
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.