Howdy folks! We're in the process of making some changes to the
Clojars infrastructure to make it more robust, reliable, and easier to
maintain. One of those changes will be to provide a single canonical
repository instead of serving artifacts from two locations.
## A Tale of Two Repositories
You can currently access the Clojars repository in two ways:
- via the "on-disk" repository at
https://clojars.org/repo/
- via the "cdn-fronted" repository at
https://repo.clojars.org/
The artifacts for these two repositories are stored in different
places. The on-disk repository serves from the disk of the
clojars.org
server. The cdn-fronted repository serves from a Rackspace Cloudfiles
repository. When a deploy occurs, it is first written to disk, then
uploaded to Cloudfiles. The intent was for the repositoriesitories to
be identical, but that hasn't always been the case - we would
occasionally fail to upload artifacts to the Cloudfiles repository,
leaving the two repositories out of sync. We've done recent work[1] to
mitigate that, but would like to move to having a single,
Cloudfiles/blobstore-based repository.
## The proposed changes
In order to have a single repository, we plan to make the following
changes:
- Any GET requests to the on-disk repository at
https://clojars.org/repo/<path> will be redirected to the
cdn-fronted repository at
https://repo.clojars.org/<path>
- Deploys will no longer write to the on-disk repository, just to the
cdn-fronted one
## Timeline
We would like to make these changes within the next few weeks, but may
delay that based on your feedback (see below).
## How this will affect you
If you are using a modern version of lein (2.8.0 or newer), boot
(2.7.0 or newer), or tools.deps.alpha (0.5.425 or newer), you are
already using the cdn-fronted repository, and should see no issues
with dependency resolution or deployment.
The cdn-fronted repository uses some TLS features that aren't
supported by older java versions by default. If you are using an older
version of Java (pre-Java 8), you may be using older build tools or
have configured newer versions of the tools to point to the on-disk
repository to avoid this. With this change, you may no longer be able
to resolve dependencies. If this affects you, we would love to hear
about it! Please comment on the issue where this change is being
discussed[2].
Once we remove the on-disk repository, rsync'ing a copy of the
repository will no longer be a supported feature. Based on our rsync
logs, it looks like we've had ~100k rsync connections over the last
month from ~100 ip addresses. But the bulk of those requests were over
a few scattered days where a single ip would connect every 2-5
*seconds*. If you are using the rsync feature to maintain a copy of
the repository, please comment on the issue where this change is being
discussed[3] to let us know your use case and we'll see if we can come
up with an alternate solution.
[1]:
https://groups.google.com/forum/#!topic/clojars-maintainers/FXcV6O-FjiA
[2]:
https://github.com/clojars/clojars-web/issues/734
[3]:
https://github.com/clojars/clojars-web/issues/735