| Set of 0.4.0 proposals |
| |
| * module versioning |
| - we need an agreement on how we are going to version the separate modules. |
| This needs to meet some requirements : |
| a) we shouldn't be forced to release all of the modules together |
| every time (if the plugins have been updated, and still work against |
| a previous core, then only release plugins, for example) |
| We should start treating the different modules as separate projects |
| (albeit still closely tied of course) |
| b) it should be clear for other people what packages they need to download |
| c) major API breakage needs to be clear; we don't expect really old players |
| to keep working with really new cores. |
| |
| - my idea (which others seemed to agree with) would be to let the micro |
| numbers run independently. Only when the core API has changed to the |
| point that other modules are not compatible with them anymore |
| should we upgrade the minor version. |
| We can assume/assert that modules with the same minor number will be able |
| to work with each other. |
| |
| - Example schedule : |
| * we release 0.4.0 versions of all of the modules |
| * plugins get updated a few times : 0.4.1 and 0.4.2 |
| * core gets a new scheduler, doesn't affect other modules : 0.4.1 |
| * gst-player gets rapid releases due to arik's recovery: 0.4.1-0.4.5 |
| * core gets a major new update re: events : 0.5.0 |
| * some days later, other modules have been updated to the new core |
| and the new core starts being useful to other people as well |
| |
| * release practice |
| - we should have a simple way to cut releases; something that makes |
| the necessary adaptions to the source tree |
| This could also be a simple check list of things that need to pass |
| - cvs tarballs/packages should be easily distinguishable from pre-release |
| tarballs/packages and actual released ones. |
| |
| my idea here would be : |
| a) releases are named as normal |
| e.g. gstreamer-0.4.0.tar.gz |
| gstreamer-0.4.0-1.i386.rpm |
| |
| b) as soon as the release is made, we are back in "cvs" mode |
| i'd use a ".1" for a fourth version number for all cvs versions |
| so as soon as we release 0.4.0, I'd add a fourth ".1" version number. |
| this one would be used during the whole of the cvs period, no |
| reason to up this manually in between |
| The packages (rpms in any case, don't know about debs) would still |
| keep the date as the revision number like they have now, in order |
| to make it easy to work with snapshots. |
| |
| c) when we are ready to release this module, I would go back to maintainer |
| mode, but keep the fourth version number and increase that for each cut. |
| So we'd stop developing the module, switch to maintainer mode, up the |
| version number to |
| gstreamer-0.4.0.2.tar.gz |
| and test that. |
| |
| d) when we are happy with the precuts, we drop the fourth number and make |
| a release |
| |
| Summary : |
| * all "official" released versions have sane versioning with three numbers |
| * all "cvs" versions are clearly recognizable by the fourth .1 |
| * all "precuts" are also recognizable |
| * no tarballs will accidentally spill pretending to be real releases ;) |
| * upgrading rpm's all through this process is easy |
| |
| * build code stuff duplicated between various modules |
| - how do we integrate these ? this pertains to stuff in autogen.sh, |
| duplicate stuff in configure.ac (which should probably be moved out to |
| custom .m4 files and yanked in), and maybe testing stuff |
| |
| * what possible ways are there to build gstreamer ? |
| I would like to take stock of the combinations of deps possible to build |
| gstreamer. While most people want only glib2, I think there is merit |
| in still making glib1 work and willing to put in the effort. I just need |
| the possibilities mapped out once and for all ;) IMO the effort going into |
| making gstreamer build without libxml is the same as making it work with |
| older glib too. I mean, as soon as you allow variation, it isn't that hard |
| to allow for more than one variation. The bigger step is from zero to one. |
| |
| so, what are they ? |
| - glib1 & gtk1 |
| - glib1 & gtk1 & libxml |
| - glib2 & libxml2 |
| |
| * media suite |
| - media files on the site should be renamed to simple uniform names |
| - and split up based on size |
| - described by features/content |
| |
| * when to branch in CVS ? |
| |
| * automatic build testing |
| - tinderbox ? useful ? |
| - small build scripts |
| |
| * automatic functionality testing |
| - an md5sink would be useful to do this |
| - something automated is needed; it should check if you have the plugins |
| that are needed to test other plugins |
| |
| * media player |
| |
| * packaging |
| - dependency libs should be easily available |
| |