Becoming a Py@Cron hacker

What to do (in general)

We will always accept bug and portability fixes. If you are interested in doing something more major, please write pyatcron-devel-list@nongnu.org first. This is so we know what people are doing and can offer advice. Also see the TODO file for ideas on the direction we want to take Py@Cron. We _strongly_ recommend, if you are contributing a feature, that you fully implement and test the feature in your own program before submitting a patch. This ensures that the feature is tested the interface is reasonably mature.

Translation effort

We are currently supporting only english, as we do not have spent much time on the translation aspect. If you are interested in helping us on that subject, please get in touch with us via the development list (see below for informations).

How to make code contributions

We only accept code contributions in the form of a unified diff against the latest released version and, preferably, the version in CVS. I you have made changes to the API of one or many Py@Cron classes, you _must_ provide complete documentation of your changes.
To make a unified diff, please follow these instructions:
  1. Rename your development source tree:
    mv pyatcron-0.1.4 pyatcron-0.1.4-snazzy-feature
  2. Unpack the original gnet library source alongside it:
    tar zxf pyatcron-0.1.4.tar.gz
  3. Generate the diffs:
    diff -urNb pyatcron-0.1.4 pyatcron-0.1.4-snazzy-feature >/tmp/pyatcron.patch
  4. Check the patch and remove any unnecessary patches from the file.
  5. If you've added several features, it's best to send them as several independent patches if you can.
  6. List your changes in the src/CHANGES files, in order to quickly know what you've done.
  7. Don't forget to add your name and email address to AUTHORS so that you assert copyright over Py@Cron and help to keep Py@Cron free!
If you have just patched one or two files, then making patches is even easier. For each file, just do:
cp file.py file.py.orig
[Make changes to file.py ...]
diff -u file.py.orig file.py > /tmp/file.py.patch
and just send us the patch: /tmp/file.py.patch.

Coding new type of task: the Py@cron plugin mechanism

As the API is still not frozen, we are not able to write any HOWTO on coding new Py@cron task type plugins. Stay tuned, we are moving fast ;-)