From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Re: [RFE] Migration to gitlab Date: Sun, 12 May 2019 15:50:32 +0000 Message-ID: <20190512155032.GC20053@ACM> References: <9ac21e82-8e47-f9b5-f88d-23c0c56946d1@yandex.ru> <87pnpc1lby.fsf@iotcl.com> <83zhoezdqc.fsf@gnu.org> <87imuivfcr.fsf@iotcl.com> <83k1eyfxls.fsf@gnu.org> <17D21056-10B2-4813-AE90-9B2706936CE9@icloud.com> <83imuifqjc.fsf@gnu.org> <87lfzehrug.fsf@gmail.com> <20190511021206.GA4049@ACM> <8736lkyewf.fsf@tcd.ie> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="193399"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mutt/1.10.1 (2018-07-13) Cc: emacs-devel@gnu.org, monnier@iro.umontreal.ca, dgutov@yandex.ru, Eli Zaretskii , toon@iotcl.com, Alex Gramiak To: "Basil L. Contovounesios" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun May 12 18:08:53 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hPr1w-000oCH-A7 for ged-emacs-devel@m.gmane.org; Sun, 12 May 2019 18:08:53 +0200 Original-Received: from localhost ([127.0.0.1]:44809 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hPr1v-0006nA-9v for ged-emacs-devel@m.gmane.org; Sun, 12 May 2019 12:08:51 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:44269) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hPr0v-0006IJ-0e for emacs-devel@gnu.org; Sun, 12 May 2019 12:07:50 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hPqkP-0005DI-Ol for emacs-devel@gnu.org; Sun, 12 May 2019 11:50:48 -0400 Original-Received: from colin.muc.de ([193.149.48.1]:47232 helo=mail.muc.de) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1hPqkL-00055q-Dt for emacs-devel@gnu.org; Sun, 12 May 2019 11:50:42 -0400 Original-Received: (qmail 76090 invoked by uid 3782); 12 May 2019 15:50:39 -0000 Original-Received: from acm.muc.de (p2E5D50C3.dip0.t-ipconnect.de [46.93.80.195]) by colin.muc.de (tmda-ofmipd) with ESMTP; Sun, 12 May 2019 17:50:36 +0200 Original-Received: (qmail 20419 invoked by uid 1000); 12 May 2019 15:50:32 -0000 Content-Disposition: inline In-Reply-To: <8736lkyewf.fsf@tcd.ie> X-Delivery-Agent: TMDA/1.1.12 (Macallan) X-Primary-Address: acm@muc.de X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x [fuzzy] X-Received-From: 193.149.48.1 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:236448 Archived-At: Hello, Basil. On Sat, May 11, 2019 at 20:22:56 +0100, Basil L. Contovounesios wrote: > Alan Mackenzie writes: > > On Fri, May 10, 2019 at 16:23:03 -0600, Alex Gramiak wrote: > >> Eli Zaretskii writes: > >> > My point was that an absolute majority of Emacs issues don't have a > >> > patch attached. They describe a problem, and most of the reports > >> > don't even include a detailed analysis of the problem and its root > >> > cause. A large part of discussing an issue is devoted to > >> > understanding the issue and then finding its cause. Patches appear > >> > only after all that. > >> > So we must have a good support for a workflow that doesn't include any > >> > pull/merge request at its beginning, maybe even never. > > I don't know what "pull/merge request" means. Does it mean a request by > > an outsider for a core contributor to perform a "git pull" operation > > from the outsider's computer, the outsider having opened up his machine > > to public access to allow this? > A {pull,merge} request is a diff of two Git branches for which the issue > tracker cum Git forge (GitLab) creates a dedicated ticket with which > ensuing discussion and other metadata is associated. In simplistic > terms, it's like an interactive set of patches. Is somebody requesting something? OK, clearly that is the case in a merge request, but it's less clear for a "pull request". Is there also some name/process whereby somebody can submit a patch for discussion, without the expectation it will be merged into master? Kind of "I think this patch might be a good idea because ...., what do you say?"? > The two branches in question are: (1) the branch containing the > submitter's proposed changes, and (2) the upstream branch these changes > are intended to be merged into. > The two branches can live either in the same repository, or in separate > "forks" (copies) of the same repository. The former case means that the > submitter already has push access to the centralised upstream > repository. The latter case is more common for first-time and > infrequent contributors who do not have push access, and thus have no > option but to create their merge requests (patch sets) against their > personal fork/copy/checkout of the upstream repository. Is the proposal here to allow an unauthenticated user to create forks on the main server? This feels like a bad idea: how's moderation to be done? > >> Gitlab et al. would provide that, IMO. When there's no PR/MR at the > >> beginning, the topic is submitted as an "Issue" and given a unique issue > >> number. However, patches aren't submitted to the issue: rather, a new > >> PR/MR is created, given a unique MR number, and is linked with the > >> relevant issue(s). > > Yuck! I recently worked with a proprietory system where each bug had > > several different numbers, an issue number, an analysis number, a patch > > number, and so on. It caused extra effort to keep track of bugs, and > > was generally horrible. > Each bug report ("issue") has only a single number. Similarly each > merge request has only a single number. So, each "issue" has its own number, and the numbers of each merge request associated with it. It seems to me that sometimes one number will get used, sometimes another. (As happened in the aforementioned proprietory system.) > Merge requests are often submitted to address an existing issue, in > which case the relevant Git commit messages and/or merge request > description canonically contain a textual reference to this issue. But > it is up to the submitter and/or reviewers to ensure such a reference > is mentioned somewhere; the UI does not force it upon anyone. > >> When the PR/MR is merged, any linked issues are closed. > > You needn't have used the passive voice, there. What does your sentence > > mean? That when a user merges a PR/MR, gitlab automatically closes the > > issue (whether it's finished, or not)? Or that a user can close an > > issue only after somebody has first merged at least one PR/MR? Or > > something else? > > What is the point of issues and PR/MRs having distinct identifiers, if > > they are so tightly coupled with eachother? > They are not that tightly coupled to each other. Issues and merge > requests can be opened and closed independently of one another and in > any order, and each issue needn't be associated with a merge request, > and vice versa. Even if they are associated, this association is mostly > implicit in the text of the discussion, not something imposed by GitLab. I think the normal practice on Emacs, apart from for simple bugs, is for somebody who isn't the author of the patch to close the bug, or at least to confirm that it's fixed. > As mentioned elsewhere in this thread, however, GitLab can automatically > take certain known actions based on specially crafted command phrases > included as part of commit messages or discussion comments, for > convenience. For example, if a merge request contains a commit which > includes the phrase "Fixes #123", then merging the merge request > (i.e. merging its constituent commits into the upstream branch) causes > GitLab to automatically close bug number 123. Similarly including an > automatically stripped command such as "/close" in a comment causes its > issue or merge request to be closed. This doesn't sound like a good idea to me at the moment. If I write "Fixes bug #123" into a commit message, that usually expresses an intention rather than a conclusion. Surely closing bugs shouldn't happen automatically, possibly by accident. > >> This means that the discussion gets separated into two parts: the > >> discussion about the issue/problem (kept in the "Issues" category), and > >> the discussion about the patch/solution (kept in the "Merge Requests" > >> category). > > This sounds like a Bad Thing to me. It sounds rather like a workflow > > being imposed which imagines that first the bug gets "resolved" > > (whatever that means) in discussion, and only then does work start on a > > separate "merge request". The above mentioned proprietory system was > > like this. It didn't lend itself to a natural and efficient way of > > working. > The workflow is mostly up to the maintainers to design. Issues and > merge requests are independent entities - one mustn't come before the > other. The only difference is that issues are discussion-only (though > code snippets and diffs can of course be included as part of a comment, > and can even be prettified with syntax highlighting in the web UI), > whereas merge-requests additionally contain a realtime comparison of the > current state of two Git branches, and allow interactive commenting on > specific lines of the diff. How issues and merge requests are used, > linked, labelled, etc. is up to the maintainers. OK. > Thanks, Thanks for the reply! > -- > Basil -- Alan Mackenzie (Nuremberg, Germany).