Repository Reorganization
Meet the new wire-cell-toolkit
source repository.
Up through the 0.12.x release, the Wire-Cell Toolkit source code was
aggregated through the wire-cell-build
top-level repository. Starting
with the next releases the top-level source package will be
wire-cell-toolkit
.
The content of the new repository starts with all the same source
and history as the old repository. The only difference is that while
wire-cell-build
aggregated WCT packages using git submodule
the new wire-cell-toolkit
uses git subtree
.
As a consequence, it is much easier for users and most developers to
work with the source as the code is available as a single monolithic
repository. No more recursive cloning or messing with git submodule
.
The reason that submodules were used in the past was that it was
envisioned that different developers would work on different "views"
of the source code. Each developer would have one or more top level
code aggregation packages like the main wire-cell-build
with some
subset of packages of interest. This pattern of development never
took off (although has been used in the Wire-Cell Prototype).
With git subrepo
we may still maintain the option to have multiple
top-level "aggregation" packages but it will require manual
intervention and will only have to be done by experts. For users and
most developers, the single monolithic view of the source should make
many tasks simpler including:
- one go-to place for any and all issues
- simpler cloning, no recursion needed
- easier contributions via fork + pull request
- easier branching, particularly simplifying the making of releases.
The old, fine-grained repositories are kept on GitHub but to avoid
confusion and complication of any future git subrepo
synchronization,
direct push access has been removed. Contact the WCT team if you have
need for this now deprecated access method.
Enjoy the new monorepo.