Skip to content

Commit bd7f47f

Browse files
committed
🎨 modernize for 2025
### Added - `CHANGELOG.md` file to document notable changes in keep-a-changelog format - `Cyclonedx::BomHelpers` module to house helper methods, replacing global methods - `Cyclonedx::BomBuilder` class, replacing `Bombuilder` (note the capitalization change) - `Cyclonedx::BomComponent` class, replacing `BomComponent` - `Cyclonedx::Ruby::Version::VERSION` constant to hold the version number (also available as `Cyclonedx::VERSION`) - `Cyclonedx::Ruby::Deprecation` module to help manage deprecations ### Changed - Updated gemspec metadata for clarity and consistency - Modernized Rakefile, dotfiles, and test setup - `LICENSE` => `LICENSE.txt` to simplify parsing consistency on various platforms and tools - `cucumber` v8 => v10 - `aruba` v2.1 => v2.2 ### Deprecated - `BomComponent` => `Cyclonedx::BomComponent` - `Bombuilder` => `Cyclonedx::BomBuilder` (note the capitalization change) - `Object.purl` => `Cyclonedx::BomHelpers.purl` - `Object.random_urn_uuid` => `Cyclonedx::BomHelpers.random_urn_uuid` - `Object.build_bom` => `Cyclonedx::BomHelpers.build_bom` - `Object.build_json_bom` => `Cyclonedx::BomHelpers.build_json_bom` - `Object.build_bom_xml` => `Cyclonedx::BomHelpers.build_bom_xml` - `Object.get_gem` => `Cyclonedx::BomHelpers.get_gem` Signed-off-by: Peter H. Boling <[email protected]>
1 parent ea1339d commit bd7f47f

24 files changed

+978
-329
lines changed

