|
|
|
@@ -0,0 +1,89 @@ |
|
|
|
======================================================================= |
|
|
|
*** README.developers - JACK development practices *** |
|
|
|
======================================================================= |
|
|
|
|
|
|
|
Version: $id$ |
|
|
|
|
|
|
|
----------------------------------------------------------------------- |
|
|
|
What is this? |
|
|
|
----------------------------------------------------------------------- |
|
|
|
|
|
|
|
This file is a collection of practices and rules for JACK |
|
|
|
development. If you have questions, or would like to make |
|
|
|
changes, raise the issue on jackit-devel (see |
|
|
|
http://jackit.sourceforge.net/lists ). |
|
|
|
|
|
|
|
----------------------------------------------------------------------- |
|
|
|
Version numbers |
|
|
|
----------------------------------------------------------------------- |
|
|
|
|
|
|
|
1. JACK's package version |
|
|
|
|
|
|
|
JACK's package version is set in configure.in, and consists of |
|
|
|
major, minor and revision numbers. This version should be |
|
|
|
updated whenever a non-trivial set of changes is committed |
|
|
|
to CVS: |
|
|
|
|
|
|
|
major version = ask on jackit-devel :) |
|
|
|
minor version = incremented when any of the public or internal |
|
|
|
interfaces are changed |
|
|
|
revision = incremented when implementation-only |
|
|
|
changes are made |
|
|
|
|
|
|
|
2. Client API versioning |
|
|
|
|
|
|
|
JACK clients are affected by two interfaces, the JACK Client API (libjack) |
|
|
|
and the JACK Client Protocol API (interface between jackd and |
|
|
|
libjack). The former one is versioned using libtool interface |
|
|
|
versioniong (set in configure.in). This version should be updated |
|
|
|
whenever a set of changes affecting the interface is committed |
|
|
|
to CVS: |
|
|
|
|
|
|
|
current = incremented whenever the public libjack API is changed |
|
|
|
revision = incremented when the libjack implementation is changed |
|
|
|
age = current libjack is both source and binary compatible with |
|
|
|
libjack interfaces current,current-1,...,current-age |
|
|
|
|
|
|
|
Note! All changes that affect the libjack API must be documented |
|
|
|
in jack/libjack/ChangeLog using the standard ChangeLog style |
|
|
|
(see GNU developer docs). |
|
|
|
|
|
|
|
--------------------------------------------------------------------- |
|
|
|
Sending patches |
|
|
|
----------------------------------------------------------------------- |
|
|
|
|
|
|
|
1. People without CVS-access |
|
|
|
|
|
|
|
Send your patches to jackit-devel. Normally patches are accepted |
|
|
|
by Paul Davis. He either applies the patch right away, or |
|
|
|
sends an "ok to me" message, after which other developers with |
|
|
|
CVS-access can commit the patch. |
|
|
|
|
|
|
|
2. People with CVS-access |
|
|
|
|
|
|
|
Trivial changes can be committed without review. For non-trivial |
|
|
|
changes, you should first send a proposal to jackit-devel and |
|
|
|
wait for comments. There are no strict approval rules so use of |
|
|
|
common sense is recommended. ;) |
|
|
|
|
|
|
|
3. Tips for making patches |
|
|
|
|
|
|
|
- test your patch on a clean CVS-checkout |
|
|
|
- remember to run cvs update before making commits |
|
|
|
|
|
|
|
----------------------------------------------------------------------- |
|
|
|
CVS Access |
|
|
|
----------------------------------------------------------------------- |
|
|
|
|
|
|
|
TBD |
|
|
|
|
|
|
|
--------------------------------------------------------------------- |
|
|
|
Uses of external libraries and other packages |
|
|
|
----------------------------------------------------------------------- |
|
|
|
|
|
|
|
The main JACK components, jackd and libjack, should only use |
|
|
|
standard POSIX and ANSI-C services. Other components like |
|
|
|
example clients and drivers, may rely on other packages, but |
|
|
|
these dependencies should not affect the main build process. |
|
|
|
|
|
|
|
======================================================================= |