plt/racket — pull request #829 by mflatt (2014-11-21 17:16:02+00:00)
Title: raco pkg {install,update} --clone <dir> <git-pkg-source>*

I'm still testing, but I think this change is far enough along for feedback.

Jay, Sam, Robby, Matthias and I discussed the workflow for authors who work on lots of packages, especially when each package can have many other authors. In that case, we think that an author won't have much trouble pushing changes to the right packages after editing them, but pulling updates consistently looks difficult. In particular, we think we can do better than Git submodules by building something like submodule pulls into `raco pkg`. The idea is that `raco pkg update` should pull updates whether you're an author of a package (and have it linked locally as a Git checkout) or not.

The third commit is the interesting one; start with "git-workflow.scrbl" (and keep in mind that `@command{}` typesets as `raco pkg `).

This implementation does not fully address one situation that we discussed. Some packages, such as "htdp-lib" and "htdp-doc", will be in a single repository even after we split the current main repository. The `--clone` support implemented here will use a single clone for both of those packages, just as you'd want and expect. However, if only "htdp-lib" of the package is linked as a clone while "htdp-doc" is installed normally, then edits to the "htdp-doc" part of the local clone will not take effect, which could be confusing. The package manager should detect that situation and offer help.