paraslash Paraslash Audio Streaming
About   News   Download   Documentation   Development

Development


Development happens in topic branches where each topic corresponds to one branch. These topic branches are not pushed to the public repository, however, to keep the number of branches small, Instead, the topic branches are merged into an integration branch which is then pushed to the public repository.

Two integration branches named pu ("proposed updates") and next exist. Topics in early development are only merged into the pu branch. When the topic is feature-complete, has been tested and is fully documented, it graduates to next. Thus, topics in next are expected to be of higher quality than those in pu.

The table below shows the current development topics. Run git checkout pu to get all topics or git checkout next to enable only the mature topics.

Topic IB #C Description
afs pu 33 Improvements to the audio file selector
fd pu 12 Clean up the file descriptor utilities in fd.c
ff-compat pu 1 Remove compatibility code from com_ff()
for-maint pu 0 Urgent fixes for old bugs
misc pu 8 Smallish miscellaneous changes for master
mixer pu 5 Improvements to para_mixer
net pu 10 Cleanup net.c and net.h
openssl-3 pu 3 Avoid warnings from libopenssl-v3
overflow next 7 be more careful wrt. integer overflows
sf_float pu 1 Support 32 bit float sample format

When a topic is merged into master, it vanishes from here since it is no longer considered as being in development.

Topic branch details

The SHA1 number shown as tip can be used to checkout a commit which only contains the changes introduced in this topic.

afs

This series starts with a fair number of patches which clean up all parts of the audio file selector. The last patch implements a new feature for the ls command.

fd

A spring cleanup for senescent code in fd.c, mostly simplifications and documentation cleanups.

     afs.c                           |  14 +--
     aft.c                           |  55 +++++++++
     client_common.c                 |   3 +-
     fd.c                            | 248 +++++++++-------------------------------
     fd.h                            |   9 +-
     http_recv.c                     |   2 +-
     http_send.c                     |   2 +-
     play.c                          |   4 +-
     t/audio_files/short-44100-2.mp3 | Bin 0 -> 28403 bytes
     t/t0004-server.sh               |  12 ++
     10 files changed, 133 insertions(+), 216 deletions(-)

ff-compat

A single commit which removes support for the old syntax of the ff command where negative values could be specified with a postfix such as “ff 30-”. This syntax has long been deprecated.

for-maint

misc

The stuff in here is too small to get its own topic branch. The commits are generally regarded as safe enough to be applied directly to “master” without cooking in “next” first. However, if a commit induces a merge conflict or is important enough to get mentioned in an item of the NEWS file, the commit should get a dedicated topic branch.

Unlike most other topic branches, this branch never promotes to “next”. When a set of commits is ready to graduate to “master”, the branch is rebased onto “master” and its commits are re-ordered so that the graduating commits appear at the beginning. The last such commit is merged to “master”. This always results in a fast-forward merge, so no merge message needs to be supplied.

     Doxyfile        | 240 +++++++++++++++++++++++++++++++++++++-------------------
     Makefile.real   | 107 ++++++++++---------------
     client_common.c |   8 +-
     command.c       |   7 ++
     error.h         |   1 -
     gui_theme.c     |   6 +-
     play.c          |  27 ++++---
     string.c        |  21 -----
     string.h        |   1 -
     9 files changed, 231 insertions(+), 187 deletions(-)

mixer

A few patches for the sleep subcommand of para_mixer, particularly the two new options for the initial mood.

net

A moderately sized series which contains a bunch of simple cleanups for net.c and net.h,

openssl-3

overflow

This series implements a new memory allocation API which checks for overflows. The first part of the series just renames the main allocation functions. Later patches in the series implement allocators which take two size_t arguments, like calloc(3) does, and check whether the multiplication overflows by employing the __builtin_mul_overflow() primitive supported by gcc and clang. This requires us to bump the lowest supported gcc and clang version.

sf_float

A single patch which adds two new sample formats for 32 bit IEEE float waveform data.