[racket-dev] git submodule for native-library packages

From: Asumu Takikawa (asumu at ccs.neu.edu)
Date: Wed Jul 31 00:04:20 EDT 2013

On 2013-07-30 17:44:37 -0400, Carl Eastlund wrote:
>  I looked into git-subtree, and as I recall it, nothing in the setup
>  recalls what subtree is used for what.  Every git-subtree command you
>  enter has to be fully explicit, which is a big hassle. 

AFAIK, you are correct. OTOH, I imagine that using subtree commands is
actually going to be relatively rare. Here is my reasoning:

  * You are a developer on a Racket main distribution package:
    - Most of your commits will be local to that package while you
      work on it. Let's assume this is in a separate repo (otherwise
      the subtree thing is moot)
    - You'll work on a working copy of that package installed instead
      of the core package that ships with release Racket
      (using `raco pkg` to set up the links)
    - Assuming the last two points, you are unlikely to use any
      subtree commands until the changes need to be merged for a
      release or for wider use/testing.

  * You are a power user of Racket:
    - You'll just clone the "whole Racket" git repo and automatically
      get all of the subtrees. No additional effort necessary unless
      you want to make changes.

  * You are a developer responsible for the release:
    - You will probably end up pulling all subtrees (which is pretty
      manual work) and then cherry-pick all relevant commits.

In comparison, I think submodules are supposed to make it less
convenient for the power user who is just cloning the repo. That said,
this isn't informed by a lot of experience with either feature, so
please take with a salt mine.

Maybe I will try this with Typed Racket somewhere and see what happens.

Cheers,
Asumu

Posted on the dev mailing list.