 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
    anymore since only wheels and tarballs are built with the 'build' module
    compared to the previous state of the art of dumping the freshly built
    modules and libraries directly inside the build directory.
    
    We'll have to encourage usage of tox which will install the package
    inside a virtualenvironment for the tests. Future patch will update the
    Makefile targets to make this easier for the end users.
    
    
    
 2023- 6- 22 Erik Skultety <eskultet@redhat.com>
    
    setup: Drop the clean command
    Direct setup.py invocations are discouraged anyway, use git clean
    or 'make clean' instead.
    
    
    
 2023- 6- 22 Erik Skultety <eskultet@redhat.com>
    
    Add pyproject.toml
    Given the missing setuptools keywords issue and hence having moved all
    the declarative stuff to setup.cfg this one is only a very basic one
    just to comply PEP-517 and foolproof this project for the future
    PyPa/pip changes.
    
    
    
 2023- 6- 22 Erik Skultety <eskultet@redhat.com>
    
    Makefile: Add a 'test' rule to run the full tox execution
    This one should be used for the "full" test experience including any
    additional environments, test suites and linters we may introduce
    further down the road.
    
    
    
 2023- 6- 22 Erik Skultety <eskultet@redhat.com>
    
    Makefile: Update targets according to the new way of building
    - drop direct setup.py invocations
    - clean the artifacts directly with 'rm'
    - use tox instead of invoking pytest otherwise we don't have a
    mechanism to test against the freshly built libvirt modules other
    than unpacking the built wheel and mangling the PYTHONPATH again
    - use direct rpmbuild invocation to build RPM (the rpm target in its
    current form didn't really work anyway)
    
    
    
 2023- 6- 22 Erik Skultety <eskultet@redhat.com>
    
    setup: Query library version out of a file
    This makes it possible to programatically query the version in any
    stage of the build process, including Makefile etc.
    
    
    
 2023- 6- 22 Erik Skultety <eskultet@redhat.com>
    
    Move declarative stuff out of setup.py to setup.cfg
    So, why using setup.cfg if pyproject.toml is the new best thing
    recommended everywhere? Well, quite a few of the fields we use with
    setuptools are setuptools-specific and haven't been introduced as
    keywords to pyproject.toml yet. There is a chance that these fields
    could be added via a dedicated 'tool.setuptools' TOML section, but none
    of it is officially documented and so it would be BETA at best anyway.
    Let's not try our luck and use a declarative config file tailored
    specifically to setuptools - setup.cfg. It's also unlikely we'd switch
    from setuptools to something else in the near future given the nature
    of building this project (i.e. building with C modules) and if so, it
    would likely not be a PyPa recommended PEP-517 compliant build
    system anyway, e.g. meson, so we're totally fine doing this.
    
    
    
 2023- 6- 22 Erik Skultety <eskultet@redhat.com>
    
    README: Move the long_description from setup.py in here
    
    
 2023- 6- 22 Erik Skultety <eskultet@redhat.com>
    
    MANIFEST.in: Cleanup
    When migrated to the PEP-517 compliant builds, some errors occurred due
    to missing or non-existent files mentioned in the MANIFEST. Notable
    changes:
    
    - README and MANIFEST files are automatically added to sdist per
    MANIFEST documentation
    - we want all tests/examples to be included, so use the 'graft' keyword
    instead of enumerating individual files
    - we want all *.[ch] files as those are needed for the build, so use
    'include *.[ch]' instead of enumerating individual files
    - we want all *.xml files, so use 'include *.xml'
    - we want all *.py files - in case this is no longer the case in the
    future, we'll need to tweak that 'include'
    - we don't want any __pycache__ nor *.pyc build artifacts, so exclude
    them globally
    
    
    
 2023- 6- 21 Erik Skultety <eskultet@redhat.com>
    
    ci: Refresh with latest lcitool changes
    - bump OpenSUSE Leap 15.4 -> 15.5
    - add python3-build dependency (PEP-517)
    - add python3-venv dependency (PEP-517)
    
    
    
 2023- 6- 9 Erik Skultety <eskultet@redhat.com>
    
    setup: styling: Fix last occurrence of os.path in favour of pathlib
    Commit e749b4cf forgot to update a couple more occurrences.
    
    Fixes: e749b4cf111bcfc9ceeb88be57dc1d810fc631d9
    
    
 2023- 6- 9 Erik Skultety <eskultet@redhat.com>
    
    setup: Drop explicit creation of the build dir in sdist
    No need to do that since we'll create it in the top-level code as a
    first thing anyway.
    
    
    
 2023- 6- 9 Erik Skultety <eskultet@redhat.com>
    
    setup: Use a simple helper to generate dist files from .in templates
    The code is almost identical in the impacted cases, so factor it out.
    
    
    
 2023- 6- 9 Erik Skultety <eskultet@redhat.com>
    
    setup: styling: Use context managers more
    Some of the operations, namely file operations and spawning processes
    can utilize the power of context managers. Use them more, use them
    together.
    
    
    
 2023- 6- 9 Erik Skultety <eskultet@redhat.com>
    
    setup: Move over from os.popen to subprocess.Popen
    subprocess is the high-level Pythonic interface providing more
    flexibility over the low-level os.popen stuff. It is recommended to
    always use subprocess over the direct 'os' interface.
    
    
    
 2023- 6- 9 Erik Skultety <eskultet@redhat.com>
    
    setup: styling: More f-string conversions
    Fix a few more occurrences.
    
    Fixes: 745e5a8ca46feb1acf3382c38eb45c74c1c42489
    
    
 2023- 6- 8 Erik Skultety <eskultet@redhat.com>
    
    MANIFEST.in: Add Makefile
    
    
 2023- 6- 8 Erik Skultety <eskultet@redhat.com>
    
    tox.ini: Drop sanitytest execution
    Commit 60044515 renamed sanitytest to test_coverage_api but forgot to
    update the tox.ini file.
    
    Fixes: 60044515a256c36afad0fc5efcb7ea946eb93783
    
    
 2023- 6- 8 Erik Skultety <eskultet@redhat.com>
    
    COPYING: Only ship a single license file COPYING
    The correct license we've used for a while is LGPLv2+, so drop the
    original.
    
    
    
 2023- 6- 8 Erik Skultety <eskultet@redhat.com>
    
    setup: Simplify get_pkgconfig_data
    We don't need to do both None/non-None checks on the returned string.
    
    
    
 2023- 6- 8 Erik Skultety <eskultet@redhat.com>
    
    setup: Move away from os.path to pathlib.Path
    Drops usage of the glob module along the way as pathlib integrates glob
    as well.
    
    
    
 2023- 6- 7 Erik Skultety <eskultet@redhat.com>
    
    setup: styling: Don't mix top-level code with function/class definition
    It hinders readability so much when the top-level code that gets
    executed right away when setup.py is loaded is mixed in between type
    definitions.
    
    
    
 2023- 6- 7 Erik Skultety <eskultet@redhat.com>
    
    setup: styling: Format multi-line arguments properly
    
    
 2023- 6- 7 Erik Skultety <eskultet@redhat.com>
    
    setup: styling: Adopt f-strings in favour of old-style string formatting
    
    
 2023- 6- 7 Erik Skultety <eskultet@redhat.com>
    
    setup: styling: Drop unexpected spaces when providing kwargs arguments
    
    
 2023- 6- 7 Erik Skultety <eskultet@redhat.com>
    
    setup: styling: Replace apostrophes with quotes
    Let's standardize on usage of one and be consistent with it.
    
    
    
 2023- 6- 7 Erik Skultety <eskultet@redhat.com>
    
    setup: styling: Fix method/function/class spacing
    2 newlines in between classes/functions, 1 newline in between methods.
    
    
    
 2023- 6- 7 Erik Skultety <eskultet@redhat.com>
    
    setup: Re-order the imports
    First go general, whole module imports, then specific symbol imports.
    
    
    
 2023- 6- 7 Erik Skultety <eskultet@redhat.com>
    
    setup: Bump the minimum version of Python to 3.6
    3.6 is already EOL, but many platforms still default to Python 3.6 when
    it comes to the default platform Python package. Since we don't rely
    on any 3.7+ features in the bindings at the moment, let's keep
    everyone's life simpler and stay with 3.6 for now, we can bump it again
    in the future.
    
    
    
 2023- 6- 7 Erik Skultety <eskultet@redhat.com>
    
    setup: Reduce the Python classifiers to "Python :: 3" only
    We're not good at tracking all the released Python 3 versions (+ we
    don't support Python 2 anymore).
    Additionally, future patches will take care of reporting the minimum
    required version of Python anyway through the 'python_requires' field
    which shows up correctly in PyPI.
    
    
    
 2023- 6- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 9.5.0
    
    
 2023- 5- 31 Han Han <hhan@redhat.com>
    
    virDomainMigrate3Params: Add missing params
    Add these missing migrate params:
    - VIR_MIGRATE_PARAM_DISKS_URI, since libvirt v6.8.0(49186372db)
    - VIR_MIGRATE_PARAM_TLS_DESTINATION, since libvirt v6.0.0(1b8af37213e)
    - VIR_MIGRATE_PARAM_COMPRESSION_ZLIB_LEVEL and VIR_MIGRATE_PARAM_COMPRESSION_ZSTD_LEVEL,
    since libvirt v9.4.0(150ae3e62b9)
    
    
    
 2023- 5- 3 Erik Skultety <eskultet@redhat.com>
    
    ci: Drop Fedora 36 target
    
    
 2023- 5- 3 Erik Skultety <eskultet@redhat.com>
    
    ci: Add Fedora 38 target
    
    
 2023- 5- 3 Erik Skultety <eskultet@redhat.com>
    
    ci: Replace OpenSUSE Leap 15.4 target with Leap 15 name
    We now refer to the latest Leap 15.X simply as Leap 15 in lcitool.
    
    
    
 2023- 5- 2 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 9.4.0
    
    
 2023- 4- 26 Daniel P. Berrangé <berrange@redhat.com>
    
    rpm: convert license to SPDX format
    
    
 2023- 4- 19 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 9.3.0
    
    
 2023- 4- 19 Daniel P. Berrangé <berrange@redhat.com>
    
    setup: limit pytest to 'tests' subdir
    The libvirt git repo contains test data that represents the
    layout of files in sysfs, which has two subdirs that mutually
    reference each other with symlinks.
    
    When pytest does test discovery it will traverse every
    directory it finds underneath the libvirt-python checkout.
    
    Since we checkout libvirt as a sub-dir, pytest traverses
    everything in libvirt git and gets stuck in an infinite
    loop following symlinks in the libvirt test data.
    
    Telling pytest to only look at the 'tests' subdir avoids
    this extra traversal.
    
    
    
 2023- 4- 19 Daniel P. Berrangé <berrange@redhat.com>
    
    ci: pass --break-system-packages on Debian Sid
    Debian Sid python packages block users from installing packages using
    pip unless using a venv. A venv has no benefit when we are running in
    a throwaway container which has no need for software upgrades.
    
    
    
 2023- 4- 19 Daniel P. Berrangé <berrange@redhat.com>
    
    ci: mark bleeding edge distros as non-gating
    Fedora Rawhide, Debian Sid and OpenSUSE Tumbleweed are all liable to
    have sporadic failures due to being bleeding edge distros. Thus they
    should not gate contributor changes that are otherwise correct.
    
    
    
 2023- 4- 19 Daniel P. Berrangé <berrange@redhat.com>
    
    ci: regenerated with lcitool manifest
    This replaces OpenSUSE Leap 15.3 with 15.4
    
    
    
 2023- 3- 1 Jiri Denemark <jdenemar@redhat.com>
    
    Post-release version bump to 9.2.0
    
    
 2023- 2- 13 Michal Privoznik <mprivozn@redhat.com>
    
    Fix sign compare offenders
    In a few places we compare signed and unsigned integers. In
    majority of cases it's because the iteration variable is declared
    as ssize_t but then in the for() loop it's compared against an
    unsigned int. But there is one case where the opposite happens
    (libvirt_virDomainSendKey()), or where an UINT_MAX (which is
    inherently unsigned) is compared against signed long.
    
    Also, use this opportunity to decrease scope of 'j' variable
    inside of libvirt_virDomainInterfaceAddresses().
    
    
    
 2023- 2- 13 Michal Privoznik <mprivozn@redhat.com>
    
    Stop typecasting libvirt_intWrap() arguments
    There's no need to explicitly typecast arguments passed to
    libvirt_intWrap() as they are int or long already.
    
    
    
 2023- 2- 13 Michal Privoznik <mprivozn@redhat.com>
    
    libvirt-override: Don't typecast strlen() in debug printings
