Releases: javadh75/systemd-config
Releases · javadh75/systemd-config
Release list
v0.5.0
Added
Merge(base, dropins...)— computes the effective configuration of a
unit combined with its drop-ins per systemd.unit(5): drop-ins apply in
order as if appended, and an empty assignment resets every earlier
occurrence of that option across same-named sections. Duplicate
sections are never collapsed, and inputs are not modified.Unit.Values(section, option)— every occurrence of an option across
all same-named sections, in order of appearance.
v0.4.0
Breaking changes
Deserializenow rejects assignments (or any non-comment text) that
appear before the first section header with
ErrAssignmentOutsideSection, matching systemd. Previously such text
was silently discarded.
Added
Unit.Value(section, option)— one-call lookup that treats duplicate
sections as one merged section with last-assignment-wins semantics,
as systemd does.Unit.String()— the canonical serialized form, implementing
fmt.Stringer.- Testable examples (
ExampleDeserialize,ExampleUnit_Value,
ExampleUnit_WriteTo) rendered on pkg.go.dev. - Real-world fixtures under
testdata/(services, sockets, netdev,
network, mount, timer, daemon configs, drop-ins, CRLF) with golden
round-trips and expected-value tests. - Fuzzing in CI: a 15-second smoke run on every push/PR and a nightly
10-minute run; the fuzzer is now also seeded with every testdata
fixture.
Changed
- The lexer is synchronous: the goroutine/channel pipeline inherited from
go-systemd/unit is gone. This removes a latent goroutine leak on
early-error returns and makesDeserialize~2.2x faster
(63.6µs → 29.3µs, 2000 → 1804 allocs/op on the parser benchmark). go.uber.org/goleak(test-only dependency) now fails the suite if any
test leaks a goroutine.- README: removed the Go Report Card badge (the service is retired) and
updated the usage example toUnit.Value. CI now authenticates codecov
uploads (CODECOV_TOKEN), unsticking the stale coverage badge. - Coverage gate ratcheted from 80% to 90% (the suite sits at ~96%).