The IDE is improving day after day and we are not far from having a 2.0.0 final release.
There are still a few blockers, but overall I believe we are in good shape and 2.0.0 will
happen soon enough.
Before the final release, we would like to set some convention for naming branches.
The intent is to make it easier for new and experienced contributors to tell what each
branch is about.
First, wip_experiment branch will be merged to master and wip_experiment branch will
be deleted. This should not affect anyone work, as you will be simply request to merge
any future change with master instead of wip_experiment. If none oppose, I'll do that during
the week and send a message in the mailing list when this is done.
Then we'd like to suggest the following naming convention for branches:
If you are working on a new feature you should name your branch `feature/xxx`, where xxx
is a short meaningful name for the feature. The name should be (all) lowercase and each word
separated by a '-'. For example, `feature/indigo-compat` is a valid choice.
If you are working on a ticket, then you should name the branch `ticket/N`, where N is the ticket's
number. For example, 'ticket/1000478`.
David, for the wip_exp_backport branch I'd suggest to use a similar convention. Something like
`backport/master`, `backport/feature/xxx` and `backport/ticket/N`. What do you think?
Once agreed on the convention, we need to implement it. It'd be good if the person who created
the branch will take care of the renaming (if necessary). If one of your branch is no longer in use
(e.g., you already merged its content in wip_experiment), please go ahead and delete it. One word
of advise, if several people are working on the same branch, please do synchronize with them
before performing the rename, as this is a disruptive change.
Let me know guys if I forgot something (maybe we need more categories), and feel free to suggest
alternatives if you think they make more sense.
Cheers,
Mirco
Yippee
> Let me know guys if I forgot something (maybe we need more categories), and
> feel free to suggest alternatives if you think they make more sense.
I think that sounds like a good plan, so +1 from me!
Cheers,
Mirko
--
Mirko Stocker | m...@misto.ch
Work: http://ifs.hsr.ch | http://infoq.com
Personal: http://misto.ch | http://twitter.com/m_st
Yup, sounds good to me as well ...
Will definitely be good to get the mainline back on master.
Cheers,
Miles
--
Miles Sabin
tel: +44 7813 944 528
gtalk: mi...@milessabin.com
skype: milessabin
http://www.chuusai.com/
http://twitter.com/milessabin
If you are working on a new feature you should name your branch `feature/xxx`, where xxx
is a short meaningful name for the feature. The name should be (all) lowercase and each word
separated by a '-'. For example, `feature/indigo-compat` is a valid choice.If you are working on a ticket, then you should name the branch `ticket/N`, where N is the ticket's
number. For example, 'ticket/1000478`.
I'm fine with rename wip_experiment and wip_exp_backport but not as master and backport (resp).my pref (doesn't change, see previous message (linked below) + schema ) :* wip_2.x.y + staging_2.x.y + solid_2.x.y* wip_1.x.y + staging_1.x.y + solid_1.x.y
* we should take care of versionning and release process
* wip_exp_backport is not only a backport (backport is minor vs other change)
* there is no master update-site, no so master branch
* I would like to avoid the bad experience of long fork like wip_experiement was (~ 6 month) and the confusion vs master.
my POV is minor.
> I think this should be clarified a bit. First, shouldn't people be encouraged to file a ticket for the feature they're working on? If so, then does it make sense to have a separation between tickets and features? On the other hand, I think it would make sense to have an area for long-lives branches (or maybe they could remain in the root).
I agree, feature and ticket are somewhat overlapping. Ideally, this is how I intended them to be used:
`feature` should be used for involved tasks, that will likely take days/weeks/months before getting merged
into the mainline. Maybe, if a ticket is open for the feature you are working on, then we could say that the
ticket number should be postfixed, e.g., feature/scaladoc-hover-1000210. And yes, I would like to push on
opening enhancements tickets before creating a branch, when that makes sense.
On the other hand, I expect branches created under `ticket` to have a (very) short live period. Most of the time,
fixing a bug boils down to changing a few lines in one or two files. Hence, often you don't even create a
(remote) branch for a ticket. However, there are times when you do want to have a branch. For example, to get
some feedback. In which case you can push the branch under `ticket`.
I know the definition is far from being formal, but I think common sense (with a short wiki page ;) should be enough
to decide if a branch should go under `feature` or `ticket`.
Does that make sense to you?
-- Mirco
:)
> So something like Indigo improvements would just be a feature.
> feature/indigo
> feature/juno
> feature/klaxon
I have been discussing this with Iulian and we think it would be better have them under `platform`:
`platform/indigo`
`platform/juno`
`platform/klaxon`
Though, one point that is still unclear to me is how we are going to proceed with supporting different
Eclipse platforms. At the moment, the officially supported platform is Helios, and we work on best-effort
to also support Indigo. But as you have noticed, Indigo is less stable and we miss the resources for offering
the same quality on both.
Iulian has always pushed to have one single codebase that can work against both Helios and Indigo (again,
because of resources constraints). Though, the more platforms there will be, the lower are the chances that we
can keep one single codebase for all of them. Hence, in the future we will have to decide to either drop support
for some platform, or else to have different branches for each platform and then make sure to push them forward
together.
Maybe it would be good to start a discussion on a different thread about this topic, I think it'd be good to clear this up.
-- Mirco
Hi David,I'm fine with rename wip_experiment and wip_exp_backport but not as master and backport (resp).my pref (doesn't change, see previous message (linked below) + schema ) :* wip_2.x.y + staging_2.x.y + solid_2.x.y* wip_1.x.y + staging_1.x.y + solid_1.x.yI've looked at the discussion threads you mentioned. I'm suggesting to use master because this isthe place devs used to git expect to have the latest basecode for the IDE. If I'm new to the project, thefirst thing I'm going to do is to have a look at the sources, and master is definitely the place where I'dlook. IMO, if I've to read a document to know what branch I need to look at for getting the latest sources(as it is the case nowadays), you lost me already.
Going back to your schema, I don't think we can afford having three different development branches,we are missing the resources for that and we should really strive for keeping things simple and manageable.
Hi David,I'm fine with rename wip_experiment and wip_exp_backport but not as master and backport (resp).my pref (doesn't change, see previous message (linked below) + schema ) :* wip_2.x.y + staging_2.x.y + solid_2.x.y* wip_1.x.y + staging_1.x.y + solid_1.x.yI've looked at the discussion threads you mentioned. I'm suggesting to use master because this isthe place devs used to git expect to have the latest basecode for the IDE. If I'm new to the project, thefirst thing I'm going to do is to have a look at the sources, and master is definitely the place where I'dlook. IMO, if I've to read a document to know what branch I need to look at for getting the latest sources(as it is the case nowadays), you lost me already.
* I would like to avoid the bad experience of long fork like wip_experiement was (~ 6 month) and the confusion vs master.Exactly my point. With the current state, it is confusing that master does not contain the latest, up-to-date, stream of code for the IDE.That's why we should reorganize things before the final release, as we would like to get more contributors interested in the project.It is really about lowering the barrier and make the whole repository consistent.my POV is minor.Disagreed :) Discussion is important to avoid making the wrong moves and waste time. I'm happy you questioned my proposal, asit pushed me thinking a little more about it and see how things will develop in the future.
On the contrary ... the goal is get the barrier to entry for casual
contributors as low as possible. And for that the simpler the better.
So +10 to Mirco's proposal from me.
I agree, feature and ticket are somewhat overlapping. Ideally, this is how I intended them to be used:
`feature` should be used for involved tasks, that will likely take days/weeks/months before getting merged
into the mainline. Maybe, if a ticket is open for the feature you are working on, then we could say that the
ticket number should be postfixed, e.g., feature/scaladoc-hover-1000210. And yes, I would like to push on
opening enhancements tickets before creating a branch, when that makes sense.On the other hand, I expect branches created under `ticket` to have a (very) short live period. Most of the time,
fixing a bug boils down to changing a few lines in one or two files. Hence, often you don't even create a
(remote) branch for a ticket. However, there are times when you do want to have a branch. For example, to get
some feedback. In which case you can push the branch under `ticket`.I know the definition is far from being formal, but I think common sense (with a short wiki page ;) should be enough
to decide if a branch should go under `feature` or `ticket`.
feature/010101-scaladoc-goodies or issue/010101-eclipse-dies-horrible-death vsfeature/scaladoc-goodies-010101 or issue/eclipse-dies-horrible-death-010101The text makes it easier to scan entries than just having a ticket number, I think that is not controversial. Prefix ticket numbers make tab-completion work better if you know the ticket number while postfix makes it for more regular names when there is no ticket number.
About "master", there are several schools :
* master == the last release (cf git flow,...)
* master == the current dev (integrated)* there is no master branch and HEAD point to what git dev wants as default starting branch for "new cloner".
(you don't need to merge into master, master is just a name/alias, so you can rename wip_experiment to master)
you look at the lastest sources of what ? the dev, the version you use.IMO If there is no master, then user will select to the version/branch he used/want to work on.
It's no 3 development branches. it 3 channels (branch + update-sites) :
* wip = developement
* staging = stable but not "release" (in your words the place for milestone, beta, RC, maintenance)
* solid = stable "release"when you push to staging_ then the update site is updated and user that want "early access" can used (less work than the current process of "releasing")
I would suggest a couple of changes. Rename ticket to 'issue' or 'bug' as I don't think 'ticket' is descriptive (and as discussed features can have tickets).
And include text in both.
Now, I am undecided between prefix or postfix notation (both have advantages and disadvantages):feature/010101-scaladoc-goodies or issue/010101-eclipse-dies-horrible-death vsfeature/scaladoc-goodies-010101 or issue/eclipse-dies-horrible-death-010101The text makes it easier to scan entries than just having a ticket number, I think that is not controversial. Prefix ticket numbers make tab-completion work better if you know the ticket number while postfix makes it for more regular names when there is no ticket number.
What do you think?
It's great to see this re-haul, thanks Mirco for stepping up and driving this!
I have but a small remark. I'd prefer having the ticket number at the
end, precisely for better tab completion. For me it's harder to
remember a ticket number, and anyway the first 4 digits of all tickets
are the same.. it's most likely that only one digit will differ
between branches.
cheers,
iulian
> -- Mirco
--
« Je déteste la montagne, ça cache le paysage »
Alphonse Allais
when you push to staging_ then the update site is updated and user that want "early access" can used (less work than the current process of "releasing")This are what nighties are for, aren't it?
* I proposed to rename wip_experiment to master and not to "git merge" : less work and less error prone
+1 for 'issue/NNNNN_description'* NNNN will always match the number of the ticket, but description will rarely match the title of the ticket so harder for completion
* about completion, I suggest you to use zsh + oh-my-zsh, completion (of filename, branch) is done on any part of the name (not only on the begin)About dev that are not associated to a ticket, eg : feature/foo a particite can be to prefix the feature name by the start date, it help to see old feature without browse history/graph... and how long it take to develop the feature when ready to merge into master : feature/YYYYMMDD_foo
About 'backport', why not using maintenance/scala-ide-1.x.y ('x.y' are not placeholders) ?
My plan is to make the proposal final by next Friday 23th of
September. After that, I expect that branches
will be renamed/deleted by their own creators in a matter of days.
Tomorrow (Monday) morning, I will rename wip_experiment branch to be master.When done I'll send a message in the mailing list.
Does this Stackoverflow question (and answer(s)) help?
http://stackoverflow.com/questions/1526794/git-rename-remote-branch
If any of you knows how to correctly do the process I describe in the above link, please let meknow. I'll move forward with it the moment I have the missing information. (and I'll make sureto let you all know when I start the branch renaming process).
Matt, Miles,Thanks a lot for the suggestions!I managed to merge wip_experiment back into master. It looks good to me, let me knowif you see any issue.I also created a `release/scala-ide-2.0.x` branch (copy of current master), which will beused for fixing tickets for the 2.0 release and for future maintenance released for the 2.0plugin. This means that master can soon be used for the development of the next 2.1plugin. We still need to update the nighties so that they point to the right branch.Now, it's time to clean up the mess of branches that we have. Hopefully, by the beginningof next week we'll have a much cleaner repository.
-- MircoOn Sep 26, 2011, at 5:32 PM, Matt Russell wrote:On Monday, September 26, 2011 1:57:36 PM UTC+1, Mirco Dotta wrote:If any of you knows how to correctly do the process I describe in the above link, please let meknow. I'll move forward with it the moment I have the missing information. (and I'll make sureto let you all know when I start the branch renaming process).As an alternative to force push or deleting master, could you instead merge wip-experiment into master?-- Matt
This means that master can soon be used for the development of the next 2.1plugin. We still need to update the nighties so that they point to the right branch.
...
I'm updating the Jenkins configuration right now.
Hi,
On Tuesday, September 27, 2011, iulian dragos wrote:This means that master can soon be used for the development of the next 2.1plugin. We still need to update the nighties so that they point to the right branch....I'm updating the Jenkins configuration right now.Does this mean that master is now open for 2.1 development?
Cheers,Mirko
--Mirko Stocker | m...@misto.ch
Ok :-) Thanks!
We reached a point where, I believe, we have a nice project setup. We
have a 2.0.x branch for stable builds (the upcoming 2.0 release), and
master for early adopters (future 2.1 release).
We have two features that wait for inclusion, and I'd like to continue
to have a 'review process' in place for anything that goes into master
as well, making sure that everything that touches the presentation
compiler is touching it the right way ;-)
I'll jump on 'Implicit highlights', since I already looked at it, and
I hope Mirco will have a look at semantic highlighting. Once the
review is done (and required changes are implemented), you can go
ahead and merge to master.
cheers, and thanks for bearing with us for all this time!
iulian
--
> We have two features that wait for inclusion, and I'd like to continue
> to have a 'review process' in place for anything that goes into master
> as well, making sure that everything that touches the presentation
> compiler is touching it the right way ;-)
>
> I'll jump on 'Implicit highlights', since I already looked at it, and
> I hope Mirco will have a look at semantic highlighting.
Cool, although the semantic highlighting branch is not ready to merge
to master yet -- in particular, it'll need to plug in to the work
Mirko has done on the implicit highlighting branch.
-- Matt