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
cd
into it and usemuddle init
to 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.