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

v1.0.0 #6

Merged
merged 181 commits into from
Jun 26, 2024
Merged

v1.0.0 #6

merged 181 commits into from
Jun 26, 2024

Conversation

jkowalleck
Copy link
Member

@jkowalleck jkowalleck commented Jun 26, 2022

First release.

Responsibilities

  • Provide a yarn plugin that generates CycloneDX SBOM for current workspace
  • Provide a CLI wrapper got said plugin

Capabilities

  • Supports yarn3 and yarn4
  • Can output in XML and JSON format, CycloneDX v1.2 - v1.6 spec
  • Can omit dev dependencies

🏗️ GOALS

  • have the license situation clarified -- [LEGAL] sort out license sotuation #104
  • have all implementation done
    see https://github.com/CycloneDX/cyclonedx-node-yarn/milestone/1
  • have integration tests with real yarn setups
  • have have CI/CT ready
  • have dependabot working
  • have release action in place
    see [CHORE] release process #103
    have a pre-release published to github, that
    • has the resulting package as an asset
    • has the resulting plugin-script as an asset
    • has the 3rd party notice as an asset
  • have license headers in all files
  • have docs finalized
  • have scripts for build, lint, cs-fix, etc ...
  • squash/fixup all commits in this PR to one commit with a proper commit message that explains capabilities and responsibilities.
    This will be done on merge - quash merge
  • ❗ after merge: docs: fix branch names #27

@jkowalleck jkowalleck self-assigned this Jun 26, 2022
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Update README.md

link to planing/vision discussion

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
@jkowalleck jkowalleck changed the title v1.0 [WIP] v1.0 Jul 10, 2023
@jkowalleck jkowalleck added this to the v1.0 milestone Jul 10, 2023
jkowalleck and others added 5 commits March 1, 2024 09:38

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>

Signed-off-by: Augustus Kling <augustus.kling@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Co-authored-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Copy link

codacy-production bot commented Mar 5, 2024

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
Report missing for 11426ea1 (target: 80.00%)
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (11426ea) Report Missing Report Missing Report Missing
Head commit (57b8d43) 2538 2169 85.46%

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#6) 0 0 ∅ (not applicable)

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences


🚀 Don’t miss a bit, follow what’s new on Codacy.

Codacy stopped sending the deprecated coverage status on June 5th, 2024. Learn more

