On Mon, Sep 22, 2008 at 11:26 PM, Arjun Sarwal <[EMAIL PROTECTED]> wrote: > Hi, > > For the Activity that I maintain, I maintain two branches - devel and > stable. At the time of a release contents of devel=stable. > > I am realizing that I am not implementing the best practice. > > As time passes stable continues to remain the same while I do > development in devel. Thus devel becomes very divergent from stable. > This also causes a large amount of strings to remain untranslated > because stable is being translated and perhaps it doesnt make sense > (?) to translate devel until a release into stable is made. > > So I want to ask, > > 1. Is there any use of maintaining such branches ? Or should I have > just one development branch and 'tag' it at a release ? > > 2. If I do maintain such branches, should one undergo a cycle of > localization(Translation) after each release of code from devel branch > is made ? >
Arjun, I notice from your repository that you maintain two separate directories as your branch. Normally a branch is created with the command git branch. For the specifics, I suggest http://blogs.gnome.org/shaunm/2007/09/17/git-for-gnome/ which covers most of the basics. The usuual workflow followed by activities is attained by having two or more branches. The fun stuff (which is the cutting edge development) happens in the master branch. However, as the release time comes close (eg: for 8.2, around the middle of August), in order to stabilize stuff, you create a branch and continue the experimentation in master, and try to stabilize the stuff in the new branch you have created. This branch may also become string frozen, allowing translators to attain complete coverage in the time for release. For example, you'll notice that most activities have now a branch called sucrose-0.82. That branch is the current stable branch targetting 8.2, while the experimentation goes on in master. Releases for 8.2 is made from the sucrose-0.82 branch. As soon as the process for 9.1 begins, the releases will be made from master, so that people can play with the experimental code and find bugs. (however, if you think carefully, to implement this properly, we really need to have a more elaborate versioning scheme for activities - otherwise there is no way of figuring out whether a bundle is experimental code or not from looking at the version number) When you branch, you should announce it in the sugar as well as in the localization list. As soon as you branch, a new project will be created in Pootle (this is done by me right now) to handle translations for your branch. For example, in Pootle, the sucrose-0.82 branch stuff is being translated through the projects Fructose-82 and Sucrose-82. Some other stuff which you might find useful: ---------------------------------------------------- When you make a release, you should normally tag your code. This will serve as milestones in your repository history, and in case any confusion arises after the packaging, you can always ask git to fetch the files for a particular tag. We normally use a tagging scheme like v12, v13, v14, v15, etc To get an understanding of how all this works, I would also highly suggest that you try out a tool called giggle (or gitk), which will show you all the branching and tagging in a nice graphical manner, which should make it even more easier for you to get an idea of what is going on. Hope that helped (and I didn't confuse you ;-). Feel free to ask more questions. Cheers, Sayamindu -- Sayamindu Dasgupta [http://sayamindu.randomink.org/ramblings] _______________________________________________ Sugar mailing list Sugar@lists.laptop.org http://lists.laptop.org/listinfo/sugar