git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Kyle J. McKay" <mackyle@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: Any chance for a Git v2.1.5 release?
Date: Tue, 24 Feb 2015 16:55:26 -0800	[thread overview]
Message-ID: <2D3EB6D1-3029-4F60-AF29-E044E92DB036@gmail.com> (raw)
In-Reply-To: <xmqqk2z7qe8s.fsf@gitster.dls.corp.google.com>

On Feb 24, 2015, at 11:52, Junio C Hamano wrote:

> Kyle J. McKay <mackyle@gmail.com> writes:
>
>> Which brings us back to the subject of this email, is there any  
>> chance
>> for a v2.1.5 release?
>> ...
>> It appears that the average support lifespan of a Git release from
>> initial release date through last released maintenance update is
>> approximately 2-3 months with the 1.7.6 release being an exception at
>> a little over 7 months.
>
> That matches my expectation.
>
> A typical cycle lasts for 8-12 weeks, and during that time, topics
> that are bugfixes that have graduated to the 'master' branch are
> merged to the 'maint' branch with some lag and then the tip of
> 'maint' gets tagged as a maintenance release from time to time.
> Some important but trivial fixes are further merged to older
> maitenance tracks like 'maint-2.2', 'maint-2.1', etc.
>
> But these topics downmerged to older maint-* branches have to be
> very trivial for an obvious reason: there are only 24 hours a day
> and 7 days in a week, and bugs that affect real world use cases are
> found by using the software in real world use cases.  Usually I use
> something a bit ahead of 'next' exactly for this reason---we would
> want to catch bugs before topics are merged to 'master'.  Although I
> sometimes have "let's use 'maint' for my work" day once or twice
> every month, I cannot afford to do that for anything older than the
> tip of 'maint' myself.

Obviously there would have to actually be some interest in having an  
older long-term-support release and some folks willing to exercise  
such a thing.  Unless we can figure out a way to clone you. ;) ;)

> The consequence of the above is this.  v2.1.1 may be more stable
> than v2.1.0 and v2.1.2 may be more stable than v2.1.1, but later
> tagged versions on older maintenance tracks are made by merging
> topics only after "ah, these are obvious enough" eyeballing without
> real use (at least by me), once newer feature release is made and
> there is a newer maintenance track.  I would not be surprised if
> v2.1.5, if it is made, has hidden interactions between the changes
> since v2.1.4 and the older codebase to cause unforeseen bugs.
>
> When I say "the tip of 'master' is meant to be more stable than any
> tagged versions", I do mean it.

Some fixes would likely not be back portable (e.g. to fix X you first  
need change Y which needs change Z which needs ...), not without  
ending up pulling in things that exceed the scope of a "maintenance"  
update.

> Having said all that, if I were to tag maint-2.1 branch as 2.1.5
> today, we would have
>
>    6aaf956 is_hfs_dotgit: loosen over-eager match of \u{..47}
>
> that does not exist in 2.1.4.  Is that what you want?

I suppose in that it fixes "false positives" it is a regression fix,  
but if that's all that showed up in v2.1.5, no, that wouldn't make it  
worthwhile.

>> If a v2.1.5 release is out of the question, would it be possible to
>> periodically designate certain Git releases as "long term support"
>> releases?
>
> I can designate ;-), but I do not think I'd be the right person to
> maintain or long-term-support it.  Are you volunteering to oversee
> the "LTS team"?

I could not promise a team of more than one member.  And that would  
not be full-time 24/7 either.

> It would involve:
>
>    - Monitor "git log --first-parent maint-lts..master" and find
>      the tip of topic branches that need to be down-merged;
>
>    - Down-merge such topics to maint-lts; this might involve
>      cherry-picking instead of merge, as the bugfix topics may
>      originally be done on the codebase newer than maint-lts;

I've been cherry-picking fixes for a while now onto older releases.  I  
don't suppose down-merging would be that much more difficult with a  
fallback to cherry-picking.

>    - Use the tip of the maint-lts branch in everyday work.
>
> The last item is the most important of the above, because I do not
> have time for that.  I can help with the first two to some degree,
> though.

That's pretty much all I use at this point -- a slightly older release  
with cherry-picked fixes.  While it did cause me to find the problem  
with the first version of the loose alternates fix, having only one  
person use such a release doesn't provide that much coverage.

> If the lts releases need to be tagged and published by me, then lts
> team can have me pull from the tip of maint-lts they are confident
> with and have me sign it and push it out.

It occurs to me that if the "maint-lts" updates were limited to crash  
fixes, regressions and security issues then often the pre-built man  
pages and docs from the release it's based on could be used as-is with  
the exception of the new release notes which might save some time.

> If the primary concern you have with the currently maintained
> releases is git-svn, perhaps a better way forward for you,
> especially if you are willing to maintain your own "release plus
> patches",

That was the discussion the admins had that we prefer to avoid rolling  
our own, but if there's no other option then we will do that.  Some  
other Git hosters obviously do not have the same reticence about  
rolling their own Git release (as can be seen from the capabilities  
returned).  There are several fixes not yet in a release that are  
needed besides just git-svn, but since the other fixes are all in  
master now they'll be out in the next release.  But, picking up that  
release to get those fixes also exposes us to new code that has not  
yet had widespread use and a "maint-lts" would hopefully pick up the  
fixes without doing that.

> might be to keep a patch that reverts recent git-svn
> changes back to v2.1.whatever and deploy the up-to-date release
> and that patch on top?

That has occurred to me assuming there's not some dependency issue  
there that causes a cascade of reversions.

>> Nice to have: The CVE-2014-9390 fix, but repo.or.cz does not create
>> any working trees so it's not mandatory.
>
> Even if you do not have a working tree, people who use you as the
> meeting place and push into you and fetch from you do, so I do not
> necessarily agree with your assessment.

Having the feature does no good unless it's turned on.  :)  How  
expensive would it be to turn such a feature on in terms of CPU  
usage?  Running `git fsck` is rather expensive and the name of the  
config option suggests it's related, is it also as expensive?  When  
someone pushes a 2GB pack, what impact does that option have on server  
load?  All existing repos would have to be checked first.  Do we eject  
any that fail?  What about mirrors?  Do we refuse to mirror from a  
source that fails the check?  As long as it's not too CPU expensive, I  
could see turning it on immediately for new push repos and after  
checking, existing push and mirror repos that pass.  Hopefully all of  
them just pass the check.  So we cannot just deploy a CVE-2014-9390  
fix even if we had it without first doing some work assuming the CPU  
load is not an issue.  But it would be nice to have so we *could*  
proceed in that direction.

-Kyle

       reply	other threads:[~2015-02-25  0:55 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <C5211E53-8905-41C9-9D28-26D7BB51E76A@gmail.com>
     [not found] ` <xmqqk2z7qe8s.fsf@gitster.dls.corp.google.com>
2015-02-25  0:55   ` Kyle J. McKay [this message]
2015-02-25  5:13     ` Any chance for a Git v2.1.5 release? Junio C Hamano
2015-02-26  7:40       ` Kyle J. McKay
2015-02-26 20:54         ` Junio C Hamano
2015-02-26 23:38           ` Kyle J. McKay
2015-02-26 23:51             ` Junio C Hamano
2015-02-27 22:49             ` Philip Oakley
2015-03-12  1:23     ` Kyle J. McKay

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=2D3EB6D1-3029-4F60-AF29-E044E92DB036@gmail.com \
    --to=mackyle@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /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).