Releases: canonical/netplan
Netplan v1.2
Let's celebrate the release of Netplan v1.2! 🐙
Kudos to everybody involved!
Highlights
- Split in
/usr/libexec/netplan/generateandnetplan-configure.servicestages by @slyon in #552- To achive systemd-generator compatibility.
- Allows non standard OVS setups by @crypticC0der in #549
- E.g. for consuming Open vSwitch from a snap.
- Utilize systemd-networkd-wait-online for waiting on DNS servers by @slyon in #535
- As implemented in systemd/systemd#34640.
Releasing v1.2
- meson: Build using Python 3.10 limited API (LP#2050881) by @slyon in #448
- Fail cleanly when systemd-networkd is not installed by @jonathanspw in #555
- Ensure netplan directory creation is idempotent by @Yanovon in #562
- Use OVS from apt before snap when both exist. (LP#2127195) by @crypticC0der in #563
- tests: add integration test for wifi/psk-sha256 by @daniloegea in #534
- tests:wifi: Replace deprecated ISC dhclient & fail properly by @slyon in #541
- test:dbus: avoid dependency on dbus-launch (Closes: #1117099) by @slyon in #560
- ci: enable the TICS workflow scheduled task by @daniloegea in #506
- ci/tics: set the token before trying to download TICS by @daniloegea in #508
- CI: cleanup after v1.1 release by @slyon in #510
- [RFC] CI: Ignore errors off by default by @slyon in #515
- CI: autopkgtest edge cases for slow architectures and without systemd-resolved by @slyon in #550
- CI: adopt to autopkgtest 5.47~24.04.1 by @slyon in #554
- CI: Update rpmbuild to latest Fedora/EPEL spec by @jonathanspw in #556
Documentation
- doc: Fix How-to guides link (LP#2126684) by @slyon in #559
- doc: fix link to 'Set up WSL on Windows' to fix linkcheck CI by @slyon in
#561
Bug fixes
- Fix
netplan tryrevert (LP#2083029) by @MggMuggins in #548 - cli:apply: Ignore udevadm errors triggering devices (LP#2095203) by @MggMuggins in #539
- Fix function prototypes for *_new() functions of parser and state by @JanSoundhouse in #547
- Only create a tempdir when needed by @Cellebyte in #564
New Contributors
- @JanSoundhouse made their first contribution in #547
- @crypticC0der made their first contribution in #549
- @jonathanspw made their first contribution in #556
- @Yanovon made their first contribution in #562
- @Cellebyte made their first contribution in #564
Full Changelog: 1.1.2...1.2
Show all
$ git shortlog 1.1..HEAD
Brandon Casey (4):
parse.c: quiet "may be used uninitialized" warnings/errors
ATTN: networkmanager: add support for "routing-policy"
validation: remove superfluous comparison
ATTN: validation: warn if a priority is not set for a routing-policy
Danilo Egea Gondolfo (30):
ci: enable the TICS workflow scheduled task
ci/tics: set the token before trying to download TICS
cli: drop python-netifaces
apply: don't skip members of bonds on renaming
ci: add ethtool as a netplan.io dependency
parse-nm: account for veth and dummy when checking for virtual types
ovs: quote external-ids and other-config values
meson: enable -Wconversion by default
error.c: fix implicit conversions
netplan.c: fix implicit conversions
util.c: fix implicit conversions
nm.c: fix implicit conversions
openvswitch.c: fix implicit conversions
parse.c: fix implicit conversions
parse-nm.c: fix implicit conversions
sriov.c: fix implicit conversions
util.c: fix implicit conversions
validation.c: fix implicit conversions
ctests: fix implicit conversions
Revert "cli:apply: improve networkd restart logic for non-existent networkd config"
Revert "apply: compare full configuration to decide to restart networkd"
status: fix SSID parsing
cli: set LC_ALL to C.UTF-8
state/Interface: improve netdef ID handling with NetworkManager
state/SSID: handle non-ascii SSIDs
state: get the SSID from NM if it's the backend
wpa_supplicant: add ExecReload to the service unit
networkmanager: add support for stable-ssid MAC option
parse: fix renderer validation for nm-devices
tests: add integration test for wifi/psk-sha256
JanSoundhouse (2):
state.h: add missing void for parameterless function prototype
parse.h: fix parameterless function prototype
Jared Nielsen (1):
ODA #107: Create snippet files for single-sourcing repetitive instructions (#505)
Jonathan Wright (3):
CI: Update rpmbuild to latest Fedora/EPEL spec
cli:utils Fix systemctl_is_installed
cli:status fail cleanly if systemd-networkd is not present
Lukas Märdian (85):
networkd: fix __FUNCTION__ macro and implicit boolean condition
tree-wide: refactoring to avoid Conditionals with Omitted Operands and use proper Boolean conditions
CI: fix 'lxd-ubuntu-lts' naming (after moving it to 24.04/Noble)
tests:integration:base: fix imports, using isort
tests:ethernets: Add comments about MAC->EUI64 transformation and move method to base.py
cli:state: call busctl in favor of dbus-python
test:cli:state: adopt for busctl instead of dbus-python
CI: cleanup after v1.1 release
test:routing:tunnels: Improve vrf/wireguard modprobe check inside containers
tests:ethernets: avoid flaky test_ip6_eui64 results, when statefull DHCPv6 is quicker than stateless EUI-64 address generation
GH: Update pull-request template
CI:tests: Disable NETPLAN_PARSER_IGNORE_ERRORS by default
networkd:openvswitch:sriov: Permissive umask for .service units (LP#2072487)
tests: Adopt for more permissive umask of .service units
doc: Update thread model regarding .service unit permissions
validation: fix comment about WireGuard key length
doc: Add initial 'Cryptography' section
include: fix apidoc warnings about undocumented parameters
CI: Fix fedora:latest (F41) failure
validation: use curly braces for all branches
CI: cleanup spread.yml workflow now that PR#184 is fixed
tests:wifi: use dhcpcd istead of deprecated ISC dhclient
CI: downgrade systemd dependency (wait-online DNS)
tests:wifi: Fail properly, don't indicate 'OK (skipped=all) PASS'
CI: allow wifi test to be skipped
tests:integration: Fix warning about 01-main.yaml permissions
networkd: wait-online wait for DNS servers to be assigned
test:generator: wait-online DNS testing
tests:ethernets: wait-online DNS testing
tests:ethernets: Avoid test failure when systemd-resolved is not active
tests:regressions: Give more time for slow architectures, like riscv64
tests:integration: Avoid race condition with veth MAC addresses.
cli:configmanager: rename _copy_tree() to copy_tree()
CI: adopt to autopkgtest 5.47~24.04.1
CI: keep Fedora RPM compatible with /usr/sbin like RHEL and Ubuntu/Debian
meson: Build using Python 3.10 limited API (LP#2050881)
CI: fix codeql build
RPM: avoid meson upgrade for EL9
doc: Fix How-to guides link (LP#2126684)
test:dbus: avoid dependency on dbus-launch (Closes: #1117099)
doc: fix link to 'Set up WSL on Windows' to fix linkcheck CI
test_args: fix typo in 'interfaces eth99.46'
test:cli_legacy: Avoid permission warnings
configure: Add new binary to produce network service configs
generate: Drop non-sd-generator compliant logic
test:generator: Test sd-generator sandbox
openvswitch: Refactoring into systemd-generator
networkd: Refactor wait-online/sd-networkd for sd-generator
test:sd-generator: check output dirs for OVS and wait-online files
test:sd-generator: Check for WiFi regdom & wpa units
generate: Nothing to do for NM in sd-generator
generate: sriov: test: Refactor SR-IOV for sd-generator
cli:generate: Execute ./generate & ./configure
test:cli_legacy: adopt to new sd-generator
test:parser:base: Adopt for sd-generator (calling ./configure)
test:generator:base+sd-generator: execute ./generate in sandbox and ./configure
test:args: adopt to sd-generator
test:generator:auth: adopt for sd-generator
test:generator:wifis: adopt to sd-generator
configure: Cannot be called as a sd-generator
configure: cli:generate: cleanup legacy --mapping option
cli:apply: adopt for sd-generator by running the 'configure' stage
CI: Install generator-configure stage
sd-generate: fail on missing generato...
Netplan v1.1.2
Releasing v1.1.2
- wifi: add support for wpa-psk-sha256 by @seankingyang #531 (LP#2085320, LP#2084237)
- networkmanager: add support for "routing-policy" by @drafnel #526
Bug fixes
- CI: cleanup spread.yml workflow now that PR#184 is fixed by @slyon #533
- parse: fix renderer validation for nm-devices by @daniloegea #532 (LP#2091755)
- validation: use curly braces for all branches by @slyon
- parse.c: quiet "may be used uninitialized" warnings/errors by @drafnel #527
- CI: Fix fedora:latest (F41) failure by @slyon #527
Documentation
- doc: Add anchor link for deprecated gateway4/6 keys by @MggMuggins #530
Full Changelog: 1.1.1...1.1.2
Netplan v1.1.1
Releasing v1.1.1
- networkmanager: add support for stable-ssid MAC option by @daniloegea #524 (LP#2084234)
- wpa_supplicant: add ExecReload to the service unit by @daniloegea #523
Bug fixes
- Several code cleanup & fixes for TiCS by @slyon #507
- tests: ethernets: Add ipv6-address-generation integration tests by @tatokis #509
- cli: drop python-netifaces by @daniloegea #503 (LP#2065870, LP#2017585)
- parse-nm: account for veth and dummy when checking for virtual types by @daniloegea #513
- Avoid dependency on dbus-python by @slyon #511
- test:routing:tunnels: Improve vrf/wireguard modprobe check inside containers by @slyon #510
- tests:ethernets: avoid flaky test_ip6_eui64 results by @slyon #514
- ovs: quote external-ids and other-config values by @daniloegea #512 (LP#2070318)
- Handle implicity conversions by @daniloegea #496
- Use more permissive umask for .service units by @slyon #516 (LP#2072486)
- Revert "apply: make sure that networkd is restarted when needed" by @daniloegea #518 (LP#2078009)
- Handling encoding issues on netplan status by @daniloegea #521 (LP#2079975)
- include: fix apidoc warnings about undocumented parameters by @slyon
Documentation
- Create snippet files for single-sourcing repetitive instructions by @nielsenjared, @rkratky #505, #107
- doc: Add initial 'Cryptography' section by @slyon #517
Full Changelog: 1.1...1.1.1
Netplan v1.1
Netplan v1.1 is a record-breaking release, counting 17 individual contributors. 🚀
Kudos to everybody involved! ❤️
Highlights
- Custom
systemd-networkd-wait-onlinelogic override to wait for link-local and routable interfaces. (#456, #482) - Modification of the
embedded-switch-modesetting without virtual-function (VF) definitions on SR-IOV devices (#454) - Parser flag to ignore individual, broken configurations, instead of not generating any backend configuration (#412)
- Fixes for @ProtonVPN (#495) and @microsoft Azure Linux (#445), contributed by those companies
Releasing v1.1
- CI: adopt autopkgtest for 1.0-1 on 22.04 by @slyon in #446
- tools/keyfile_to_yaml: display the generated YAML by @daniloegea in #452
- tests: import the config fuzzing tests by @daniloegea in #453
- ATTN: parse/bonds: handle same primary in multiple bonds by @daniloegea in #451
- sriov: accept setting the eswitch mode without VFs (LP#2020409) by @daniloegea in #454
- Custom systemd-networkd-wait-online override to wait on interfaces. (Closes: #1008995) (LP#2060311) by @slyon in #456
- Ignore bad NetDefs and files via parser flags by @daniloegea in #412
- networkd:apply: Drop handling of legacy wpa@ instance units by @slyon in #471
- migrate: support aliases by @Kristof0127 in #473
- networkd: add ipv6 ra overrides (LP#1973222) by @KhooHaoYit in #461
- netplan status --diff fixes and improvements by @daniloegea in #466
- apply: make sure that networkd is restarted when needed by @alfonsosanchezbeato in #449
- Don't escape certain non-ascii characters by @daniloegea in #486
- networkd: make s-n-wait-online wait for at least one routable interface by @slyon in #482
- networkd: Implement ipv6-address-generation: stable-privacy by @tatokis in #480
- Implementing advmss ip route option by @barvius in #489
- meson: Add 'testing' option by @slyon in #493
- Add a scheduled workflow to run TICS by @daniloegea in #498
- ci: migrate to Ubuntu 24.04 by @daniloegea in #465
- Prepare Netplan v1.1 by @slyon in #504
Documentation
- Fix wrong syntax in example by @fzakfeld in #459
- Tutorial improvements by @rkratky in #458
- added guide for contributing to the netplan documentation by @ade555 in #457
- Add initial SECURITY.md policy by @slyon in #478
- Create single-nic-vm-host.md by @ilvipero in #475
- Create single-nic-vm-host-with-vlans.md by @ilvipero in #476
- Create multi-nic-vm-host-with-bonds-and-vlans.md by @ilvipero in #477
- bullet point removal by @shirleyherox in #483
- Add netplan try to netplan tutorial by @davidekete in #494
- Update the docs checks runner to ubuntu-latest by @rkratky in #500
- Add spelling exceptions by @rkratky in #499
Bug fixes
- Fix logging setup when python-rich is not present by @frhuelsz in #445
- parse-nm: add a workaround for the DoT DNS option (LP#2055148) by @daniloegea in #447
- parse: don't remove datalist items during iteration by @daniloegea in #450
- parse: fix redefinition of gateway(4|6) by @daniloegea in #460
- python: elements of all must be strings by @daniloegea in #464
- CI: Fix DebCI check, using newer 'meson' from unstable by @slyon in #467
- tests: fix diff test with iproute2 6.8 by @daniloegea in #469
- cli/generate: skip daemon_reload with --mapping by @daniloegea in #470
- CI: fork spread to get canonical/spread#179 fixes by @slyon in #472
- ctests: fix a memory leak in a unit test by @daniloegea in #474
- nm/nd: fix a couple of crashes by @daniloegea in #468
- test:integration: Try to improve test flakyness (Closes: #1069871) by @slyon in #481
- Security fixes (CVE-2022-4968) by @daniloegea in #484
- emitter: allow unicode characters in the emitter (LP#2071652) by @daniloegea in #485
- CLI:apply: call udevadm trigger, using --action=move (Closes: #1071220) (LP#2066344, LP#2071363) by @slyon in #479
- CI: fix CodeQL permissions by @slyon in #491
- ci: run meson tests with unbuffer by @daniloegea in #501
- ci/tics: install "expect" as a dependency by @daniloegea in #502
- generate: avoid calling 'udevadm control --reload' (LP#1999178) by @slyon in #488
- netplan ignores NetworkManager ipv4.route-metric (LP#2076172) by @calexandru2018 in #495
- Change default umask when creating dirctories (LP#2076319) by @rmalz-c in #497
New Contributors
- @frhuelsz made their first contribution in #445
- @fzakfeld made their first contribution in #459
- @Kristof0127 made their first contribution in #473
- @ade555 made their first contribution in #457
- @KhooHaoYit made their first contribution in #461
- @ilvipero made their first contribution in #475
- @shirleyherox made their first contribution in #483
- @tatokis made their first contribution in #480
- @barvius made their first contribution in #489
- @davidekete made their first contribution in #494
- @calexandru2018 made their first contribution in #495
- @rmalz-c made their first contribution in #497
Full Changelog: 1.0...1.1
Show all
$ git shortlog 1.0..HEAD
Alexandru Cheltuitor (1):
netplan ignores NetworkManager ipv4.route-metric
Alfonso Sánchez-Beato (2):
apply: restart networkd instead of reload/reconfigure
apply: compare full configuration to decide to restart networkd
Cyril Brulebois (1):
Fix manpage title.
Danilo Egea Gondolfo (39):
parse-nm: add a workaround for the DoT DNS option
parse: don't remove datalist items during iteration
tools/keyfile_to_yaml: display the generated YAML
tests: import the config fuzzing tests
sriov: accept setting the eswitch mode without VFs
cli/sriov: refactoring
cli/sriov: set eswitch regardless of pcidev.vfs
parse: fix redefinition of gateway(4|6)
python: elements of __all__ must be strings
parse: introduce parser flags
parse: implement the IGNORE_ERRORS flag
generate: add support for ignoring errors
python/api: add flags getter/setter to Parser
tests: improve coverage with ignore_errors
docs: add a new section about the generator
tests: fix diff test with iproute2 6.8
cli/generate: skip daemon_reload with --mapping
ctests: fix a memory leak in a unit test
nm/nd: fix a couple of crashes
netplan: add getters for gateway4 and gateway6
state_diff: add gateway(4|6) to the routes list
state: use the 'dynamic' field from addr_info
state: add the 'ra' flag to IPv6 addresses
api: add a getter for accept-ra
state_diff: improve analysis of RA/LL addresses
cli/status: fix plain print with --diff
cli: use AF_INET(6) instead of hardcoded values
state: make use of networkd ConfigSource
libnetplan: use more restrictive file permissions
libnetplan: escape control characters
backends: escape file paths
backends: escape semicolons in service units
emitter: allow unicode characters in the emitter
parse: do not ...
1.0.1
Releasing v1.0.1:
- sriov: accept setting the eswitch mode without VFs (LP#2020409) @daniloegea
- cli/sriov: refactoring @daniloegea
- tests: use proper 0o600 file permissions in more places @slyon
- doc: Adding missing 'watchfiles' dependency for Sphinx @rkratky
- doc: Minor fixes in lang. and mark-up in YAML reference @rkratky
- doc: Tutorial reorg & lang. + formatting improvements @rkratky
- networkd: add wait-online enumeration utils @slyon
- generate: enable systemd-networkd-wait-online for non-optional interfaces only @slyon
- CLI:utils: Do not ask for daemon-reload password interactively @slyon
- CLI:generate: call daemon-reload after (re-)generating services @slyon
- wait-online: Do not block on loopback interface @slyon
- generate: Do not touch wait-online, if we don't have any networkd NetDefs @slyon
- wait-online: wait for existing interfaces only and downgrade operational state for interfaces without IP configuration @slyon
- wait-online: account for DHCPv4/v6 addresses @slyon
- wait-online: do not require virtual devices to be created already @slyon
- wait-online: recognize that bridge/bond members will never gain link-local addresses @slyon
- networkd:apply: Drop handling of legacy wpa@ instance units @slyon
- wait-online: disabled wait-online for stable 1.0 @daniloegea
- test:integration: Try to improve test flakyness (Closes: #1069871) @slyon
- autopkgtest: More fixes for flaky 'ethernets' test (Closes: #1069871) @slyon
- Increase some test timeouts to account for slow (riscv64) buildds @slyon
Security fixes:
- libnetplan: use more restrictive file permissions (CVE-2022-4968) @daniloegea
- libnetplan: escape control characters @daniloegea
- backends: escape file paths @daniloegea
- backends: escape semicolons in service units @daniloegea
Bug fixes:
- cli: Fix logging setup when python-rich is not present @frhuelsz
- CI: fix DebCI case for no-change rebuilds @slyon
- CI: adopt autopkgtest for 1.0-1 on 22.04 @slyon
- doc: Update README, move CODE_OF_CONDUCT @slyon
- doc: fix en_GB spelling @slyon
- CI: adopt snapd.patch for autopkgtest SRU (LP#2051939) @slyon
- parse-nm: add a workaround for the DoT DNS option (LP#2055148) @daniloegea
- CI: Install netplan-ci PPA @slyon
- parse: don't remove datalist items during iteration @daniloegea
- ATTN: parse/bonds: handle same primary in multiple bonds (#451) @daniloegea
- parse/bonds: don't fail on primary reassignment @daniloegea
- cli/sriov: set eswitch regardless of pcidev.vfs @daniloegea
- doc: Fix wrong bonds.parameters.mode syntax in example (#459) @fzakfeld
- parse: fix redefinition of gateway(4|6) @daniloegea
- doc:tutorial: fix whitespace formatting @slyon
- util: fix potential NULL pointer assert @slyon
- python: elements of all must be strings @daniloegea
- tests: fix diff test with iproute2 6.8 @daniloegea
- cli/generate: skip daemon_reload with --mapping @daniloegea
- test: cleanup after wait_online test to fix DebCI @slyon
- CI: fork spread to get #179 fixes @slyon
- doc: Fix netplan-generate.md formatting (#483) @shirleyherox
- emitter: allow unicode characters in the emitter (LP#2071652) @daniloegea
- parse: do not escape all non-ascii bytes @daniloegea
Full Changelog: 1.0...1.0.1
1.0
Feb 29, 2024 – A special day for a special release...
Let's celebrate the v1.0 release of Netplan! 🚀
Thanks to everybody who contributed to the project over the years, to reach this milestone!
Highlights
- Simultaneous WPA2 & WPA3 support.
- Introduction of stable
libnetplan1API. - Mellanox VF-LAG support for high performance SR-IOV networking.
- New
hairpinandport-mac-learningsettings, useful for VXLAN tunnels with FRR. - New
netplan status --diffsubcommand, finding differences between configuration and system state:
Releasing v1.0
- state/status: add support for identifying bridge/bond/vrf members by @daniloegea in #420
- Netplan status --diff by @daniloegea in #440
- Netplan state diff by @daniloegea in #386
- parse: allow COMMON_LINK_HANDLERS for VRFs (LP#2031421, Closes: #1049432) by @slyon in #401
- netplan: add support for WPA3-Enterprise (LP#2029876) by @daniloegea in #402
- wifi: support WPA2 and WPA3 Personal simultaneously by @daniloegea in #404
- auth: add support for LEAP and EAP-PWD (LP#2038811) by @daniloegea in #415
- wifi: make it possible to have a psk and an eap password simultaneously by @daniloegea in #416
- Migrate CriticalConnection (deprecated) to KeepConfiguration (LP#1896799) by @chr4 in #424
- apply: bring "lo" back up if it's managed by NM (LP# 2034595) by @daniloegea in #408
- Post 0.107 cleanup & dropping API/ABI compat by @slyon in #400
- ABI: Refactoring for libnetplan.so.1 by @slyon in #434
- Add additional bridge port settings by @chdxD1 in #410
- SR-IOV improvements (VF-LAG support) by @daniloegea in #439
Documentation
- Add spelling checking to the CI by @daniloegea in #417
- doc: libnetplan API reference, using Doxygen and Sphinx.breathe by @slyon in #423
- doc: Update 'Netplan everywhere' for 23.10 by @slyon in #418
- added mii-monitor-interval by @sudo-whodo in #411
- Adopt Docs Starter Pack by @rkratky in #429
- Fix howto docs by @rkratky in #430
- docs: add a topic about security by @daniloegea in #433
- Document and restructure libnetplan's public API symbols by @slyon in #438
- Lang. & formatting fixes in API docs. by @rkratky in #441
- Update examples.md by @sahil-sagwekar2652 in #442
Bug fixes
- GitHub CI fixes by @daniloegea in #405
- util: don't return a placeholder netdef in the iterator by @daniloegea in #406
- tunnels/validation: do not error out if "local" is not defined by @daniloegea in #407
- cli/sriov: remove unused code by @daniloegea in #435
- wireguard: ignore empty endpoints (LP#2038811) by @daniloegea in #414
- parse: improve the parsing of access-points (LP#1809994) by @daniloegea in #413
- tests: Add autopkgtest for LP#1959570 by @slyon in #419
- Fix permissions on folder '/run/NetworkManager/' by @matdug in #422
- parse-nm/wg: append the correct prefix to IPv6 addresses (LP#2046158) by @daniloegea in #428
- ovs: disable StartLimitBurst in the ovs-cleanup service (LP#2047827) by @daniloegea in #431
- ctests: stop including C files in the test files by @daniloegea in #432
- workflow/coverity: install missing dependencies by @daniloegea in #436
- state_diff: fix filtering of host scoped routes by @daniloegea in #426
- sriov: don't generate duplicate entries in the rebind.service file by @daniloegea in #437
- check if ovsdb-server.service is active before displaying warning by @viciousdrop in #421
- parser: accept the special MAC address options (LP#2045096) by @daniloegea in #427
- CI: fix NetworkManager autopkgtest not using deb822 by @slyon in #443
- tests:integration: Be less strict about systemctl daemon-reload (LP#2048388) by @slyon
- Netplan status --diff refactoring by @daniloegea in #444
New Contributors
- @chdxD1 made their first contribution in #410
- @chr4 made their first contribution in #424
- @sudo-whodo made their first contribution in #411
- @matdug made their first contribution in #422
- @rkratky made their first contribution in #429
- @viciousdrop made their first contribution in #421
- @sahil-sagwekar2652 made their first contribution in #442
Full Changelog: 0.107...1.0
Show all
$ git shortlog 0.107..HEAD
Chris Aumann (2):
networkd: fix formatting
networkd: replace deprecated CriticalConnection= by KeepConfiguration=
Christopher (1):
Add additional bridge port settings (#410)
Danilo Egea Gondolfo (64):
netplan: add support for WPA3-Enterprise
CI/Coverity: fetch tags before trying to use them
CI/Autopkgtests: temporally use a patched version of network-manager
wifi: support WPA2 and WPA3 Personal simultaneously
util: don't return a placeholder netdef in the iterator
tunnels/validation: do not error out if "local" is not defined
tests: add some integration tests without the local address
wireguard: ignore empty endpoints
auth: add support for LEAP and EAP-PWD
parse: improve the parsing of access-points (LP: #1809994)
wifi: replace the previously defined AP with the new one
doc: spelling check improvements
CI: add spelling checker step
wifi: make it possible to have a psk and an eap password simultaneously
nm-parse: always read the PSK into the new psk variable
netdef: simplify NetplanRoute __eq__ and __hash__
state_diff: add the new state_diff submodule
state_diff: add the get_diff() method
state_diff: add support for IP addresses analysis
state_diff: add support for nameservers analysis
state_diff: add support for search domains analysis
state_diff: add support for MAC addresses analysis
state_diff: add support for routes analysis
state_diff: add a JSON encoder for NetplanRoutes
state_diff: add more information to the missing_interfaces result
state_diff/get_diff(): return the interfaces sorted by their indices
tools/diff.py: add a temporary tool to test netplan diff
apply: bring "lo" back up if it's managed by NM
apply: don't assume the NM loopback connection is called "lo"
ovs: disable StartLimitBurst in the ovs-cleanup service
ctests: stop including C files in the test files
docs: add a topic about security
workflow/coverity: install missing dependencies
state_diff: fix filtering of host scoped routes
cli/sriov: remove unused code
tests: assert generated .service files in assert_sriov
tests/sriov: test if the generated netplan-rebind service is correct
sriov: don't generate duplicate entries in the rebind.service file
state/status: add support for identifying bridge/bond members
state/status: add support for VRF members and interface kind
state/status: Rename Members to Interfaces
libnetplan: add a get_vrf_link() function
state_diff: add support for bond/bridge/vrf
state_diff: sort the list of IPs in the diff
state_diff: sort routes by destination address
state_diff: do not process interfaces removed from netplan
state_diff: filter out loopback host scoped route
cli/utils: add a function to create a lookup table from iproute2/rt_tables
cli/status: add netplan status --diff
parser: accept special options for MAC address
libnetplan: add a getter for bond mode
sriov: move the udev logic to a service unit
sriov: check the eswitch mode before trying to change it
sriov_rebind: cooperate with VF LAG activation
sriov_rebind: netplan rebind --debug setup
tests/sriov: adapt tests to the last sr-iov related changes
sriov_apply: execute apply --sriov-only before network-pre.target...
0.107.1
Releasing v0.107.1:
- wifi: add support for WPA3-Enterprise (LP: #2029876) by @daniloegea in #402
- wifi: support WPA2 and WPA3 Personal simultaneously by @daniloegea in #404
- added mii-monitor-interval example by @sudo-whodo in #411
- docs: Add "Contribute Documentation" how-to by @slyon
- auth: add support for LEAP and EAP-PWD by @daniloegea in #415
- tests: Add autopkgtest for LP#1959570 by @slyon in #419
- wifi: make it possible to have a psk and an eap password simultaneously by @daniloegea in #416
- doc: Set-up some basic Doxygen project by @slyon in #423
- doc: Make Sphinx to handle autodoxygen project, using breathe by @slyon in #423
- doc: create libnetplan apidoc structure by @slyon in #423
- inc: Start documenting public API by @slyon in #423
- doc: Update 'Netplan everywhere' for 23.10 by @slyon and @rkratky in #418
Bug fixes:
- test:ovs: Avoid NetworkManager taking contol, breaking a test by @slyon
- parse: allow COMMON_LINK_HANDLERS for VRFs by @slyon in #401
- util: don't return a placeholder netdef in the iterator by @daniloegea in #406
- tunnels/validation: do not error out if "local" is not defined by @daniloegea in #407
- tests: add some integration tests without the local address by @daniloegea in #407
- wireguard: ignore empty endpoints (LP#2038811) by @daniloegea in #414
- parse: improve the parsing of access-points (LP: #1809994) by @daniloegea in #413
- wifi: replace the previously defined AP with the new one by @daniloegea in #413
- doc: spelling check improvements by @daniloegea in #417
- Fix permissions on folder '/run/NetworkManager/' by @matdug in #422
- cli:try: avoid linting error for type hints by @slyon in #422
- nm-parse: always read the PSK into the new psk variable by @daniloegea in #416
- networkd: fix formatting by @chr4 in #424
- networkd: replace deprecated CriticalConnection= by KeepConfiguration= by @chr4 in #424
- networkd: move KeepConfiguration= into [Network] section by @slyon
- apply: bring "lo" back up if it's managed by NM by @daniloegea in #408
- apply: don't assume the NM loopback connection is called "lo" by @daniloegea in #408
Full Changelog: 0.107...0.107.1
0.107
Releasing v0.107:
- Support for "dummy" (
dummy-devices) interfaces (LP#1774203) by @daniloegea in #361 - Support for "veth" (
virtual-ethernets) interfaces by @daniloegea in #368 - Add Python bindings for libnetplan by @slyon in #385
- netplan: Handle command exceptions by @daniloegea in #334
- WPA3 (personal) support (LP#2023238) by @daniloegea in #369
- Add all the commands to the bash completion file (LP#1749869) by @daniloegea in #326
- New submodule for state manipulation by @daniloegea in #379
- commands/status: show routes from all routing tables by @daniloegea in #390
- cli:status: Make rich pretty printing optional by @slyon in #388
- libnetplan: expose dhcp4 and dhcp6 properties by @daniloegea in #394
- Expose macaddress and DNS configuration from the netdef by @daniloegea in #395
- libnetplan: expose the routes list in the netdef by @daniloegea in #397
- NetworkManager: Wireguard private key flag support by @daniloegea in #371
- Add a netplan_parser_load_keyfile() Python binding by @daniloegea in #351
- keyfile parser: add support for all tunnel types (LP#2016473) by @daniloegea in #360
- parse-nm:wg: add support for reading the listen-port property by @daniloegea in #372
- parse-nm: add support for VRF devices by @daniloegea in #398
- Vlan keyfile parser support by @daniloegea in #370
- Netplan docs rework by @daniloegea in #333 & #337
- docs: Add a short netplan-everywhere howto by @daniloegea in #325
- doc: make us of sphinx copybutton plugin by @slyon in #354
- doc: Add Ubuntu Code of Conduct 2.0 by @slyon in #355
- doc: Explanation about 00-network-manager-all.yaml by @slyon in #378
Bug fixes:
- Fix FTBFS on Fedora and refresh RPM packaging by @Conan-Kudo in #323
- parser: validate lacp-rate properly (LP#1745648) by @daniloegea in #324
- meson: use meson-make-symlink.sh helper script instead of install_symlink() by @slyon in #327
- netplan: cli: fix typo from 'unkown' to 'unknown' by @AristoChen in #328
- Handle duplication during parser second pass (LP#2007682) by @daniloegea in #329
- parse:ovs: Ignore deprecated OpenFlow1.6 protocol (LP#1963735) by @slyon in #332
- dbus: Build the copy path correctly by @daniloegea in #331
- tests: add new spread based snapd integration test by @mvo5 in #330
- Use controlled execution environment, to avoid failure if PATH is unset (LP#1959570) by @slyon in #336
- Some refactoring by @slyon in #338
- netplan: adjust the maximum buffer size to 1MB by @daniloegea in #340
- parse: use "--" with systemd-escape by @daniloegea in #347
- docs: fix bridge parameters types and add examples by @daniloegea in #346
- vrfs: skip policies parsing if list is NULL (LP#2016427) by @daniloegea in #341
- networkd: plug a memory leak by @daniloegea in #344
- libnetplan: don't try to read from a NULL file by @daniloegea in #342
- nm: return if write_routes() fails by @daniloegea in #345
- parse: plug a memory leak by @daniloegea in #348
- parse: set the backend on nm-devices to NM by default by @daniloegea in #349
- parse: don't point to the wrong node on validation by @daniloegea in #343
- rtd: set the OS and Python versions explicitly by @daniloegea in #357
- Fix 8021x eap method parsing (LP#2016625) by @daniloegea in #358
- CI: update canonical/setup-lxd to v0.1.1 by @barrettj12 in #359
- CI: fix dch after adding the new 0.106.1 tag by @daniloegea in #364
- Provide frequency to wpa_supplicant when in adhoc mode (LP#2020754) by @yevmel in #363
- Improve the coverage of the memory leak tests by @daniloegea in #365
- Fix keyfile parsing of wireguard config when the prefix of allowed IPs is omited by @daniloegea in #366
- routes: fix metric rendering (LP#2023681) by @bengentil in #367
- CI: add DebCI integration test by @slyon in #362
- CI: initial NetworkManager autopkgtests by @slyon in #374
- parse-nm: handle cloned-mac-address special cases (LP#2026230) by @daniloegea in #376
- Improve autopkgtest stability with systemd 253 & iproute 6.4 by @slyon in #377
- Fixes for minor issues by @daniloegea in #380
- tests:integration: Adopt for systemd v254 (Closes: #1041310) by @slyon in #381
- parse: Downgrade NM passthrough warning to debug by @slyon in #384
- netplan.c: Don't drop files with just global values on 'set' (LP#2027584) by @slyon in #382
- Fixing Coverity issues by @daniloegea in #383
- CLI: Refactoring to avoid namespace clash with public bindings by @slyon in #387
- tests: fix test coverage report with newer python-coverage by @daniloegea in #389
- github: add a scheduled action to run Coverity by @daniloegea in #391
- github: only run the coverity workflow on our repository by @daniloegea in #392
- Addressing a few issues found by coverity by @daniloegea in #393
- Wireguard fixes by @daniloegea in #352
- Fix a memory leak, an assert and an error message by @daniloegea in #350
- ovs: don't allow peers with the same name by @daniloegea in #353
- CI: make use of the canonical/setup-lxd action by @slyon in #356
New Contributors
- @AristoChen made their first contribution in #328
- @barrettj12 made their first contribution in #359
- @yevmel made their first contribution in #363
- @bengentil made their first contribution in #367
We would like to thank everybody who contributed to this release! 🍾
Full Changelog: 0.106...0.107
Show all
$ git shortlog 0.106..HEAD
Aristo Chen (1):
netplan: cli: fix typo from 'unkown' to 'unknown'
Benjamin Gentil (2):
routes: fix metric rendering
tests: add metric rendering tests for lp2023681
Danilo Egea Gondolfo (131):
parser: handle duplicated routing rules
parser: Don't add DNS entries duplicates
tests: Don't use duplicated DNS entries
tests: Add tests for the new C functions
parser: Don't duplicate OVS configuration
dbus: Build the copy path correctly
dbus: Use the error set by _copy_yaml_state()
tests: Add some integration tests for DBus
netplan: adjust the maximum buffer size to 1MB
parse: use "--" with systemd-escape
networkd: plug a memory leak
libnetplan: don't try to read from a NULL file
nm: return if write_routes() fails
parse: don't point to the wrong node on validation
validate: drop the YAML node parameter
API: add a binding for netplan_parser_load_keyfile
API: make dump_yaml() accept a StringIO
tests: add a test for the new load_keyfile method
wireguard: plug a memory leak
wireguard: improve an error message
nm: check the passthrough config format
parse: validate NM backend settings usage
ABI: convert NetplanBackendSettings to struct
ovs: don't allow peers with the same name
ovs: replace openvswitch instances by Open vSwitch
rtd: set the OS and Python...
0.106.1
Releasing v0.106.1:
- CI: make use of the canonical/setup-lxd action by @slyon
- Netplan docs rework (Part 2) (#337) by @daniloegea
- Add new spread based snapd integration test by @mvo5
- Netplan docs rework (#333) by @daniloegea
- Add some integration tests for DBus by @daniloegea
- Add all the commands to the bash completion file (LP#1749869) (#326) by @daniloegea
- Add a short netplan-everywhere howto (#325) by @daniloegea
- Add Ubuntu Code of Conduct 2.0 by @slyon
Bug fixes:
- CI: update canonical/setup-lxd to v0.1.1 (#359) by @barrettj12
- parse-nm: fix eap_method handling (LP#2016625) by @daniloegea
- rtd: set the OS and Python versions explicitly by @daniloegea
- ovs: don't allow peers with the same name by @daniloegea
- parse: validate NM backend settings usage by @daniloegea
- nm: check the passthrough config format by @daniloegea
- wireguard: plug a memory leak by @daniloegea
- validate: drop the YAML node parameter by @daniloegea
- parse: don't point to the wrong node on validation by @daniloegea
- parse: set the backend on nm-devices to NM by default (#349) by @daniloegea
- parse: plug a memory leak (#348) by @daniloegea
- nm: return if write_routes() fails by @daniloegea
- libnetplan: don't try to read from a NULL file by @daniloegea
- networkd: plug a memory leak by @daniloegea
- vrfs: skip policies parsing if list is NULL (LP#2016427) (#341) by @daniloegea
- docs: fix bridge parameters types and add examples (#346) by @daniloegea
- parse: use "--" with systemd-escape by @daniloegea
- netplan: adjust the maximum buffer size to 1MB by @daniloegea
- cli:status: improve networkctl parameter passing by @slyon
- cli:test: use 'text' alias instead of 'universal_newlines' by @slyon
- Makefile: fully cleanup coverage data by @slyon
- cli:apply: use shutil.rmtree instead of 'rm -rf' by @slyon
- Use controlled execution environment, to avoid failure if PATH is unset (LP#1959570) (#336) by @slyon
- meson: fix installation of legacy /lib/netplan/generate symlink by @slyon
- spread.yaml: restore /etc/netplan for each test by @mvo5
- dbus: Use the error set by _copy_yaml_state() by @daniloegea
- dbus: Build the copy path correctly (LP#1997467) by @daniloegea
- parse:ovs: Ignore deprecated OpenFlow1.6 protocol (LP#1963735) by @slyon
- parser: Don't duplicate OVS configuration (LP#2007682) by @daniloegea
- tests: Don't use duplicated DNS entries (LP#2007682) by @daniloegea
- parser: Don't add DNS entries duplicates (LP#2007682) by @daniloegea
- parser: handle duplicated routing rules (LP#2007682) by @daniloegea
- netplan: cli: fix typo from 'unkown' to 'unknown' by @AristoChen
- meson: cli:utils: drop legacy generator path, use libexec instead by @slyon
- meson: use meson_make_symlink.sh helper script instead of install_symlink() by @slyon
- parser: demote the new lacp-rate check to warning by @daniloegea
- ATTN: parser: validate lacp-rate properly (LP#1745648) (#324) by @daniloegea
- rpm: Refresh packaging for 0.106 and sync from Fedora by @Conan-Kudo
- meson: Enable finding pycoverage on RPM based distributions by @Conan-Kudo
Full Changelog 0.106...0.106.1
Danilo Egea Gondolfo (36):
meson: build version to 0.106.1
CI: enable Github actions on stable/**
parse-nm: fix eap_method handling
rtd: set the OS and Python versions explicitly
ovs: replace openvswitch instances by Open vSwitch
ovs: don't allow peers with the same name
ABI: convert NetplanBackendSettings to struct
parse: validate NM backend settings usage
nm: check the passthrough config format
wireguard: improve an error message
wireguard: plug a memory leak
validate: drop the YAML node parameter
parse: don't point to the wrong node on validation
parse: set the backend on nm-devices to NM by default (#349)
parse: plug a memory leak (#348)
nm: return if write_routes() fails
libnetplan: don't try to read from a NULL file
networkd: plug a memory leak
vrfs: skip policies parsing if list is NULL (LP: #2016427) (#341)
docs: fix bridge parameters types and add examples (#346)
parse: use "--" with systemd-escape
netplan: adjust the maximum buffer size to 1MB
Netplan docs rework (Part 2) (#337)
Netplan docs rework (#333)
tests: Add some integration tests for DBus
dbus: Use the error set by _copy_yaml_state()
dbus: Build the copy path correctly
parser: Don't duplicate OVS configuration
tests: Add tests for the new C functions
tests: Don't use duplicated DNS entries
parser: Don't add DNS entries duplicates
parser: handle duplicated routing rules
Add all the commands to the bash completion file (LP: #1749869) (#326)
parser: demote the new lacp-rate check to warning
ATTN: parser: validate lacp-rate properly (LP: #1745648) (#324)
docs: Add a short netplan-everywhere howto (#325)
Lukas Märdian (17):
CI: make use of the canonical/setup-lxd action
doc: Add Ubuntu Code of Conduct 2.0
doc: make us of sphinx copybutton plugin
cli:status: improve networkctl parameter passing
cli:test: use 'text' alias instead of 'universal_newlines'
Makefile: fully cleanup coverage data
cli:apply: use shutil.rmtree instead of 'rm -rf'
Use controlled execution environment, to avoid failure if PATH is unset (LP: #1959570) (#336)
meson: fix installation of legacy /lib/netplan/generate symlink
parse:ovs: Ignore deprecated OpenFlow1.6 protocol (LP: #1963735)
meson: cli:utils: drop legacy generator path, use libexec instead
meson: use meson_make_symlink.sh helper script instead of install_symlink()
Revert "meson: use absolute link target for generator symlink"
meson: use absolute link target for generator symlink
Revert "meson: Account for UsrMerged systemd paths"
CI: CodeQL: add cmocka build-deps
CI: CodeQL: add pytest build-deps
Michael Vogt (2):
spread.yaml: restore /etc/netplan for each test
tests: add new spread based snapd integration test
Jordan Mitchell Barrett (1):
CI: update canonical/setup-lxd to v0.1.1 (#359)
Aristo Chen (1):
netplan: cli: fix typo from 'unkown' to 'unknown'
Neal Gompa (3):
rpm: Refresh packaging for 0.106 and sync from Fedora
meson: Account for UsrMerged systemd paths
meson: Enable finding pycoverage on RPM based distributions
0.106
Releasing v0.106:
- New 'netplan status' CLI by @slyon in #290
- API: implement APIs from the new specification by @daniloegea in #298
- Check and fix non-inclusive language by @daniloegea in #303
- Documentation improvements (using Diátaxis & RTD) by @slyon
- Match by PermanentMACAddress by @rlaager in #278
- Netplan api iterator by @daniloegea in #306
- API: update netplan_delete_connection() to avoid spawning another process by @slyon in #322
- NetworkManager 1.40 compat & file permission fixes (LP#1862600, LP#1997348) by @slyon in #300
- Migrate from (deprecated) nose to pytest by @daniloegea in #302
- parse: Add the filepath to OVS ports netdefs by @daniloegea in #295
- Check if the interface name is too long (LP#1988749) by @daniloegea in #313
- doc/examples: remove unnecessary route for IPv6 on-link gateways by @sbraz in #312
- Memory leak CI action by @daniloegea in #321
- tests:base:ethernets: Improve stability of autopkgtests by @slyon in #223
Bug fixes:
- Fix some memory leaks by @daniloegea in #297
- parser: plug a memory leak by @daniloegea in #309
- src:parse: plug memory leaks in nullable handling by @slyon in #319
- Fix 'netplan ip leases' crash (LP#1996941) by @daniloegea in #301
- tests: mock calls to systemctl by @daniloegea in #314
- ctests: fix an integer conversion issue by @daniloegea in #315
- docs: small fix on netplan-set doc by @daniloegea in #316
- parser: return the correct error on failure (LP#2000324) by @daniloegea in #308
- apply: Fix crash when OVS is stopped (LP#1995598) by @daniloegea in #307
- networkd: make sure VXLAN is in the right section (LP#2000713) by @daniloegea in #310
- cli:set: update only specific origin-hint if given (LP#1997467) by @slyon in #299
- vxlan: convert some settings to tristate (LP#2000712) by @daniloegea in #311
- parser: check for route duplicates (LP#2003061) by @daniloegea in #320
New Contributors:
- @daniloegea made their first contribution in #297
- @sbraz made their first contribution in #312
- @rlaager made their first contribution in #278
We would like to thank everybody who contributed to this release! 🍾
Full Changelog: 0.105...0.106
Danilo Egêa Gondolfo (18):
tests: mock calls to systemctl
ctests: fix an integer conversion issue
docs: small fix on netplan-set doc
src: Fix some memory leaks (#297)
Fix a bug in the generate --mapping command (LP: #1996941) (#301)
Migrate from (deprecated) nose to pytest (#302)
API: implement APIs from the new specification (#298)
parse: Add the filepath to OVS ports netdefs (#295)
Netplan api iterator (#306)
parser: plug a memory leak (#309)
parser: return the correct error on failure (LP#2000324) (#308)
apply: Fix crash when OVS is stopped (LP#1995598) (#307)
networkd: make sure VXLAN is in the right section (LP: #2000713) (#310)
Check if the interface name is too long (LP: #1988749) (#313)
Check and fix non-inclusive laguange (#303)
CI: Memory leak action (#321)
vxlan: convert some settings to tristate (LP: #2000712) (#311)
parser: check for route duplicates (LP: #2003061) (#320)
Louis Sautier (1):
doc/examples: remove unnecessary route for IPv6 on-link gateways (#312)
Lukas Märdian (45):
buildsystem: meson fixes
doc: whitespace fixes
doc:README: adopt to default website template and Diataxis navigation ordering
doc: YAML refactor generic topics into explanation, use external links in explanation
doc: integrate manpages as CLI reference
doc: spelling fixes
doc: Improve CLI documentation
doc: Add Netplan D-Bus reference
doc:dbus-config: cross-linking to reference
docs: add code-of-conduct
README: link documentation objectives
CI: upgrade to CodeQL v2
CI: Fix CodeQL build by installing meson on a Jammy runner
doc:netplan-yaml: specify default usage of WPA+WPA2 wifi authentication
doc:routes: fix docs for default route 0.0.0.0/0 vs 0/0 notation
src:parse-nm: add default wakeonlan setting only for ethernet devices
src:netplan:abi_compat: use owner (root) read-only permissions
src:parse: Log a warning on weak .yaml file permissions (LP: #1862600)
cli:apply: fix logger deprecation warning
meson: fix coverage-py-combine race condition (fixup PR #302)
doc: Add Netplan logo
New 'netplan status' CLI (#290)
api:util: rename netplan_error_clear (from _free) & adopt to nullify
ctest:parser: adopt for netplan_error_clear rename
doc:reference: mention YAML spec version and expected file permissions
doc:index: add 'In this documentation' subtitle
doc:index:conf: use grid instead of table, for responsive rendering
doc:index: switch symbolic link, for easier modification through RTD
Add .readthedocs.yaml configuration
readthedocs: add python requirements.txt
generate:util: fix double-slash root filepath
test:cli:set: add regression cases for LP: #1997467
parse: Allow loading nullable origin-hint overrides (netdefs to be ignored)
cli:set: fix origin-hint handling (LP: #1997467)
src:parse:netplan: write global renderer depending on output file
doc:yaml: improve formatting
src:parse: plug memory leaks in nullable handling
meson: give some more time for c coverage output to avoid timeouts
tests:base:ethernets: Improve stability of autopkgtests (#223)
meson: bump to _GNU_SOURCE, avoid explicit __USE_MISC
util: update netplan_delete_connection() API
test:ctest: adopt for netplan_delete_connection API
abi: ignore the glob_t change related to _GNU_SOURCE
abi-compat: bump for 0.106
meson: build version to 0.106
Richard Laager (1):
Match by PermanentMACAddress (#278)
