| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
It doesn't do any actual building, so it doesn't matter that using
build-mode: bootstrap everywhere means that it would end up with an
empty system artifact.
|
|
|
|
|
| |
uname tends to only give us a valid morph architecture on x86_64,
this makes it work on other architectures.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
They were missing build depends or were empty.
Now that edit does validation, this is not permitted.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I shouldn't be doing this in the middle of refactoring, but trying to
get the new code to emit exactly the right kind of JSON is too much pain,
and these tests need to be rewritten to use YAML in the near future anyway
(we'll drop JSON support eventually), so I don't want to spend more time
on this than necessary.
The changes in this commit convert morphologies in JSON to YAML, and
fix test code that modifies the morphologies to work with the YAML.
There is probably more JSON lurking about.
|
|
|
|
|
|
| |
This was a wild idea when we first designed the branch structure.
It causes more problems than it's worth as you may have multiple
workspaces, and it needed to be set manually in the first place.
|
| |
|
|
|
|
|
|
| |
That means that bootstrapping Baserock is currently not possible with
this branch of Morph, but there's no reason it cannot be bootstrapped
using an older version of Morph instead.
|
|
|
|
|
|
|
|
|
|
| |
Some tests already used test: and in order to be able to share the
scripts/setup-3rd-party-strata script they need to all use the same
prefix.
Using baserock: implies that we are using real code from Baserock,
so I picked test: because the tests only ever use mock morphologies
and no real code.
|
|
|
|
|
|
|
|
|
|
| |
This requires disabling the feature that retains the original order of
fields in a morphlogy when it gets overwritten. The implementation relies
on features that are not available in Python 2.6. We need to support
Morph on Debian squeeze, for bootstrapping purposes, and therefore need
to have it work with Python 2.6. However, the morphology rewriting is
only relevant for system branching and merging, and that isn't needed
for bootstrapping, so we disable the affected tests on Python 2.6.
|
|
|
|
|
|
| |
Move this into a script which can be sourced by the 'setup' scripts
and the actual tests (this is needed as the environment in 'setup' is
not passed on to the tests).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This new command does a lot. First of all, its command line interface
has now changed to 'morph build SYSTEM' and it needs to be run from
a system branch.
When called, the new 'build' command will identify the repositories
and morphologies involved in building the system from the system branch,
create a build ref behind the scenes based on the system branch and add a
commit with all uncommitted changes to this build branch for every repo
involved. It will then push those build branches to the repository server
and kick off a build of BRANCH_ROOT BUILD_BRANCH SYSTEM.morph.
After building has finished, the remote build branches will be
deleted again.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Editing no longer requires a repository to be specified, neither does
it require a branch.
It now starts off from a system morphology that is required to exist
in the branch root repository. Relative to this system, "morph edit"
realises the repository of a stratum and, optionally, a chunk, creates
edit branches named after the system branch, if necessary, and update
the references in the system and stratum morphology accordingly.
The changes made to any of the repositories in the system branch
are not committed.
All existing changes are updated to work with this new input syntax
for "morph edit".
|
|\
| |
| |
| |
| | |
Conflicts:
morphlib/plugins/branch_and_merge_plugin.py
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of hard-coding "baserock:morphs" as the repository we check out
from, we want to allow people to check out from arbitrary repositories
with system and stratum morphologies.
This commit adds a mandatory repository parameter to "morph checkout".
This parameter can either be an aliased repo, e.g. baserock:morphs, or
a full repo URL such as ssh://gitano@git.baserock.org/baserock/morphs.
When cloning the actual repository into a local directory, the following
happens:
For alias repos baserock:morphs and baserock:foo/bar, the repositories
would be cloned into the directories
$workspace/$branch/baserock:morphs
and
$workspace/$branch/baserock:foo/bar.
For repos specified using full URLs, the scheme and .git suffix (if
present) are stripped off. The above ssh example would be cloned into
the following directory:
$workspace/$branch/gitano@git.baserock.org/baserock/morphs
This commit also adjusts all affected tests and adds a new test to
verify that checking out from full repo URLs works as expected.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Mine may be a nice metaphor but it is not very intuitive. Hence, this
commit renames "mine" to "workspace". This affects not just the branch
and merge plugin (the only code that changes) but also documentation
and tests, which are updated along with the code in this commit.
I decided to omit the "dir" suffix in the command because I think
people know well that a workspace will be a directory in this case
and that allows us to refer to this concept with one word ("workspace")
instead of two words ("workspace directory").
|
| |
| |
| |
| |
| |
| |
| |
| | |
This removes the requirement that all strata must be in the same
repo as the system morphology.
Both the system "strata" field and the stratum "build-depends" field
are affected.
|
|/
|
|
| |
Rename "sources" field of stratum morphologies to "chunks".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This test checks if the same morphology json is generated during
petrification.
Because commits include the author and date, the sha1 sum will
differ if a different user commits at a different time.
This can be overridden by the environment variables
GIT_{AUTHOR,COMMITTER}_{NAME,EMAIL,DATE}.
The date chosen was just something recent at the time the work was
done, since a too-early timestamp is rejected by git as invalid.
|
| |
|
| |
|
|
|
|
|
|
|
| |
This will make a build fail if the morphology is missing explicit
build dependencies.
Also fix test causes so that ./check passes.
|
|
|
|
|
|
|
|
| |
Also, some bug fixes.
Also, when handling a BaseException, log the exception (with traceback)
that we're handling, in case there is an error while handling it, because
the second error will otherwise mask the first one.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Checking out another branch exposed a bunch of bugs.
|
| |
|
| |
|
|
|