Discussion:
[soci-users] Changing the default branch in the Github repository?
Vadim Zeitlin
2015-03-14 19:09:21 UTC
Permalink
Hello,

Could one of the owners of the Github repository (Mateusz or Pawel if I'm
not mistaken) please change the default branch to "develop"? It's not very
convenient to have to select it explicitly for each new PR as "master" is
the default right now and, of course, it also risks encouraging people
submitting (and misguided developers such as me applying...) the PRs to the
master branch which is not supposed to be touched directly with the git
flow that we're supposed to use.

TIA!
VZ
Pawel Aleksander Fedorynski
2015-03-16 03:31:12 UTC
Permalink
I don't really understand the implications of what you're asking for, but
if Mateusz doesn't respond within a couple days or say a week, I'll be
happy to do it, especially if you give me instructions how.

Thanks,

Aleksander
Post by Vadim Zeitlin
Hello,
Could one of the owners of the Github repository (Mateusz or Pawel if I'm
not mistaken) please change the default branch to "develop"? It's not very
convenient to have to select it explicitly for each new PR as "master" is
the default right now and, of course, it also risks encouraging people
submitting (and misguided developers such as me applying...) the PRs to the
master branch which is not supposed to be touched directly with the git
flow that we're supposed to use.
TIA!
VZ
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website,
sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for
all
things parallel software development, from weekly thought leadership blogs
to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
soci-users mailing list
https://lists.sourceforge.net/lists/listinfo/soci-users
Vadim Zeitlin
2015-03-16 12:11:31 UTC
Permalink
On Sun, 15 Mar 2015 20:31:12 -0700 Pawel Aleksander Fedorynski <***@gmail.com> wrote:

PAF> I don't really understand the implications of what you're asking for,

Sorry, let me try to explain it better: when somebody creates a pull
request for SOCI repository, currently it defaults to the master branch.
This is wrong as all the changes are supposed to be done in the develop
branch instead. Fixing this is not difficult (you just need to select the
"develop" branch from the branch selection combobox), but annoying even if
you remember to do it and, of course, some people might not know that you
have to do it in the first place.

PAF> but if Mateusz doesn't respond within a couple days or say a week,
PAF> I'll be happy to do it, especially if you give me instructions how.

I've actually never done it myself as all my other repositories just use
"master" branch as the work one and don't use git flow, but AFAICS you just
need to click on the "Settings" (screwdriver and wrench icon) and change
the "Default branch" there.

FWIW this is not a drastic change, it will only affect future PRs and it
can always be undone, so I don't think Mateusz could have any objections to
it...

TIA,
VZ
Sebastian Lauwers
2015-03-17 09:11:26 UTC
Permalink
Hi all,

I'd like to recommend /against/ this. There are two major implications:

- All PRs will default against `develop`, which is what you're asking,
- Upon cloning, the checked-out branch will be `develop`.

There are a number of reasons why I'd recommend against this:

- This can break a number of tools that automagically pull against the
repository; I don't know how much of a concern this is regarding SOCI,
but I've heard of some workflows that get broken when this is the
case. I'll see if I can dig up some links on this.
- Most users who just want the source code don't necessarily need to
know what the development workflow is. As soon as you start tracking
the `develop` branch, you *know* that you're going to be using fairly
specific user scenarios. I'd wager that there are a lot more SOCI
users than developers.

I'm a believer in the idea that the default branch should be a stable
one. The only branch guaranteed to be stable in gitflow is master.
Furthermore, there are very little advantages to changing the default
branch: developers who submit PRs get two perform two lesser clicks,
with the adverse effect being potential confusion, and potential
breakage.

I'm sure there's a greasemonkey script somewhere that would allow you
to automagically select `develop` rather than `master`.

My 2 cents,

-S.
Asif Lodhi
2015-03-17 12:02:37 UTC
Permalink
Hi,

Any change that creates more hassle for users instead of the developers
must not be made. Let the developers deal with the hassle, not the users.
So, you have to keep the users in mind no matter what changes you make.

