git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: Ramkumar Ramachandra <artagnon@gmail.com>
Cc: Felipe Contreras <felipe.contreras@gmail.com>,
	Duy Nguyen <pclouds@gmail.com>,
	Git Mailing List <git@vger.kernel.org>,
	Junio C Hamano <gitster@pobox.com>,
	Brandon Casey <drafnel@gmail.com>,
	Jonathan Nieder <jrnieder@gmail.com>
Subject: Re: [PATCH 2/2] Move sequencer to builtin
Date: Sun, 9 Jun 2013 13:55:54 -0400	[thread overview]
Message-ID: <20130609175554.GA810@sigill.intra.peff.net> (raw)
In-Reply-To: <CALkWK0kkGO8zoLSpZkaYgVr5eBX6AovYFxQZkgJKugSw0CmdXQ@mail.gmail.com>

On Sun, Jun 09, 2013 at 03:28:48PM +0530, Ramkumar Ramachandra wrote:

> Jeff King wrote:
> > Sorry that I cannot show you the source code, but you may interested to
> > know that libgit2 powers:
> 
> Yes, I'm well aware of these: libgit2 is LGPL, because of which these
> three proprietary applications have been made possible.  Isn't it
> completely orthogonal to the discussion about how best to lib'ify
> git.git though?  From what I understand, fc is not interested in
> building another application leveraging libgit.a or libgit2; he's
> interested in improving libgit.a and getting more users.

Perhaps I misunderstood the discussion, but it looked to me that there
was an assertion that libgit2 was not ready for useful work. I do not
think that is true, and I tried to counter it with facts.

If that was not useful to the discussion, I apologize for leading it
astray.

> > It is definitely not feature-complete when compared with git.git. But I
> > do think it is in a state that is usable for quite a few tasks.
> 
> What is this task you are discussing?

You snipped the part of Felipe's message that I quoted:

  Let the code speak. Show me a script in any language that does
  something useful using libgit2, doing the equivalent to at least a
  couple of 'git foo' commands.

I meant tasks that were "equivalent to at least a couple of 'git foo'
commands" as performed by the programs I mentioned. Like cloning,
checkout, commit, revision traversal, diffs, etc.

> fc is talking about improving libgit.a and getting an official git
> library with many users. Answer the question: what should we do now?

I do not think I was addressing that point at all in my email. But since
you ask...

> 1. Start moving irrelevant code out of libgit.a, and use inspiration
> from libgit2 to improve it (this might or might not involve taking
> code from libgit2).  Get _users_ of libgit.a via ruby bindings (or
> something) asap, so it puts pressure on fixing it.

I already mentioned elsewhere that I think it would be fine to massage
libgit.a in that direction. I even joined the conversation pointing out
some cases where Felipe's ruby module would break. But I do not think
that moving code in and out of libgit.a is an important first step at
all. That is simply code that no library users would want to call, and
is easy to deal with: move it out. The hard part is code that users
_would_ want to call, and is totally broken. Patches dealing with that
are the hard obstacle that people working in this direction would need
to overcome. But I do not see any such patches under discussion.

> 2. Wait indefinitely until libgit2.git magically becomes ready to be
> usable by git.git as-is.  Then throw libgit.a out the window, and
> rewrite git.git to call into libgit2.a instead [*1*].

I think the "magically" here could be "work on libgit2 to move it
towards being useful for git.git". I also do not think there needs to be
a "throw out libgit.a" flag day. We can make a decision later to start
adopting bits of libgit2 inside git.git (the big downside being an
increased dependency).

Maybe the code style will diverge too much and it will never be
appropriate to do so. We'll have to see.

> What you seem to be saying is "3. Work on libgit2 (and abandon
> git.git?)" [*2*], or worse: 2.

I didn't say that at all. If the two projects co-exist forever, working
compatibly on the same repositories, and git.git is the command line and
libgit2 is the library, I do not see that as the end of the world. The
downside there is is code duplication, which is why it may eventually
make sense for libgit.a to start adopting bits of libgit2 (it is usually
hard to go the other way, both for licensing reasons, and for the fact
that the library code tends to be more reusable).

> fc is in favor of 1.  Unless you are
> in favor of _not_ improving libgit.a, don't stand in his way:

I'm not. I tried to give pointers on the path that I think would be
useful (e.g., what would break with his ruby patch).

> *1* You have dismissed 1 as being unworkable, but do you realize how
> unrealistic this sounds?

I don't think I dismissed it as unworkable. I said it was a lot of work,
tried to describe some examples, and said that I think the other route
may be _less_ work.

> *2* git.git has _far_ more users and a _lot_ more contributors.  Don't
> be unwelcoming to contributors by asking them to go away and work on
> something else.  The three proprietary applications you have given as
> counter-examples (?) is not helping anyone.

They were counter-examples to the point "libgit2 is not ready for real
work", which I thought was being made. If that was not the point being
made, then no, they are not helping anyone.

-Peff

  reply	other threads:[~2013-06-09 17:56 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-07 22:16 [PATCH 0/2] Move sequencer Felipe Contreras
2013-06-07 22:16 ` [PATCH 1/2] log-tree: remove dependency from sequencer Felipe Contreras
2013-06-07 22:16 ` [PATCH 2/2] Move sequencer to builtin Felipe Contreras
2013-06-08  2:35   ` Duy Nguyen
2013-06-08 10:14     ` Felipe Contreras
2013-06-08 11:42       ` Duy Nguyen
2013-06-08 12:25         ` Felipe Contreras
2013-06-08 12:34           ` Duy Nguyen
2013-06-08 12:55             ` Ramkumar Ramachandra
2013-06-08 13:15               ` Duy Nguyen
2013-06-08 13:32                 ` Felipe Contreras
2013-06-08 13:34                 ` Ramkumar Ramachandra
2013-06-08 14:10                   ` Felipe Contreras
2013-06-08 14:10                   ` Duy Nguyen
2013-06-08 14:20                     ` Felipe Contreras
2013-06-09  4:34                       ` Jeff King
2013-06-09  9:58                         ` Ramkumar Ramachandra
2013-06-09 17:55                           ` Jeff King [this message]
2013-06-09 18:06                             ` Ramkumar Ramachandra
2013-06-09 18:11                               ` Felipe Contreras
2013-06-09 18:22                               ` Jeff King
2013-06-09 18:29                                 ` Felipe Contreras
2013-06-09 18:44                                 ` Ramkumar Ramachandra
2013-06-09 18:49                                   ` Jeff King
2013-06-09 18:54                                     ` Felipe Contreras
2013-06-09 18:07                             ` Felipe Contreras
2013-06-09 12:09                         ` Felipe Contreras
2013-06-08 13:28             ` Felipe Contreras
2013-06-08 16:49         ` Jonathan Nieder
2013-06-08 17:06           ` Felipe Contreras
2013-06-08 17:34             ` Jonathan Nieder
2013-06-08 17:44               ` Felipe Contreras
2013-06-08 19:15               ` Felipe Contreras
2013-06-09  1:40                 ` Jonathan Nieder
2013-06-09  2:17                   ` Felipe Contreras
2013-06-09  3:21                     ` Jonathan Nieder
2013-06-09  3:34                       ` Felipe Contreras
2013-06-09  5:26                     ` Jeff King
2013-06-09 12:15                       ` Felipe Contreras
2013-06-09 17:40                         ` Jeff King
2013-06-09 18:01                           ` Felipe Contreras
2013-06-09 18:10                             ` Jeff King
2013-06-09 18:16                               ` Felipe Contreras
2013-06-09 19:11                                 ` Johan Herland
2013-06-09 19:29                                   ` Felipe Contreras
2013-06-09 21:42                                   ` Michael Haggerty
2013-06-09 23:40                                     ` Stefano Lattarini
2013-06-10  5:15                                       ` Felipe Contreras
2013-06-10  9:05                                         ` Bad attitudes and problems in the Git community (was: Re: [PATCH 2/2] Move sequencer to builtin) Stefano Lattarini
2013-06-10 16:58                                           ` Felipe Contreras
2013-06-10 18:11                                             ` Martin von Zweigbergk
2013-06-10 18:33                                               ` Martin Langhoff
2013-06-10 18:40                                                 ` Martin von Zweigbergk
2013-06-10 21:34                                               ` Felipe Contreras
2013-06-10  5:12                                     ` [PATCH 2/2] Move sequencer to builtin Felipe Contreras
2013-06-11  9:18                             ` Andres Freund
2013-06-11  9:29                               ` Felipe Contreras
2013-06-20 21:11                                 ` Thiago Farina
2013-06-09 17:53                         ` Thomas Rast
2013-06-09 18:03                           ` Felipe Contreras
2013-06-09 12:48                       ` Ramkumar Ramachandra
2013-06-09 13:08                         ` Felipe Contreras
2013-06-09 18:04                         ` Jeff King
2013-06-09 18:32                           ` Ramkumar Ramachandra
2013-06-09 18:45                             ` Jeff King
2013-06-09 19:57                               ` Jonathan Nieder
2013-06-09 20:07                                 ` Felipe Contreras
2013-06-09 20:34                                 ` Ramkumar Ramachandra
2013-06-09 21:39                               ` Junio C Hamano
2013-06-10  5:06                                 ` Felipe Contreras
2013-06-10  8:32                                   ` Junio C Hamano
2013-06-10 16:53                                     ` Felipe Contreras
2013-06-10 16:55                                       ` Felipe Contreras
2013-06-10 17:34                                       ` Matthieu Moy
2013-06-10 18:09                                         ` Ramkumar Ramachandra
2013-06-10 21:43                                         ` Felipe Contreras
2013-06-09 18:48                             ` Felipe Contreras
2013-06-09 19:25                             ` Thomas Rast
2013-06-09 19:54                               ` Ramkumar Ramachandra
2013-06-09 20:02                                 ` Felipe Contreras
2013-06-08  3:35 ` [PATCH 0/2] Move sequencer Ramkumar Ramachandra
2013-06-08 10:26   ` Felipe Contreras

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130609175554.GA810@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=artagnon@gmail.com \
    --cc=drafnel@gmail.com \
    --cc=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jrnieder@gmail.com \
    --cc=pclouds@gmail.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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).