Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id F2610200C73 for ; Wed, 10 May 2017 21:25:10 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id F11D5160BB4; Wed, 10 May 2017 19:25:10 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 1D5F8160B99 for ; Wed, 10 May 2017 21:25:09 +0200 (CEST) Received: (qmail 69774 invoked by uid 500); 10 May 2017 19:25:09 -0000 Mailing-List: contact dev-help@hc.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "HttpComponents Project" Delivered-To: mailing list dev@hc.apache.org Received: (qmail 69738 invoked by uid 99); 10 May 2017 19:25:08 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 May 2017 19:25:08 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 84F871813ED for ; Wed, 10 May 2017 19:25:08 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -2.396 X-Spam-Level: X-Spam-Status: No, score=-2.396 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.796, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd3-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id r1tnr0hrqg0N for ; Wed, 10 May 2017 19:25:06 +0000 (UTC) Received: from mail-wr0-f169.google.com (mail-wr0-f169.google.com [209.85.128.169]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 1E97B5FC4D for ; Wed, 10 May 2017 19:25:06 +0000 (UTC) Received: by mail-wr0-f169.google.com with SMTP id z52so4215695wrc.2 for ; Wed, 10 May 2017 12:25:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=IN3ENjY/qpueiLYFiWWVRuhi81vgDvZJq7HEO6zY1UU=; b=rfZFXcqpSrrJujtpUecgJnE7qK3rf2GFbW6xUFIWRPHXVyNZxOw644wKNmOUi9lUyU hN9bn1f8hBXoIr9lXyfwSUopRIwgWjHRcmmsx6mfDOuE+6fyaY5QakLZ8qjzLl83Lvok kqSwF7GJ6yd4pAXSkrc/4q9R+gQcYRdi6IM3Yaqp0rDBOX27xnhhNyRig8Mzji0ONw0F sNhAUvDGbcW9yIbwp9LzpC6dNUZPF//Mpeh3Xr7ymOSL+lXIdGCjez7yjRs7OINrg/hU bGhEYkuqZnuFC51fIlcVKsd6/M3hYvJw+0gb1boK8MB/Fnjkq/7IygZfLfnK6ZWpPvrb 5BpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=IN3ENjY/qpueiLYFiWWVRuhi81vgDvZJq7HEO6zY1UU=; b=tF6yiz4+l6gejcbNAbkiCoz4eP+NGNlpH0jiDjZqrfzcaNqwZKIK916Z/bzq/2t8Rc 8nA1b3WpvkVBz0tsoqCPaK0N+ToFcIKpHSsD18FchCLwdNRWzdcRGob6/3VWXHVOtUYA 5TQgyAfPux9iGzFgM/rxTY8GC8cZYNSqa6fyhUWb7FlWAZC98TwCnZvMKFuJNJWyS7VN XZnH4VkBvyUWzukLhijGB919fTAepbdMHVwPa1evnyC5yCAxerh8AsxLuAf+Xo29jLbc 7yUB82Me8KPI/VuPw3BRpMbIwDhwn0wsaPhXLRDHlz+ZuDiMXnfW0pdI1R3PxU7IpHVj nR0Q== X-Gm-Message-State: AODbwcAl1t/0CKx8SL7p0Bz4luckTjubjEMVfMtOkeyaLY3KtnsF+SgY 27uaNzyD+siP5ZikhPrMQQj3K66FBBmC X-Received: by 10.223.141.171 with SMTP id o40mr4760897wrb.110.1494444304806; Wed, 10 May 2017 12:25:04 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.150.228 with HTTP; Wed, 10 May 2017 12:25:04 -0700 (PDT) In-Reply-To: <1494444167.18232.4.camel@apache.org> References: <010661f8-4e15-01af-6a5a-971baa1348ca@apache.org> <1494444167.18232.4.camel@apache.org> From: sebb Date: Wed, 10 May 2017 20:25:04 +0100 Message-ID: Subject: Re: Git policies and practices To: HttpComponents Project Content-Type: text/plain; charset=UTF-8 archived-at: Wed, 10 May 2017 19:25:11 -0000 It would be helpful to document this on the Wiki and/or website On 10 May 2017 at 20:22, Oleg Kalnichevski wrote: > On Wed, 2017-05-10 at 21:06 +0200, Michael Osipov wrote: >> Hi folks, >> >> given that Oleg finally took up the chance migrating core and client >> to >> a Git-based repo, we should agree how we are going to work with in >> conformance with a good Git practice to avoid chaos on master. I'd >> like >> to provide an example first why a common practive is so necessary to >> make life easier for us (committers) and as well as for our users >> reading a beatiful log understanding what we do and why we do it. >> >> Example: as you might know, there are about ten committers for Maven >> and >> we already use Git for quite some time, but did not really embrance >> it's >> workflow. It finally ended in having people constantly working on >> master >> pushing fixes for fixes and reverts for reverts (including myself), >> rendering master unreadable and unusable. We agreed for a reset on >> master (we actually skipped 3.4.0 for that reason) (INFRA did) and >> went >> through every single ticket wether it should be on 3.5.0 or not and >> why. >> The approach we have taken is that for every single ticket a branch >> MNG-xxxx is created by a dev, pushed to origin. Jenkins will >> automatically run all ITs. After that has happened you ask for a >> review >> on dev@ and leave room for discussion. There are oftern cases you >> don't >> see. Having an extra pair of eyes is helpful. This flow works very >> well >> because we now have a single-commit-per-issue, fully working, no >> fiddling. >> >> My proposal: >> >> 1. Branch off master (git checkout -b HTTPCORE-XXXX master) >> 2. Work on your issue. Create as many commits as you want >> 3. Polish it >> 4. Squash it/fix it up >> 5. Ask for a review if you are uncertain >> 6. merge back to master, but avoid merge commits which are just >> noise >> for a single merge (rebase your branch onto mater) >> 7. Never rewrite (rebase) history on master because you will break >> others. Infact, you can't because it is a protective branch. Only >> INFRA >> can do. >> 8. Take care of a proper commit message, these references are good: >> * https://chris.beams.io/posts/git-commit/ >> * https://github.com/erlang/otp/wiki/Writing-good-commit-messages >> Put the title of the JIRA issue (e.g., [HTTPCORE-123] Memory leak in >> response) in the first line, followed by an explanation why you did >> take >> this approach. The ticket desc contains the issue, your commit >> message >> contains the solution. >> 9. If in doubt, ask for help and give people a couple of days to >> react. >> 10. When you close the issue, put a link to your commit to create a >> direct relation between issue and solution. >> 11. If this change comes for a PR on GitHub, don't steal authorship, >> let >> the reporter polish his work and amend the message at the end with >> "This >> closes #xy" and push. >> >> Something else I forgot? >> >> What do you think? >> >> Michael >> >> PS: I know this is work, but it pays off really quick >> > > +1 > > All makes sense to me. Pretty much every should happen on a dev > (feature) branch and later merged to the release branch (like 4.3.x, > 4.4.x, trunk). > > I would still ask for master being mutable (rewritable) or abandon the > concept of a master branch as inapplicable in favor of a release branch > such as 5.0.x. > > Oleg > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org > For additional commands, e-mail: dev-help@hc.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org For additional commands, e-mail: dev-help@hc.apache.org