Most of the tests are contained in the runtest
executable which generally reads test cases from the test
directory and compares output to files in the result
directory.
You can simply add new test cases and run runtest -u
to update the results. If you debug test failures, it's also useful to execute runtest -u
and then git diff result
to get a diff between actual and expected results. You can restore the original results by running git restore result
and git clean -xd result
.
The documentation and other generated files can be rebuilt by running
make -C doc rebuild
This requires xsltproc
, the DocBook stylesheets in your XML Catalog and the libxml2 Python bindings to be installed, so it's best done on a Linux system. On Debian/Ubuntu, try
apt install xsltproc python3-libxml2 docbook-xsl docbook-xml
doc/apibuild.py generates doc/libxml2-api.xml which is used to generate
Man pages and HTML documentation for xmllint and xmlcatalog are generated with xsltproc and DocBook stylesheets.
See above for details and run make -C doc rebuild
.
Look for new warning messages and inspect changes for correctness before committing.
You can get started by running
git log --format='- %s (%an)' [previous-release-tag]..
Edit the version number in configure.ac
if you haven't done so already.
I'd recommend to build the tarball by running
make distcheck
which performs some useful checks as well.
Follow the instructions at https://wiki.gnome.org/MaintainersCorner/Releasing:
scp libxml2-[version].tar.xz master.gnome.org: ssh master.gnome.org ftpadmin install libxml2-[version].tar.xz
Create an annotated tag and push it:
git tag -a [version] -m 'Release [version]' git push origin [version]
Create a new GitLab release on https://gitlab.gnome.org/GNOME/libxml2/-/releases.
Announce the release by sending an email to the mailing list at xml@gnome.org.
Note that the CI image is used for libxslt as well. Run the following commands with the Dockerfile in the .gitlab-ci directory:
docker login registry.gitlab.gnome.org docker build -t registry.gitlab.gnome.org/gnome/libxml2 - \ < .gitlab-ci/Dockerfile docker push registry.gitlab.gnome.org/gnome/libxml2