Skip to content

Releases: canonical/netplan

Netplan v1.1.1

15 Oct 09:03
Compare
Choose a tag to compare

Releasing v1.1.1

Bug fixes

Documentation

Full Changelog: 1.1...1.1.1

Netplan v1.1

14 Aug 10:54
Compare
Choose a tag to compare

Netplan v1.1 is a record-breaking release, counting 17 individual contributors. 🚀
Kudos to everybody involved! ❤️

Highlights

  • Custom systemd-networkd-wait-online logic override to wait for link-local and routable interfaces. (#456, #482)
  • Modification of the embedded-switch-mode setting 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

Documentation

Bug fixes

New Contributors

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 ...
Read more

1.0.1

04 Jul 13:45
Compare
Choose a tag to compare

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:

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

29 Feb 09:40
Compare
Choose a tag to compare
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 libnetplan1 API.
  • Mellanox VF-LAG support for high performance SR-IOV networking.
  • New hairpin and port-mac-learning settings, useful for VXLAN tunnels with FRR.
  • New netplan status --diff subcommand, finding differences between configuration and system state:

Releasing v1.0

Documentation

Bug fixes

New Contributors

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...
Read more

0.107.1

14 Dec 09:51
Compare
Choose a tag to compare

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

17 Aug 15:24
Compare
Choose a tag to compare

Releasing v0.107:

Bug fixes:

New Contributors

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...
Read more

0.106.1

26 May 08:50
Compare
Choose a tag to compare

Releasing v0.106.1:

Bug fixes:

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

09 Feb 08:35
Compare
Choose a tag to compare

Releasing v0.106:

Bug fixes:

New Contributors:

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)

0.105

18 Aug 08:26
Compare
Choose a tag to compare

