A majority of our infrastructure is now ready to begin collaborating our FreeBSD Haskell efforts. I present here a proposal for collaborating our work in the git repository[1]. The following branches seem to be necessary, master branch) This will be a ``read-only'' branch consisting of daily merges of the FreeBSD ports repository. It will never be committed to otherwise. ports branch) This will consist of updates and minor changes to the ports we each maintain. This branch can be seen as being in a constant state of ``slush''. Ports committers may use this branch to commit our ``minor'' work with much ease. Commits will be made on a port-by-port basis and must be ordered based on dependency. For example, if I wish to commit a port A which depends on port B then I would first commit port B and then port A. This will make it easy for ports committers to generate diffs for their local repositories. ghc branch) With no doubt, GHC maintenance is central to our project. I would be creating a ghc meta-port in this branch and move current ghc to ghc-6-8. After this, I will be porting over ghc-6-10. The ``ghc'' port will always be pointing to the latest stable ghc release in ports. Every GHC update might involve changing/modifying legacy ports to point to the older versions of GHC they depend on (if necessary). infrastructure branch) This branch would contain our experimental work with bsd.haskell.mk. It would involve mainly bsd.haskell.mk changes for now. Once it is committed to the FreeBSD ports project, its changes will bubble back here (master -> ports -> ghc -> infrastructure) from FreeBSD itself. At this point, we would be ready to do the massive sweeping changes to the FreeBSD ports in the ports branch in a small step-wise manner (which should mean a non-disruptive experience for FreeBSD Haskell users). I propose that the ports branch merge in changes on a regular basis from the master branch, the ghc branch merge changes from the ports branch and the infrastructure branch merge in changes from the ghc branch. This is based on multiple factors including relative ease of merging a branch's work upstream. The infrastructure branch will also always depend on GHC which will always serve the needs of the ports branch which will always be similar to the master branch (as it involves no sweeping changes). The following simple diagram might help describe this, FreeBSD Project -> Master -> Ports -> GHC -> Infrastructure ^ | | | | | | | | | '-<-----<-----V----<---V---<----V-----<-----V The following issues need to be addressed, github mirror: Ashish, could you give us the URL to the github mirror? Should this be a weekly mirror? Daily? Mailing list usage: This is really just a note to certain people (cough, cough, pgj@) that you should generally have the "To" line set to the mailing list and CC: individuals involved. If the "To" line is not set properly some mail clients will not be able to respond properly. This has already resulted in several lost messages. Let's get the ball rolling! What do you guys think of the above proposal? If we are in agreement, I can go ahead and work on the proper commit scripts for the master branch and create the following branches. I plan to begin the GHC work immediately. We should be able to work mostly in parallel this way. 1: git://git.applicative.org/haskell/ports Regards. -- Samy Al Bahra <sbahra@applicative.org>