Skip to content

Commit 9d5baee

Browse files
authored
Merge branch 'master' into docs/remove-rack-references-275
2 parents 02b04a0 + f9a01e6 commit 9d5baee

5 files changed

Lines changed: 70 additions & 63 deletions

File tree

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
---
2+
- release: 8.14.1
3+
jetty: 12.1.10
24
- release: 8.14.0
5+
jetty: 12.1.10
36
- release: 8.13.0
7+
jetty: 10.0.26
48
- release: 8.12.1
9+
jetty: 10.0.26
510
- release: 8.12.0
11+
jetty: 10.0.26

_data/server_release_contents/openvox_8x.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
---
2+
- release: 8.14.1
3+
jruby: 9.4.12.1
24
- release: 8.14.0
35
jruby: 9.4.12.1
46
- release: 8.13.0

docs/_ecosystem_8x/devkit/migrating.md

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,22 @@ If you get an error about a command not being available, you probably just need
1616

1717
{% include alert.html type="tip" content="There are a few exceptions to this pattern. For example, Jig is an installed package and VoxBox is a Docker container." %}
1818

19-
| You used to type... | Now you type... |
20-
|---------------------|------------------|
21-
| `pdk new module` | `jig new module` |
22-
| `pdk new class` | `jig new class` |
23-
| `pdk build` | `jig build` |
24-
| `pdk release` | `jig release` |
25-
| `pdk convert` | _not needed_ |
26-
| `pdk update` | `jig update` |
27-
| `pdk validate` | `jig validate` |
28-
| `pdk test unit` | `jig test unit` |
29-
30-
`jig update`, `jig validate`, and `jig test unit` are thin wrappers around `bundle exec msync update`, `bundle exec rake validate lint`, and `bundle exec rake spec` respectively, so they still need the module's gems installed (`bundle install`).
31-
You can keep running the underlying `bundle exec` commands directly if you prefer.
19+
Jig also contains thin wrappers around the `bundle exec` commands, so in many cases you can use the CLI patterns you're used to typing.
20+
Because Jig does not attempt to hide the Bundler environment from you, it will still need the module's gems installed (`bundle install`) and ModuleSync configured properly.
21+
22+
{% include alert.html type="tip" title="Choosing command forms" content="If you want quick and familiar commands to run locally, then use the Jig wrapper commands. If you're running tests and such in CI or if you need to pass custom options then invoke the tools directly." %}
23+
24+
| You used to type... | Now you type... | Or run tools directly... |
25+
|---------------------|------------------|----------------------------------|
26+
| `pdk new module` | `jig new module` | |
27+
| `pdk new class` | `jig new class` | |
28+
| `pdk build` | `jig build` | |
29+
| `pdk release` | `jig release` | |
30+
| `pdk convert` | _not needed_ | |
31+
| `pdk update` | `jig update`* | `bundle exec msync update`* |
32+
| `pdk validate` | `jig validate` | `bundle exec rake validate lint` |
33+
| `pdk test unit` | `jig test unit` | `bundle exec rake spec` |
34+
35+
{% include alert.html type="note" title="*NOTE" content="`pdk update` operates in context of a single module. In contrast, the replacement ModuleSync commands (`jig update` and `bundle exec msync update`) should be run in the template repository to push updates to all your modules at once. [Read more](modulesync.html)." %}
3236

3337
Browse through the individual subpages of this Developer Tooling section to learn more about each component.

docs/_openvox_8x/component_versions.md

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,10 @@ on its own 5.x line). There is no single "OpenVox platform version" that pins al
2626
of them at once, so each component is shown in its own table, keyed by that
2727
component's release.
2828

29-
The bundled-component columns are **generated** from upstream release metadata (the
30-
per-release SBOMs published by [openvox-sbom-tools][sbom_tools] for the agent and
31-
OpenBolt, and component pins for the server), so they don't drift. Columns that
32-
aren't bundled or pinned anywhere (Java and PostgreSQL) are supported-version
33-
requirements maintained by hand; see the note under each table.
29+
The bundled-component columns are **generated** from the per-release SBOMs published
30+
by [openvox-sbom-tools][sbom_tools] for every component, so they don't drift. Columns
31+
that aren't bundled anywhere (Java and PostgreSQL) are supported-version requirements
32+
maintained by hand; see the note under each table.
3433

3534
<!-- markdownlint-disable MD055 MD056 -->
3635

@@ -48,8 +47,8 @@ changes; this page is only a pointer.
4847

4948
## Server components
5049

51-
These ship with the `openvox-server` package. JRuby is the bundled version,
52-
resolved from the server's pinned `jruby-utils`/`jruby-deps`.
50+
These ship with the `openvox-server` package. JRuby is the bundled version, read
51+
from the server's per-release SBOM.
5352

5453
| OpenVox Server release | JRuby | Java |
5554
| --- | --- | --- |
@@ -67,15 +66,19 @@ OpenVoxDB ships in the `openvoxdb` package on its own release line. The
6766
agents talk to OpenVoxDB) is released in lockstep at the **same version** as
6867
`openvoxdb`, so it is not listed separately.
6968

70-
| OpenVoxDB release | PostgreSQL |
71-
| --- | --- |
72-
{% for r in site.data.openvoxdb_release_contents[nav_key] %}| {{ r.release }} | 11+ (14+ recommended) |
69+
Jetty is the bundled HTTP server, read from the OpenVoxDB SBOM.
70+
71+
| OpenVoxDB release | Jetty | Java | PostgreSQL |
72+
| --- | --- | --- | --- |
73+
{% for r in site.data.openvoxdb_release_contents[nav_key] %}| {{ r.release }} | {{ r.jetty }} | 11, 17 | 11+ (14+ recommended) |
7374
{% endfor %}
7475