Regards,
-Asif
Post by Sebastian Lauwers
Hi all,
- All PRs will default against `develop`, which is what you're asking,
- Upon cloning, the checked-out branch will be `develop`.
- This can break a number of tools that automagically pull against the
repository; I don't know how much of a concern this is regarding SOCI,
but I've heard of some workflows that get broken when this is the
case. I'll see if I can dig up some links on this.
- Most users who just want the source code don't necessarily need to
know what the development workflow is. As soon as you start tracking
the `develop` branch, you *know* that you're going to be using fairly
specific user scenarios. I'd wager that there are a lot more SOCI
users than developers.
I'm a believer in the idea that the default branch should be a stable
one. The only branch guaranteed to be stable in gitflow is master.
Furthermore, there are very little advantages to changing the default
branch: developers who submit PRs get two perform two lesser clicks,
with the adverse effect being potential confusion, and potential
breakage.
I'm sure there's a greasemonkey script somewhere that would allow you
to automagically select `develop` rather than `master`.
My 2 cents,
-S.
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website,
sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for
all
things parallel software development, from weekly thought leadership blogs
to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
soci-users mailing list
https://lists.sourceforge.net/lists/listinfo/soci-users
--
Best regards,

-Asif
Mateusz Loskot
2015-03-25 08:40:51 UTC
Permalink
Hi,
Any change that creates more hassle for users instead of the developers must
not be made. Let the developers deal with the hassle, not the users.
That was part of my reasoning as well.
I assumed developers know the workflow, the GitHub, how the PRs work, so they
know which barnch to work against and how to submit PRs against that branch.
I assumed users just want to pull the latest version, without learning
about development issues.

Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
Vadim Zeitlin
2015-03-17 13:13:14 UTC
Permalink
On Tue, 17 Mar 2015 10:11:26 +0100 Sebastian Lauwers <***@gmail.com> wrote:

SL> I'd like to recommend /against/ this. There are two major implications:
SL>
SL> - All PRs will default against `develop`, which is what you're asking,
SL> - Upon cloning, the checked-out branch will be `develop`.

Hmm, I hadn't realized this, thanks for mentioning it.

SL> There are a number of reasons why I'd recommend against this:
SL>
SL> - This can break a number of tools that automagically pull against the
SL> repository;

I'd expect all such tools to fetch all branches but it's not, of course,
impossible, that some of them are broken...

SL> - Most users who just want the source code don't necessarily need to
SL> know what the development workflow is. As soon as you start tracking
SL> the `develop` branch, you know that you're going to be using fairly
SL> specific user scenarios. I'd wager that there are a lot more SOCI
SL> users than developers.

This is clearly true, although we can probably assume that only the
"advanced" users get their sources from git.

SL> I'm a believer in the idea that the default branch should be a stable
SL> one.

Notice that this is clearly _not_ the case when _not_ using git flow as
then all the development is done on master and stable releases branch off
it. And I do believe that most people have a clear understanding that
getting the latest master means you get the latest, but not necessarily the
most stable, version.

SL> I'm sure there's a greasemonkey script somewhere that would allow you
SL> to automagically select `develop` rather than `master`.

This is not the only problem though. Most of the existing PRs (I was
looking over them recently trying to pick all uncontroversial ones and
apply them) were made against master and not develop too. And I don't see
this changing: when you clone a repository, it's natural to do your changes
in master. So, basically, this means that it will continue to be impossible
to merge PRs easily. And this is IMO a bigger problem, SOCI development is
already almost stalled and not applying PRs quickly is not going to help
get it moving faster again.

In fact, my personal favourite solution would be to keep master the
default branch but drop git flow entirely. It's probably a good workflow
for managing a team of many developers and a project with many releases,
but neither of these criteria applies to SOCI: there are few developers and
even fewer releases. Using the traditional master-and-release-branches
workflow is simpler and would IMHO be quite enough for this project.

Of course, this wouldn't help with your concerns as master would be
exactly as [un]stable as develop is now. But if this helped SOCI
development it would be still well worth it IMO.

Regards,
VZ
Pawel Aleksander Fedorynski
2015-03-22 18:36:23 UTC
Permalink
So from my reading it seems we don't have a clear agreement here? I'd
really prefer to defer this decision to Mateusz.

Thanks,

Aleksander
Post by Vadim Zeitlin
On Tue, 17 Mar 2015 10:11:26 +0100 Sebastian Lauwers <
SL>
SL> - All PRs will default against `develop`, which is what you're asking,
SL> - Upon cloning, the checked-out branch will be `develop`.
Hmm, I hadn't realized this, thanks for mentioning it.
SL>
SL> - This can break a number of tools that automagically pull against the
SL> repository;
I'd expect all such tools to fetch all branches but it's not, of course,
impossible, that some of them are broken...
SL> - Most users who just want the source code don't necessarily need to
SL> know what the development workflow is. As soon as you start tracking
SL> the `develop` branch, you know that you're going to be using fairly
SL> specific user scenarios. I'd wager that there are a lot more SOCI
SL> users than developers.
This is clearly true, although we can probably assume that only the
"advanced" users get their sources from git.
SL> I'm a believer in the idea that the default branch should be a stable
SL> one.
Notice that this is clearly _not_ the case when _not_ using git flow as
then all the development is done on master and stable releases branch off
it. And I do believe that most people have a clear understanding that
getting the latest master means you get the latest, but not necessarily the
most stable, version.
SL> I'm sure there's a greasemonkey script somewhere that would allow you
SL> to automagically select `develop` rather than `master`.
This is not the only problem though. Most of the existing PRs (I was
looking over them recently trying to pick all uncontroversial ones and
apply them) were made against master and not develop too. And I don't see
this changing: when you clone a repository, it's natural to do your changes
in master. So, basically, this means that it will continue to be impossible
to merge PRs easily. And this is IMO a bigger problem, SOCI development is
already almost stalled and not applying PRs quickly is not going to help
get it moving faster again.
In fact, my personal favourite solution would be to keep master the
default branch but drop git flow entirely. It's probably a good workflow
for managing a team of many developers and a project with many releases,
but neither of these criteria applies to SOCI: there are few developers and
even fewer releases. Using the traditional master-and-release-branches
workflow is simpler and would IMHO be quite enough for this project.
Of course, this wouldn't help with your concerns as master would be
exactly as [un]stable as develop is now. But if this helped SOCI
development it would be still well worth it IMO.
Regards,
VZ
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website,
sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for
all
things parallel software development, from weekly thought leadership blogs
to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
soci-users mailing list
https://lists.sourceforge.net/lists/listinfo/soci-users
Vadim Zeitlin
2015-03-22 22:52:50 UTC
Permalink
On Sun, 22 Mar 2015 11:36:23 -0700 Pawel Aleksander Fedorynski <***@gmail.com> wrote:

PAF> So from my reading it seems we don't have a clear agreement here?

Apparently not. I'd just like to point out that since I had started this
thread there was another PR mistakenly done against master instead of
develop (see https://github.com/SOCI/soci/pull/296). Nik, its author, was
kind enough to redo it against develop, so it wasn't a problem but it's
still extra unnecessary friction for would be contributors to the project.

PAF> I'd really prefer to defer this decision to Mateusz.

This is not a problem for this particular decision but I'm not sure if
Mateusz has time for SOCI nowadays (at least I haven't heard from him since
quite some time) and so you might need to take other decisions without him.
Notably I'd like to do SOCI 4.0 release in some observable future (although
I still want to get a few things into it, so "observable" doesn't
necessarily mean "very close"...).

