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

[FEATURE] library mode #1259

Open
1 of 2 tasks
jkowalleck opened this issue Jan 24, 2025 · 2 comments
Open
1 of 2 tasks

[FEATURE] library mode #1259

jkowalleck opened this issue Jan 24, 2025 · 2 comments
Labels
enhancement New feature or request help wanted Extra attention is needed idea

Comments

@jkowalleck
Copy link
Member

jkowalleck commented Jan 24, 2025

Is your feature request related to a problem? Please describe.

if i build a SBOM for a library, i do not want to have non-bundled component listed as if they were concrete.
These dependencies are extraneous and the version of them is not clear - it is resolved on install-time .
Also, transitive dependencies of those are not clear until install-time.

This should be reflected in the SBOM.

Describe the solution you'd like

Spec: CycloneDX/specification#321

add a n option to have

  • only the bundled dependencies and the direct dependencies as components in the SBOM result.
  • direct dependencies' components must have no version.
  • direct dependencies's components must have a version range - #321
  • direct dependencies are marked as "extraneous" - #321

option could be called (list of ideas)

  • --library-mode
  • --mark-extraneous
  • --bundled-only
  • add your idea in the comments

new option MUST imply --omit dev and must cause

new option MUST be disabled bu default
new option MUST be marked as experimental in help page
new option might set `--mc-type=library'

Describe alternatives you've considered

  • we could make it, so that the existing option `--mc-type=library' causes this behaviour by default, but that would be a breaking change

Additional context

for libraries, non-bundled components are "extraneous" - this is discussed in #321

package.json knows the concept of

  • dependencies
  • bundleDependencies - definitely shipped
  • peerDependencies - definitely extraneous
    • they can be optional, in addition. example:
      "peerDependenciesMeta": {
        "webpack-cli": {
          "optional": true
        }
      }
      
  • devDependencies - no intention to be shipped.
    might shadow allof the above on build-time

Contribution

  • I am willing to provide an implementation
  • I will wait until somebody else implements it
@jkowalleck jkowalleck added enhancement New feature or request help wanted Extra attention is needed idea labels Jan 24, 2025
@jkowalleck
Copy link
Member Author

this ticket is currently only an idea.
please add comments, to discuss the idea.

@jkowalleck
Copy link
Member Author

this feature should implicitely fix #1155

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed idea
Projects
None yet
Development

No branches or pull requests

1 participant