-
Notifications
You must be signed in to change notification settings - Fork 167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use a single repository for the entire rdf4j code base (merging storage, tools, and testsuite back into rdf4j) #1467
Comments
Scheduled to be done immediately after the 3.0 release. |
Merging the testsuite repo including all history is giving me a lot of headaches, due to the many files being moved and deleted when things were first split: it's nearly impossible to reconcile. So I'll instead just manually copy over the the benchmarks (which is the only part of the testsuites repo that is still relevant). |
Turns out the idea of skipping the compliance tests unless the |
Jenkins configuration looks to be set well now, after a few tries:
On a separate note: note that the develop branch has not yet been set up correctly. |
Happy with the setup for now. |
Motivation
Back in 2017 (see https://www.eclipse.org/lists/rdf4j-dev/msg00410.html ) we made a decision to split the rdf4j project over multiple repositories. The main motivation for this was that a full build + verification of the project was taking too long, and this encouraged contributors to take shortcuts. The theory was that by splitting the project, we could get verification time down.
However, that expected speed gain has not really materialized. It's true that individual repo builds are quicker, but when we make a change in, for example, the rdf4j repo, we still need to run verification in rdf4j-storage and -tools - and can turn out to still break things.
A further downside is that compliance tests in the rdf4j repo often use code from rdf4j-storage (e.g. a sail impl) or from rdf4j-tools (e.g. to spin up an rdf4j server) - however due to the order of dependencies, those modules are not built yet when rdf4j repo does its verification. While that's no big deal as long as we're on a develop branch, and everything just uses "the latest SNAPSHOT", it seriously messes up things when release time rolls around and we have to set fixed versions: suddenly when rdf4j repo tries to build it fails because its tests can't find rdf4j-sail-memory 3.0.0. I have been attempting to mitigate this by moving tests around in the project, as well as setting fixed (older) versions for these kinds of test dependencies - but it's not ideal.
Finally: the Jenkins pipeline we currently have to build, verify and deploy all of this is just incredibly convoluted. We now have 24(!) separate Jenkins jobs to coordinate all of this, and it's painful to maintain tbh.
Proposed change
We move back to a mono-repo for the entire codebase, which will live in the rdf4j github repository. rdf4j-doc will remain a separate repository, where the project website and documentation are maintained.
To make sure we get decent build and verification times, we will make the following improvements:
Tasks
(See also discussion at https://www.eclipse.org/lists/rdf4j-dev/msg01147.html )
The text was updated successfully, but these errors were encountered: