git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC] dropping support for ancient versions of curl

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Apr 5, 2017, 08:49 UTC
Message-ID
<alpine.DEB.2.20.1704051031200.4268@virtualbox>
In-Reply-To
<CAGZ79kb5VeKCzzafw+nEcRda2apuit-K=qZxxZ3Li96MiMdOXA@mail.gmail.com>
Hi Stefan,
On Tue, 4 Apr 2017, Stefan Beller wrote:
Show 27 quoted lines
> On Tue, Apr 4, 2017 at 3:46 PM, Johannes Schindelin
> <Johannes.Schindelin@gmx.de> wrote:
> >
> > On Tue, 4 Apr 2017, Brandon Williams wrote:
> >
> >> I'm all for seeing a patch like this applied.  I agree that we can't
> >> expect the world to be running the most up-to-date version of curl
> >> but we should be able to select some "oldest" version we will support
> >> which can be bumped up every couple of years.
> >>
> >> I mean, ensuring that you are running with an up-to-date version of
> >> curl is really important when it comes to all of the security fixes
> >> that have been made in each revision.
> >
> > I am not in the business of dictating to others what software they
> > have to run. I am in the business of maintaining Git for Windows. And
> > part of that job is to drag along code that is maybe not the most
> > elegant, but works.
> >
> > The patch in question resolves such a wart. Sure, it would be a
> > cleanup.  Is it a huge maintenance burden to keep those few #ifdef's,
> > though?  Absolutely not.
> 
> Keeping them around is the easy part, the hard part is promising to
> users that the software you maintain is as good as your reputation, when
> e.g.  we find out that certain #ifdefs don't even compile.  (See Frank
> Gevaerts answer)

From that point of view, we should drop support for platforms as soon as we have a bug in our code that lets the build fail: there is little difference between the #ifdef's that let Git build with older dependencies and #ifdef's that let Git build on platforms other than Linux.

By that reasoning, we would have dropped FreeBSD support a gazillion times. Or for that matter, Windows support.

I obviously disagree with this stance.
> Initially I thought I had a similar stance as you ("A well written line
> of code is cheap") but I kept quiet, as I do not have a lot of
> experience with dealing "old" Software.

I am speaking from my point of view, of course, maintaining Git for Windows. Of course I would love to drop support for old MSys. But that's not going to happen because at least one active contributor has a vested interest in keeping it going.

But even then, it sometimes takes a while until any breakages get fixed. Prematurely removing a build option "because it has been broken for a couple of major versions" would make it infinitely harder for (often overworked) contributors to fix the breakage.

Anyway, this whole discussion took way more effort from my side than to maintain a couple of slightly stale #ifdef's. From https://xkcd.com/1205/'s point of view, I should have ignored the "let's rip out stuff just because we can" patch.

I just thought that we care a bit more about contributors' experience.
> Maybe the git community would want to take a look at the kernel
> community (or other similar communities), how they solve the "long term
> stable" problem of computer science.

If we want to follow the example of a inclusive community that values contributors' time and effort, maybe we should look elsewhere?

I vividly remember hearing Greg KH's statement at Git Merge 2016 "we deliberately waste contributors' time". Very vividly. Very, very vividly.

> So I would propose to take this patch, but be prepared to revert it in case
> some user yells.

It would be much nicer to contributors (who are likely not subscribed to the Git mailing list, or at least do not read all the mails coming in on that channel) if they could simply imitate the surrounding #ifdef's and make that tiny patch that adds a guard around an unused static function.

If you require them to revert a patch first that reinstates an almost working state with an old dependency, you expect them to know that there was such a patch in the first place, and to dig it up.

Let's reiterate that we are talking about some #ifdef's here that are a tiny maintenance burden. That may have a bug here and there, easily fixed.

Again, I am sure that we can provide a much better contributors' experience.

Also, maybe, just maybe, there are more pressing issues than removing a couple lines here and there? This discussion vaguely reminds me of the opening statement of https://en.wikipedia.org/wiki/Law_of_triviality... Just saying'...

Ciao, Dscho

Previous: Stefan BellerNext: Jeff King
Message 13 of 48 in “[RFC] dropping support for ancient versions of curl”
  1. Jeff KingApr 4, 2017
  2. Jeff KingApr 4, 2017
  3. Jessie HernandezApr 4, 2017
  4. Ævar Arnfjörð BjarmasonApr 4, 2017
  5. Jeff KingApr 4, 2017
  6. Ævar Arnfjörð BjarmasonApr 4, 2017
  7. Johannes SchindelinApr 4, 2017
  8. Ævar Arnfjörð BjarmasonApr 4, 2017
  9. Brandon WilliamsApr 4, 2017
  10. Johannes SchindelinApr 4, 2017
  11. Brandon WilliamsApr 4, 2017
  12. Stefan BellerApr 4, 2017
  13. Johannes SchindelinApr 5, 2017
  14. Jeff KingApr 5, 2017
  15. Jeff KingApr 4, 2017
  16. Frank GevaertsApr 4, 2017
  17. Tom G. ChristensenApr 5, 2017
  18. Ævar Arnfjörð BjarmasonApr 5, 2017
  19. 0/7 Patches to support older RHEL releasesTom G. Christensen, Apr 5, 2017
  20. 3/7 Allow svnrdump_sim.py to be used with Python 2.2Tom G. Christensen, Apr 5, 2017
  21. Ævar Arnfjörð BjarmasonApr 5, 2017
  22. Tom G. ChristensenApr 5, 2017
  23. 1/7 Make NO_PERL_MAKEMAKER behave more like ExtUtils::MakeMakerTom G. Christensen, Apr 5, 2017
  24. 4/7 Handle missing HTTP_CONNECTCODE in curl < 7.10.7Tom G. Christensen, Apr 5, 2017
  25. Ævar Arnfjörð BjarmasonApr 5, 2017
  26. Franke, KnutApr 5, 2017
  27. 2/7 Install man pages when NO_PERL_MAKEMAKER is usedTom G. Christensen, Apr 5, 2017
  28. 5/7 Add support for gnupg < 1.4Tom G. Christensen, Apr 5, 2017
  29. Ævar Arnfjörð BjarmasonApr 5, 2017
  30. Junio C HamanoApr 13, 2017
  31. Ævar Arnfjörð BjarmasonApr 13, 2017
  32. 6/7 Handle missing CURLINFO_SSL_DATA_{IN,OUT}Tom G. Christensen, Apr 5, 2017
  33. Ævar Arnfjörð BjarmasonApr 5, 2017
  34. 7/7 Do not use curl_easy_strerror with curl < 7.12.0Tom G. Christensen, Apr 5, 2017
  35. Ævar Arnfjörð BjarmasonApr 5, 2017
  36. Jeff KingApr 6, 2017
  37. Junio C HamanoApr 13, 2017
  38. Jacob KellerApr 13, 2017
  39. Tom G. ChristensenApr 5, 2017
  40. brian m. carlsonApr 6, 2017
  41. Todd ZullingerApr 6, 2017
  42. Jeff KingApr 6, 2017
  43. Johannes SchindelinApr 7, 2017
  44. Jeff KingApr 10, 2017
  45. Jeff KingApr 6, 2017
  46. Tom G. ChristensenApr 6, 2017
  47. Jeff KingApr 7, 2017
  48. Junio C HamanoApr 14, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.