| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
It is entirely possible that we could accidentally give chunks that use
morphologies from the definitions repository, the definitions repository
to build from, rather than the source repository.
|
| |
|
|
|
|
|
|
| |
We don't use this in definitions.git, and we're going to change its
semantics, so the test suite would break until we introduced the new
semantics, unless we remove its use of the old semantics first.
|
|
|
|
|
|
| |
This is required to ensure the right version of morph is used. I have
a .bashrc that causes `morph` to be "$HOME/morph/morph", so it fails to
find morph, because HOME is set to a directory inside DATADIR.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We want to move our morphologies in our definitions repository into
subdirectories, so they're more organised.
We'd prefer to only refer to morphologies by file path, rather than a
name that loosely corresponds to the file path, but we need to support
that for backwards compatibility until we can move all of our
morphologies into the definitions repository.
However, since we want to eventually remove this, and we want to ensure
that file paths work, we change the yarn tests to use file paths.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`morph merge` only worked for a small subset of cases, and has been left
to bit-rot, since we don't use it.
`morph tag` is just a `git tag` when we have petrified definitions
repository. We don't use it, nor do we need it, so it can go away rather
than take up valuable development time fixing it when requirements
change.
`old-foo` have all been superceded by newer versions and are no-longer
used.
|
|
|
|
|
|
|
| |
This was the wrong response to the problem of accidentally checking-out
morph when trying to check out morphs. Now that it's called definitions,
this is irrelevent, and aborting a checkout when this check fails is the
wrong thing to do.
|
| |
|
|\
| |
| |
| | |
Reviewed-by: Sam Thursfield and Richard Ipsum
|
| | |
|
|/ |
|
|
|
|
| |
Older versions of btrfs fail with just 10M.
|
|
|
|
|
|
|
|
|
| |
This reverts commit f366960273b026322f7e7cc3c1eb0cd632ebc73e.
These changes break building on x86_64, which is our main development
platform.
Better patches will be forthcoming later.
|
|
|
|
|
|
|
|
| |
uname will return the same string morph expects as an architecture on
x86_64, but the canonical x86_32 architecture names match i?86 instead.
To make it work on 32-bit, we replace calls to uname with morph
print-architecture, which does the translation for us.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
These are _directory_ names, not chunk repo URLs, so a slash is correct
now.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We carefully _add_ to PYTHONPATH in ./check, if it was set by the user.
However, yarn cleans the environment when it runs tests, so we tell it
to add PYTHONPATH from ./check to the test environment.
Additionally, we change yarns/morph.shell-lib so it doesn't override
PYTHONPATH, but adds to it.
All of this is necessary to get morph, when run by yarn steps, to have
the right PYTHONPATH, which can be (and currently is) to allow the user
to specify un-installed versions of dependencies, such as cliapp.
|
|
|
|
|
| |
Yarn in Baserock now sets SRCDIR, so it is not necessary for us to set
it anymore.
|
|
|
|
|
|
|
|
| |
As we are running Morph from the source dir we need to set PYTHONPATH so
that extensions are correctly loaded.
Also, the version of Yarn in Baserock sets 'SRCDIR' so we do not need to
set a default any more.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
'origin/baserock/richardmaw/10312/ensure-not-add-repo-ref'
This includes a typo fix of Unpertify -> Unpetrify
Reviewed-by: Lars Wirzenius
|
| | |
|
|/
|
|
|
|
|
|
| |
It should no longer be possible to set these fields. Either we create
the morphologies with them in a GIVEN, at which point we already know
it's there, so checking whether it is there is pointless; or we check
that morph doesn't create them, but the current implementation would not
allow it, since yarn doesn't have THEN NOT.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This now means that the system morphology is not altered when chunks are
altered, so some tests had to change.
Since this uses the python warnings API, these warnings can be ignored
by running
python -W ignore:"stratum morphology" \
-W ignore:"system morphology" \
"$(which morph)" ...`
or turned into errors with
python -W error:"stratum morphology" \
-W error:"system morphology" \
"$(which morph)" ...`
|
|
|
|
|
| |
Refs should be completely omitted, and this is now the standard
behaviour, so there's little value in testing the behaviour separately.
|
| |
|
| |
|
|
|
|
|
|
| |
This moves the GIVEN system $system uses $artifacts from $source to the
generic implements section, and the Python implementation into the
edit-morph helper script.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's an unintended, but possibly not unwelcome feature, that if you have
a system that includes stratum artifacts that don't require building the
whole stratum, that those chunks are not built.
It's debatable whether the confusion of being able to have chunks
defined that aren't built outweighs reduced build-times, indeed the test
works by having a chunk that can never successfully build, which shows
that one pitfall is the possibility of not noticing some chunks fail to
build.
However, whether it's a good thing or not, we should document this
behaviour with a test, so that we don't accidentally break behaviour
that someone depends on.
|
| |
|
|
|
|
|
|
|
| |
This includes tests for systems with the default splits and a system
that selects only one of the produced stratum artifacts to go into the
system artifact, since this is roughly the expected use-case for the
tiny system morphologies.
|
| |
|
|
|
|
|
|
|
| |
It's useful for the splitting tests that will be implemented later, for
there to be files that are representative of the files that would be on
a common root filesystem, so the match rules can be tested by the right
chunk artifacts containing the right files.
|
|
|
|
|
| |
morph build the system... doesn't need the repository to be specified,
just the branch; morph is able to work it out for itself.
|
| |
|
|
|
|
|
| |
The new build code uses `git update-index --add`, which means it can use
morphologies that haven't previously been added.
|
|
|
|
|
|
| |
It doesn't make sense to be able to specify an architecture from the
IMPLEMENTS name, since you either need your architecture for something
to build, or testarch for something that consistently doesn't build.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bootstrap chunks don't make it into the final system, so there needs to
be an extra check for empty systems after the sources have been collected.
This was complicated slightly by the fact that if you try to build a chunk
directly you will have no strata in your sources, hence no non-bootstrap
chunks, but validation for having been told to build a chunk is best
handled later.
This amends the old yarns that depended on building a bootstrap chunk
and adds a new one that explicitly builds a system with bootstrap
chunks.
|
|
|
|
|
|
|
|
|
|
| |
It doesn't currently make sense to build a system which contains no
strata. We may later add other fields, such as initramfs to contribute
to the system's artifact, but until then it's another bug to trip over.
This uses collections.Sequence for checking the type of the systems entry
in the morphology as a style choice, though it allows more flexibility
if the types in the parsed morphology change.
|
|
|
|
|
| |
Set -e meant that the stderr could never be re-output, catching the
return code and re-outputting was not sufficient.
|
|
|
|
|
| |
Saving the result is useful for the tests, but diagnostics of failures
are quicker if the result is printed to the terminal as well.
|
| |
|
|
|
|
| |
argument
|
| |
|
| |
|
| |
|