Regards,
VZ
Mateusz Loskot
2015-03-25 09:23:54 UTC
Permalink
Post by Vadim Zeitlin
PAF> I'd really prefer to defer this decision to Mateusz.
This is not a problem for this particular decision but I'm not sure if
Mateusz has time for SOCI nowadays (at least I haven't heard from him since
quite some time)
I regret to say, since I moved back to Poland, things been too tight & fast.
I'm still here though :)
Post by Vadim Zeitlin
and so you might need to take other decisions without him.
For future cases, if I don't respond within resonable time, please
feel free to proceed
with whatever decisions the rest of the team agrees on.
Post by Vadim Zeitlin
Notably I'd like to do SOCI 4.0 release in some observable future (although
I still want to get a few things into it, so "observable" doesn't
necessarily mean "very close"...).
FYI,
Personally, I need to get SOCI 3.2.3 off my table, before I move to SOCI 4.
For SOCI 4, my I have two priorities: clean up numeric/integer types support
and develop new tests.

Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
Mateusz Loskot
2015-03-25 09:19:27 UTC
Permalink
Post by Vadim Zeitlin
SL> - Most users who just want the source code don't necessarily need to
SL> know what the development workflow is. As soon as you start tracking
SL> the `develop` branch, you know that you're going to be using fairly
SL> specific user scenarios. I'd wager that there are a lot more SOCI
SL> users than developers.
This is clearly true, although we can probably assume that only the
"advanced" users get their sources from git.
I often checkout libraries from git to try out, see if they build in
my environment,
and it's not uncommon I need to update build scripts or apply small fixes.
Having master checked out, I'm ready to submit patches back straight away.
Post by Vadim Zeitlin
SL> I'm a believer in the idea that the default branch should be a stable
SL> one.
Notice that this is clearly _not_ the case when _not_ using git flow as
then all the development is done on master and stable releases branch off
it. And I do believe that most people have a clear understanding that
getting the latest master means you get the latest, but not necessarily the
most stable, version.
Yes, it seems to be like that, in default GitHub arrangements.
GitFlow overrides the role of master and if we do GitFlow, we do
master == stable.
Assuming we stick to GitFlow, I'd prefer to not to make any variations to that.

I'm not attached to GitFlow. I can drop it.
Let's propose and get all devs agree on simpler/better/preferred workflow.
Until that happens, I'd suggest with stick to GitFlow.
Post by Vadim Zeitlin
SL> I'm sure there's a greasemonkey script somewhere that would allow you
SL> to automagically select `develop` rather than `master`.
This is not the only problem though. Most of the existing PRs (I was
looking over them recently trying to pick all uncontroversial ones and
apply them) were made against master and not develop too.
And I don't see this changing: when you clone a repository, it's natural to do your changes
in master. So, basically, this means that it will continue to be impossible
to merge PRs easily.
Yes, I noticed this issue too.
Post by Vadim Zeitlin
And this is IMO a bigger problem, SOCI development is
already almost stalled and not applying PRs quickly is not going to help
get it moving faster again.
I haven't been able to find time to finally clear the 3.2.3 release
off my table.
That keeps me away from doing anything new regarding SOCI 4.

My experience with maintaining and releasing SOCI bugfix releases
revealed that one PITAs is
1. Collecting all PRs that qualify for a bugfix release
- often fixes submitted in big PR bundles need to be cherry picked
- often fixes submitted against develop need to be ported to master
- often fixes do not receive any feedback or review, so unclear they are good
- maintenance is no fun, but a time consuming boring task :)
Post by Vadim Zeitlin
In fact, my personal favourite solution would be to keep master the
default branch but drop git flow entirely.
That's a clear & fair request. As I mentioned above, I'm not attached.
Post by Vadim Zeitlin
It's probably a good workflow
for managing a team of many developers and a project with many releases,
but neither of these criteria applies to SOCI: there are few developers and
even fewer releases. Using the traditional master-and-release-branches
workflow is simpler and would IMHO be quite enough for this project.
I chose GitFlow because it is well structured workflow that makes it
no-brainer yet simple to follow, with one caveat...once you learn it :)
Post by Vadim Zeitlin
Of course, this wouldn't help with your concerns as master would be
exactly as [un]stable as develop is now. But if this helped SOCI
development it would be still well worth it IMO.
Ok, let's make it happen, unless there are objections from other
developers and contributors.

To make it clearer what we are going to decide between, quick summary:
1. On one hand, we have GitFlow -
http://nvie.com/posts/a-successful-git-branching-model/
a well structured workflow that proved to be not as well known as I'd
assumed and too detailed for SOCI.

2. On the other hand, we have, so called, GitHub flow -
http://scottchacon.com/2011/08/31/github-flow.html
a kind of rolling release workflow, where master is always deployable
aka stable (as in GitFlow)

