| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
This also removes the long-obsolete code to install staging fillers
in the staging area. We've not allowed users to do that for ages now.
|
| |
|
| |
|
|
|
|
|
|
| |
We now only support one system-kind, so there's no need for the
factory stuff, and at this point it only serves to obfuscate
and complexify.
|
|
|
|
|
|
|
|
| |
I find the loop easier to read since there's less redundancy.
Also less code to maintain.
Note that tmpdir is not explicitly created, since makedirs of one
of its subdirectories will handle that.
|
|
|
|
|
|
| |
I put my directory creation logic there, since it's an unintended
side-effect to create the directories if all you want to do is
dump the config.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
git://git.baserock.org/baserock/baserock/morph
I had fixed an conflict and change to use morph_tmp instead of
morph as default temp dir.
Reviewed by Lars Wirzenius
Conflicts:
morphlib/app.py
|
| |
| |
| |
| |
| |
| | |
Now, inside the temporary directory we will have the following
subdirectories: chunks, staging, failed and deployments. The failed
directory will contain the staging areas of failed builds.
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
| |
This has been a thorn in my side for many a deployment.
A nascent cache directory will cause the size checks to fail.
We could get complicated and try the parent directories, or create
the directories in the size check, but the former is not worth the
complication and the latter is the wrong place to put it, so do it
during process_args, so the directories exist before subcommands
are run, so they don't have to bother with it themselves.
|
|\
| |
| |
| |
| |
| |
| | |
Reviewed-by: Richard Maw
I, Lars, note that we have an old version of CoverageTestRunner
in Baserock. The new version hides the spurious logging messages.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It is almost never a good idea to catch all exceptions, and then do
nothing about them. This patch logs all caught exceptions so that the
user has some possibilty to debug what is happening.
Also, make ./check check for bare excepts and fail the test suite if it
finds anything.
|
| | |
|
|\ \
| |/
|/|
| | |
Changed Paul's patch so that --trove-prefix still works as an alias.
|
|/ |
|
|
|
|
|
|
|
| |
If there is no staging-filler setting in a configuration file,
it defaults to the empty string, not None.
Reviewed-by: Jonathan Maw over the shoulder
|
|
|
|
|
| |
The 'master' branch of baserock:baserock/morphs no longer requires
a staging filler.
|
|
|
|
|
|
|
|
|
| |
Morph no longer supports setting the prefix using the --prefix
argument / setting. This was only used in tests and during bootstrap.
If a chunk build-depends on a chunk within a stratum which has
a custom prefix, that prefix is appended to the PATH in the build
environment.
|
|
|
|
|
|
| |
In the future we will allow this to be modified to provide a
cross-bootstrap mode, but for now we use the same target as
the host compiler.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
Added function log_dict_diff to identify and record changes in dicts
to the debug log
This new function was then implemented in app.py to log changes in the
environment
|
| |
|
|
|
|
|
|
| |
This adds a [Build 1/12765] to the output of the building of each
artifact. This makes it easier to see how much work there might
still be remaining.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Current versions of build-essential in the Baserock morphologies
don't contain distcc, but Morph tries to use distcc anyway. Since
useful operation of distcc requires setting up a distcc network,
there's no reason for it to be on by default.
This change fixes bootstrap, and means that users of the
build-essential staging filler no longer have to set no-distcc=true
manually.
In the future, cliapp will grow automatic boolean negation, which
will allow us to turn this setting into a 'distcc' setting that
defaults to false rather than the current rather ugly double negative.
|
|
|
|
| |
Reviewed-by: Lars Wirzenius <lars.wirzenius@codethink.co.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is set up so that each individual project repository has its own
ccache, all under one defined directory.
The top-level ccache directory is added as the setting
'compiler-cache-dir', and defaults to $cachedir/ccache.
When a build is performed, this will bind-mount a project's ccache into
the /tmp/ccache of the staging-area and set up the environment variables
so that ccache will be used (if appropriate executables are installed
to /usr/lib/ccache in the staging-area).
In addition, this removes code for ccache-remotedir, as it is unrelated
to this implementation of ccache.
Reviewed-by: Jannis Pohlmann <jannis.pohlmann@codethink.co.uk>
Reviewed-by: Lars Wirzenius <lars.wirzenius@codethink.co.uk>
|
|
|
|
|
|
|
| |
This cuts down on the number of HTTP requests made while computing th
build order (> create source pool > traverse morphs). In an example
system I was building this patch reduced the requests from 501 to 195,
reducing the time to building the first chunk from 123s to 18s.
|
|
|
|
|
| |
This is for users who prefer the old behaviour of building from the
remote repos.
|
|
|
|
|
|
|
|
| |
It would be nice to put every option in a group, but for now the built-in
cliapp options cannot be grouped so the output is less than ideal.
Also, we have no way of setting an order for groups, which results in e.g.
'Advanced Options' preceeding 'General Options' etc.
|
| |
|
|
|
|
|
|
|
|
| |
Also remove the '--ignore-submodules' option, which is redundant.
Hopefully cliapp will one day support option grouping, so we can
hide some sets by default and group eg. all the logging options
together.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were having trouble with NTP setting the system time to be correct
after .pyc files had already been created. The .pyc files got created
at startup, before NTP had had a chance to run. This sometimes resulted
in .pyc timestamps being wildly wrong and far in the future or past,
and that would prevent morph from ever working again on the machine.
We now just check that the system time is not far in the past. This
is enough to make sure we don't create timestamps that break tar.
Reviewed-By: Daniel Silverstone (on irc)
|
| |
|
| |
|
|
|
|
|
|
|
| |
This simply increases the verbosity of the operations which
are done against the remote artifact cache. It should result in some
progress messages if you build with --verbose set and you're mostly
getting stuff from your remote artifact cache (Trove).
|
|
|
|
|
|
|
| |
This makes a non-backward-compatible change to morph which switches it to using
tarballs instead of bundles when initialising cached git repositories. This is
faster because it doesn't require index-pack --fix-thin operations on the
machine running morph.
|
|
|
|
|
|
|
| |
This causes bundle-server and cache-server to be defaulted to
appropriate Trove related URLs unless overridden in the configs.
Reviewed-By: Lars Wirzenius <lars.wirzenius@codethink.co.uk>
|
|\ |
|
| | |
|
| |
| |
| |
| | |
If it's in the future this may cause problems, so exit with an error
|
|/ |
|
|\
| |
| |
| | |
git://roadtrain.codethink.co.uk/baserock/morph
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This gives us consistency with morphologies, where the triplets are
repo|ref|morphology, not repo|ref|filename
Anyone who runs 'morph build baserock:morphs master system.morph' will
now see an error ending with 'was looking for system.morph.morph', which
should make it clear where they have gone wrong.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This adds a way to cause the processed configuration to be dumped out. We do
this in the overridden process_args method so that the configuration dumped has
had all the processing done on it which is necessary.
The test then uses this functionality to ensure that the repo-alias setting has
been correctly updated with the Trove-hosted prefixes.
|
|/
|
|
|
|
|
|
|
|
|
| |
Trove has a fixed structure for repositories and prefixes. By taking advantage
of this, we can simplify the repo-alias configuration in morph somewhat and
thus make it easier for others to add their own aliases and prefixes later,
without worrying that they'll miss out on default ones created by the Baserock
team.
We override process_args in the application class to achieve this because
cliapp's setup() hook is not quite right for our purposes.
|
|
|
|
|
|
|
| |
This is needed to create temporary build refs and push them to the
repository server. We want this to be configurable to make things
more flexible with regards to different repository server
configurations.
|
|
|
|
| |
Adjust all other parts and the tests to work with this.
|