workflows.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nicolas Belouin <nicolas.belouin@gandi.net>
To: Dmitry Vyukov <dvyukov@google.com>
Cc: Konstantin Ryabitsev <konstantin@linuxfoundation.org>,
	Eric Wong <e@80x24.org>, Laura Abbott <labbott@redhat.com>,
	Don Zickus <dzickus@redhat.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Daniel Axtens <dja@axtens.net>,
	David Miller <davem@davemloft.net>, Drew DeVault <sir@cmpwn.com>,
	Neil Horman <nhorman@tuxdriver.com>,
	workflows@vger.kernel.org
Subject: Re: thoughts on a Merge Request based development workflow
Date: Fri, 11 Oct 2019 09:12:16 +0200	[thread overview]
Message-ID: <882d9408-eb8d-0f32-ce7f-7e5f6e8b08fd@gandi.net> (raw)
In-Reply-To: <CACT4Y+aEPnZ=aniEZ4JxNSE21oExX3X0s2-LX+AdGx3Q0v=C4Q@mail.gmail.com>



On 10/10/19 4:21 PM, Dmitry Vyukov wrote:
> On Thu, Oct 10, 2019 at 9:39 AM Nicolas Belouin
> <nicolas.belouin@gandi.net> wrote:
>> On 10/10/19 1:56 AM, Konstantin Ryabitsev wrote:
>>> On Wed, Oct 09, 2019 at 10:21:56PM +0000, Eric Wong wrote:
>>>> One of my long-term visions is to have an agreed upon way to
>>>> have entirely forkable development communities.  Git already
>>>> gave us forkable code repositories.
>>> FYI, this does already exist in the form of Fossil:
>>> https://www.fossil-scm.org/home/doc/trunk/www/index.wiki
>>>
>>> The main reason why we can't really consider it is because it requires
>>> moving away from git, which is a non-starter for anyone.
>>>
>>> -K
>> Maybe the solution is to build such kind of features within git,
>> many proposed solutions with tools over git or using git.
>> A tool over git has the issue of conveying the data and making
>> it non-centralized, whereas a tool using git is non-scalable because
>> of the way git is *currently* storing things.
>> Improving git to make it able to store many more objects (be it in-review
>> commits or previous versions of patches) and then use it to get the kind
>> of features we can envy from fossil.
> Hi Nicolas,
>
> I am trying to imagine how a complete solution based on git could look
> like, but I am failing. It seems that there is a number of problems
> beyond scalability/storage.
> First, that git probably should be orthogonal to the kernel source git
> trees, right? People work with multiple kernel trees, sometimes
> changes migrate, parts of a series can be merged into different trees,
> etc.
This I think can't be helped if going through a Merge/Pull request workflow
as a request will always be seen as a whole applied to a specific tree,
I agree
though the external tool solution might help for tree migration though.
And I
don't really have a solution for these issues.
> Then, do we do a single git where everybody has write access, or
> per-developer git? If we do a global git and everybody has write
> access, this looks somewhat problematic. If we have multiple
> per-developer gits, then it does not solve the whole problem of
> synchronization and data exchange, one can't pull from thousands of
> unknown gits every time.
For this one I thought of per-developer git with a branch per series
with MR discussion attached to the branch on the developer side and on
maintainer/reference tree side a reference indicating a remote MR is in
progress, with only those kind of special refs being writable.

On MR acceptance the discussion/history of branch gets into the maintainer/
reference tree through the merge commit object and gets included
whenever one
pulls from this tree

> Where is this git[s] are hosted?
Wherever the developper/maintainer wants it to be hosted
> What about force pushes?
Well a force-push as per the rule of no changing the commits of a public
branch
end-up as new reference linking to the old one for traceability.
> What about authorization/user identification?
For this one I thought of a X.509 like tree where you need to get your
key/identity signed
by some kind of AC so that you create an account through that AC and can
push on whatever tree
that trust that AC or one of its parent. I thought about a root with two
main branches one for
"Anonymous" kind of registration where you can use something like OpenId
to get identified
and get your matching certificate signed and another one for "Higher
trust" given to e.g Linus
so he can sign his maintainers and so they can also sign sub-maintainers
and so on. Then you can
set-up your repository to trust the root if you want anyone to be able
to push or some sub-AC to
restrict and maybe even a depth restriction to allow a hierarchical work
as done today.
>
> It would be nice to reuse git's persistent storage format and ability
> to push/fetch incremental changes, but we would need to figure out
> answers to these questions. Maybe I am missing something obvious.
> Could you outline how a solution based on git could look like?
> Also in this case git is only a transport layer (like email/SSB), it
> won't solve the application layer (how patches/comments/issues/CI
> results are described, systems that consume, act and present that,
> etc). So building a solid transport, even if we will need to
> reimplement some git functionality, will be a smaller part of the
> overall effort. And building a solid transport layer that will solve
> fundamental infrastructure problems well may be worth it.

Nicolas

  reply	other threads:[~2019-10-11  7:12 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-24 18:25 thoughts on a Merge Request based development workflow Neil Horman
2019-09-24 18:37 ` Drew DeVault
2019-09-24 18:53   ` Neil Horman
2019-09-24 20:24     ` Laurent Pinchart
2019-09-24 22:25       ` Neil Horman
2019-09-25 20:50         ` Laurent Pinchart
2019-09-25 21:54           ` Neil Horman
2019-09-26  0:40           ` Neil Horman
2019-09-28 22:58             ` Steven Rostedt
2019-09-28 23:16               ` Dave Airlie
2019-09-28 23:52                 ` Steven Rostedt
2019-10-01  3:22                 ` Daniel Axtens
2019-10-01 21:14                   ` Bjorn Helgaas
2019-09-29 11:57               ` Neil Horman
2019-09-29 12:55                 ` Dmitry Vyukov
2019-09-30  1:00                   ` Neil Horman
2019-09-30  6:05                     ` Dmitry Vyukov
2019-09-30 12:55                       ` Neil Horman
2019-09-30 13:20                         ` Nicolas Belouin
2019-09-30 13:40                         ` Dmitry Vyukov
2019-09-30 21:02                     ` Konstantin Ryabitsev
2019-09-30 14:51                   ` Theodore Y. Ts'o
2019-09-30 15:15                     ` Steven Rostedt
2019-09-30 16:09                       ` Geert Uytterhoeven
2019-09-30 20:56                       ` Konstantin Ryabitsev
2019-10-08  1:00                     ` Stephen Rothwell
2019-09-26 10:23           ` Geert Uytterhoeven
2019-09-26 13:43             ` Neil Horman
2019-10-07 15:33   ` David Miller
2019-10-07 15:35     ` Drew DeVault
2019-10-07 16:20       ` Neil Horman
2019-10-07 16:24         ` Drew DeVault
2019-10-07 18:43           ` David Miller
2019-10-07 19:24             ` Eric Wong
2019-10-07 15:47     ` Steven Rostedt
2019-10-07 18:40       ` David Miller
2019-10-07 18:45       ` David Miller
2019-10-07 19:21         ` Steven Rostedt
2019-10-07 21:49     ` Theodore Y. Ts'o
2019-10-07 23:00     ` Daniel Axtens
2019-10-08  0:39       ` Eric Wong
2019-10-08  1:26         ` Daniel Axtens
2019-10-08  2:11           ` Eric Wong
2019-10-08  3:24             ` Daniel Axtens
2019-10-08  6:03               ` Eric Wong
2019-10-08 10:06                 ` Daniel Axtens
2019-10-08 13:19                   ` Steven Rostedt
2019-10-08 18:46                 ` Rob Herring
2019-10-08 21:36                   ` Eric Wong
2019-10-08  1:17       ` Steven Rostedt
2019-10-08 16:43         ` Don Zickus
2019-10-08 17:17           ` Steven Rostedt
2019-10-08 17:39             ` Don Zickus
2019-10-08 19:05               ` Konstantin Ryabitsev
2019-10-08 20:32                 ` Don Zickus
2019-10-08 21:35                   ` Konstantin Ryabitsev
2019-10-09 21:50                     ` Laura Abbott
2019-10-10 12:48                       ` Neil Horman
2019-10-09 21:35                 ` Laura Abbott
2019-10-09 21:54                   ` Konstantin Ryabitsev
2019-10-09 22:09                     ` Laura Abbott
2019-10-09 22:19                       ` Dave Airlie
2019-10-09 22:21                     ` Eric Wong
2019-10-09 23:56                       ` Konstantin Ryabitsev
2019-10-10  0:07                         ` Eric Wong
2019-10-10  7:35                         ` Nicolas Belouin
2019-10-10 12:53                           ` Steven Rostedt
2019-10-10 14:21                           ` Dmitry Vyukov
2019-10-11  7:12                             ` Nicolas Belouin [this message]
2019-10-11 13:56                               ` Dmitry Vyukov
2019-10-14  7:31                                 ` Nicolas Belouin
2019-10-10 17:52                     ` Dmitry Vyukov
2019-10-10 20:57                       ` Theodore Y. Ts'o
2019-10-11 11:01                         ` Dmitry Vyukov
2019-10-11 12:54                           ` Theodore Y. Ts'o
2019-10-14 19:08                         ` Han-Wen Nienhuys
2019-10-15  1:54                           ` Theodore Y. Ts'o
2019-10-15 12:00                             ` Daniel Vetter
2019-10-15 13:14                               ` Han-Wen Nienhuys
2019-10-15 13:45                                 ` Daniel Vetter
2019-10-16 18:56                                   ` Han-Wen Nienhuys
2019-10-16 19:08                                     ` Mark Brown
2019-10-17 10:22                                       ` Han-Wen Nienhuys
2019-10-17 11:24                                         ` Mark Brown
2019-10-17 11:49                                     ` Daniel Vetter
2019-10-17 12:09                                       ` Han-Wen Nienhuys
2019-10-17 12:53                                         ` Daniel Vetter
2019-10-15 16:07                           ` Greg KH
2019-10-15 16:35                             ` Steven Rostedt
2019-10-15 18:58                             ` Han-Wen Nienhuys
2019-10-15 19:33                               ` Greg KH
2019-10-15 20:03                                 ` Mark Brown
2019-10-15 19:50                               ` Mark Brown
2019-10-15 18:37                           ` Konstantin Ryabitsev
2019-10-15 19:15                             ` Han-Wen Nienhuys
2019-10-15 19:35                               ` Greg KH
2019-10-15 19:41                               ` Konstantin Ryabitsev
2019-10-16 18:33                                 ` Han-Wen Nienhuys
2019-10-09  2:02           ` Daniel Axtens
2019-09-24 23:15 ` David Rientjes
2019-09-25  6:35   ` Toke Høiland-Jørgensen
2019-09-25 10:49   ` Neil Horman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=882d9408-eb8d-0f32-ce7f-7e5f6e8b08fd@gandi.net \
    --to=nicolas.belouin@gandi.net \
    --cc=davem@davemloft.net \
    --cc=dja@axtens.net \
    --cc=dvyukov@google.com \
    --cc=dzickus@redhat.com \
    --cc=e@80x24.org \
    --cc=konstantin@linuxfoundation.org \
    --cc=labbott@redhat.com \
    --cc=nhorman@tuxdriver.com \
    --cc=rostedt@goodmis.org \
    --cc=sir@cmpwn.com \
    --cc=workflows@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).