Footnotes

  1. Codacy didn't receive coverage data for the commit, or there was an error processing the received data. Check your integration for errors and validate that your coverage setup is correct.

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
see #22

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
---------

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
jkowalleck and others added 7 commits June 1, 2024 16:19
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Bumps [c8](https://github.com/bcoe/c8) from 9.1.0 to 10.1.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/bcoe/c8/releases">c8's
releases</a>.</em></p>
<blockquote>
<h2>v10.1.2</h2>
<h2><a
href="https://github.com/bcoe/c8/compare/v10.1.1...v10.1.2">10.1.2</a>
(2024-06-13)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> make monocart-coverage-reports an optional
with meta defined (<a
href="https://github.com/bcoe/c8/commit/3b91fdaa0e5554a72f6e625af3a7254b0cb19e8c">3b91fda</a>)</li>
</ul>
<h2>v10.1.1</h2>
<h2><a
href="https://github.com/bcoe/c8/compare/v10.1.0...v10.1.1">10.1.1</a>
(2024-06-11)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>stop installing monocart-coverage-reports (<a
href="https://redirect.github.com/bcoe/c8/issues/535">#535</a>) (<a
href="https://github.com/bcoe/c8/commit/13979a76b5b44fc6758f350bae4cb3febd60d75e">13979a7</a>)</li>
</ul>
<h2>v10.1.0</h2>
<h2><a
href="https://github.com/bcoe/c8/compare/v10.0.0...v10.1.0">10.1.0</a>
(2024-06-11)</h2>
<h3>Features</h3>
<ul>
<li>add experimental monocart reports (<a
href="https://redirect.github.com/bcoe/c8/issues/521">#521</a>) (<a
href="https://github.com/bcoe/c8/commit/2e5e297ac024bf7af1bc72689b644e11d73eac89">2e5e297</a>)</li>
</ul>
<h2>v10.0.0</h2>
<h2><a
href="https://github.com/bcoe/c8/compare/v9.1.0...v10.0.0">10.0.0</a>
(2024-06-10)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li><strong>deps:</strong> Node 18 is now the minimum supported Node.js
version</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> update test-exclude with new glob / minimatch
(<a href="https://redirect.github.com/bcoe/c8/issues/531">#531</a>) (<a
href="https://github.com/bcoe/c8/commit/e33cf30d0c44470f9c87553df487e2f27f58f4ac">e33cf30</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/bcoe/c8/blob/main/CHANGELOG.md">c8's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/bcoe/c8/compare/v10.1.1...v10.1.2">10.1.2</a>
(2024-06-13)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> make monocart-coverage-reports an optional
with meta defined (<a
href="https://github.com/bcoe/c8/commit/3b91fdaa0e5554a72f6e625af3a7254b0cb19e8c">3b91fda</a>)</li>
</ul>
<h2><a
href="https://github.com/bcoe/c8/compare/v10.1.0...v10.1.1">10.1.1</a>
(2024-06-11)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>stop installing monocart-coverage-reports (<a
href="https://redirect.github.com/bcoe/c8/issues/535">#535</a>) (<a
href="https://github.com/bcoe/c8/commit/13979a76b5b44fc6758f350bae4cb3febd60d75e">13979a7</a>)</li>
</ul>
<h2><a
href="https://github.com/bcoe/c8/compare/v10.0.0...v10.1.0">10.1.0</a>
(2024-06-11)</h2>
<h3>Features</h3>
<ul>
<li>add experimental monocart reports (<a
href="https://redirect.github.com/bcoe/c8/issues/521">#521</a>) (<a
href="https://github.com/bcoe/c8/commit/2e5e297ac024bf7af1bc72689b644e11d73eac89">2e5e297</a>)</li>
</ul>
<h2><a
href="https://github.com/bcoe/c8/compare/v9.1.0...v10.0.0">10.0.0</a>
(2024-06-10)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li><strong>deps:</strong> Node 18 is now the minimum supported Node.js
version</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> update test-exclude with new glob / minimatch
(<a href="https://redirect.github.com/bcoe/c8/issues/531">#531</a>) (<a
href="https://github.com/bcoe/c8/commit/e33cf30d0c44470f9c87553df487e2f27f58f4ac">e33cf30</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/bcoe/c8/commit/ff146b4dde004c62651b57c33cedd8353c94c423"><code>ff146b4</code></a>
chore(main): release 10.1.2 (<a
href="https://redirect.github.com/bcoe/c8/issues/538">#538</a>)</li>
<li><a
href="https://github.com/bcoe/c8/commit/3b91fdaa0e5554a72f6e625af3a7254b0cb19e8c"><code>3b91fda</code></a>
fix(deps): make monocart-coverage-reports an optional with meta
defined</li>
<li><a
href="https://github.com/bcoe/c8/commit/e3560e1211718d361612457245e57e638b8001d2"><code>e3560e1</code></a>
chore(main): release 10.1.1 (<a
href="https://redirect.github.com/bcoe/c8/issues/536">#536</a>)</li>
<li><a
href="https://github.com/bcoe/c8/commit/13979a76b5b44fc6758f350bae4cb3febd60d75e"><code>13979a7</code></a>
fix: stop installing monocart-coverage-reports (<a
href="https://redirect.github.com/bcoe/c8/issues/535">#535</a>)</li>
<li><a
href="https://github.com/bcoe/c8/commit/15ac6905cd274fafce1abb9c52b0d430a78e7b1b"><code>15ac690</code></a>
chore(main): release 10.1.0 (<a
href="https://redirect.github.com/bcoe/c8/issues/533">#533</a>)</li>
<li><a
href="https://github.com/bcoe/c8/commit/96e869ff8c8ff279207865ccf71b605044405d32"><code>96e869f</code></a>
build(deps-dev): bump braces from 3.0.2 to 3.0.3 (<a
href="https://redirect.github.com/bcoe/c8/issues/534">#534</a>)</li>
<li><a
href="https://github.com/bcoe/c8/commit/2e5e297ac024bf7af1bc72689b644e11d73eac89"><code>2e5e297</code></a>
feat: add experimental monocart reports (<a
href="https://redirect.github.com/bcoe/c8/issues/521">#521</a>)</li>
<li><a
href="https://github.com/bcoe/c8/commit/dc38051b14a3df9ca09aeea098b2233bc015dd4a"><code>dc38051</code></a>
chore(main): release 10.0.0 (<a
href="https://redirect.github.com/bcoe/c8/issues/532">#532</a>)</li>
<li><a
href="https://github.com/bcoe/c8/commit/e33cf30d0c44470f9c87553df487e2f27f58f4ac"><code>e33cf30</code></a>
fix(deps)!: update test-exclude with new glob / minimatch (<a
href="https://redirect.github.com/bcoe/c8/issues/531">#531</a>)</li>
<li><a
href="https://github.com/bcoe/c8/commit/1eeeaebe659d0e3be143f52695d342b042241f59"><code>1eeeaeb</code></a>
doc(CONTRIBUTING): remove dead link, update broken link (<a
href="https://redirect.github.com/bcoe/c8/issues/526">#526</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/bcoe/c8/compare/v9.1.0...v10.1.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=c8&package-manager=npm_and_yarn&previous-version=9.1.0&new-version=10.1.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@AugustusKling
Copy link
Contributor

@jkowalleck I haven't had the chance to test in depth nor go through the code changes yet but can at least share some feedback in the meantime.

  • In general the plugin works fine and produces similar output to when I had donated the initial code. The differences are mostly expected given your changes.
  • Using the plugin using the YARN_PLUGINS environment variable should be mentioned in the readme because this allows to use the plugin without interfering with the project for which the SBOM is generated. It's an alternative to yarn dlx which works also in isolated environments.
  • The default of emitting the JSON SBOM to the standard output is not really useful in combination with yarn dlx as it also writes logs to the standard output. The readme should mention the invocation using yarn dlx --quiet.
  • This repository no longer contains a yarn.lock file which makes your builds non-reproducible. It should always be committed to the source code repository.
  • When attempting to generate the SBOM and a package.json contains for example "version": "1.0-dev" it now crashes in a function called Object.fixVersionField. This concerns me as I would not expect the SBOM generation to adjust version numbers and instead just take them verbatim.
  • The SBOM files do no longer identify package instances by their locator hash but use pretty printed identifiers of package names and version numbers instead (value in the bom-ref fields). This is okay as long as the hash is appended for virtual packages. Since I'm pretty sure the hash is clipped to the first 5 characters you may see duplicated identifiers with really low probability.

Output in case a version number is "1.0-dev" or similar:

yarn cyclonedx --output-file by-cyclonedx.json
LOG   | gathering BOM data ...
Internal Error: Invalid version: "1.0-dev"
    at Object.fixVersionField (/code/yarn-plugin-cyclonedx.cjs:48:3853)
    at /code/yarn-plugin-cyclonedx.cjs:48:10076
    at Array.forEach (<anonymous>)
    at Jx (/code/yarn-plugin-cyclonedx.cjs:48:10041)
    at Xf.makeComponent (/code/yarn-plugin-cyclonedx.cjs:48:13143)
    at Xf.makeComponentFromWorkspace (/code/yarn-plugin-cyclonedx.cjs:48:12462)
    at Xf.buildFromWorkspace (/code/yarn-plugin-cyclonedx.cjs:48:11711)
    at async Is.execute (/code/yarn-plugin-cyclonedx.cjs:55:989)
    at async Is.validateAndExecute (/root/.cache/node/corepack/yarn/4.1.0/yarn.js:94:787)
    at async as.run (/root/.cache/node/corepack/yarn/4.1.0/yarn.js:98:3250)

Regarding this see also fixVersionField in https://www.npmjs.com/package/normalize-package-data?activeTab=code and https://www.npmjs.com/package/semver?activeTab=code

I guess it would be preferable to fail the execution instead of risking stripping parts of the version number.

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
@jkowalleck
Copy link
Member Author

re: #6 (comment)

Using the plugin using the YARN_PLUGINS environment variable should be mentioned in the readme because this allows to use the plugin without interfering with the project for which the SBOM is generated. It's an alternative to yarn dlx which works also in isolated environments.

The yarn dlx creates an isolated environment on the fly. That's why I've put it on the top of the lists — it is probably the least inversive method of running this plugin.
Advanced users of yarn know about the YARN_PLUGINS env var and how to use it; I'd rather not document it, so the new users are not confused, and so the usage is clear and simple.

The default of emitting the JSON SBOM to the standard output is not really useful in combination with yarn dlx as it also writes logs to the standard output. The readme should mention the invocation using yarn dlx --quiet.

Thank you so much for bringing this up. 👍
Added this to the docs!

When attempting to generate the SBOM and a package.json contains for example "version": "1.0-dev" it now crashes in a function called Object.fixVersionField. This concerns me as I would not expect the SBOM generation to adjust version numbers and instead just take them verbatim.

Thanks for testing this. 👍
Converted this remark to #133.

The SBOM files do no longer identify package instances by their locator hash but use pretty printed identifiers of package names and version numbers instead (value in the bom-ref fields). This is okay as long as the hash is appended for virtual packages. Since I'm pretty sure the hash is clipped to the first 5 characters you may see duplicated identifiers with really low probability.

Internally, the components are not identified per @, but by yarn's own descriptorHash.
The CycloneDX library asserts that bom-refs are unique per document, and makes them unique if needed.
So there is no need to add/append any hashes, or is there? If there was, i'd probably register and use a CyclieDX property to store yarn's locatorHash in the SBOM.
@AugustusKling, please advice.

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Copy link

codacy-production bot commented Jun 20, 2024

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
Report missing for 11426ea1 (target: 80.00%)
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (11426ea) Report Missing Report Missing Report Missing
Head commit (0ad76ae) 2538 2169 85.46%

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#6) 0 0 ∅ (not applicable)

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences


🚀 Don’t miss a bit, follow what’s new on Codacy.

Codacy stopped sending the deprecated coverage status on June 5th, 2024. Learn more

Footnotes

  1. Codacy didn't receive coverage data for the commit, or there was an error processing the received data. Check your integration for errors and validate that your coverage setup is correct.

@AugustusKling
Copy link
Contributor

re: #6 (comment)
[...]

The SBOM files do no longer identify package instances by their locator hash but use pretty printed identifiers of package names and version numbers instead (value in the bom-ref fields). This is okay as long as the hash is appended for virtual packages. Since I'm pretty sure the hash is clipped to the first 5 characters you may see duplicated identifiers with really low probability.

Internally, the components are not identified per @, but by yarn's own descriptorHash. The CycloneDX library asserts that bom-refs are unique per document, and makes them unique if needed. So there is no need to add/append any hashes, or is there? If there was, i'd probably register and use a CyclieDX property to store yarn's locatorHash in the SBOM. @AugustusKling, please advice.

Usually the "descriptor" is the package plus version range as found in a package.json. The "locator" is the package plus a fixed version as in after Yarn decided which version to pick given a version range.

I think the value in Package.locatorHash, not descriptorHash, is even unique when virtual packages are required (see https://yarnpkg.com/advanced/lexicon#virtual-package). Such package instances need to be created in certain cases when a package occurs multiple times in the dependency tree but would resolve its own dependencies to different versions for different instantiations. For example different peer dependencies are provided in the different branches of the transitive dependency tree.

If the Cyclone DX library ensures bom-ref properties are unique across all components we could be sure that all produced SBOM files are okay.

My original code created the CDX.Models.Component instances first and thereafter added the dependencies for each component. In case the current code still follows the same approach, then I don't understand how the Cyclone DX library could make the bom-ref unique while still retriving the correct dependencies by a descriptorHash. Doing the same with locatorHash should be correct, though.

Sadly, I don't have the time these days to read your code in detail but it might be enough to simply get the dependencies by locatorHash instead of descriptorHash. There is no need to include the locatorHash in the SBOM file as it's just in implementation detail of Yarn. What you should guarantee is that each locatorHash value maps to exactly 1 bom-ref value but it does not matter which value is used for the bom-ref in the generated SBOM.

@jkowalleck
Copy link
Member Author

jkowalleck commented Jun 21, 2024

Such package instances need to be created in certain cases when a package occurs multiple times in the dependency tree but would resolve its own dependencies to different versions for different instantiations. For example different peer dependencies are provided in the different branches of the transitive dependency tree.

would you be able to craft a test bed for testing this?
I will try and might come back in a separate pull request.

Regarding locatorHash versus descriptorHash -- in all test beds I tried, I was able to reproducibly craft resulted based on descriptorHash, but not based on locatorHash. this is why ...
(maybe i just did not hate the right test beds, will investigate). thank you for the hint.

If all this only about a unique bom-ref, rest assured that the library takes care of it.
It uses a reversible discriminator mechanism right before normalizing/serializing the data models.

…t group (#135)

Bumps the typescript group with 1 update:
[typescript](https://github.com/Microsoft/TypeScript).

Updates `typescript` from 5.4.5 to 5.5.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 5.5</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3A%22TypeScript+5.5.2%22+is%3Aclosed+">fixed
issues query for TypeScript v5.5.2 (Stable)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3A%22TypeScript+5.5.1%22+is%3Aclosed+">fixed
issues query for TypeScript v5.5.1 (RC)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3A%22TypeScript+5.5.0%22+is%3Aclosed+">fixed
issues query for TypeScript v5.5.0 (Beta)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>TypeScript 5.5 RC</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-5-rc/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.5.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.5.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.5.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.5.1 (RC)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>TypeScript 5.5 Beta</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-5-beta/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.5.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.5.0 (Beta)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ce2e60e4ea15a65992e54a9e8877d16be9d42abb"><code>ce2e60e</code></a>
Update LKG</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/f3b21a2033206e585b2b7b18622104f09eb87f2e"><code>f3b21a2</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58931">#58931</a>
(Defer creation of barebonesLibSourc...) into release-5.5 (#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/7b1620bea227ea47f8944a2b02a7ed91691c3046"><code>7b1620b</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58811">#58811</a>
(fix(58801): &quot;Move to file&quot; on globa...) into release-5.5
(#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/5367ae10f58edfacd6d3b1e77bd05576036b8ca2"><code>5367ae1</code></a>
Bump version to 5.5.2 and LKG</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/02132e5b8183b0ee73e52d75ff6e28ff0c9fe3d2"><code>02132e5</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58895">#58895</a>
(Fix global when typescript.js loade...) into release-5.5 (#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/45b1e3c25444c4193cefb4ca97dfd1064f75a561"><code>45b1e3c</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58872">#58872</a>
(Fix declaration emit crash) into release-5.5 (<a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58874">#58874</a>)</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/17933ee33af4a3c44233820abf8bdb0ad2bf143a"><code>17933ee</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58810">#58810</a>
(Fixed declaration emit issue relate...) into release-5.5 (#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/552b07e795ec5db98c37fd4ace730133bbf0e781"><code>552b07e</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58786">#58786</a>
(Fixed declaration emit crash relate...) into release-5.5 (#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/39c9eebf1707b194b525a4c471b8b6bfe3f52642"><code>39c9eeb</code></a>
Pick <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58857">#58857</a>
to release-5.5 (<a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58858">#58858</a>)</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/2b0009c6790d66bbc943fc3975eb8bc9e8dec83f"><code>2b0009c</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58846">#58846</a>
(Ensure the updates with crashes rev...) into release-5.5 (#...</li>
<li>Additional commits viewable in <a
href="https://github.com/Microsoft/TypeScript/compare/v5.4.5...v5.5.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typescript&package-manager=npm_and_yarn&previous-version=5.4.5&new-version=5.5.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jan Kowalleck <jan.kowalleck@gmail.com>
@jkowalleck jkowalleck mentioned this pull request Jun 24, 2024
jkowalleck and others added 12 commits June 24, 2024 12:29
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: jkowalleck <jkowalleck@users.noreply.github.com>
Caused by
#6 (comment)

> Such package instances need to be created in certain cases when a
package occurs multiple times in the dependency tree but would resolve
its own dependencies to different versions for different instantiations.
For example different peer dependencies are provided in the different
branches of the transitive dependency tree.

----

test bed applies the following dependencies: see
<https://github.com/CycloneDX/cyclonedx-node-yarn/blob/test-transitive-peer-deps/tests/_data/testbeds/concurrent-peer-deps/README.md>

SBOM results are here: 
- JSON:
<https://github.com/CycloneDX/cyclonedx-node-yarn/blob/test-transitive-peer-deps/tests/_data/snapshots/plain_concurrent-peer-deps.json.bin>
- XML:
<https://github.com/CycloneDX/cyclonedx-node-yarn/blob/test-transitive-peer-deps/tests/_data/snapshots/plain_concurrent-peer-deps.xml.bin>

----

see for conclusion:
#134 (comment)

---------

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
…140)

Bumps the mocha group with 1 update:
[mocha](https://github.com/mochajs/mocha).

Updates `mocha` from 10.4.0 to 10.5.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mochajs/mocha/releases">mocha's
releases</a>.</em></p>
<blockquote>
<h2>v10.5.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: Add error handling for nonexistent file case with --file option
by <a href="https://github.com/khoaHyh"><code>@​khoaHyh</code></a> in <a
href="https://redirect.github.com/mochajs/mocha/pull/5086">mochajs/mocha#5086</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/khoaHyh"><code>@​khoaHyh</code></a> made
their first contribution in <a
href="https://redirect.github.com/mochajs/mocha/pull/5086">mochajs/mocha#5086</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mochajs/mocha/compare/v10.5.0...v10.5.1">https://github.com/mochajs/mocha/compare/v10.5.0...v10.5.1</a></p>
<h2>v10.5.0</h2>
<h3>:tada: Enhancements</h3>
<ul>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/5015">#5015</a>
feat: use &lt;progress&gt; and &lt;svg&gt; for browser progress
indicator instead of &lt;canvas&gt; (<a
href="https://github.com/yourWaifu"><strong><code>@​yourWaifu</code></strong></a>)</li>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/5143">#5143</a>
feat: allow using any 3.x chokidar dependencies (<a
href="https://github.com/simhnna"><strong><code>@​simhnna</code></strong></a>)</li>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/4835">#4835</a>
feat: add MOCHA_OPTIONS env variable (<a
href="https://github.com/icholy"><strong><code>@​icholy</code></strong></a>)</li>
</ul>
<h3>:bug: Fixes</h3>
<ul>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/5107">#5107</a>
fix: include stack in browser uncaught error reporting (<a
href="https://github.com/JoshuaKGoldberg"><strong><code>@​JoshuaKGoldberg</code></strong></a>)</li>
</ul>
<h3>:nut_and_bolt: Other</h3>
<ul>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/5110">#5110</a>
chore: switch two-column list styles to be opt-in (<a
href="https://github.com/marjys"><strong><code>@​marjys</code></strong></a>)</li>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/5135">#5135</a>
chore: fix some typos in comments (<a
href="https://github.com/StevenMia"><strong><code>@​StevenMia</code></strong></a>)</li>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/5130">#5130</a>
chore: rename 'master' to 'main' in docs and tooling (<a
href="https://github.com/JoshuaKGoldberg"><strong><code>@​JoshuaKGoldberg</code></strong></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mochajs/mocha/blob/main/CHANGELOG.md">mocha's
changelog</a>.</em></p>
<blockquote>
<h2>10.5.1 / 2024-05-24</h2>
<h3>:bug: Fixes</h3>
<ul>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/5086">#5086</a>
fix: Add error handling for nonexistent file case with --file option (<a
href="https://github.com/khoaHyh"><strong><code>@​khoaHyh</code></strong></a>)</li>
</ul>
<h2>10.5.0 / 2024-05-24</h2>
<h3>:tada: Enhancements</h3>
<ul>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/5015">#5015</a>
feat: use &lt;progress&gt; and &lt;svg&gt; for browser progress
indicator instead of &lt;canvas&gt; (<a
href="https://github.com/yourWaifu"><strong><code>@​yourWaifu</code></strong></a>)</li>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/5143">#5143</a>
feat: allow using any 3.x chokidar dependencies (<a
href="https://github.com/simhnna"><strong><code>@​simhnna</code></strong></a>)</li>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/4835">#4835</a>
feat: add MOCHA_OPTIONS env variable (<a
href="https://github.com/icholy"><strong><code>@​icholy</code></strong></a>)</li>
</ul>
<h3>:bug: Fixes</h3>
<ul>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/5107">#5107</a>
fix: include stack in browser uncaught error reporting (<a
href="https://github.com/JoshuaKGoldberg"><strong><code>@​JoshuaKGoldberg</code></strong></a>)</li>
</ul>
<h3>:nut_and_bolt: Other</h3>
<ul>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/5110">#5110</a>
chore: switch two-column list styles to be opt-in (<a
href="https://github.com/marjys"><strong><code>@​marjys</code></strong></a>)</li>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/5135">#5135</a>
chore: fix some typos in comments (<a
href="https://github.com/StevenMia"><strong><code>@​StevenMia</code></strong></a>)</li>
<li><a
href="https://redirect.github.com/mochajs/mocha/pull/5130">#5130</a>
chore: rename 'master' to 'main' in docs and tooling (<a
href="https://github.com/JoshuaKGoldberg"><strong><code>@​JoshuaKGoldberg</code></strong></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mochajs/mocha/commit/103c56b63542e36ba7a289ec25913d77bf2156b6"><code>103c56b</code></a>
Release v10.5.1</li>
<li><a
href="https://github.com/mochajs/mocha/commit/545b66d5927472378aed8e19317212a7535c1650"><code>545b66d</code></a>
docs: add 10.5.1 to CHANGELOG.md</li>
<li><a
href="https://github.com/mochajs/mocha/commit/dbe229d1b7ce672a02992b12ecb38a1cdd440a1e"><code>dbe229d</code></a>
fix: Add error handling for nonexistent file case with --file option (<a
href="https://redirect.github.com/mochajs/mocha/issues/5086">#5086</a>)</li>
<li><a
href="https://github.com/mochajs/mocha/commit/b9ce511348e55adf721b55f836fcddfa81537735"><code>b9ce511</code></a>
Release v10.5.0</li>
<li><a
href="https://github.com/mochajs/mocha/commit/12c88a75694f7e923114f6943a0dbd66302945c3"><code>12c88a7</code></a>
Docs: add 10.5.0 to CHANGELOG.md</li>
<li><a
href="https://github.com/mochajs/mocha/commit/b6aa7e85b821a7859bb6e372d8c3efe67936d7c3"><code>b6aa7e8</code></a>
chore: rename 'master' to 'main' in docs and tooling (<a
href="https://redirect.github.com/mochajs/mocha/issues/5130">#5130</a>)</li>
<li><a
href="https://github.com/mochajs/mocha/commit/67a81245f969267dbb1878c73d593d8316d5706f"><code>67a8124</code></a>
fix: include stack in browser uncaught error reporting (<a
href="https://redirect.github.com/mochajs/mocha/issues/5107">#5107</a>)</li>
<li><a
href="https://github.com/mochajs/mocha/commit/e0301154101989a26877fbb8a1e9c869c9f3e4a6"><code>e030115</code></a>
chore: switch two-column list styles to be opt-in (<a
href="https://redirect.github.com/mochajs/mocha/issues/5110">#5110</a>)</li>
<li><a
href="https://github.com/mochajs/mocha/commit/2f3fedcc41cbb9d3e503d84098fcc07d7c3c49f1"><code>2f3fedc</code></a>
chore: allow blank issues (<a
href="https://redirect.github.com/mochajs/mocha/issues/5157">#5157</a>)</li>
<li><a
href="https://github.com/mochajs/mocha/commit/6dda9a476b54a9c00bacdb45aac74586ebeb42c2"><code>6dda9a4</code></a>
chore: remove <code>husky</code> for now (<a
href="https://redirect.github.com/mochajs/mocha/issues/5127">#5127</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/mochajs/mocha/compare/v10.4.0...v10.5.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mocha&package-manager=npm_and_yarn&previous-version=10.4.0&new-version=10.5.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@jkowalleck jkowalleck merged commit 1065484 into main Jun 26, 2024
49 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants