git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Cc: "Jeff King" <peff@peff.net>,
	"Jonathan Nieder" <jrnieder@gmail.com>,
	"Thomas Rast" <trast@inf.ethz.ch>,
	"René Scharfe" <rene.scharfe@lsrfire.ath.cx>,
	"Michael Haggerty" <mhagger@alum.mit.edu>,
	"Matthieu Moy" <Matthieu.Moy@grenoble-inp.fr>,
	"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
	"Felipe Contreras" <felipe.contreras@gmail.com>,
	"Ramsay Jones" <ramsay@ramsay1.demon.co.uk>,
	"Erik Faye-Lund" <kusmabite@gmail.com>,
	"Johannes Sixt" <j6t@kdbg.org>,
	"Johannes Schindelin" <johannes.schindelin@gmx.de>
Subject: [Administrivia] On ruby and contrib/
Date: Tue, 04 Jun 2013 17:04:39 -0700	[thread overview]
Message-ID: <7va9n52zjc.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: 7vtxld30f2.fsf@alter.siamese.dyndns.org

Junio C Hamano <gitster@pobox.com> writes:

> * fc/contrib-related (2013-06-03) 4 commits
>  - contrib: related: parse committish like format-patch
>  - contrib: related: add option to parse from committish
>  - contrib: related: add support for multiple patches
>  - Add new git-related helper to contrib
>
>  Waiting for the design review to settle.

As people may have seen in the discussion on the earlier iteration,
something like this (there may be a room for bikeshedding the name,
though) that takes either a range of changes or set of patches and
finds people who may be able to review them may be a good addition
to our official toolchest.

  http://thread.gmane.org/gmane.comp.version-control.git/221728/focus=221796

Right now, "related" is in contrib/ primarily because its design
review phase is not yet finished and because it is in Ruby, which
the rest of the system does not depend on.

I have some administrative comments on two issues as the maintainer.

 * Do we want to add Ruby dependency?
 * Do we want to keep expanding contrib/?

These have been triggered by "related", but the comments in this
message are not limited to the specific topic (e.g. you can read it
with s/Ruby/<any language we currently do not depend on>/).


On Ruby:

Assuming "related" is a good idea, to make it as the proper part of
the system out of contrib/ when its design review phase is finished,
one of these things has to happen:

 1. Find a volunteer to rewrite it in one of the languages that we
    know the platforms our current users use already support, which
    means either C (not a good match), POSIX shell (not the best
    match), or Perl.

 2. Promote Ruby to the first-class citizen status, which involves
    making sure people on platforms that matter do not have problem
    adding dependency on it (I am primarily worried about MinGW
    folks), and also making sure core developers do not mind
    reviewing code written in it.

As long as we can get as high quality reviews on changes written in
Ruby as we do for the current codebase, it is OK to go route #2, and
that may hopefully happen in the longer term as and there will be
some people, among competent Ruby programmers, who have understood
how the pieces of entire Git are designed to fit together by the
time it happens.

I however do not know how much extra burden it would place to add
dependencies to platform folks, so obviously the safer approach is 1
at least in the immediate future.  My understanding is that msysgit
folks are already having trouble with Python, and we do not want to
go route #2 at least for now.  Having to ship a variant of Git with
NO_PYTHON is already bad enough.  And that is why the option 1 above
does not list Python as a possible candidate.


On contrib/:

Back when Git was very young, it made sense to bundle third-party
tools in our tree's "contrib/" section to give them visibility and
users convenience.  Now Git ecosystem has grown to have many users
who know Git and who do not necessarily come to this list, and with
easy-to-use hosting sites where anybody can publish their ware and
collaborate with their contributors, "giving more visibility" angle
of contrib/ has outlived its usefulness.  When there are multiple
third-party tools that address similar needs, there is not much
point picking one at random and ship it over others, and shipping
all of them is simply crazy.  In an ecosystem with flourishing
third-party add-ons, their products should and will stand on their
own.

As the maintainer, I've been thinking about closing contrib/ area
for new stuff, and shrinking existing ones, either by moving stuff
that are only useful within the context of Git to main part of the
tree (e.g. "contrib/workdir" may move to a new directory "addons/",
some of remote-helpers in contrib/ may move to "remote-helpers/",
etc.), and removing others from contrib/, for this reason.  Of
course, interested folks can take the last version of the removed
ones and continue improving them as standalone projects.

And that is why the list of possible actions in the previous part
does not have "3. Keep it in contrib/ forever" as an option.

That is all for the "administrative comments" as the maintainer.


The rest is just a personal opinion.

If we were looking at a compelling and sizeable web application that
depends on Rails, it is very likely that it would not make much
sense to rewrite it in other languages only to avoid a new language
dependency on Ruby.

But "related" is "read and extract some info out of text files,
spawn a 'blame' (or two) based on that info, read to collect further
info and summarize", for which Ruby does not especially shine
compared to Perl, which is the language we already depend on.
Because of this, I am moderately reluctant to add Ruby dependency
only for this script.  Unless I know people who regularly give us
high quality reviews, and those who support various platforms, are
fine with it, that is.

In the shorter term (read: up to 2.0), I am inclined to vote that we
should go route #1 (i.e. rewrite in Perl once the design settles).

My "personal opinion" above of course assumes that everybody agrees
that "related" is a good addition.  If not, there is "3. not add it
to contrib/ and leave it as an out-of-tree third-party project"
option.

  reply	other threads:[~2013-06-05  0:04 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-04 23:45 What's cooking in git.git (Jun 2013, #02; Tue, 4) Junio C Hamano
2013-06-05  0:04 ` Junio C Hamano [this message]
2013-06-05  3:02   ` [Administrivia] On ruby and contrib/ David Lang
2013-06-05 14:30     ` Felipe Contreras
2013-06-05  4:13   ` Michael Haggerty
2013-06-05 17:41     ` Junio C Hamano
2013-06-06 12:52     ` Matthieu Moy
2013-06-07 16:11       ` Junio C Hamano
2013-06-06 19:48     ` Thomas Ferris Nicolaisen
2013-06-05 14:45   ` Felipe Contreras
2013-06-06  7:26     ` demerphq
2013-06-06  7:46       ` Felipe Contreras
2013-06-06 12:24         ` Barry Fishman
2013-06-06 13:01           ` Felipe Contreras
2013-06-06 13:46             ` Barry Fishman
2013-06-06 14:09               ` Felipe Contreras
2013-06-06 14:41                 ` Barry Fishman
2013-06-06 15:04                   ` Felipe Contreras
2013-06-06 20:41         ` Charles McGarvey
2013-06-06 14:54   ` Greg Troxel
2013-06-06 15:17     ` Felipe Contreras
2013-06-06 16:09       ` David Lang
2013-06-06 18:16         ` Felipe Contreras
2013-06-06 20:29         ` Ramkumar Ramachandra
2013-06-06 20:19           ` David Lang
2013-06-07 14:24             ` Ramkumar Ramachandra
2013-06-07 15:20               ` Junio C Hamano
2013-06-07 15:28                 ` Ramkumar Ramachandra
2013-06-07 19:04                 ` Felipe Contreras
2013-06-07 19:27                   ` Ramkumar Ramachandra
2013-06-07 19:38                     ` Ramkumar Ramachandra
2013-06-09  2:57                     ` Johannes Schindelin
2013-06-09  9:16                       ` Ramkumar Ramachandra
2013-06-09 23:29                         ` Junio C Hamano
2013-06-10  4:56                           ` Felipe Contreras
2013-06-07 19:55                   ` Junio C Hamano
2013-06-07 20:24                     ` Felipe Contreras
2013-06-08  2:23                       ` Duy Nguyen
2013-06-08 10:08                         ` Felipe Contreras
2013-06-08 11:20                           ` Duy Nguyen
2013-06-08 12:06                             ` Felipe Contreras
2013-06-07 19:21             ` Felipe Contreras
2013-06-06 17:16       ` Greg Troxel
2013-06-06 18:24         ` Felipe Contreras
2013-06-06 21:05         ` Ramkumar Ramachandra
2013-06-06 21:31           ` Dependencies and packaging (Re: [Administrivia] On ruby and contrib/) Jonathan Nieder
2013-06-07 19:29             ` Felipe Contreras
2013-06-06 16:22     ` [Administrivia] On ruby and contrib/ Johannes Schindelin
2013-06-06 20:40       ` Ramkumar Ramachandra
2013-06-07  3:25         ` Johannes Schindelin
2013-06-07 15:20           ` Ramkumar Ramachandra
2013-06-07 17:57             ` Matthieu Moy
2013-06-07 18:14               ` Ramkumar Ramachandra
2013-06-07 18:24               ` Ramkumar Ramachandra
2013-06-07 18:32                 ` Matthieu Moy
2013-06-07 18:48                   ` Ramkumar Ramachandra
2013-06-07 19:00                     ` Matthieu Moy
2013-06-07 19:10                       ` Felipe Contreras
2013-06-07 18:33                 ` Jonathan Nieder
2013-06-07 18:45                   ` Matthew Ruffalo
2013-06-07 18:28               ` Junio C Hamano
2013-06-07 19:14           ` Felipe Contreras
2013-06-07 19:41             ` Ramkumar Ramachandra
2013-06-09  2:59               ` Johannes Schindelin
2013-06-08  2:17       ` Duy Nguyen
2013-06-08 10:02         ` Felipe Contreras
2013-06-08 11:28           ` Duy Nguyen
2013-06-08 11:56             ` Felipe Contreras
2013-06-08 12:07               ` Duy Nguyen
2013-06-08 13:20                 ` Felipe Contreras
2013-06-08 17:15                   ` Jeff King
2013-06-08 17:40                     ` Felipe Contreras
2013-06-09  0:10                       ` Jeff King
2013-06-09  1:17                         ` Felipe Contreras
2013-06-09  2:23                           ` Jeff King
2013-06-09  2:41                             ` Felipe Contreras
2013-06-09  3:07         ` Johannes Schindelin
2013-06-05  6:59 ` What's cooking in git.git (Jun 2013, #02; Tue, 4) Johannes Sixt
2013-06-05  7:12   ` Jeff King
2013-06-06  6:34     ` [PATCH] t0005: skip signal death exit code test on Windows Johannes Sixt
2013-06-06  6:37       ` Jeff King
2013-06-06  6:41         ` Felipe Contreras
2013-06-06  6:44           ` Jeff King
2013-06-06  6:48             ` Felipe Contreras
2013-06-06 17:21             ` Junio C Hamano
2013-06-06 17:40               ` Jeff King
2013-06-07  6:22                 ` Johannes Sixt
2013-06-07 10:12                 ` Erik Faye-Lund
2013-06-07 10:24                   ` Johannes Sixt
2013-06-07 12:00                     ` Erik Faye-Lund
2013-06-07 12:19                       ` Johannes Sixt
2013-06-07 12:46                         ` Erik Faye-Lund
2013-06-07 13:07                           ` Johannes Sixt
2013-06-07 14:20                             ` Erik Faye-Lund
2013-06-10  5:48                               ` [PATCH] mingw: make mingw_signal return the correct handler Johannes Sixt
2013-06-10 11:37                                 ` Erik Faye-Lund
2013-06-10 20:50                                 ` Junio C Hamano
2013-06-09  0:18                   ` [PATCH] t0005: skip signal death exit code test on Windows Jeff King
2013-06-09 20:31                     ` Junio C Hamano
2013-06-10  5:30                       ` Johannes Sixt
2013-06-10 11:38                         ` Erik Faye-Lund
2013-06-06 18:32               ` Felipe Contreras
2013-06-07 10:01       ` Erik Faye-Lund
2013-06-07 10:03         ` Erik Faye-Lund

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=7va9n52zjc.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=Matthieu.Moy@grenoble-inp.fr \
    --cc=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=j6t@kdbg.org \
    --cc=johannes.schindelin@gmx.de \
    --cc=jrnieder@gmail.com \
    --cc=kusmabite@gmail.com \
    --cc=mhagger@alum.mit.edu \
    --cc=pclouds@gmail.com \
    --cc=peff@peff.net \
    --cc=ramsay@ramsay1.demon.co.uk \
    --cc=rene.scharfe@lsrfire.ath.cx \
    --cc=trast@inf.ethz.ch \
    /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).