Getting started with weld¶
As a normal user¶
If you’re a normal user of weld, then there isn’t much to learn.
Basically, your project documentation should tell you how to clone a weld - for instance:
$ git clone ssh://git@example.com//opt/projects/99/weld project99
You can then just develop in project99 as normal, using git to handle
version control as you would for any other project.
As a muddle user¶
Your project should include documentation telling you to:
- Clone a weld
cdinto it and usemuddle initto set it up
and then you can mostly use the build tree as a normal muddle user.
For instance:
$ mkdir project99
$ cd project99
$ 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
The weld+ tells muddle it is dealing with a weld, and (essentially)
disables muddle push and muddle pull. The idea is that you should just
use git directly (git push, git pull, etc.).
A little more detail¶
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>
As you can see, there is now a single .git directory at the top of the
muddle source tree, as well as a .weld directory, and a .gitignore
file. The .git directories that would have been present in the src
directories have gone away - they are not needed in this setup.
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.
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.
But where’s the use of the weld tool?¶
One of the points of “weld” is that normal users do not need to use the weld command line tool. The idea is that only the software developers maintaining the weld need to worry about how it interacts with its upstream packages. This means that if you’re just building software from a weld, it is simply another (albeit perhaps rather large) git repository.