--- /dev/null
+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
+