Skip to content

Conversation

@jkowalleck
Copy link
Member

@jkowalleck jkowalleck commented Jan 8, 2026

see https://github.com/CycloneDX/cyclonedx-php-library/milestone/4


  • BREAKING changes
    • Removed deprecated symbols
    • Changed constructor of CycloneDX\Contrib\License\Factories\LicenseFactory
    • Changed dependencies
  • Removed
    • Class CycloneDX\Core\Factories\LicenseFactory
      Use CycloneDX\Contrib\License\Factories\LicenseFactory instead.
    • Class CycloneDX\Core\Utils\BomUtility
      Use CycloneDX\Contrib\Bom\Utils\BomUtils instead.
    • Method CycloneDX\Core\Validation\BaseValidator::getSpec()
  • Changed
    • CycloneDX\Contrib\License\Factories\LicenseFactory::__construct() parameters are no longer autopopulated
      Downstream implementations have to populate the parameters on their own, now.
    • CycloneDX\Core\Models\Component::setPackageUrl() accepts ?string
      Downstream implementations may use package-url/packageurl-php for generation.
    • CycloneDX\Core\Models\Component::getPackageUrl() returns ?string
      Downstream implementations may use package-url/packageurl-php for parsing.
    • CycloneDX\Core\Validation\BaseValidator::__construct() parameter is type CycloneDX\Core\Spec\Version
      Was internal type CycloneDX\Core\Spec\_SpecProtocol.
  • Dependencies
    • No longer depends on, but suggests composer/spdx-licenses:^1.5
      May be used when utilizing CycloneDX\Contrib\License\Factories\LicenseFactory.
    • No longer depend on package-url/packageurl-php

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
@jkowalleck jkowalleck requested a review from a team as a code owner January 8, 2026 12:29
@jkowalleck jkowalleck added enhancement New feature or request breaking change labels Jan 8, 2026
@jkowalleck jkowalleck added this to the v4 milestone Jan 8, 2026
@codacy-production
Copy link

codacy-production bot commented Jan 8, 2026

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
+0.00% 100.00% (target: 80.00%)
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (e6bb0fc) 5532 5510 99.60%
Head commit (86b0864) 5529 (-3) 5507 (-3) 99.60% (+0.00%)

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 (#589) 6 6 100.00%

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

### Description

* BREAKING changes
  * Removed deprecated symbols
* Changed constructor of
`CycloneDX\Contrib\License\Factories\LicenseFactory`
* Removed
  * `CycloneDX\Core\Factories\LicenseFactory`  
    Use `\CycloneDX\Contrib\License\Factories\LicenseFactory` instead.
  * `CycloneDX\Core\Utils\BomUtility` 
    Use `\CycloneDX\Contrib\Bom\Utils\BomUtils` instead.
* Changed
* `CycloneDX\Contrib\License\Factories\LicenseFactory::__construct()`
parameters are no longer autopopulated
Downstream implementations have to populate the parameters on their own,
now.
* Dependencies
  * No longer depends on, but suggests `composer/spdx-licenses:^1.5`  
May be used when utilizing
`\CycloneDX\Contrib\License\Factories\LicenseFactory`.

part of #571

---------

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
@jkowalleck jkowalleck added dependencies dependency related QA Quality Assurance CI Continuous Integration labels Jan 9, 2026
### Description

* BREAKING changes
  * Changed dependencies
  * Changed properties `packageUrl`
* Changed
* `CycloneDX\Core\Models\Component::setPackageUrl()` accepts `?string`
Downstream implementations may use
[package-url/packageurl-php](https://packagist.org/packages/package-url/packageurl-php)
for generation.
* `CycloneDX\Core\Models\Component::getPackageUrl()` returns `?string`
Downstream implementations may use
[package-url/packageurl-php](https://packagist.org/packages/package-url/packageurl-php)
for parsing.
* Dependencies
  * No longer depend on `package-url/packageurl-php`  


part of #571


---------

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

You can expedite processing of your PR by using this template to provide
context
and additional information. Before actually opening a PR please make
sure that it
does NOT fall into any of the following categories

🚫 Spam PRs (accidental or intentional) - these will result in a 30-days
or even
∞ ban from interacting with the project depending on reoccurrence and
severity.

🚫 Lazy typo fixing PRs - if you fix a typo in a file, your PR will only
be merged
if all other typos in the same file are also fixed with the same PR

🚫 If you fail to provide any _Description_ below, your PR will be
considered spam.
If you do not check the _Affirmation_ box below, your PR will not be
merged.

🚫 If you do not check one of the _AI Tool Disclosure_ boxes below, your
PR will
not be merged. If you used AI tools to assist you in writing code, but
fail to
provide the required disclosure, your PR will not be merged.

🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅-->

### Description

<!-- ✍️-->
* `CycloneDX\Core\Validation\BaseValidator::__construct()` parameter is
type `CycloneDX\Core\Spec\Version`
    Was internal type `CycloneDX\Core\Spec\_SpecProtocol`.

Resolves or fixes issue: #590

### AI Tool Disclosure

- [x] My contribution does not include any AI-generated content
- [ ] My contribution includes AI-generated content, as disclosed below:
  - AI Tools: `[e.g. GitHub CoPilot, ChatGPT, JetBrains Junie etc.]`
- LLMs and versions: `[e.g. GPT-4.1, Claude Haiku 4.5, Gemini 2.5 Pro
etc.]`
- Prompts: `[Summarize the key prompts or instructions given to the AI
tools]`

### Affirmation

- [x] My code follows the
[CONTRIBUTING.md](https://github.com/CycloneDX/cyclonedx-php-library/blob/master/CONTRIBUTING.md)
guidelines

---------

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking change CI Continuous Integration dependencies dependency related enhancement New feature or request QA Quality Assurance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants