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:

  1. Create your muddle build description, with appropriate repository information
  2. Commit it to a remote/bare repository, as one does
  3. Use muddle to find out the list of packages and their repositorie
  4. Use that information to write the weld XML file
  5. 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.