Internal repository for testing the Kodo top level projects:
Note: kodo-core
is considered purely a dependency and not a top-level
repository. It provides building blocks for instantiating erasure correcting
codes but no stand-alone functionality.
The basic idea is to allow a developer (you) to work on the Kodo projects as if they were located in the same repository.
As a simple example. A bug is reported against kodo-core
you can set the
branch for kodo-core
here and rebuild all kodo repositories with that version.
To quickly get going and build all of Kodo you can run:
./waf configure --resolve_path ~/dev/bundle_dependencies --fast_resolve
./waf build --run_tests
-
Ensure that dependencies of all Kodo repositories are in sync. I.e. they use the same version of
kodo-core
but also other dependent libraries. This goal is easily achieved since our resolve framework will already ensure that. -
Make it possible to test changes in a dependency without having to open branches in each Kodo top level repository.
In the master branch of kodo-dev
we have the Kodo top-level repositories in
resolve.json
The basic idea is that we use the following approach:
-
Locally lock the paths to the repositories you are working on. This can be done with the following approach:
- Add user paths to configure, e.g.
--kodo-core-path=/my/path
. Add as many as needed. - Add
--lock_paths
to configure.
Example:
./waf configure --boost_path ../new-boost --lock_paths
- Add user paths to configure, e.g.
-
To ensure that your changes are available on the buildbot add/modify the dependencies you are working on in
resolve.json
. Use theoverride=True
property to make sure that your version of the dependency is used.
To do this you can add the following to resolve.json
:
{
"name": "kodo-core",
"resolver": "git",
"method": "checkout",
"checkout": "master",
"override": true,
"sources": [
"github.com/steinwurf/kodo-core.git"
]
},
You can replace "master"
with a different branch name you want to test with.