 2026- 7- 28 Daniel P. Berrangé <berrange@redhat.com>
    
    Use lowercase types for collection types
    The uppercase aliases were deprecated since Py 3.9
    
    https://docs.python.org/3/library/typing.html#deprecated-aliases
    
    
    
 2026- 7- 28 Daniel P. Berrangé <berrange@redhat.com>
    
    ci: refresh with lcitool manifest
    This replaces OpenSUSE 15 with 16, since 15.6 is now end of life
    
    
    
 2026- 7- 28 Daniel P. Berrangé <berrange@redhat.com>
    
    Remove redundant return type annotation
    The _timer() method does not return any value, so declaring its
    return type is incorrect.
    
    
    
 2026- 7- 28 Daniel P. Berrangé <berrange@redhat.com>
    
    Use qualified classname for types in libvirt_qemu/libvirt_lxc
    We must use "libvirt.virDomain" in the type annotation, not a plain
    "virDomain".
    
    
    
 2026- 7- 28 Daniel P. Berrangé <berrange@redhat.com>
    
    Check for stream 'cb' attribute existance
    Instead of accessing self.cb and catching the exception when it does not
    exist, check for it upfront, which makes mypy happier.
    
    
    
 2026- 7- 28 Daniel P. Berrangé <berrange@redhat.com>
    
    Fix type for multi-valued return
    
    
 2026- 7- 28 Daniel P. Berrangé <berrange@redhat.com>
    
    Stop scoping the domain event callback type
    This leads to incompatible types between the register and deregister
    methods:
    
    "Callable[[virConnect, virDomain, int, int, _T@domainEventDeregister], int | None]"
    "Callable[[virConnect, virDomain, int, int, _T@domainEventRegister], int | None]"
    
    
    
 2026- 7- 28 Daniel P. Berrangé <berrange@redhat.com>
    
    Use Optiona[..] type annotation for all params with default values
    If a parameter has a default value assigned then by definition it is
    an optional parameter, and the type must reflect that.
    
    
    
 2026- 7- 28 Daniel P. Berrangé <berrange@redhat.com>
    
    Use 'bytes' not 'str' for 'unsigned char *' parameters
    Such parameters are all byte arrays, not NUL terminated C strings.
    
    
    
 2026- 7- 28 Daniel P. Berrangé <berrange@redhat.com>
    
    Fix override type for virNodeListDevices 'caps' parameter
    The 'caps' parameter is a string capability name, not a set of
    bytes.
    
    
    
 2026- 7- 20 Radoslaw Smigielski <rsmigiel@redhat.com>
    
    tests: add comprehensive domain configuration tests
    Add few new tests in test_domain_config.py covering domain attributes,
    autostart, scheduler parameters, memory, vCPUs, block/network stats,
    CPU stats, suspend/resume, metadata, blkio and NUMA parameters.
    
    
    
 2026- 7- 10 Radoslaw Smigielski <rsmigiel@redhat.com>
    
    tests: add few new tests for domain lifecycle operations
    Add new test file test_domain_lifecycle.py with 30 functional tests
    covering domain lifecycle operations. This significantly expands test
    coverage beyond the existing 2 basic tests in test_domain.py.
    
    All new tests use the test:///default driver.
    
    These tests verify that Python bindings work correctly with various
    parameters and edge cases, not only that the bindings exist.
    
    
    
 2026- 7- 9 Radoslaw Smigielski <rsmigiel@redhat.com>
    
    tests: run tox tests in parallel
    Use `tox run-parallel` instead of `tox` in the test target so all
    Python versions are exercised concurrently.
    And significantly reduces tox execution time.
    
    
    
 2026- 7- 8 Radoslaw Smigielski <rsmigiel@redhat.com>
    
    docs: add explicit install instructions for pytest and tox in README
    Add dnf and pip install commands for both pytest and tox to the testing
    section of the README, making it clear how to obtain the required tools
    before running the test suite.
    
    
    
 2026- 7- 8 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 12.6.0
    
    
 2026- 7- 8 Radoslaw Smigielski <rsmigiel@redhat.com>
    
    python: Add support for free-threaded no-GIL CPython
    This is an initial commit to add support for:
    - Python 3.13 (python3.13t)
    - Python 3.14 (python3.14t)
    
    Both python3.13t and python3.14t do not support the Stable C API,
    so the only way to get libvirt-python working with no-GIL Python
    is to fall back to the Python Unstable C API. This is the approach
    taken in this change.
    
    As the Python community plans to add Stable C API support in Python
    3.15+, we can switch back to it from 3.15 onwards. However, for
    3.13 and 3.14, we must use the Unstable C API.
    (Ref: https://docs.python.org/3/c-api/unstable.html)
    
    Following PEP 703 (https://peps.python.org/pep-0703/):
    
    1. Add dedicated tox envs: py313t, py314t.
    2. Create dedicated env configurations for new environments.
    This forces no-GIL execution in case any dependency tries to
    silently turn the GIL back on.
    
    [testenv:py313t] with basepython = python3.13t
    [testenv:py314t] with basepython = python3.14t
    
    3. Explicitly use the free-threaded interpreters and only set
    PYTHON_GIL=0 inside the virtualenv.
    4. Add documentation warning against exporting PYTHON_GIL=0 in the
    shell before running tox. Doing so affects the Python instance
    that launches tox itself, not just the test venv.
    
    Fixes: https://gitlab.com/libvirt/libvirt-python/-/work_items/22
    
    
 2026- 7- 3 Radoslaw Smigielski <rsmigiel@redhat.com>
    
    tests: add Python 3.14 to tox test environments
    Add py314 to the envlist to support testing with Python 3.14.
    
    
    
 2026- 7- 2 Radoslaw Smigielski <rsmigiel@redhat.com>
    
    docs: clarify build and test dependencies in README
    Add missing installation instructions for required dependencies:
    
    - Document that the Python 'build' module must be installed before
    running 'python3 -m build', with examples using both dnf and pip
    - Add instruction to install test dependencies from requirements-test.txt
    before running pytest or tox
    
    These additions help new contributors avoid common setup errors when
    building and testing the libvirt Python bindings.
    
    
    
 2026- 6- 9 Michal Privoznik <mprivozn@redhat.com>
    
    Add support for virDomainAnnounceInterface() API
    
    
 2026- 6- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 12.5.0
    
    
 2026- 5- 25 Michal Privoznik <mprivozn@redhat.com>
    
    Add support for domain channel lifecycle event
    
    
 2026- 5- 14 Michal Privoznik <mprivozn@redhat.com>
    
    Add support for domain vCPU removed event
    
    
 2026- 5- 11 Takashi Kajinami <kajinamit@oss.nttdata.com>
    
    ci: regenerate with 'lcitool manifest'
    - Drop Fedora 42, add Fedora 44
    - Drop Ubuntu 22.04, add Ubuntu 26.04
    - Add Debian 13
    
    
    
 2026- 5- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 12.4.0
    
    
 2026- 4- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 12.3.0
    
    
 2026- 3- 25 Ben "535" Blank <ben.blank@gmail.com>
    
    Emit type hints for function parameters and return values in most places.
    
    
 2026- 3- 18 Takashi Kajinami <kajinamit@oss.nttdata.com>
    
    Add CentOS Stream 10 job
    CentOS Stream 10 was released some time ago. Let's add test coverage
    with it.
    
    The new jobs still allow failures but may be required in the future.
    
    
    
 2026- 3- 5 Takashi Kajinami <kajinamit@oss.nttdata.com>
    
    Fix outedated requirements-test.txt
    nose was replaced by pytest long ago.
    
    Update tox.ini to use the file to maintain test requirements in
    a single place.
    
    
    
 2026- 3- 3 Daniel P. Berrangé <berrange@redhat.com>
    
    ensure Python.h is the first include file
    Builds with -Werror fail with glibc 2.44 dev snapshots:
    
    In file included from /usr/include/python3.14/pyconfig.h:6,
    from /usr/include/python3.14/Python.h:14,
    from d.c:2:
    /usr/include/python3.14/pyconfig-64.h:2007:9: warning: ‘_POSIX_C_SOURCE’ redefined
    2007 | #define _POSIX_C_SOURCE 200809L
    |         ^~~~~~~~~~~~~~~
    In file included from /usr/include/bits/libc-header-start.h:33,
    from /usr/include/stdlib.h:26,
    from d.c:1:
    /usr/include/features.h:319:10: note: this is the location of the previous definition
    319 | # define _POSIX_C_SOURCE        202405L
    |          ^~~~~~~~~~~~~~~
    
    The required solution is to include Python.h first, so that it owns
    the definition of _POSIX_C_SOURCE, and thus glibc won't try to set
    a default value
    
    See also: https://bugzilla.redhat.com/show_bug.cgi?id=2416110
    
    
 2026- 3- 2 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 12.2.0
    
    
 2026- 1- 29 Daniel P. Berrangé <berrange@redhat.com>
    
    rpm: remove extraneous license tag
    When converting to SPDX expressions, we failed to notice the second
    License tag in the spec file. Since this was identical to the primary
    tag, it was redundant and should just be removed.
    
    Reported-by: Miroslav Suchý <msuchy@redhat.com>
    
    
 2026- 1- 19 Peter Krempa <pkrempa@redhat.com>
    
    virDomainSaveParams: Add missing typed parameter conversion hints
    Add the missing hints for:
    - VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT
    - VIR_DOMAIN_SAVE_PARAM_PARALLEL_CHANNELS
    
    The latter of the above is important as the default conversion of
    numbers is to 'ulong' if a hint is missing but the parallel channel
    counts is accepted as 'int' by libvirt.
    
    
    
 2026- 1- 15 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 12.1.0
    
    
 2025- 12- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 12.0.0
    
    
 2025- 11- 21 Michal Privoznik <mprivozn@redhat.com>
    
    ci: refresh with 'lcitool manifest'
    This drops Fedora 41 and introduces Fedora 43.
    
    
    
 2025- 11- 3 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 11.10.0
    
    
 2025- 10- 6 Michal Privoznik <mprivozn@redhat.com>
    
    ci: refresh with 'lcitool manifest'
    This drops Fedora 40 and introduces Fedora 42 and drops
    deprecated setting of env vars in dockerfiles.
    
    
    
 2025- 10- 2 Marc Hartmayer <mhartmay@linux.ibm.com>
    
    examples/consolecallback.py: Use hex-encoding for `^]`
    Use hex encoding for ^] to prevent potential rendering issues in web browsers
    when viewing the file on GitLab.
    
    While at it, make the file an executable as a Shebang line is present.
    
    Suggested-by: Dawson Rosell <dawson.rosell@ibm.com>
    Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
    
    
 2025- 10- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 11.9.0
    
    
 2025- 9- 11 Jiri Denemark <jdenemar@redhat.com>
    
    spec: Set dist_name when creating a distribution tarball
    When a distribution tarball is created (python3 -m build -n -s) the
    dist_name in the spec file included in that tarball must match the
    actual tarball name. The tarball name depends on the setuptools version
    used to create it rather than on the version of setuptools installed on
    the system RPMs are built.
    
    Fixes: ed8ab5075d9190fdcd2894412d2127ac2a1d9535
    Reported-by: Daniel P. Berrangé <berrange@redhat.com>
    
    
 2025- 9- 11 Jiri Denemark <jdenemar@redhat.com>
    
    setup.py: Add support for multiple replacements in *.in
    
    
 2025- 9- 10 Jiri Denemark <jdenemar@redhat.com>
    
    build: Adapt to PEP 625 distribution file naming
    The version of setuptools shipped by Fedora 42 is PEP 625 compliant,
    which requires distribution files to contain a normalized package name.
    Thus the generated tarball is called libvirt_python-$VER.tar.gz rather
    than libvirt-python-$VER.tar.gz created by older setuptools. The source
    directory inside the tarball follows the same naming.
    
    Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
    
    
 2025- 9- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 11.8.0
    
    
 2025- 8- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 11.7.0
    
    
 2025- 7- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 11.6.0
    
    
 2025- 6- 2 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 11.5.0
    
    
 2025- 5- 27 Ariel Otilibili <otilibil@eurecom.fr>
    
    examples/topology: define socketIds and siblingsIds as sets
    socketIds and siblingsIds are declared as empty lists, filled by
    list comprehensions, and later on re-used as sets.
    
    They could be directly obtained from set comprehensions.
    
    Fixes: 34aa32b ("Move python example programs into python/examples/ subdirectory")
    Fixes: 3f4e32c ("examples: Invoke print("...") instead of print "..."")
    Link: https://docs.python.org/3/tutorial/datastructures.html#sets
    Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
    
    
 2025- 5- 21 Lukas Billy <lbilly@redhat.com>
    
    generator.py: Fix hardcoded build directory
    This patch changes the hard-coded directory, so it is now possible to have custom name directory.
    
    
 2025- 5- 5 Michal Privoznik <mprivozn@redhat.com>
    
    setup.cfg: Remove Licence classifier
    Per latest setuptools recommendation [1], it's not recommended to
    specify license in `classifiers`. Move it to `license`.
    
    1: https://github.com/pypa/setuptools/commit/346bf17e0cc8fc6e8b0ea3e6dafa3af91009da6d
    
    
 2025- 5- 2 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 11.4.0
    
    
 2025- 4- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 11.3.0
    
    
 2025- 3- 26 SuhailAhmedVelorum <suhailahmedvelorum@gmail.com>
    
    Fixed minor typo in libvirt-override.py::openAuth TODO item
    
    
 2025- 3- 25 Michal Privoznik <mprivozn@redhat.com>
    
    Add support for domain NIC MAC address change event
    
    
 2025- 3- 21 Michal Privoznik <mprivozn@redhat.com>
    
    override: domain: Implement override for virDomainSetThrottleGroup()
    The bindings generator can't generate proper bindings for
    virDomainSetThrottleGroup() (because of typed parameters in the
    arguments) so implement it manually.
    
    
    
 2025- 3- 21 Michal Privoznik <mprivozn@redhat.com>
    
    override: domain: Implement override for virDomainGetAutostartOnce()
    The bindings generator can't generate proper bindings for
    virDomainGetAutostartOnce() (because of int* in the arguments) so
    implement it manually.
    
    
    
 2025- 3- 21 Michal Privoznik <mprivozn@redhat.com>
    
    Modernize typed parameter fetching in libvirt_virDomainSetBlockIoTune()
    Instead of fetching supported tunables and passing only those to
    the API (effectively ignoring unsupported ones), pass all
    tunables or error out on unsupported ones.
    
    
    
 2025- 3- 3 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 11.2.0
    
    
 2025- 2- 17 Pavel Hrdina <phrdina@redhat.com>
    
    ci: refresh with 'lcitool manifest'
    
    
 2025- 1- 15 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 11.1.0
    
    
 2024- 12- 2 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 11.0.0
    
    
 2024- 11- 18 Daniel P. Berrangé <berrange@redhat.com>
    
    ci: refresh with 'lcitool manifest'
    Notable changes
    
    * openSUSE Leap updated to 15.6
    * Switch to URLs for referencing projects in manifest
    
    
    
 2024- 11- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 10.10.0
    
    
 2024- 10- 22 Ariel Otilibili <otilibil@eurecom.fr>
    
    tox.ini: bumped Python
    Removed 3.8, added 3.13 [1].
    
    [1] https://devguide.python.org/versions/
    
    
    
 2024- 10- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 10.9.0
    
    
 2024- 9- 2 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 10.8.0
    
    
 2024- 8- 8 Ariel Otilibili <otilibil@eurecom.fr>
    
    example/domstart.py: Removed useless brackets for tuple unpacking
    
    
 2024- 8- 8 Ariel Otilibili <otilibil@eurecom.fr>
    
    tox.ini: Bumped environment list for Python
    * aligned list with supported Python versions [1]
    * as of today, supported versions are 3.8 to 3.12
    
    https://devguide.python.org/versions/
    
    
    
 2024- 8- 8 Ariel Otilibili <otilibil@eurecom.fr>
    
    Makefile: `make check` now computes env variable on the fly
    * env variable used to be Python3.6
    * Python3.6 is end of life since December 2021 [1].
    
    [1] https://devguide.python.org/versions/
    
    
    
 2024- 8- 5 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 10.7.0
    
    
 2024- 7- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 10.6.0
    
    
 2024- 6- 11 Konstantin Khorenko <khorenko@virtuozzo.com>
    
    examples/nodestat: Show memory pinning information again
    Resurrect the logic after it has been occasionally broken during fixing
    the syntax complains from python.
    
    Fixes: c588ba9 ("examples/nodestat: Fix None comparison")
    
    
    
 2024- 6- 3 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 10.5.0
    
    
 2024- 5- 2 Michal Privoznik <mprivozn@redhat.com>
    
    ci: Drop CentOS 8 Stream and switch F38 to 40, Ubuntu 20.04 to 22.04
    There a lot happening here, but that's because otherwise lcitool
    fails to regenerate files. Firstly, CentOS 8 is dropped as it's
    unsupported now. Secondly, Fedora 40 is introduced and Fedora 38
    is dropped. And lastly, Ubuntu 24.04 is introduced and Ubuntu
    20.04 is dropped.
    
    
    
 2024- 5- 2 Michal Privoznik <mprivozn@redhat.com>
    
    test_aio.py: Fix skip message
    There are two unit tests in test_aio.py that are skipped if
    Python is too new (3.10 or newer). But the message printed when
    they are skipped mentions just 3.10 which is confusing. Change it
    to "3.10+".
    
    
    
 2024- 5- 2 Michal Privoznik <mprivozn@redhat.com>
    
    Switch to PyMODINIT_FUNC annotation
    Instead of doing some 'extern ...' declaration magic to force
    proper PyInit_libvirtmod*() symbol exposure in resulting .so we
    can use what Python already offers - PyMODINIT_FUNC macro and
    call it a day.
    
    
    
 2024- 5- 2 Michal Privoznik <mprivozn@redhat.com>
    
    generator.py: Drop build/ prefix from #include
    When -Ibuild flag is passed to compiler then build/ can be dropped
    from includes. This is safe to do, because the prefix is only on
    local includes (#include "") not system ones (#include <>).
    
    
    
 2024- 5- 2 Michal Privoznik <mprivozn@redhat.com>
    
    generator.py: Switch from ${module}-export.c to ${module}-export.c.inc
    The generator.py generates a (per module) table of functions it
    generated code for and stores it in ${module}-export.c file. The
    file is then #include-d in corresponding override.c in the table
    of all methods implemented in the module.
    
    Now, problem is with naming of the file because the ".c" suffix
    might suggest the file needs to be compiled. Well, it doesn't.
    It's way closer to being a header file, so change the suffix to
    ".c.inc".
    
    
    
 2024- 5- 2 Michal Privoznik <mprivozn@redhat.com>
    
    generator.py: Allow source and build dirs override
    Soon generator.py is going to be ran from a build directory which
    is different than the source directory. Allow specifying these
    directories on the cmd line.
    
    And while at it, introduce new "c+py" output mode in which both C
    and Python files are generated. While this is a fallback mode if
    no output mode is selected, we need this new mode so that
    aforementioned directories can be specified.
    
    
    
 2024- 5- 2 Michal Privoznik <mprivozn@redhat.com>
    
    setup.py: s/PY_VERSION/VERSION/
    When generating spec file, @PY_VERSION@ is replaced with the
    current version of libvirt-python. Well, it's not as obvious as
    it could be: usually it's just @VERSION@. Worse, the PY_ prefix
    may mislead readers into thinking it refers to python version.
    
    Just drop the PY_ prefix.
    
    
    
 2024- 5- 2 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 10.4.0
    
    
 2024- 5- 1 Jelle van der Waa <jvanderwaa@redhat.com>
    
    examples: replace logging.warn with logging.warning
    logging.warn is an alias to logging.warning since Python 3.3 and will be
    removed in Python 3.13.
    
    
    
 2024- 4- 30 Daniel P. Berrangé <berrange@redhat.com>
    
    gitlab: stop using a venv when creating source/binary dist
    The change to use 'python -m build' in
    
    commit 333c8bef2bcca5ca7dbcdb5861a385d626e0feb9
    Author: Erik Skultety <eskultet@redhat.com>
    Date:   Tue Jun 20 12:19:40 2023 +0200
    
    ci: Drop direct 'setup.py' usage
    
    resulted in the CI jobs all downloading latest setuptools and
    deps from pypi and running builds with them in a venv. IOW we
    ceased testing against the setuptools/wheel packages provided
    by the distro, which is the whole point of the CI.
    
    Passing the '-n -x' flags to 'python -m build' tells it to stop
    using a venv and not to check dependancies, thus letting it
    use what we pre-installed in the container.
    
    This doesn't work on CentOS Stream 8, however, so we revert to
    using the old setup.py approach. This is a short term issue,
    since Stream 8 is EOL at the end of May, so we'll be deleting
    all the Stream 8 jobs across libvirt CI very soon.
    
    
    
 2024- 4- 25 Daniel P. Berrangé <berrange@redhat.com>
    
    ci: refresh with lcitool manifest
    This pulls in the new wheel packages.
    
    
    
 2024- 4- 25 Daniel P. Berrangé <berrange@redhat.com>
    
    ci: add 'python3-wheel' as a dep
    The 'python -m build' command creates a source dist and a binary
    wheel. To be able run this command without creating a new venv
    and downloading from pypi, we need to pre-install the 'wheel'
    package.
    
    
    
 2024- 4- 25 Daniel P. Berrangé <berrange@redhat.com>
    
    ci: refresh with latest lcitool manifest
    Fixes logic that caused some jobs to mistakenly not be run
    when expected.
    
    
    
 2024- 4- 2 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 10.3.0
    
    
 2024- 3- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 10.2.0
    
    
 2024- 2- 27 Michal Privoznik <mprivozn@redhat.com>
    
    ci: Switch native_git_build_job to c9s and resume api_coverage_job
    Currently, there's just one native_git_build_job -
    x86_64-centos-stream-8-git and this is a problem because that's
    the job that api_coverage_job then uses. But CentOS Stream 8 has
    too old lxml which then makes tests/test_api_coverage.py skip its
    run. By switching to CentOS Stream 9 the test can run happily
    again.
    
    
    
 2024- 2- 27 Michal Privoznik <mprivozn@redhat.com>
    
    test_api_coverage: Reflect different naming in python for virDomainFDAssociate() and virDomainRestoreParams()
    While virDomainRestoreParams() has 'virDomain' prefix (and thus
    is put into Domain class), it is really in the same family as
    virDomainRestore() or virDomainRestoreFlags() -> it acts upon
    virConnect object and thus belongs into Connect class.
    
    Then, virDomainFDAssociate is exposed as Domain.FDAssociate() but
    because of the way we would generate the method's name
    (fDAssociate) the test thinks it's not implemented.
    
    
    
 2024- 2- 20 Vincent Vanlaer <libvirt-e6954efa@volkihar.be>
    
    Fix memory leak in virStreamRecvFlags
    virStreamRecvFlags allocates a temporary buffer to store the received
    stream data in. This buffer was not freed on returns other than the
    normal return with data.
    
    
    
 2024- 1- 19 Daniel P. Berrangé <berrange@redhat.com>
    
    ci: refresh with latest 'lcitool manifest'
    This refresh gets rid of the split jobs for prebuilt and local
    container environments.
    
    
    
 2024- 1- 15 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 10.1.0
    
    
 2024- 1- 8 Peter Krempa <pkrempa@redhat.com>
    
    ci: Install built module for testing insde an venv
    Distros recently started to object to using 'pip' to install system-wide
    packages to prevent breakage. We were hacking-around that by using
    'pip install --break-system-packages', but it's straightforward to
    simply create a venv with '--system-site-packages' and install it there.
    
    
    
 2024- 1- 8 Peter Krempa <pkrempa@redhat.com>
    
    ci: Update Fedora and Debian versions and regenerate
    Update:
    Debian-10 -> Debian-12
    Fedora-37 -> Fedora-38
    Fedora-38 -> Fedora-39
    
    Also the artifacts from the Fedora 39 job are needed for the integration
    test suite in the main libvirt project.
    
    For Debian 12 we need to start using
    'pip install --break-system-packages' as a hack to work around
    installation of the built package for testing.
    
    
    
 2023- 12- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 10.0.0
    
    
 2023- 11- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 9.10.0
    
    
 2023- 10- 2 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 9.9.0
    
    
 2023- 9- 25 Daniel P. Berrangé <berrange@redhat.com>
    
    Request the Python stable API when building
    We have Python 3.6 as a minimum version. If we set Py_LIMITED_API
    to 0x03060000, we'll get the stable python API associated with
    versions >= 3.6. This lets users compile once and have the libvirt
    binary module be loadable by any Python version >= 3.6, as described
    in:
    
    https://docs.python.org/3/c-api/stable.html
    
    
    
 2023- 9- 25 Daniel P. Berrangé <berrange@redhat.com>
    
    Use PySequence_GetItem preferentially
    Although marginally faster, PySequence_ITEM is not part
    of the stable API and also omits some safety checks. It
    is better for us to be using PySequence_GetItem instead.
    
    
    
 2023- 9- 25 Daniel P. Berrangé <berrange@redhat.com>
    
    add missing includes for C library functions
    We use various C library functions like printf, strcmp, free
    but don't have the corresponding #includes, getting them
    indirectly via Python.h. This is a bad idea as Python.h is
    not guaranteed to provided these, and indeed will omit them
    when Py_LIMITED_API is greater then 0x030a0000.
    
    
    
 2023- 9- 25 Pino Toscano <ptoscano@redhat.com>
    
    setup: simplify authors list generation
    Use a set to collect the authors from the git output with no duplicates,
    then sort the resulting set, and apply the wanted indentation.
    
    This method is more Pythonic, using a set to avoid duplicates; applying
    the indentation after the sorting makes the sorting slightly faster.
    
    
    
 2023- 9- 25 Pino Toscano <ptoscano@redhat.com>
    
    setup: switch away fron subprocess.Popen()
    Adopt subprocess.check_output() as more modern and higher-level way to
    invoke processes, checking that they succeed, and getting their output.
    
    
    
 2023- 9- 25 Pino Toscano <ptoscano@redhat.com>
    
    setup: remove unnecessary f-string
    The whole content of this f-string is a variable, so use that variable
    directly.
    
    
    
 2023- 9- 25 Pino Toscano <ptoscano@redhat.com>
    
    setup: invoke git commands properly
    Storing the git commands as single string, to split it by space later
    on, works only in case there are no spaces in the arguments, which is
    exactly what is in those commands.
    
    Instead, specify them directly as lists, with the options & arguments
    split in the right way. This fixes the generation of the AUTHORS and
    ChangeLog files.
    
    
    
 2023- 9- 21 Daniel P. Berrangé <berrange@redhat.com>
    
    gitlab: unset CFLAGS for rpm build
    Setting CFLAGS before invoking rpm-build causes replacement of the
    CFLAGS that RPM wants to set for python. This causes the loss of
    certain flags needed to turn on debug output and optimization.
    Previously this wasn't a problem as something in setuptools appears
    to have been adding -g anyway, but with the update to python 3.12
    this now fully breaks. We should never have been setting CFLAGS
    during the RPM build so we drop it unconditionally for all distros.
    
    
    
 2023- 9- 21 Daniel P. Berrangé <berrange@redhat.com>
    
    Add binding for network metadata events
    
    
 2023- 9- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 9.8.0
    
    
 2023- 8- 21 Erik Skultety <eskultet@redhat.com>
    
    ci: lcitool: Maintain project package deps lists here
    Each respective project that lcitool knows about and currently
    maintains its list of package dependencies knows best what packages
    they actually depend on. If a new dependency is currently needed,
    first a change in lcitool is necessary before GitLab jobs and
    containers can be updated. Provided a mapping already exists in
    lcitool (which can quickly be added as an override via mappings.yml
    temporarily) we speed up the whole CI update process by
    one step.
    
    Note that starting this commit lcitool must be invoked as
    '$ lcitool -d/--data-dir ci/lcitool ...'
    to pick up the project dependency list correctly.
    
    
    
 2023- 8- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 9.7.0
    
    
 2023- 7- 3 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 9.6.0
    
    
 2023- 6- 22 Erik Skultety <eskultet@redhat.com>
    
    README: Drop direct 'setup.py' usage
    With all the bits in place we can now replace the direct 'setup.py'
    invocation examples with alternatives.
    
    
    
 2023- 6- 22 Erik Skultety <eskultet@redhat.com>
    
    ci: Drop direct 'setup.py' usage
    With all the bits in place we can now drop the 'setup.py' invocations
    with preferred alternatives.
    This patch does a few things:
    - we don't run plain install because that always spins up a new build
    process regardless of whether there are build artifacts literally from
    the previous command, so instead we install the built wheel directly
    
    - when building, we build both the .whl binary and an sdist because
    we'll need the sdist for rpmbuild later in the CI job
    
    - we don't capture the 'build' path as a job artifact anymore, because
    that now only contains egg metadata, all the build artifacts are
    created by Python's build module under 'dist' so we capture that one
    instead
    
    - we always limit pytest to the 'tests' directory which was something
    'setup.py test' used to do as a precaution measure, but setup.py no
    longer has the logic (which is fine)
    
    
    
 2023- 6- 22 Erik Skultety <eskultet@redhat.com>
    
    spec: Invoke pytest properly
    With all the bits in place we can now drop the 'setup.py' invocations
    with preferred alternatives. The way to do this in a SPEC file is to
    use either of the following macros: %tox or %pytest - both of which
    automatically set paths for the test suite correctly which is
    something we used to do ourselves in our implementation of the
    setup.py's test command originally.
    That is wrong and with the migration to PEP-517 compliant builds it
    also won't work anymore properly, because there'd be no libs to import
    by mangling PYTHONPATH, we'd only get an sdist or a wheel, or in case
    of rpmbuild a preset buildroot environment.
    
    
    
 2023- 6- 22 Erik Skultety <eskultet@redhat.com>
    
    setup: Drop the my_test command
    Direct setup.py invocations are being discouraged in favour of
    using Python's 'build' module. Therefore, we can't really make use of this command
