[racket-dev] Splitting the Racket repository
As Matthias mentioned in his email a few days ago, we're in the
process of splitting the repository so that it doesn't bundle together
so many packages. I've started this process already, and a number of
packages have already been split out. For most people, this won't have
a big impact, but I'll outline changes for different sorts of people
below, and mention a few open questions.
All the history for the code has been preserved, and for code that
dates back before 2005, the history is extended back to the original
CVS repository. See https://github.com/racket/games/ for an example of
this.
# Changes for other users
If you use Racket by downloading a release or a snapshot, nothing will
change for you.
# Changes for git users
If you build Racket from source from Git, that build now contains
fewer packages. There is not yet an single-step way to get all of the
split pkgs as git repositories; we plan to write a script for this
soon.
To clone individual repositories, use the new `--clone` option for
`raco pkg`, such as:
raco pkg install --clone pkg-build git://github.com/racket/pkg-build
or for packages that are grouped together in a single repository
raco pkg install --clone remote-shell
git://github.com/racket/remote-shell?path=remote-shell-lib
git://github.com/racket/remote-shell?path=remote-shell
git://github.com/racket/remote-shell?path=remote-shell-doc
Note that the clones created by `raco pkg install` cannot be pushed to
with the default origin remote.
# Changes for committers
If you have commit access to the main Racket repository, you'll be
added to the `racket` organization on GitHub, which will give you
access to commit to the repositories there, which is where all of the
new packages are.
# Open issues
## DrDr
Currently, DrDr builds all the split packages as well as the current
repository. But it doesn't yet notice when changes are pushed to the
split packages. Also, it doesn't yet know who is responsible for code
in split packages, so if some of your code in such as package breaks,
you won't get an email. We plan to fix both of these issues soon.
Also, DrDr now builds several packages that it didn't before: the
s3-sync, sha, http, and aws packages. Currently, these packages have
some test failures, but we hope to fix that soon.
## Determining the content of the distribution
Previously, the content of the distribution was the dependencies of
the "main-distribution" package. Since that's in the repository, it
can't depend on the split packages. Thus, we need a new canonical home
for this information.
## Release process
This will also require changes to the release process, which I'll
leave to the release managers to describe.