Releasing v0.105:

  • Add support for VXLAN tunnels (#288), LP#1764716
  • Add support for VRF devices (#285), LP#1773522
  • Add support for InfiniBand (IPoIB) (#283), LP#1848471
  • Allow key configuration for GRE tunnels (#274), LP#1966476
  • Allow setting the regulatory domain (#281), LP#1951586
  • Documentation improvements & restructuring (#287)
  • Add meson build system (#268)
  • Add abigail ABI compatibility checker (#269)
  • Update of Fedora RPM spec (#264)
  • CI improvements (#265, #282)
  • Netplan set uses the consolidated libnetplan YAML parser (#254)
  • Refactor ConfigManager to use the libnetplan YAML parser (#255)
  • New netplan_netdef_get_filepath API (#275)
  • Improve NetworkManager device management logic (#276), LP#1951653

Bug fixes:

We would like to thank everybody who contributed to this release! 🍾
In alphabetical order: @Conan-Kudo @netdever @nicolasbock @ogayot @schopin-pro @slyon @yizhao1

Anthony Timmins (5):
      netplan:parse: handle VRF configuration
      doc: VRF reference & example
      networkd:nm: generate VRF configs
      Handle VXLAN tunnel parsing, validation and YAML
      networkd: VXLAN tunnel rendering

Lukas Märdian (61):
      doc: fix whitespace
      Fix running the autopkgtests, by working around a LXD issue (#265)
      cli:apply: fix potential race with rename/creation of netdevs and start networkd if off (LP: #1962095) (#260)
      tests:ethernets: improve autopkgtest reliability
      Enable building via Meson build system (#268)
      ABI compatibility checker (#269)
      networkd: rename GatewayOnlink= to GatewayOnLink= (#273)
      cli:sriov: fix test coverage for quirk_devices
      Makefile: clean src/_features.h.gch file
      test:integration:base: improve mgmt network stability
      CI: ABI checker ignore-list
      doc: some ABI checker docs + jammy ABI
      Fix infinite timeouts in ovs-vsctl (Closes: #1000137) (#266)
      bindings: make coverage happy
      nm: fix rendering of password for unknown/passthrough WPA types (#279)
      tests:ethernets: fix autopkgtest with alternating default value
      generate: ignore 10-globally-managed-devices.conf if any NM config is given in netplan
      cli: re-apply udev rules (NM_UNMANAGED) if needed
      nm: extend type_str() to return passthrough types
      nm: tests: improve NM manage/ignore logic, using udev matching rules
      tests:base: cleanup udev quirks
      tests:ovs: avoid race condition with DHCP on bridge
      abi_compat: fix coverage warning
      CI: switch GA runners to Ubuntu 22.04
      CI: disable CodeCov, we're checking the coverage locally in GA
      CI: drop Focal 0.104 ABI, we're now using Jammy CI runners
      Add InfiniBand (IPoIB) support (LP: #1848471) (#283)
      Allow setting the regulatory domain (LP: #1951586) (#281)
      doc: fix typo in netplan-apply.md
      CI: fix phased updates
      CI: switch autopkgtest runner to Jammy/22.04
      validation: allow key configuration for [ip6]gre[tap] tunnels
      tests:tunnels: validate key configuration for [ip6]gre[tap]
      doc: improve gre/-tap documentation wrt keys
      tests:tunnels: increase [ip6]gre[tap] autopkgtest coverage
      cli:try: fix typo in 'netplan --config-file=... try' command
      Documentation improvements (Diátaxis) (FR-2276) (#287)
      doc:yaml: markdown formatting fixes
      doc:yaml: markdown syntax fixes
      cli: fix crash on LibNetplanException (#286)
      tests:routing: add VRF integration test
      CI:autopkgtest: Keep correct 'vrf' kernel module available
      parse-nm: detect empty nexthop (i.e. scope: link)
      parse-nm: do not parse search-domains, netplan cannot differentiate IP4 vs IP6
      cli:ip:leases: search for NM's internal DHCP client and dhclient leases (LP: #1979674) (#284)
      parse: generic map multipass processing fixes
      parse: add bridge.aging-time alias
      names: infiniband fixes
      util: add is_multicast_address()
      NetplanFlags handling
      netplan: add YAML_BOOL_TRISTATE helper
      nm: Initial VXLAN support
      doc: add VXLAN docs & examples
      test:tunnels:configmanager: add VXLAN unit tests
      test:tunnels: add VXLAN integration test
      names: improve NAME_FUNCTION input validation
      parse:networkd:nm: make VXLAN link explicit and exclusive to VXLAN tunnels
      meson: version bump
      abi-compat: bump for 0.105
      README: update badges
      rpm: bump version to 0.105

Neal Gompa (ニール・ゴンパ) (1):
      rpm: Update to latest version and resync with Fedora spec (#264)

Nicolas Bock (1):
      Add tristate type for offload options (LP: #1956264) (#270)

Olivier Gayot (1):
      manpages: fix long options rendered with an en-dash instead of two dash

Simon Chopin (30):
      dbus: Remove the upper limit on try timeout (#271)
      netplan: cli: add hidden option --breakpoint for easier debugging
      lib: centralize the IP rule reset into a standalone function
      lib: keep track of all source files for a given state
      parser: add the ability to load a file directly from a FD
      parser: partial support of null fields
      lib: new state function netplan_state_write_yaml_file for partial export
      lib: new state function netplan_state_update_yaml_hierarchy
      lib: helper function to create a yaml patch from a "set expression"
      tests: set: use JSON as a format for complex payloads
      netplan: set: rewrite to use the internal YAML generator
      netplan: libnetplan: remove now-unused netplan_parse function
      libnetplan: bump the XOPEN_SOURCE definition to 700
      lib: utils: new netplan_copy_string function
      !API! lib: netdef: rename filename into filepath
      lib: migrate netplan_netdef_get_id to the new strbuf API scheme
      netplan: expose basic netdef attributes to the Python bindings
      netplan: libnetplan: expose the itf matching data for netdefs
      netplan: bindings: expose State.backend
      netplan: bindings: State: helper method to dump the whole state to the logs
      bindings: State: add baked-in properties to easily iterate over def types
      bindings: NetDef: expose some vlan/sriov-related properties
      tests: configmanager: Fix inconsistencies in test data
      tests:sriov: add a nocover statement for the fallback in driver_mock_open
      netplan: migration configmanager away from PyYAML
      bindings: remove now-unused bindings
      lib: move complex_object_is_dirty to utils with better API
      lib: fix dirtiness tracking for generic integer values
      bindings: add `is_trivial_compound_itf` denoting simple bonds/bridges
      cli: fix detection of custom bridges/bonds in is_revertable

Zhao Yi (1):
      Makefile: fix parallel build failure (#267)

0.104

17 Feb 08:46
3e522b7
Compare
Choose a tag to compare

Releasing v0.104:

  • Enable embedded-switch-mode setting on SmartNICs (#253)
  • Permit multiple patterns for the driver globs in match (#202), LP#1918421
  • Improve routing capabilities (#248), LP#1892272, LP#1805038
  • Support additional link offload options for networkd (#225) (#242), LP#1771740
    • receive-checksum-offload, transmit-checksum-offload, tcp-segmentation-offload,
      tcp6-segmentation-offload, generic-segmentation-offload, generic-receive-offload,
      large-receive-offload
  • Consolidate enum-to-string arrays (#230)
  • Handle differing ip6-privacy default value for NetworkManager (#263)
  • YAML state tracking (--state rootdir) for DBus API and netplan try (#231), LP#1943120
  • Support ConfigureWithoutCarrier (ignore-carrier) for networkd (#215)
  • Move primary git branch master to main
  • Documentation improvements (#226)
  • Compatibility for glib-2.70 (#235)
  • Cleanup Makefile, install only public headers
  • Improve test reliability & enable integration testing CI for autopkgtests
  • Netplan get to use the libnetplan parser (#252)
  • libnetplan:
    • introduce the notion of NetplanState (#232)
    • use an explicit parser context (#233)
    • expose coherent generator APIs (#239)
    • improve overall error handling (#234)
    • consolidation of YAML parsing into the library (#241, #249, #250, #251)
  • Restrict the symbol export to a determined public API (#227)
    • WARNING: We dropped some internal symbols from the API that we know
      have no external consumers (that we are aware of)
    • 0.103: _serialize_yaml, contains_netdef_type, tmp, validate_default_route_consistency
    • 0.102: cur_filename, netplan_netdef_new
    • 0.100: address_option_handlers, is_hostname, validate_ovs_target, wireguard_peer_handlers
    • 0.99: current_file, is_ip4_address, is_ip6_address, missing_id,
      missing_ids_found, parser_error, validate_backend_rules, validate_netdef_grammar,
      yaml_error

Bug fixes:

  • Fix removal of defunct OVS vlan interfaces (#256), LP#1959147
  • Make ConfigManager cleanup on destruction (#259), LP#1959729
  • Do not write unvalidated YAML from keyfile (#247), LP#1952967
  • Disable temporary address generation for real with NetworkManager (#244), LP#1948027
    • this is a slight change in behavior for NM, but is in line with the docs
      and implementation of the networkd backend renderer
  • Ignore empty YAML hints and delete files on set network=null (#246), LP#1946957
  • Wait for 'netplan try' to be ready in DBus API (#245), LP#1949893
  • Initialize self.state in apply (#243), LP#1949104
  • Driver fallback to nl80211 and/or wext for wpa_supplicant (#240), LP#1814012
  • Handle missing gateway in keyfile routes, keep dns-search fallback (#238)
  • Make it possible to unset a whole devtype subtree (#236), LP#1942930
  • Fix normalization of multiple keys on a single dict in tests (#229)
  • Add default-routes feature flag
  • Fix memory leaks, dangling pointers & overall cleanup of API data (#228)
  • Small whitespace and formatting fixes & shipping EditorConfig (#224)

We would like to thank everybody who contributed to this release! 🍾
In alphabetical order: @Caligatio @kees @kjetilho @mwhudson @nicolasbock @n-cc @peleroux @schopin-pro @slyon @waveform80

Brian Turek (2):
      Have ConfigManager cleanup its temporary directory on destruction (LP #1959729) (#259)
      Fix removal of defunct vlan interfaces (LP #1959147) (#256)

Dave Jones (1):
      Permit multiple patterns for the driver globs in match (LP: #1918421) (#202)

Kees Cook (1):
      networkd:wpa_supplicant: driver fallback to nl80211 and/or wext (LP: #1814012) (#240)

Kjetil Torgrim Homme (1):
      clarify requirements for a link local route (#226)

Lukas Märdian (34):
      parse-nm: fix 32bit format string
      parse: cleaup whitespace
      GH actions: migrate master -> main
      parse: add 'default-routes' feature-flag
      Implement YAML state tracking and use it in the DBus API and netplan-try (LP: #1943120) (FR-1745) (#231)
      parse-nm: Handle missing gateway in keyfile routes, keep dns-search fallback (#238)
      cli:apply: initialize self.state (LP: #1949104) (#243)
      Makefile: 'which' is deprecated
      tests:regressions: make netplan_try autopkgtest more reliable
      generate:dbus:util: glib 2.70 compat (#235)
      doc: fix WireGuard writing
      Makefile: fix warning about pandoc title
      test:bridge:base: give bridge some more time to reach 'state UP'
      dbus: wait for 'netplan try' to be ready (LP: #1949893) (#245)
      get/set: ignore empty YAML hints and delete files on "set network=null" (LP: #1946957) (#246)
      Add basic integration test (autopkgtest) GA workflow
      keyfile: do not try to write out unvalidated YAML (LP: #1952967) (#247)
      Improve routing capabilities (LP: #1892272) (LP: #1805038) (#248)
      util: fix dump_yaml_subtree to not insert NULL at the actual end (#258)
      test:sriov: virtfns should be starting at index 0
      test:sriov: update _prepare_sysfs_dir_structure() to make it create PF/VF mocks dynamically
      doc: add sriov eswitch mode field descriptions
      parse:netplan: handle 'embedded-switch-mode' & 'delay-virtual-functions-rebind'
      cli:sriov: Allow setting of eswitch mode on SmartNICs
      test:sriov: fix tests when using libnetplan parser
      test:sriov: add get_pci_slot_name & PCIDevice unit tests
      test:sriov: add eswitch_mode test
      cli: add sriov rebind method
      sriov: generate rebind systemd service if needed
      tests:integration:ethernets: improve eth_dhcp6_off stability
      Drop unused legacy/compat API (#262)
      doc: avoid super long line in netplan-dbus.md
      Makefile: install public headers only
      nm:parse-nm: handle differing ip6-privacy default value (#263)

Michael Hudson-Doyle (1):
      Fix ethernets test with network-manage 1.32.10

Nicolas Bock (3):
      Add `.editorconfig` for convenience (#224)
      Add support for additional `Link` options (#225) (LP: #1771740)
      Reset offload options (#242)

Simon Chopin (18):
      NetDefinition: ownership and cleanup (FR-786) (#228)
      tests: normalize multiple keys on a single dict (#229)
      lib: unify how constant names are exposed and used (#230)
      API/ABI: restrict the symbol export to a determined public API (#227)
      netplan: set: make it possible to unset a whole devtype subtree (LP: #1942930) (FR-1685) (#236)
      lib: introduce the notion of NetplanState (#232)
      parser: fix some error handling code (#234)
      libnetplan: expose coherent generator APIs (#239)
      lib: use an explicit parser context (#233)
      Consolidate the YAML parsing into libnetplan: low-hanging fruits (FR-702) (#241)
      YAML consolidation prelude: OVS handling (FR-702) (#249)
      YAML consolidation prelude: High-level libnetplan bindings (FR-702) (#250)
      YAML consolidation prelude: new YAML dump APIs (FR-702) (#251)
      lib:parser: use a more flexible structure for the mapping handlers
      lib:parser: track which fields are dirty
      lib:netplan: output all the dirty fields in the YAML dump
      netplan:cli:get: remove the PyYAML dependency
      parse: fix the handle_match_driver type

ncc (1):
      Add support for networkd ConfigureWithoutCarrier (ignore-carrier) option on interfaces (#215)

peleroux (1):
      Disable temporary address generation when renderer is NetworkManager (LP: #1948027) – change in behavior (#244)