A lot has happened feature-wise since the 0.0.2 release of toydist. This is a
short summary of what is about to come in the 0.0.3 release.
Toydist renamed to bento
I have finally found a not too sucky name for toydist: bento. As you may know, bento is a Japanese word for lunch-box (see picture if you have no idea what I am talking about). The idea is that those are often nicely prepared, and bentomaker becomes the command to get a nicely packaged software :)
Integration of yaku, a micro build framework
The 0.0.2 release of toydist was still dependent on distutils to build C
extensions. I have since then integrated a small package to build things, yaku
(“grill, bake” in Japanese). This gives the following features when building C extensions
- basic dependency handling (soon auto-detection
of header file dependency through compiler-specific extensions)
- reliable out-of-date detection though file content checksum
- reliable parallel execution
I still think complex packages should use a real build system like waf or
scons, and in that regard, bento will remain completely agnostic (the distutils
build is still available as a configuration option).
Any command may now be overridden, and some hooks have been added as well.
Here is a list of possible customizations through hooks:
- adding custom commands (for example build_doc to build doc)
- adding dynamically generated files in sdist
- using waf as a build tool
- adding autoconf-like tests in configure
This opens a lot of possibilities. Some examples are found in the hook subdirectory
This command configure, build, install and optionally test a package from the
tarball generated by sdist. This is very useful to test a release.
This command is still very much in infancy, but quite useful already.
One file distribution
Since bento is still in the planning phase, its API is subject to significant
changes, and I obviously don’t care about backward compatibility at this stage.
Nevertheless, several people want to use it already, so I intend to support
a waf-like one file support. It would be a self-extracting file which looks
like a python script, and could be included to avoid any extra dependency. This
would solve both distribution and compatibility issues until bento stabilized.
There is a nice explanation on how this works on the waf-devel blog
Bug fixes, python 2.4 support
I have started to fix the numerous but mostly trivial issues under
python 2.4. Bento 0.0.3 should be compatible with any python version from 2.4
to 2.7. Although python 3.x support should not be too difficult, it is rather
low priority. Let me know if you think otherwise.