dbus-deviation
==============
dbus-deviation is a project for parsing D-Bus introspection XML and processing
it in various ways. Its main tool is dbus-interface-diff, which calculates the
difference between two D-Bus APIs for the purpose of checking for API breaks.
This functionality is also available as a Python module, dbusdeviation.
A second Python module, dbusapi, is provided for parsing D-Bus introspection
XML to produce an AST representing a D-Bus interface.
dbus-deviation’s API is currently unstable and is likely to change wildly.
Using dbus-deviation
====================
dbus-deviation can be used as a utility program or as a Python library.
The utility programs:
- dbus-interface-diff:
Check for differences between two versions of the same D-Bus API and
print details of each difference. It can check for problems with forwards
and backwards compatibility, as well as general informational
differences.
Example:
dbus-interface-diff \
com.example.Interface1.xml \ # old version of the interface
com.example.Interface2.xml # new version of the interface
- dbus-interface-vcs-helper:
This is a helper program designed to be used by dbus-deviation.mk.
As a library, the core object is an InterfaceParser, allowing a D-Bus API to
be parsed and represented as an AST. See the API documentation for more
explanation and examples.
dbus-deviation.mk
-----------------
This is a Makefile snippet which should be copied into your project, added to
git, and the following two lines included in your top-level Makefile.am:
```
dbus_api_xml_files = list of D-Bus interface XML files
-include $(top_srcdir)/dbus-deviation.mk
```
Do not add it to EXTRA_DIST. It is designed to work from git checkouts only.
Then run:
```
make dbus-deviation-mk-install
```
to set up the API signature database. This assumes that your project defines
D-Bus interfaces in XML files, and does not generate them at runtime.
Finally, copy pre-push.hook to .git/hooks/pre-push and ensure it’s executable.
This script will automatically update the API signature database when a new
release tag is pushed to the git remote.
There is currently no streamlined support for projects which generate D-Bus
interfaces at runtime.
dbus-deviation.mk defines the following rules:
- dist-dbus-api-compatibility (a dependency of dist-hook)
- check-dbus-api-compatibility (a dependency of check-local)
- dbus-deviation-mk-install (never triggered automatically)
Dependencies
============
- argparse
- lxml
Development
===========
For fun, dbus-deviation uses the following services to do continuous
integration and gather build statistics:
- https://travis-ci.org/pwithnall/dbus-deviation
- https://landscape.io/github/pwithnall/dbus-deviation
- https://coveralls.io/r/pwithnall/dbus-deviation
- https://codecov.io/github/pwithnall/dbus-deviation
Licensing
=========
dbus-deviation is licensed under the LGPL version 2.1 (or, at your option, any
later version). See COPYING for more details.
dbus-deviation versions 0.4.0 and earlier were licensed under the choice of the
Academic Free License version 2.1, or the GNU General Public License version 2
(or, at your option, any later version). This is the same license as D-Bus
itself. Version 0.5.0 was relicensed to LGPLv2.1+ as it’s a more standard license
with less ambiguity about its implications.
Bugs
====
Bug reports and patches should be sent via GitHub or Gitlab:
- https://github.com/pwithnall/dbus-deviation
- https://gitlab.com/dbus-deviation/dbus-deviation
Contact
=======
Philip Withnall <philip@tecnocode.co.uk>
https://tecnocode.co.uk/dbus-deviation/
Overview of changes from dbus-deviation 0.6.0 to dbus-deviation 0.6.1
=====================================================================
Major changes:
- Drop support for Python 2.7
- Move to pycodestyle from pep8 and drop setup.py requirement for it
- Minor maintenance documentation updates
Overview of changes from dbus-deviation 0.5.0 to dbus-deviation 0.6.0
=====================================================================
Major changes:
- Split out the logging API to allow for reuse
- Expose source line numbers in dbusapi.ast
- Add a D-Bus type parser, dbusapi.typeparser (thanks to Kaloyan Tenchov)
- Drop Python 3.3 support as Sphinx no longer supports it
- Add a D-Bus type formatter, dbusapi.typeformatter
Overview of changes from dbus-deviation 0.4.0 to dbus-deviation 0.5.0
=====================================================================
Major changes:
- Add support for <node> elements (Kaloyan Tenchov)
- Add object path, interface name and callable name validation
(Kaloyan Tenchov)
- Relicense to LGPLv2.1+
Overview of changes from dbus-deviation 0.3.0 to dbus-deviation 0.4.0
=====================================================================
Major changes:
- Improve test coverage
- Port to lxml instead of xml.etree
- Support parsing comments and documentation nodes
Overview of changes from dbus-deviation 0.2.0 to dbus-deviation 0.3.0
=====================================================================
Major changes:
- Improve utility arguments and variables in dbus-deviation.mk and vcs-helper
Overview of changes from dbus-deviation 0.1.0 to dbus-deviation 0.2.0
=====================================================================
Major changes:
- Improve error reporting
- Improve test coverage
- Add Makefile snippet and helper program (vcs-helper) for use in other
projects
Initial release of dbus-deviation 0.1.0
=======================================
Major changes:
- Initial version of the project
Raw data
{
"_id": null,
"home_page": "https://tecnocode.co.uk/dbus-deviation/",
"name": "dbus-deviation",
"maintainer": "",
"docs_url": "https://pythonhosted.org/dbus-deviation/",
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Philip Withnall",
"author_email": "philip@tecnocode.co.uk",
"download_url": "https://files.pythonhosted.org/packages/01/dc/047feaa6a81545e10c37d4eeff86443c90dd114c5ce13d6937c5ed38854d/dbus-deviation-0.6.1.tar.gz",
"platform": "",
"description": "dbus-deviation\n==============\n\ndbus-deviation is a project for parsing D-Bus introspection XML and processing\nit in various ways. Its main tool is dbus-interface-diff, which calculates the\ndifference between two D-Bus APIs for the purpose of checking for API breaks.\nThis functionality is also available as a Python module, dbusdeviation.\n\nA second Python module, dbusapi, is provided for parsing D-Bus introspection\nXML to produce an AST representing a D-Bus interface.\n\ndbus-deviation\u2019s API is currently unstable and is likely to change wildly.\n\nUsing dbus-deviation\n====================\n\ndbus-deviation can be used as a utility program or as a Python library.\n\nThe utility programs:\n - dbus-interface-diff:\n Check for differences between two versions of the same D-Bus API and\n print details of each difference. It can check for problems with forwards\n and backwards compatibility, as well as general informational\n differences.\n\n Example:\n dbus-interface-diff \\\n com.example.Interface1.xml \\ # old version of the interface\n com.example.Interface2.xml # new version of the interface\n\n - dbus-interface-vcs-helper:\n This is a helper program designed to be used by dbus-deviation.mk.\n\nAs a library, the core object is an InterfaceParser, allowing a D-Bus API to\nbe parsed and represented as an AST. See the API documentation for more\nexplanation and examples.\n\ndbus-deviation.mk\n-----------------\n\nThis is a Makefile snippet which should be copied into your project, added to\ngit, and the following two lines included in your top-level Makefile.am:\n```\ndbus_api_xml_files = list of D-Bus interface XML files\n-include $(top_srcdir)/dbus-deviation.mk\n```\n\nDo not add it to EXTRA_DIST. It is designed to work from git checkouts only.\n\nThen run:\n```\nmake dbus-deviation-mk-install\n```\nto set up the API signature database. This assumes that your project defines\nD-Bus interfaces in XML files, and does not generate them at runtime.\n\nFinally, copy pre-push.hook to .git/hooks/pre-push and ensure it\u2019s executable.\nThis script will automatically update the API signature database when a new\nrelease tag is pushed to the git remote.\n\nThere is currently no streamlined support for projects which generate D-Bus\ninterfaces at runtime.\n\ndbus-deviation.mk defines the following rules:\n - dist-dbus-api-compatibility (a dependency of dist-hook)\n - check-dbus-api-compatibility (a dependency of check-local)\n - dbus-deviation-mk-install (never triggered automatically)\n\nDependencies\n============\n\n - argparse\n - lxml\n\nDevelopment\n===========\n\nFor fun, dbus-deviation uses the following services to do continuous\nintegration and gather build statistics:\n - https://travis-ci.org/pwithnall/dbus-deviation\n - https://landscape.io/github/pwithnall/dbus-deviation\n - https://coveralls.io/r/pwithnall/dbus-deviation\n - https://codecov.io/github/pwithnall/dbus-deviation\n\nLicensing\n=========\n\ndbus-deviation is licensed under the LGPL version 2.1 (or, at your option, any\nlater version). See COPYING for more details.\n\ndbus-deviation versions 0.4.0 and earlier were licensed under the choice of the\nAcademic Free License version 2.1, or the GNU General Public License version 2\n(or, at your option, any later version). This is the same license as D-Bus\nitself. Version 0.5.0 was relicensed to LGPLv2.1+ as it\u2019s a more standard license\nwith less ambiguity about its implications.\n\nBugs\n====\n\nBug reports and patches should be sent via GitHub or Gitlab:\n - https://github.com/pwithnall/dbus-deviation\n - https://gitlab.com/dbus-deviation/dbus-deviation\n\nContact\n=======\n\nPhilip Withnall <philip@tecnocode.co.uk>\nhttps://tecnocode.co.uk/dbus-deviation/\n\n\nOverview of changes from dbus-deviation 0.6.0 to dbus-deviation 0.6.1\n=====================================================================\n\nMajor changes:\n - Drop support for Python 2.7\n - Move to pycodestyle from pep8 and drop setup.py requirement for it\n - Minor maintenance documentation updates\n\nOverview of changes from dbus-deviation 0.5.0 to dbus-deviation 0.6.0\n=====================================================================\n\nMajor changes:\n - Split out the logging API to allow for reuse\n - Expose source line numbers in dbusapi.ast\n - Add a D-Bus type parser, dbusapi.typeparser (thanks to Kaloyan Tenchov)\n - Drop Python 3.3 support as Sphinx no longer supports it\n - Add a D-Bus type formatter, dbusapi.typeformatter\n\nOverview of changes from dbus-deviation 0.4.0 to dbus-deviation 0.5.0\n=====================================================================\n\nMajor changes:\n - Add support for <node> elements (Kaloyan Tenchov)\n - Add object path, interface name and callable name validation\n (Kaloyan Tenchov)\n - Relicense to LGPLv2.1+\n\nOverview of changes from dbus-deviation 0.3.0 to dbus-deviation 0.4.0\n=====================================================================\n\nMajor changes:\n - Improve test coverage\n - Port to lxml instead of xml.etree\n - Support parsing comments and documentation nodes\n\nOverview of changes from dbus-deviation 0.2.0 to dbus-deviation 0.3.0\n=====================================================================\n\nMajor changes:\n - Improve utility arguments and variables in dbus-deviation.mk and vcs-helper\n\nOverview of changes from dbus-deviation 0.1.0 to dbus-deviation 0.2.0\n=====================================================================\n\nMajor changes:\n - Improve error reporting\n - Improve test coverage\n - Add Makefile snippet and helper program (vcs-helper) for use in other\n projects\n\nInitial release of dbus-deviation 0.1.0\n=======================================\n\nMajor changes:\n - Initial version of the project\n\n\n",
"bugtrack_url": null,
"license": "LGPLv2.1+",
"summary": "Parse D-Bus introspection XML and process it in various ways",
"version": "0.6.1",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "dfef27416f687fe5f0e7b26c3c420a1a",
"sha256": "187d56ea000742af291fa5fe5694365c59c7f7ffb38ad46cee752c40626ec4f2"
},
"downloads": -1,
"filename": "dbus_deviation-0.6.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dfef27416f687fe5f0e7b26c3c420a1a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 52388,
"upload_time": "2021-01-29T15:24:26",
"upload_time_iso_8601": "2021-01-29T15:24:26.630947Z",
"url": "https://files.pythonhosted.org/packages/2f/3b/ed8628640a4e917be11268d64a342966358b9001801a21edd6c7988794c2/dbus_deviation-0.6.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "649e1024a024242bfc38a5e1dfec69b4",
"sha256": "e06b88efe223885d2725df51cf7c9b7b463d1c6f04ea49d4690874318d0eb7a3"
},
"downloads": -1,
"filename": "dbus-deviation-0.6.1.tar.gz",
"has_sig": false,
"md5_digest": "649e1024a024242bfc38a5e1dfec69b4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 60599,
"upload_time": "2021-01-29T15:24:27",
"upload_time_iso_8601": "2021-01-29T15:24:27.792428Z",
"url": "https://files.pythonhosted.org/packages/01/dc/047feaa6a81545e10c37d4eeff86443c90dd114c5ce13d6937c5ed38854d/dbus-deviation-0.6.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2021-01-29 15:24:27",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "dbus-deviation"
}