kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #36671
Re: Branches
-
To:
kicad-developers@xxxxxxxxxxxxxxxxxxx
-
From:
Carsten Schoenert <c.schoenert@xxxxxxxxxxx>
-
Date:
Thu, 19 Jul 2018 18:15:38 +0200
-
Autocrypt:
addr=c.schoenert@xxxxxxxxxxx; prefer-encrypt=mutual; keydata= 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 iWLO
-
In-reply-to:
<db47a7eb-14e3-ce92-6ddc-5680f75d1b83@gmail.com>
-
Openpgp:
preference=signencrypt
-
User-agent:
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1
Hi,
for me as a person which doesn't do any active source code development
on KiCad it looks like there is some confusion in the wild what will or
should happen in which branch.
Sorry if I haven't get it until now, what are the goals of the branch
5.1 the project wanted to archive?
And what is 6.0, master or $(what else) are for?
If these questions can be answered it will be much more clear what
development should happen in which branch and what should be merged into
which other branch.
KiCad has now more active developers than ever I think, but I can't
really see a branch model that is fitting the current and future
situations. Out there are various branching models and the KiCad project
needs to decide which will work best for the project. The classical
master plus release branches isn't working great anymore if you want to
work on multiple parts in parallel.
I suggest to have a look at the following website.
https://nvie.com/posts/a-successful-git-branching-model/
It describes what options are count and how a workflow would look like,
I think it would be also usable for KiCad (not in a full blown version).
In the long term you wont do cherry-picking for the plain development as
this wont work smoothly at one point anymore (as Wayne already
mentioned). Single cherry-picking is fine, but in the end you will come
to merge commits as you mostly want to have all the new code in a later
release. Every upstream project I know is working this way.
Backporting security or hot fixes are slightly different and require
often cherry-picking with small or much modifications as you wont
introduce new features into old code by merges. But also this can be
done in a local feature branch which gets merged then into the stable
release branch. Depends mostly on the amount of the needed backport.
So to call it again, what is the branch 5.1 intended for? Only for the
GTK+3 fixes? If yes it's fine to do it here and merged these changes
(which will be needed also in the current ongoing nightly development)
into master, develop, 6.0 or what ever named branch. Just renaming
master into something different without a common and required workflow
is nothing, then it's really just another name.
So I would propose the following as there are already some branches out
there which we all need to know and to handle.
5.0 will get all the fixes which will reflect in versions 5.0.x, commits
will mostly get cherry-picked from master. Hopefully not that much.
5.1 will get at least the GTK+3 adjustments and will finally cover all
versions 5.1.x (like 5.0 for 5.0.x). The GTK stuff is developed in this
branch and will be merged into master. Any other changes than GTK+3
which should be released with versions 5.1.x are also made here and get
merged into master.
master is and will be the main nightly development channel. All changes
here are mainly for any releases greater than 5.x.x.
This all are just my thoughts as I would like to see it, the above
suggestion is based on some experiences I have made with other projects
and work. Please remember that also the l10n and documentation trees are
related to this! The base for all future work for all side needs to be
clear early as possible.
Anyhow ...
(Hmm, I don't wanted to a top posting but my answer wasn't fitting to
any made statement.)
Am 19.07.2018 um 17:19 schrieb Wayne Stambaugh:
> You are preaching to the choir. I did most of the maintenance on the
> 4.0 branch. Initially it was easy but it didn't take long for it to
> become a PITA. If no one else objects, I would be more than happy to
> make that the policy. If that is indeed what we want to do, I would
> delete the 5.1 branch. It will push v6 development back significantly.
>
> On 7/19/2018 11:10 AM, Jon Evans wrote:
>> FWIW, as someone who is also maintaining parallel feature branches, I
>> agree with Orson and John. Now that we have committed to this 5.1 idea,
>> we should just make it happen in master. I think if we keep both master
>> and 5.1 branch running in parallel, inevitably one or the other of them
>> will be less tested / more broken unless people spend a bunch of time
>> doing the work of keeping them synchronized manually. The cost of this
>> doesn't seem to outweigh the benefit of being able to merge some 6.0
>> features into master sooner.
>>
>> On Thu, Jul 19, 2018 at 11:03 AM John Beard <john.j.beard@xxxxxxxxx
>> <mailto:john.j.beard@xxxxxxxxx>> wrote:
>>
>> On Thu, Jul 19, 2018 at 1:47 PM, Wayne Stambaugh
>> <stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>> wrote:
>> > Unless we are going to prohibit new features (new file formats,
>> new tool
>> > framework for eeschema, etc.) from being merged into the dev branch
>> > until 5.1 is released, I disagree. If we want to only work on 5.1 in
>> > the dev branch, then I'm OK with this proposal.
>>
>> This is essentially my proposal - limit dev branch changes to 5.1
>> features, uncontroversial maintenance and bugfixes.
>>
>> If people want to work on features for 6 now, that can be done in
>> separate branches, and the onus for keeping it rebased onto the 5.1
>> changes is on them, rather than forcing the 5.1 workers to deal with
>> conflicts. Otherwise, whoever is working on 5.1 features like the
>> GTK3/GAL stuff and printing, will have to continually port their work
>> between the two branches.
>>
>> If 5.1 changes are unlikely to be substantially affected by 6.0-facing
>> changes, then perhaps this limitation is not useful.
>>
>> > There should be nothing in the 5.1 branch that is not also in the dev
>> > branch so everything in the 5.1 branch should be tested in the dev
>> > branch builds.
>>
>> In theory, yes, but if fixes need to be manually ported as the
>> branches diverge, it's possible to fail to fix, or break in new ways,
>> one branch or the other. If a 5.1 branch exists in parallel to 6.0,
>> someone will have to take responsibility to ensure the appropriate
>> fixes are identified, ported and tested as needed. In the Linux world,
>> this is the unglamorous, arduous (and vital) job of the stable branch
>> maintainers.
>>
>> I'm not against parallel branches if someone is willing to step up to
>> be a stable branch maintainer for 5.1. In fact, I'd be thrilled to get
>> nice new stuff dropping into the dev branch. However, changes that
>> need to be in both branches are not trivially rebasable, that job will
>> soon become decidedly not-fun.
>>
>> Cheers,
>>
>> John
--
Regards
Carsten Schoenert
Follow ups
References