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

refactor!: streamline comparison/hashing functions #755

Merged
merged 18 commits into from
Feb 11, 2025

Conversation

jkowalleck
Copy link
Member

@jkowalleck jkowalleck commented Jan 17, 2025

we have different methods of object comparison here and there, some work on tuples, other on hashes, other on different structures.

this PR streamlines this.

these changes might cause breaking changes for downstream users.

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
@jkowalleck jkowalleck requested a review from a team as a code owner January 17, 2025 12:35
@jkowalleck jkowalleck marked this pull request as draft January 17, 2025 12:36
@jkowalleck jkowalleck changed the title refactor: stramline comparisson/hashing functions refactor: streamline comparison/hashing functions Jan 17, 2025
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
@jkowalleck jkowalleck changed the title refactor: streamline comparison/hashing functions [WIP] refactor: streamline comparison/hashing functions Jan 17, 2025
@jkowalleck jkowalleck changed the title [WIP] refactor: streamline comparison/hashing functions [WIP] refactor!: streamline comparison/hashing functions Jan 18, 2025
@jkowalleck jkowalleck added enhancement New feature or request breaking change labels Jan 18, 2025
@jkowalleck jkowalleck added this to the 9.0.0 milestone Jan 18, 2025
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>
Copy link

codacy-production bot commented Feb 11, 2025

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
+0.18% 84.23% (target: 80.00%)
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (2a87f50) 5092 4760 93.48%
Head commit (b6521eb) 5170 (+78) 4842 (+82) 93.66% (+0.18%)

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 (#755) 222 187 84.23%

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

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

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 jkowalleck marked this pull request as ready for review February 11, 2025 11:28
@jkowalleck jkowalleck changed the title [WIP] refactor!: streamline comparison/hashing functions refactor!: streamline comparison/hashing functions Feb 11, 2025
@jkowalleck jkowalleck changed the base branch from main to 9.0.0-dev February 11, 2025 12:22
@jkowalleck jkowalleck merged commit fd9b755 into 9.0.0-dev Feb 11, 2025
51 checks passed
@jkowalleck jkowalleck mentioned this pull request Feb 11, 2025
jkowalleck added a commit that referenced this pull request Feb 12, 2025
For some this is considered a bug-fix, for others this is a feature - it
is a breaking change anyway since it modifies the order of things.

----

TODO:
- [x] **every** symbol that has a property `bom-ref` MUST utilize it for
dunder methods `hash`,`eq`,`gt`,`lt`,...
- [x] add new test cases from #753
- [x] add new test cases from #540
- [x] add new test cases from #677
- [x] create new tests snapshots (if applicable)

----

> [!important]
> depends on #755

supersedes #678
closes #678

fixes #753
fixes #540
fixes #677

---------

Signed-off-by: wkoot <3715211+wkoot@users.noreply.github.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Co-authored-by: wkoot <3715211+wkoot@users.noreply.github.com>
@jkowalleck jkowalleck deleted the refactor/streamline_comparisson_tuples branch February 13, 2025 11:53
@jkowalleck
Copy link
Member Author

A preview of the fix/feature is available via https://github.com/CycloneDX/cyclonedx-python-lib/releases/tag/v9.0.1-rc.1

jkowalleck added a commit that referenced this pull request Feb 26, 2025
### BREAKING Changes

* Fix: `model.vulnerability.VulnerabilityReference`'s properties are all
mandatory
([#790](#790)
via [#792](#792))
* Refactor: Rename `spdx.is_compund_expression` -> `spdx.is_expression`
([#779](#779))
* Behavior: `BomRef` affects comparison/hashing
([#754](#754) &
[#780](#780))
  This is only a breaking change if you relied on ordering of elements.
* Behavior: streamline comparison/hashing functions
([#755](#755))
  This is only a breaking change if you relied on ordering of elements.
* Dependency: bump dependency `py-serializable >=2 <3`, was `>=1.1.1 <2`
([#775](#775))
This is only a breaking change if you have other packages depend on that
specific version.

---------

Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Signed-off-by: wkoot <3715211+wkoot@users.noreply.github.com>
Signed-off-by: semantic-release <semantic-release@bot.local>
Co-authored-by: wkoot <3715211+wkoot@users.noreply.github.com>
Co-authored-by: semantic-release <semantic-release@bot.local>
@jkowalleck
Copy link
Member Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking change enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant