Creating a muddle build tree for use with weldΒΆ
Setting up a muddle build tree for use as a weld is still to be documented.
Note
Steps will include:
- Create your muddle build description, with appropriate repository information
- Commit it to a remote/bare repository, as one does
- Use muddle to find out the list of packages and their repositorie
- Use that information to write the weld XML file
- Follow the normal instructions on creating a weld given its XML file
Weld was written with the intent of being muddle-compatible.
A normal muddle build tree looks something like the following:
<project>
.muddle/
src/
builds/
.git/
01.py
base/
kernel
.git/
<lots of source code>
<and so on>
A muddle build tree set up for use with weld instead looks like:
<project>
.git/
.gitignore
.muddle/
.weld/
src/
builds/
01.py
base/
kernel
<lots of source code>
<and so on>
The toplevel .git
directory manages the entire source code tree.
The .gitignore
file tells git to ignore various things, including the
muddle .muddle
, obj
, install
and deploy
directories.
Typically, a user just needs to do something like:
$ git clone ssh://git@example.com//opt/projects/99/weld weld
$ cd weld
$ muddle init weld+ssh://git@example.com//opt/projects/99/weld builds/01.py
after which they can do muddle build _all
and so on in the traditional
manner.
Use of the weld+
mechanism in muddle init
tells muddle not to allow
muddle pull
and the like to do anything - the muddle VCS commands are not
currently aware of how welds work, and so are disabled by this means. Instead,
just use git in the normal manner.
Note
It is possible that muddle may become more “weld aware” in the future, but to be honest the current mechanism seems like a sensible first approach, and may be the correct way to handle this in the long term as well.