introducing scriptharness
May. 25th, 2015 01:31 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
I found myself missing mozharness at various points over the past 10 months. Several things kept me from using it at my then-new job:
-
Even though we had kept
mozharness.base.*
largely non-Mozilla-specific, the mozharness clone-and-run model meant there was a lot of Mozilla-specific code that came along with it.
- The monolithic BaseScript + mixins model had a very steep barrier of entry. There's a significant learning curve, and scripts need to be fully ported to mozharness to take advantage of its features.
I had wanted to address these issues for years, but never had time to devote fully to harness-specific development.
Now I do.
Introducing scriptharness 0.1.0:
-
Release Notes: http://python-scriptharness.readthedocs.org/en/stable/releasenotes/0.1.0/
-
The release notes highlight differences between scriptharness and mozharness, as well as known issues.
-
The release notes highlight differences between scriptharness and mozharness, as well as known issues.
-
PyPI: https://pypi.python.org/pypi/scriptharness/0.1.0
-
GitHub: https://github.com/scriptharness/python-scriptharness/releases/tag/v0.1.0
-
Read the Docs: http://python-scriptharness.readthedocs.org/en/stable/
I'm proud of this. I'm also aware it's not mature [yet], and it's currently missing some functionality.
There are some ideas I'd love to explore before 1.0.0:
-
multiple Script objects with threading and separate logs
-
Config Type Definitions
-
rethink how to enable/disable actions. I could keep mozharness'
--add-action clobber --no-upload
structure, or play with--actions +clobber -upload
or something. (The - before the upload in the latter might cause argparse issues?) -
also, explore Maven-style actions (all actions before target action are enabled) and actions with dependencies on other actions. I prefer keeping each action independent, idempotent, and individually targetable, but I can see someone wanting the other behavior for certain scripts.
-
I've already split out strings from code in a number of places, for unit testing. I'm curious what it would take to make scriptharness localizable, and if there would be demand for it.
-
ahal suggested adding structured logging; I'd love to investigate that.
I already have 0.2.0 on the brain. I'd love any feedback or patches.