Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: SJrX/systemdUnitFilePlugin
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 242.x
Choose a base ref
...
head repository: SJrX/systemdUnitFilePlugin
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: issue-450
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 4 commits
  • 49 files changed
  • 3 contributors

Commits on May 23, 2026

  1. feat: add 6 validators - cpu_quota, htb_class_size, delegate, syscall…

    …_errno, address_families, pass_environ (Resolves #446)
    
    Batch 2/5 of the burn-down extension. Each grammar mirrors the systemd C parser:
    
    - config_parse_cpu_quota: parse_permyriad_unbounded, percent form unbounded (200% valid)
    - config_parse_htb_class_size (TCLASS_KIND_HTB): IEC byte size, same shape as tbf_size/fq_size
    - config_parse_delegate: boolean OR whitespace-separated cgroup controller names
    - config_parse_syscall_errno: "kill" OR errno name (E*) OR integer
    - config_parse_address_families: "none" OR optional ~ + list of AF_* names
    - config_parse_pass_environ: list of env var names (specifier-aware)
    
    Note for future validators: when an Alternative contains both a FlexibleLiteralChoiceTerminal
    (like BOOLEAN) and a more specific structured branch, put the structured branch first.
    FlexibleLiteralChoice's syntactic phase accepts any short alphanumeric token in its character
    class, so a single-token input like "cpu" would syntactically pass BOOLEAN and AlternativeCombinator
    would short-circuit before reaching the structured branch.
    
    OptionValueTest missing-function count drops 394 -> 388; found-key count rises 1780 -> 1812.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    Steve Ramage and claude committed May 23, 2026
    Configuration menu
    Copy the full SHA
    3f843b6 View commit details
    Browse the repository at this point in the history
  2. feat: add 6 validators - private_users, managed_oom_rules, restrict_n…

    …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>
    Steve Ramage and claude committed May 23, 2026
    Configuration menu
    Copy the full SHA
    f499f0b View commit details
    Browse the repository at this point in the history
  3. feat: add 6 validators - iec_size, fq_codel_size, int, job_mode, rebo…

    …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>
    Steve Ramage and claude committed May 23, 2026
    Configuration menu
    Copy the full SHA
    d5ac3fb View commit details
    Browse the repository at this point in the history
  4. feat: add 6 validators - exec_input, exec_memory_thp, exec_cpu_affini…

    …ty, syscall_archs, colon_separated_paths, user_group_strv_compat (Resolves #452) (#453)
    
    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: Steve Ramage <gitcommits@sjrx.net>
    Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    3 people authored May 23, 2026
    Configuration menu
    Copy the full SHA
    4e3ec20 View commit details
    Browse the repository at this point in the history
Loading