CHANGELOG.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Changelog
2+
3+
[![SemVer 2.0.0][📌semver-img]][📌semver] [![Keep-A-Changelog 1.0.0][📗keep-changelog-img]][📗keep-changelog]
4+
5+
All notable changes to this project will be documented in this file.
6+
7+
The format is based on [Keep a Changelog][📗keep-changelog],
8+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
9+
and [yes][📌major-versions-not-sacred], platform and engine support are part of the [public API][📌semver-breaking].
10+
Please file a bug if you notice a violation of semantic versioning.
11+
12+
[📌semver]: https://semver.org/spec/v2.0.0.html
13+
[📌semver-img]: https://img.shields.io/badge/semver-2.0.0-FFDD67.svg?style=flat
14+
[📌semver-breaking]: https://github.com/semver/semver/issues/716#issuecomment-869336139
15+
[📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
16+
[📗keep-changelog]: https://keepachangelog.com/en/1.0.0/
17+
[📗keep-changelog-img]: https://img.shields.io/badge/keep--a--changelog-1.0.0-FFDD67.svg?style=flat
18+
19+
## [Unreleased]
20+
21+
### Added
22+
23+
- `CHANGELOG.md` file to document notable changes in keep-a-changelog format
24+
- `Cyclonedx::BomHelpers` module to house helper methods, replacing global methods
25+
- `Cyclonedx::BomBuilder` class, replacing `Bombuilder` (note the capitalization change)
26+
- `Cyclonedx::BomComponent` class, replacing `BomComponent`
27+
- `Cyclonedx::Ruby::Version::VERSION` constant to hold the version number (also available as `Cyclonedx::VERSION`)
28+
- `Cyclonedx::Ruby::Deprecation` module to help manage deprecations
29+
30+
### Changed
31+
32+
- Updated gemspec metadata for clarity and consistency
33+
- Modernized Rakefile, dotfiles, and test setup
34+
- `LICENSE` => `LICENSE.txt` to simplify parsing consistency on various platforms and tools
35+
- `cucumber` v8 => v10
36+
- `aruba` v2.1 => v2.2
37+
38+
### Deprecated
39+
40+
- `BomComponent` => `Cyclonedx::BomComponent`
41+
- `Bombuilder` => `Cyclonedx::BomBuilder` (note the capitalization change)
42+
- `Object.purl` => `Cyclonedx::BomHelpers.purl`
43+
- `Object.random_urn_uuid` => `Cyclonedx::BomHelpers.random_urn_uuid`
44+
- `Object.build_bom` => `Cyclonedx::BomHelpers.build_bom`
45+
- `Object.build_json_bom` => `Cyclonedx::BomHelpers.build_json_bom`
46+
- `Object.build_bom_xml` => `Cyclonedx::BomHelpers.build_bom_xml`
47+
- `Object.get_gem` => `Cyclonedx::BomHelpers.get_gem`
48+
49+
### Removed
50+
51+
### Fixed
52+
53+
### Security
54+
55+
## [1.1.0] - 2019-07-13
56+
57+
- TAG: [v1.1.0][1.1.0t]
58+
59+
### Added
60+
61+
- Initial release
62+
63+
[1.1.0]: https://github.com/CycloneDX/cyclonedx-ruby-gem/compare/eecfebe3cb0ce961fef8e424162ac94298f02a9f...v1.1.0
64+
[1.1.0t]: https://github.com/CycloneDX/cyclonedx-ruby-gem/releases/tag/v1.1.0

Gemfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
source 'https://rubygems.org'
1+
# frozen_string_literal: true
2+
3+
source "https://rubygems.org"
24

35
# Specify your gem's dependencies in cyclonedx-ruby.gemspec
46
gemspec

Gemfile.lock

Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
PATH
2+
remote: .
3+
specs:
4+
cyclonedx-ruby (1.2.0)
5+
activesupport (~> 7.0)
6+
json (~> 2.6)
7+
nokogiri (~> 1.15)
8+
ostruct (~> 0.5.5)
9+
rest-client (~> 2.0)
10+
11+
GEM
12+
remote: https://rubygems.org/
13+
specs:
14+
activesupport (7.2.2.2)
15+
base64
16+
benchmark (>= 0.3)
17+
bigdecimal
18+
concurrent-ruby (~> 1.0, >= 1.3.1)
19+
connection_pool (>= 2.2.5)
20+
drb
21+
i18n (>= 1.6, < 2)
22+
logger (>= 1.4.2)
23+
minitest (>= 5.1)
24+
securerandom (>= 0.3)
25+
tzinfo (~> 2.0, >= 2.0.5)
26+
aruba (2.3.2)
27+
bundler (>= 1.17, < 3.0)
28+
contracts (>= 0.16.0, < 0.18.0)
29+
cucumber (>= 8.0, < 11.0)
30+
rspec-expectations (>= 3.4, < 5.0)
31+
thor (~> 1.0)
32+
ast (2.4.3)
33+
base64 (0.3.0)
34+
benchmark (0.5.0)
35+
bigdecimal (3.3.1)
36+
builder (3.3.0)
37+
concurrent-ruby (1.3.5)
38+
connection_pool (2.5.4)
39+
contracts (0.17.2)
40+
cucumber (10.1.1)
41+
base64 (~> 0.2)
42+
builder (~> 3.2)
43+
cucumber-ci-environment (> 9, < 11)
44+
cucumber-core (> 15, < 17)
45+
cucumber-cucumber-expressions (> 17, < 19)
46+
cucumber-html-formatter (> 20.3, < 22)
47+
diff-lcs (~> 1.5)
48+
logger (~> 1.6)
49+
mini_mime (~> 1.1)
50+
multi_test (~> 1.1)
51+
sys-uname (~> 1.3)
52+
cucumber-ci-environment (10.0.1)
53+
cucumber-core (15.3.0)
54+
cucumber-gherkin (> 27, < 35)
55+
cucumber-messages (> 26, < 30)
56+
cucumber-tag-expressions (> 5, < 9)
57+
cucumber-cucumber-expressions (18.0.1)
58+
bigdecimal
59+
cucumber-gherkin (34.0.0)
60+
cucumber-messages (> 25, < 29)
61+
cucumber-html-formatter (21.15.1)
62+
cucumber-messages (> 19, < 28)
63+
cucumber-messages (27.2.0)
64+
cucumber-tag-expressions (8.0.0)
65+
diff-lcs (1.6.2)
66+
docile (1.4.1)
67+
domain_name (0.6.20240107)
68+
drb (2.2.3)
69+
ffi (1.17.2)
70+
ffi (1.17.2-aarch64-linux-gnu)
71+
ffi (1.17.2-aarch64-linux-musl)
72+
ffi (1.17.2-arm-linux-gnu)
73+
ffi (1.17.2-arm-linux-musl)
74+
ffi (1.17.2-arm64-darwin)
75+
ffi (1.17.2-x86_64-darwin)
76+
ffi (1.17.2-x86_64-linux-gnu)
77+
ffi (1.17.2-x86_64-linux-musl)
78+
http-accept (1.7.0)
79+
http-cookie (1.1.0)
80+
domain_name (~> 0.5)
81+
i18n (1.14.7)
82+
concurrent-ruby (~> 1.0)
83+
json (2.15.2)
84+
language_server-protocol (3.17.0.5)
85+
lint_roller (1.1.0)
86+
logger (1.7.0)
87+
memoist3 (1.0.0)
88+
mime-types (3.7.0)
89+
logger
90+
mime-types-data (~> 3.2025, >= 3.2025.0507)
91+
mime-types-data (3.2025.0924)
92+
mini_mime (1.1.5)
93+
mini_portile2 (2.8.9)
94+
minitest (5.26.0)
95+
multi_test (1.1.0)
96+
netrc (0.11.0)
97+
nokogiri (1.18.10)
98+
mini_portile2 (~> 2.8.2)
99+
racc (~> 1.4)
100+
nokogiri (1.18.10-aarch64-linux-gnu)
101+
racc (~> 1.4)
102+
nokogiri (1.18.10-aarch64-linux-musl)
103+
racc (~> 1.4)
104+
nokogiri (1.18.10-arm-linux-gnu)
105+
racc (~> 1.4)
106+
nokogiri (1.18.10-arm-linux-musl)
107+
racc (~> 1.4)
108+
nokogiri (1.18.10-arm64-darwin)
109+
racc (~> 1.4)
110+
nokogiri (1.18.10-x86_64-darwin)
111+
racc (~> 1.4)
112+
nokogiri (1.18.10-x86_64-linux-gnu)
113+
racc (~> 1.4)
114+
nokogiri (1.18.10-x86_64-linux-musl)
115+
racc (~> 1.4)
116+
ostruct (0.5.5)
117+
parallel (1.27.0)
118+
parser (3.3.9.0)
119+
ast (~> 2.4.1)
120+
racc
121+
prism (1.6.0)
122+
racc (1.8.1)
123+
rainbow (3.1.1)
124+
rake (13.3.0)
125+
regexp_parser (2.11.3)
126+
rest-client (2.1.0)
127+
http-accept (>= 1.7.0, < 2.0)
128+
http-cookie (>= 1.0.2, < 2.0)
129+
mime-types (>= 1.16, < 4.0)
130+
netrc (~> 0.8)
131+
rspec (3.13.2)
132+
rspec-core (~> 3.13.0)
133+
rspec-expectations (~> 3.13.0)
134+
rspec-mocks (~> 3.13.0)
135+
rspec-core (3.13.6)
136+
rspec-support (~> 3.13.0)
137+
rspec-expectations (3.13.5)
138+
diff-lcs (>= 1.2.0, < 2.0)
139+
rspec-support (~> 3.13.0)
140+
rspec-mocks (3.13.6)
141+
diff-lcs (>= 1.2.0, < 2.0)
142+
rspec-support (~> 3.13.0)
143+
rspec-support (3.13.6)
144+
rubocop (1.81.6)
145+
json (~> 2.3)
146+
language_server-protocol (~> 3.17.0.2)
147+
lint_roller (~> 1.1.0)
148+
parallel (~> 1.10)
149+
parser (>= 3.3.0.2)
150+
rainbow (>= 2.2.2, < 4.0)
151+
regexp_parser (>= 2.9.3, < 3.0)
152+
rubocop-ast (>= 1.47.1, < 2.0)
153+
ruby-progressbar (~> 1.7)
154+
unicode-display_width (>= 2.4.0, < 4.0)
155+
rubocop-ast (1.47.1)
156+
parser (>= 3.3.7.2)
157+
prism (~> 1.4)
158+
ruby-progressbar (1.13.0)
159+
securerandom (0.4.1)
160+
simplecov (0.22.0)
161+
docile (~> 1.1)
162+
simplecov-html (~> 0.11)
163+
simplecov_json_formatter (~> 0.1)
164+
simplecov-html (0.13.2)
165+
simplecov_json_formatter (0.1.4)
166+
sys-uname (1.4.1)
167+
ffi (~> 1.1)
168+
memoist3 (~> 1.0.0)
169+
thor (1.4.0)
170+
tzinfo (2.0.6)
171+
concurrent-ruby (~> 1.0)
172+
unicode-display_width (3.2.0)
173+
unicode-emoji (~> 4.1)
174+
unicode-emoji (4.1.0)
175+
176+
PLATFORMS
177+
aarch64-linux-gnu
178+
aarch64-linux-musl
179+
arm-linux-gnu
180+
arm-linux-musl
181+
arm64-darwin
182+
ruby
183+
x86_64-darwin
184+
x86_64-linux-gnu
185+
x86_64-linux-musl
186+
187+
DEPENDENCIES
188+
aruba (~> 2.2)
189+
cucumber (~> 10.0)
190+
cyclonedx-ruby!
191+
rake (~> 13)
192+
rspec (~> 3.12)
193+
rubocop (~> 1.54)
194+
simplecov (~> 0.22.0)
195+
196+
BUNDLED WITH
197+
2.7.2

bom.json

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
{
2+
"bomFormat": "CycloneDX",
3+
"specVersion": "1.7",
4+
"serialNumber": "urn:uuid:294dd750-1036-4fd5-b457-2fb8d54bb310",
5+
"version": 1,
6+
"components": [
7+
{
8+
"type": "library",
9+
"name": "activesupport",
10+
"version": "7.0.4.3",
11+
"description": "A toolkit of support libraries and Ruby core extensions extracted from the Rails framework.",
12+
"purl": "pkg:gem/[email protected]",
13+
"hashes": [
14+
{
15+
"alg": "SHA-256",
16+
"content": "571ed0fac8510f1fc8a1d66aa070d07ea269913bf9ef50960a8044536358a096"
17+
}
18+
],
19+
"licenses": [
20+
{
21+
"license": {
22+
"id": "MIT"
23+
}
24+
}
25+
]
26+
},
27+
{
28+
"type": "library",
29+
"name": "concurrent-ruby",
30+
"version": "1.2.2",
31+
"description": "Modern concurrency tools for Ruby. Inspired by Erlang, Clojure, Scala, Haskell, F#, C#, Java, and classic concurrency patterns.",
32+
"purl": "pkg:gem/[email protected]",
33+
"hashes": [
34+
{
35+
"alg": "SHA-256",
36+
"content": "3879119b8b75e3b62616acc256c64a134d0b0a7a9a3fcba5a233025bcde22c4f"
37+
}
38+
],
39+
"licenses": [
40+
{
41+
"license": {
42+
"id": "MIT"
43+
}
44+
}
45+
]
46+
},
47+
{
48+
"type": "library",
49+
"name": "i18n",
50+
"version": "1.12.0",
51+
"description": "New wave Internationalization support for Ruby",
52+
"purl": "pkg:gem/[email protected]",
53+
"hashes": [
54+
{
55+
"alg": "SHA-256",
56+
"content": "91e3cc1b97616d308707eedee413d82ee021d751c918661fb82152793e64aced"
57+
}
58+
],
59+
"licenses": [
60+
{
61+
"license": {
62+
"id": "MIT"
63+
}
64+
}
65+
]
66+
},
67+
{
68+
"type": "library",
69+
"name": "minitest",
70+
"version": "5.18.0",
71+
"description": "minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking",
72+
"purl": "pkg:gem/[email protected]",
73+
"hashes": [
74+
{
75+
"alg": "SHA-256",
76+
"content": "06f43aa0692ce3acf19cb5bc539ad2c6095ca3d2c7e5fbafc58a7d847e898745"
77+
}
78+
],
79+
"licenses": [
80+
{
81+
"license": {
82+
"id": "MIT"
83+
}
84+
}
85+
]
86+
},
87+
{
88+
"type": "library",
89+
"name": "tzinfo",
90+
"version": "2.0.6",
91+
"description": "Time Zone Library",
92+
"purl": "pkg:gem/[email protected]",
93+
"hashes": [
94+
{
95+
"alg": "SHA-256",
96+
"content": "8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b"
97+
}
98+
],
99+
"licenses": [
100+
{
101+
"license": {
102+
"id": "MIT"
103+
}
104+
}
105+
]
106+
}
107+
]
108+
}

0 commit comments

Comments
 (0)