xp-framework / rfc

One of the major deficiencies in the development of many projects is that there is no roadmap or strategy available other than in the developers' heads. The XP team publishes its decisions by documenting change requests in form of RFCs.
2 stars 1 forks source link

XP 5.9 as default branch #260

Closed kiesel closed 11 years ago

kiesel commented 11 years ago

Scope of Change

The default branch for all XP repositories will be changed to the 5.9 "definition":

Separate release cycles for higher development velocity & easier developer involvement.

Functionality

XP compiler

$ git checkout master
$ git push origin xp5_8

From this point, the master branch will be evolved into a separate release cycle:

  1. A ChangeLog will be created
  2. The version will be aligned starting with 5.8.0 = 1.0.0
  3. A VERSION file will be created

    XP Core

$ git checkout master
$ git push origin master:xp5_8
...
$ git merge xp5_9
...

After this ChangeLog-5.9 and ChangeLog will be merged on the now new master branch. Features in XP 5.9 will be manually and selectively backported to XP 5.8 as the case arises. We will concentrate on 5.9-SERIES, though.

XP Contrib

See RFC #210 - the remaining modules will be carved out into their own repositories using:

$ git checkout master
$ git push origin master:xp5_8
$ git clone git://github.com/xp-framework/xp-contrib.git
$ cd xp-contrib
[...Create a tar.gz here for reuse...]
$ git checkout xp5_9
$ git filter-branch --subdirectory-filter <module> xp5_9 -- --all
$ git reset --hard
$ git gc --aggressive
$ git prune
$ git remote rm origin
$ git remote add origin git@github.com:xp-forge/<module>.git
$ git push origin xp5_9:master

See

The xp-contrib repository will be cleaned up, modules will then be located at these URLs:

The following modules will not be migrated:

n/a

Speed impact

n/a

Dependencies

Related documents

thekid commented 11 years ago

New repositories in xp-forge have been created. Got some unicorns while doing so :-)

mrosoiu commented 11 years ago

I liked XP-Compiler and all XP-Contrib modules having the versions synced with XP-Core; you could easily detect dependencies.

It also kinda forced you to use the latest version of XP-Core if you needed a feature released in any of the latest XP-Contrib modules. I see this a a good thing, as it will make you fix your old/unmaintained code that rely on old versions of XP-Core.

Anyway, from the point of faster development cycles, this version decoupling makes perfect sense.

Also the individual modules versions will actually reflect changes on that specific module (E.g.: a version change from 1.1.0 to 1.2.0 would imply that some API calls are not backward compatible anymore)

thekid commented 11 years ago

https://github.com/xp-framework/xp-framework - master = 5.9.0-dev, xp5_8 = 5.8.11-dev, xp5_9 branch deleted.

thekid commented 11 years ago

https://github.com/xp-framework/xp-language/ - master = 1.9.0-dev, xp5_8 = 1.2.1-dev, ChangeLog and VERSION files have been created.

thekid commented 11 years ago

All of the modules mentioned in the above list have been carved out by cloning the repository and then calling this script for each of the modules' names.

#!/bin/sh

module=$1
if [ ! -e xp-contrib/$module ] ; then
  echo "*** No such module $module" >&2
  exit 1
fi

echo "---> Carving out $module"
cd xp-contrib
git checkout xp5_9
git filter-branch --subdirectory-filter $module xp5_9 -- --all
git reset --hard
git gc --aggressive
git prune
echo "$module ChangeLog" >> ChangeLog
echo "========================================================================" >> ChangeLog
git add ChangeLog
git ci -m '- Carve out module according to xp-framework/rfc#260' ChangeLog
git remote rm origin
git remote add origin git@github.com:xp-forge/$module.git
git push origin xp5_9:master
cd ..
echo "---> Done"
rm -rf xp-contrib
tar xfz xp-contrib.tar.gz
echo "---> Restored checkout to original state"
thekid commented 11 years ago

https://github.com/xp-framework/xp-contrib, modules carved out. master = (empty), xp5_8 contains the old directories, xp5_9 has been deleted.