3. Somewhere in between, we have traditional workflow known from, for
example, Subversion:
- master - here all development happens (submitted and merged from
*topic* branches!)
- release/X.Y.Z - maintenance branch
- tags/X.Y.Z - tag
It seems, git makes release/X.Y.Z redundant, because if hotfix
arrives, we can always create a branch
from the tag, then release and tag with new version (along with
merging into master, of course).

Now, the option 1. proved to be too complicated for us.
The option 2, to me personally, sounds compelling as it seems to
remove most of the maintenance and
releasing hassle - a PR arrives, it's reviewed and tested, then either
refused or merged to master.
If merged, it's released - the master is a release. But, are we happy
with no-version release?
The option 3 has the advantage of structure, is well known traditional
workflow and has versioned releases.

My vote:
1. Drop GitFlow: +1
2. New workflow: +1 for either 2 or 3

Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
Vadim Zeitlin
2015-03-25 15:02:50 UTC
Permalink
On Wed, 25 Mar 2015 10:19:27 +0100 Mateusz Loskot <***@loskot.net> wrote:

ML> Having master checked out, I'm ready to submit patches back straight away.

Sure, you can submit them -- but currently, i.e. when using git flow with
Github, they can't be merged easily (i.e. using the single button in the
web interface). This is exactly the problem which triggered this thread.

ML> > SL> I'm a believer in the idea that the default branch should be a
ML> > stable SL> one.
ML> >
ML> > Notice that this is clearly not the case when not using git flow as
ML> > then all the development is done on master and stable releases branch off
ML> > it. And I do believe that most people have a clear understanding that
ML> > getting the latest master means you get the latest, but not necessarily the
ML> > most stable, version.
ML>
ML> Yes, it seems to be like that, in default GitHub arrangements.
ML> GitFlow overrides the role of master and if we do GitFlow, we do
ML> master == stable.

It's even more rigid than this, it's so stable that it practically never
changes -- it's only updated when a release happens. Again, this is not
necessarily bad, but is definitely unusual, people expect to be able to
track changes as they happen if they pull from master, but with git flow
absolutely nothing happens in master.

ML> My experience with maintaining and releasing SOCI bugfix releases
ML> revealed that one PITAs is
ML> 1. Collecting all PRs that qualify for a bugfix release
ML> - often fixes submitted in big PR bundles need to be cherry picked
ML> - often fixes submitted against develop need to be ported to master
ML> - often fixes do not receive any feedback or review, so unclear they are good
ML> - maintenance is no fun, but a time consuming boring task :)

No workflow is going to help with the first and the last two points, of
course, but at least the second one is a pure annoyance due to an impedance
mismatch between git flow and Github and we could get rid of it.

ML> I chose GitFlow because it is well structured workflow that makes it
ML> no-brainer yet simple to follow, with one caveat...once you learn it :)

Yes, I agree that it's not that difficult. But it's still more difficult
than alternatives. And, while it doesn't excuse my erroneous commits to
master, it's hard to keep track of different workflows when switching
between different projects, so simpler is always better.

Most of all, I'd like to repeat that it seems obvious that git flow
strength is its good support for multiple active releasable branches and
frequent releases, neither of which is really needed for SOCI.


ML> > Of course, this wouldn't help with your concerns as master would be
ML> > exactly as [un]stable as develop is now. But if this helped SOCI
ML> > development it would be still well worth it IMO.
ML>
ML> Ok, let's make it happen, unless there are objections from other
ML> developers and contributors.
ML>
ML> To make it clearer what we are going to decide between, quick summary:
ML> 1. On one hand, we have GitFlow -
ML> http://nvie.com/posts/a-successful-git-branching-model/
ML> a well structured workflow that proved to be not as well known as I'd
ML> assumed and too detailed for SOCI.

This is the workflow I'd use if I had to make many releases.

ML> 2. On the other hand, we have, so called, GitHub flow -
ML> http://scottchacon.com/2011/08/31/github-flow.html
ML> a kind of rolling release workflow, where master is always deployable
ML> aka stable (as in GitFlow)

This is the workflow I'd use if I didn't have to make any releases.

