| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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".
|
|
|
|
|
|
|
| |
Sanitise the git repo aliases to use git.baserock.org instead of the
old roadtrain.codethink.co.uk hostname.
This will cause a re-fetch of gits, unless you fix up your cache first
|
|
|
|
|
| |
It's such a small amount of code, it's possibly not worth it,
but now all commands are in plugins.
|
|
|
|
|
|
|
|
| |
morphlib.app should be for application bringup and providing
command line options used by the library code.
Any external plugins that refer to morphlib.app.BuildCommand
will need fixing.
|
|
|
|
|
| |
Some miscellaneous cleanup of functions was done, so new apis like
savefile and status are used.
|
|
|
|
|
|
|
| |
resolve_reponame is now duplicated since other functions use it.
cmd_edit uses everything, so they can be removed from morphlib.app
when it is moved to a plugin.
|
|
|
|
|
| |
This does not require any other function movements, due to its
simple implementation.
|
|
|
|
|
| |
deduce_system_branch is now duplicated because other commands
not yet moved require it.
|
|
|
|
|
| |
clone_to_directory is currently duplicated because other commands
not yet moved require it.
|
|
|
|
|
| |
deduce_mine_directory is duplicated in the plugin and morphlib.app
until all the commands are moved into the plugin.
|
|
|
|
|
|
|
|
| |
The plugin is called trebuchet, so that if any other functionality
is required from morph it has a place to go.
make-patch generates a trebuchet patch, so it should go in the
trebuchet plugin.
|
|
|
|
|
|
|
|
|
|
|
| |
Code for creating caches is repeated through the codebase because
there wasn't a useful function for creating caches.
Now the functions in BuildCommand have been moved into morphlib.util,
where they will be more usefully reachable.
Stubs have been left in BuildCommand so they can be overridden by
subclasses of BuildCommand and not break external plugins.
|
|
|
|
| |
This also publicizes cache_repo_and_submodules and traverse_morphs
|
|
|
|
|
|
|
|
|
| |
itertriplets and create_source_pool are more convenient than doing it
manually, and since they need to be used by plugins, they shouldn't be
private.
The private name is kept as an alias so that external plugins that were
poking at the internals for convenience aren't broken.
|
| |
|
|
|
|
|
|
|
|
|
| |
This was done with the aid of the pep8 script, available by running
`easy_install pep8`.
It may be worth making this part of ./check, but that will require
putting pep8 into the development tools stratum.
This should be easy, given pep8 has no external dependencies.
|
|
|
|
| |
The old stuff was trying to use an uninitialized local variable.
|
| |
|
|\
| |
| |
| |
| | |
Reviewed-By: Richard Maw
Reviewed-By: Lars Wirzenius
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
Plugins which don't need configuring should install themselves into
morphlib/plugins, this can be done as part of distutils by
import morphlib
plugin_dir = os.path.join(os.path.dirname(morphlib.__file__), 'plugins')
from distutils.core import setup
setup(data_files=[(plugin_dir, plugins)])
|
| |
|
|\
| |
| |
| | |
'remotes/origin/baserock/bugfix/S3595-morph-updates-gits-too-often-rebase'
|
| |
| |
| |
| |
| |
| | |
The repositories may have been updated during the process of calculating
the cache keys, so check whether the locally cached repository already
has the commit before attempting to update it.
|
|/ |
|
|
|
|
|
|
| |
We don't use the contents of the staging area during a stratum artifact
build, so there's no pointin putting in the staging filler and
build dependencies there.
|
|
|
|
|
|
|
|
|
|
| |
I think morphologies should be verified closer to where they are
created, not when they are traversed, since this verification would
be useful in more code paths.
This is in morphologyfactory, rather than Morphology itself, since
it may be useful to be able to create morphologies without checking,
such as in unit tests.
|