75-
> **PostgreSQL is not bundled.** OpenVoxDB connects to a PostgreSQL server you
76-
> install separately (the `puppet-openvoxdb` module can install it for you). The
77-
> PostgreSQL column shows the supported minimum (PostgreSQL 11; version 14 or newer
78-
> recommended), not a per-release pin; see [Configuring PostgreSQL][openvoxdb_postgres].
76+
> **Java and PostgreSQL are not bundled.** OpenVoxDB runs on a JVM and connects to a
77+
> PostgreSQL server you install separately (the `puppet-openvoxdb` module can install
78+
> PostgreSQL for you). The Java column shows the currently supported major versions,
79+
> and the PostgreSQL column the supported minimum (PostgreSQL 11; version 14 or newer
80+
> recommended) — neither is a per-release pin. See
81+
> [Configuring PostgreSQL][openvoxdb_postgres].
7982
8083
## OpenBolt
8184

lib/puppet_references/release_tables.rb

Lines changed: 28 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@ module PuppetReferences
1212
# drive the table and resolves one row per stable release from authoritative,
1313
# structured metadata, so the tables are never hand-maintained. The shared
1414
# GitHub releases/contents plumbing lives here so the per-table classes stay
15-
# small. Agent and OpenBolt rows come from openvox-sbom-tools SBOMs (see
16-
# SbomReleaseTable); server and OpenVoxDB rows are still resolved from upstream
17-
# pins until their SBOMs land.
15+
# small. Every table now sources its bundled-component columns from
16+
# openvox-sbom-tools SBOMs (see SbomReleaseTable).
1817
#
1918
# Authenticates with ENV GITHUB_TOKEN/GH_TOKEN, falling back to `gh auth token`
2019
# for local runs. A release whose components can't be resolved (e.g. a tag that
@@ -210,52 +209,45 @@ def columns
210209
end
211210
end
212211

213-
# openvox-server: bundled JRuby, resolved through the server's pinned
214-
# jruby-utils -> jruby-deps "9.4.12.1-3" (the trailing "-N" packaging suffix is
215-
# stripped). Java is a supported requirement, not a pin, so it is hand-maintained
216-
# on the docs page rather than resolved here. Stays on the upstream-pin scraper
217-
# until an openvox-server SBOM is published.
218-
class ServerReleaseTable < ReleaseTable
219-
SERVER_REPO = 'OpenVoxProject/openvox-server'
220-
JRUBY_UTILS_REPO = 'OpenVoxProject/jruby-utils'
212+
# openvox-server: bundled JRuby, read from the openvox-server SBOM's `jruby-base`
213+
# component (the resolved JRuby version). This replaces the previous resolution
214+
# through the server's pinned jruby-utils -> jruby-deps in project.clj, which
215+
# required stripping a "-N" packaging suffix; `jruby-base` is already clean. Java
216+
# is a supported requirement, not a pin, so it is hand-maintained on the docs
217+
# page rather than resolved here.
218+
class ServerReleaseTable < SbomReleaseTable
219+
REPO = 'OpenVoxProject/openvox-server'
221220

222221
def repo
223-
SERVER_REPO
224-
end
225-
226-
def row_for(tag, cache)
227-
jruby_utils = pin_in_project_clj(SERVER_REPO, tag, 'jruby-utils')
228-
{ 'release' => tag, 'jruby' => (cache[jruby_utils] ||= jruby_from_utils(jruby_utils)) }
222+
REPO
229223
end
230224

231-
private
232-
233-
def jruby_from_utils(jruby_utils_ver)
234-
deps = pin_in_project_clj(JRUBY_UTILS_REPO, jruby_utils_ver, 'jruby-deps')
235-
deps.sub(/-\d+\z/, '')
225+
def sbom_package
226+
'openvox-server'
236227
end
237228

238-
# Version of an org.openvoxproject/<name> dependency pinned in a repo's project.clj.
239-
def pin_in_project_clj(repo, ref, name)
240-
clj = raw(repo, 'project.clj', ref)
241-
version = clj[%r{org\.openvoxproject/#{Regexp.escape(name)}\s+"([^"]+)"}, 1]
242-
raise NotFound, "#{name} pin in #{repo}@#{ref}" unless version
243-
244-
version
229+
def columns
230+
{ 'jruby' => 'jruby-base' }
245231
end
246232
end
247233

248-
# OpenVoxDB ships on its own independent version line; the table is just its
249-
# stable release tags. PostgreSQL is a supported requirement (the openvoxdb
250-
# module only declares a postgresql dependency range, not a bundled version),
251-
# so it is hand-maintained on the docs page.
252-
class OpenvoxdbReleaseTable < ReleaseTable
234+
# OpenVoxDB ships on its own independent version line. It is a Clojure/JVM
235+
# service (no bundled JRuby), so the one bundled component worth surfacing is the
236+
# embedded Jetty HTTP server, read from its per-release SBOM. Java and PostgreSQL
237+
# are supported requirements (the openvoxdb module only declares a postgresql
238+
# dependency range, not a bundled version), so those columns stay hand-maintained
239+
# on the docs page.
240+
class OpenvoxdbReleaseTable < SbomReleaseTable
253241
def repo
254242
'OpenVoxProject/openvoxdb'
255243
end
256244

257-
def row_for(tag, _cache)
258-
{ 'release' => tag }
245+
def sbom_package
246+
'openvoxdb'
247+
end
248+
249+
def columns
250+
{ 'jetty' => 'jetty-server' }
259251
end
260252
end
261253
end

0 commit comments

Comments
 (0)