ML> 3. Somewhere in between, we have traditional workflow known from, for
ML> example, Subversion:
ML> - master - here all development happens (submitted and merged from
ML> topic branches!)
ML> - release/X.Y.Z - maintenance branch
ML> - tags/X.Y.Z - tag

This is indeed the most commonly used workflow IME. Notice that it's a
strict superset of (2).

ML> It seems, git makes release/X.Y.Z redundant

The usual strategy is to have release/X.Y branch[es] and then X.Y.Z tags
on them.

ML> My vote:
ML> 1. Drop GitFlow: +1
ML> 2. New workflow: +1 for either 2 or 3

I don't think we can possibly use (2) because we do need 3.2 and 4.0
branches, at least. I do prefer (3) to (1).

Regards,
VZ
Mateusz Loskot
2015-03-25 16:02:13 UTC
Permalink
Post by Vadim Zeitlin
ML> Having master checked out, I'm ready to submit patches back straight away.
Sure, you can submit them -- but currently, i.e. when using git flow with
Github, they can't be merged easily (i.e. using the single button in the
web interface). This is exactly the problem which triggered this thread.
I see. I admit, in most but very trivial cases, I try to avoid the button.
In most cases, I have to merge the commit manually, or even cherry
pick commits from PR,
what's not uncommon.
I have a feeling the GitHub web merge button fits the GitHub flow really,
where merging a PR equals releasing new deployable/stable version.

Anyway, I don't mind if we decide on a workflow that enables us to use
the merge button.
Post by Vadim Zeitlin
ML> > SL> I'm a believer in the idea that the default branch should be a
ML> > stable SL> one.
ML> >
ML> > Notice that this is clearly not the case when not using git flow as
ML> > then all the development is done on master and stable releases branch off
ML> > it. And I do believe that most people have a clear understanding that
ML> > getting the latest master means you get the latest, but not necessarily the
ML> > most stable, version.
ML>
ML> Yes, it seems to be like that, in default GitHub arrangements.
ML> GitFlow overrides the role of master and if we do GitFlow, we do
ML> master == stable.
It's even more rigid than this, it's so stable that it practically never
changes -- it's only updated when a release happens.
Yes
Post by Vadim Zeitlin
Again, this is not
necessarily bad, but is definitely unusual, people expect to be able to
track changes as they happen if they pull from master, but with git flow
absolutely nothing happens in master.
Sounds like you think of GitHub flow here.
I suppose the traditional SVN-based workflow with master and release/X.Y
maintenance branches may suffer from similar issues as GitFlow:
- PR arrives
- Travis CI is green
- We (review of the code) say OK
- We hit Merge button
- PR makes it into master

