Skip to content

feat: re-land lost validator batches 3/4/5 (#448, #450, #452)#458

Merged
SJrX merged 3 commits into
242.xfrom
recover-validators-448-450-452
Jun 20, 2026
Merged

feat: re-land lost validator batches 3/4/5 (#448, #450, #452)#458
SJrX merged 3 commits into
242.xfrom
recover-validators-448-450-452

Conversation

@SJrX

@SJrX SJrX commented Jun 20, 2026

Copy link
Copy Markdown
Owner

What

Re-lands the 18 validators from batches 3/4/5 that were merged but never actually reached `242.x`.

batch issue PR validators
3/5 #448 #449 private_users, managed_oom_rules, restrict_network_interfaces, bind_network_interface, working_directory, unit_env_file
4/5 #450 #451 iec_size, fq_codel_size, int, job_mode, reboot_parameter, unit_mounts_for
5/5 #452 #453 exec_input, exec_memory_thp, exec_cpu_affinity, syscall_archs, colon_separated_paths, user_group_strv_compat

Why

Batches 1/5 (#444#445) and 2/5 (#446#447) correctly targeted `242.x` and landed. But PRs #449/#451/#453 each targeted the previous feature branch instead of `242.x`:

So although all three were merged, the changes piled up on the `issue-45x` chain and never flowed back to the mainline. As a result `242.x` still only had batches 1 and 2, and the `OptionValueTest` burn-down was failing (390 missing vs 383 allowed).

How

Cherry-picked the three stranded commits onto the current `242.x` tip. Batch 2 was deliberately skipped — its content already exists on `242.x` as the squashed `d2ad9cb` (verified byte-identical), so re-applying it would have duplicated the change. Clean apply, no conflicts.

Verification

`OptionValueTest` burn-down now passes, and the full test suite is green.

(Note: CI here runs on top of `242.x`, which has a separate Gradle 9 build-task bug that prevents `generateDataFromManPages` from running. That fix is intentionally kept in a separate follow-up PR per request, so CI on this PR may be red until that lands.)

🤖 Generated with Claude Code

Steve Ramage and others added 3 commits June 20, 2026 06:17
…etwork_interfaces, bind_network_interface, working_directory, unit_env_file (Resolves #448)

Batch 3/5 of the burn-down extension. Each grammar mirrors the systemd C parser:

- config_parse_private_users (.nspawn): boolean | "pick" | "identity" | uid[:range]
- config_parse_managed_oom_rules: list of filename-safe rule names (string_is_safe STRING_FILENAME)
- config_parse_restrict_network_interfaces: optional ~ + list of ALTERNATIVE-length ifnames
- config_parse_bind_network_interface: single ALTERNATIVE-length ifname (specifier-aware)
- config_parse_working_directory: optional - + (~ | absolute path)
- config_parse_unit_env_file: optional - + absolute path

Alternative-order gotcha (from #447): for private_users, BOOLEAN is placed LAST so its
FlexibleLiteralChoice syntactic regex doesn't greedily match prefixes of "pick"/"identity"
and short-circuit the AlternativeCombinator.

OptionValueTest missing-function count drops 388 -> 382; found-key count rises 1812 -> 1846.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ot_parameter, unit_mounts_for (Resolves #450)

Batch 4/5. Each grammar mirrors the systemd C parser:

- config_parse_iec_size: parse_size IEC byte (existing BYTES grammar)
- config_parse_fq_codel_size (QDISC_KIND_FQ_CODEL): same parse_size shape
- config_parse_int: signed 32-bit integer (DEFINE_PARSER + safe_atoi)
- config_parse_job_mode: enum from job_mode_table (10 entries)
- config_parse_reboot_parameter: printable ASCII length 1..255
- config_parse_unit_mounts_for: whitespace-separated absolute paths (specifier-aware)

OptionValueTest missing-function count drops 382 -> 376; found-key count rises 1846 -> 1870.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ty, syscall_archs, colon_separated_paths, user_group_strv_compat (Resolves #452)

Batch 5/5 — final batch of the burn-down extension. Each grammar mirrors the systemd C parser:

- config_parse_exec_input: fd:NAME | file:/PATH | enum from exec_input_table
- config_parse_exec_memory_thp: inherit/disable/madvise/system enum
- config_parse_exec_cpu_affinity: "numa" OR CPU set list (integers and N-M ranges, whitespace or comma separated)
- config_parse_syscall_archs: list of arch names from seccomp_arch_from_string (~22 entries, includes loongarch64/riscv64 unconditionally)
- config_parse_colon_separated_paths: colon-separated absolute paths (specifier-aware)
- config_parse_user_group_strv_compat: relaxed user/group names, no colon/slash/whitespace, not "."/"..", specifier-aware

OptionValueTest missing-function count drops 376 -> 370; found-key count rises 1870 -> 1900.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Test Results

1 084 tests   1 084 ✅  46s ⏱️
  281 suites      0 💤
  281 files        0 ❌

Results for commit aef8454.

@SJrX SJrX merged commit be96da1 into 242.x Jun 20, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant