Files
ggwave/bindings/python
Jacob Appelbaum cf1af4d3a3 ci : update + packages (#146)
* Add simple Debian package

* Update CI configuration

* Add cpack Deb package for libggwave-dev

* Add `make deb` top level target and CI job

* Ensure `make deb` packages are deterministic

Update CMakeLists.txt to make cpack generated Debian packages
deterministic build outputs by:
- Setting SOURCE_DATE_EPOCH to 0
- Executing `git log -1 --pretty=%ct` and storing the result in
  SOURCE_DATE_EPOCH, overriding 0
- Export SOURCE_DATE_EPOCH to the environment
- Explicitly prefix the execution of the cpack command in the custom
  target `deb_c_library` with SOURCE_DATE_EPOCH

Update `README.md-tmpl.md` and `README.md` to document new `make deb`
target.

The Makefile for the Python bindings already handle deterministic
building with the same strategy.

* libc6, not libc
2025-03-16 19:54:17 +02:00
..
2025-03-16 19:54:17 +02:00
2022-07-04 21:18:20 +03:00
2025-03-16 19:54:17 +02:00
2023-01-19 18:26:10 +02:00

ggwave python package

This README contains only development information, you can check out full README (README.rst) for the latest version of ggwave python package on ggwave's PyPI page.

README.rst is not commited to git because it is generated from README-tmpl.rst.

Building

Run make build to generate an extension module as .so file. You can test it then by importing it from python interpreter import ggwave and running ggwave.encode('test') (you have to be positioned in the directory where .so was built). This is useful for testing while developing.

Run make sdist to create a source distribution, but not publish it - it is a tarball in dist/ that will be uploaded to pip on publish. Use this to check that tarball is well structured and contains all needed files, before you publish. Good way to test it is to run sudo pip install dist/ggwave-*.tar.gz, which will try to install ggwave from it, same way as pip will do it when it is published.

make clean removes all generated files.

README.rst is auto-generated from README-tmpl.rst, to run regeneration do make README.rst. README.rst is also automatically regenerated when building package (e.g. make build). This enables us to always have up to date results of code execution and help documentation of ggwave methods in readme.

Publishing

Remember to update version in setup.py before publishing.

To trigger automatic publish to PyPI, create a tag and push it to Github -> Travis will create sdist, build wheels, and push them all to PyPI while publishing new version.

You can also publish new version manually if needed: run make publish to create a source distribution and publish it to the PyPI.

Acknowledgments

These Python bindings are generated by following edlib example