What if the PR delivers a bugfix that should update release/1.0?
We have to manually merge that change to release/1.0 branch and
publish release 1.0.1.
We also have to merge it into the master.
I see little use of the Merge button.
Again, I believe, the Merge button fits the GitHub flow, doesn't it?
Post by Vadim Zeitlin
ML> My experience with maintaining and releasing SOCI bugfix releases
ML> revealed that one PITAs is
ML> 1. Collecting all PRs that qualify for a bugfix release
ML> - often fixes submitted in big PR bundles need to be cherry picked
ML> - often fixes submitted against develop need to be ported to master
ML> - often fixes do not receive any feedback or review, so unclear they are good
ML> - maintenance is no fun, but a time consuming boring task :)
No workflow is going to help with the first and the last two points, of
course, but at least the second one is a pure annoyance due to an impedance
mismatch between git flow and Github and we could get rid of it.
Yes, I agree.
Post by Vadim Zeitlin
ML> I chose GitFlow because it is well structured workflow that makes it
ML> no-brainer yet simple to follow, with one caveat...once you learn it :)
Yes, I agree that it's not that difficult. But it's still more difficult
than alternatives. And, while it doesn't excuse my erroneous commits to
master, it's hard to keep track of different workflows when switching
between different projects, so simpler is always better.
Sure.
I didn't know before I tried. I tried, it worked, so I kept using it.
I agree, after that experience, SOCI could benefit from simpler workflow.
Post by Vadim Zeitlin
ML> 3. Somewhere in between, we have traditional workflow known from, for
ML> - master - here all development happens (submitted and merged from
ML> topic branches!)
ML> - release/X.Y.Z - maintenance branch
ML> - tags/X.Y.Z - tag
This is indeed the most commonly used workflow IME. Notice that it's a
strict superset of (2).
Yes.
The only concern I have is, does it really support the Merge button?
Post by Vadim Zeitlin
ML> It seems, git makes release/X.Y.Z redundant
The usual strategy is to have release/X.Y branch[es] and then X.Y.Z tags
on them.
Of course, Major.Minor branch, without Micro/Patch number.
I typed that to quick.
Post by Vadim Zeitlin
ML> 1. Drop GitFlow: +1
ML> 2. New workflow: +1 for either 2 or 3
I don't think we can possibly use (2) because we do need 3.2 and 4.0
branches, at least. I do prefer (3) to (1).
Ok, if no objections, let's simplify to (3).

Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
Mateusz Loskot
2015-03-25 08:42:37 UTC
Permalink
On 17 March 2015 at 10:11, Sebastian Lauwers
Post by Sebastian Lauwers
Hi all,
- All PRs will default against `develop`, which is what you're asking,
- Upon cloning, the checked-out branch will be `develop`.
Yes, this doesn't sound good to me.
Post by Sebastian Lauwers
I'm a believer in the idea that the default branch should be a stable
one. The only branch guaranteed to be stable in gitflow is master.
That's my reasoning too.

Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
Mateusz Loskot
2015-03-25 08:38:57 UTC
Permalink
Post by Vadim Zeitlin
PAF> I don't really understand the implications of what you're asking for,
Sorry, let me try to explain it better: when somebody creates a pull
request for SOCI repository, currently it defaults to the master branch.
This is wrong as all the changes are supposed to be done in the develop
branch instead.
This is not entirely precise, so let me clarify two things here:
1. "all the changes", it depends what changes.
In the workflow I decided to follow, namely GitFlow, PRs that deliver
bug fixes to
released version should be based on the master, whereas
PRs with new features should be based on the develop.

2. "are supposed to", that is only if we are (still) happy to follow
the workflow I proposed, GitFlow.
We can change to any workflow the majority will prefer.

GitFlow is based on two branches:
master == latest released version of SOCI
develop == all new developments

Thus, users, instead of downloading .tar.gz, can also checkout the
master in order to get
the latest release. That makes it easy for more advanced users to try SOCI and
submit patches if they find any issues, without any extra
checkout/configuration/build, etc.

Finally, master as default seems a de-factor standard on GitHub (in
GitFlow too),
so switching branches may cause confusions.
Post by Vadim Zeitlin
PAF> but if Mateusz doesn't respond within a couple days or say a week,
PAF> I'll be happy to do it, especially if you give me instructions how.
I've actually never done it myself as all my other repositories just use
"master" branch as the work one and don't use git flow, but AFAICS you just
need to click on the "Settings" (screwdriver and wrench icon) and change
the "Default branch" there.
Yes, that's very simple to do.
Post by Vadim Zeitlin
FWIW this is not a drastic change, it will only affect future PRs and it
can always be undone, so I don't think Mateusz could have any objections to
it...
I have no objections, just explained the rationale behind the master as default.
If we all prefer to switch the default branch, we switch.


Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
Mateusz Loskot
2015-04-12 11:00:08 UTC
Permalink
Post by Vadim Zeitlin
Could one of the owners of the Github repository (Mateusz or Pawel if I'm
not mistaken) please change the default branch to "develop"? It's not very
convenient to have to select it explicitly for each new PR as "master" is
the default right now and, of course, it also risks encouraging people
submitting (and misguided developers such as me applying...) the PRs to the
master branch which is not supposed to be touched directly with the git
flow that we're supposed to use.
For the sake of the thread closure, I confirm we've switched the branches [1]
and now master is the default branch on GitHub *as well as* the
main line of SOCI development (develop branch has been deleted).

[1] https://github.com/SOCI/soci/issues/305

Best regards
--
Mateusz Loskot, http://mateusz.loskot.net
Loading...