summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Do not fail if a chunk doesnt have a 'build-depends' parameter definedjjardon/no_build_dependsJavier Jardón2015-03-042-20/+10
| | |
| * | morphlib/morphloader_tests.py: Remove test to require 'build-depends'Javier Jardón2015-03-041-21/+1
| | |
| * | morphlib/sourceresolver_tests.py: Remove test to require 'build-depends'Javier Jardón2015-03-041-14/+0
| | |
| * | morphlib/sourceresolver.py: Check and parse VERSION fileJavier Jardón2015-03-041-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only fail if: - VERSION file exists - and its a yaml file - and its a dict - and has the key 'version' - and the contents of the key 'version' is an int - and that int is in the list of non_supported_versions (empty at the moment)
| * | morphlib/sourceresolver.py: Remove not used functionsJavier Jardón2015-03-041-16/+0
| | | | | | | | | | | | _get_morphology_from_definitions() and _get_morphology_from_repo()
| * | morphlib/sourceresolver.py: Do not duplicate what is already done in ↵Javier Jardón2015-03-041-8/+3
| | | | | | | | | | | | load_from_string()
| * | morphlib/morphloader.py: Add a check to load_from_string()Javier Jardón2015-03-041-1/+5
| | |
| * | morphlib/morphloader.py: Update copyrigthJavier Jardón2015-03-041-1/+1
| | |
| * | morphlib/sourceresolver.py: Add _get_file_contents()Javier Jardón2015-03-041-12/+23
| | | | | | | | | | | | And make _get_morphology() use it
| * | morphlib/sourceresolver.py: Add _get_file_contents_from_definitions()Javier Jardón2015-03-041-1/+10
| | | | | | | | | | | | And make _get_morphology_from_definitions() use it
| * | morphlib/sourceresolver.py: Add _get_file_contents_from_repo()Javier Jardón2015-03-041-5/+11
| | | | | | | | | | | | And make _get_morphology_from_repo() use it
| * | Add check for virtual networksRichard Ipsum2015-03-041-0/+48
| | | | | | | | | | | | An exception will be raised if any needed networks are not started
| * | Check file can be created at locationRichard Ipsum2015-03-041-1/+22
| | |
| * | distbuild: Be more robust when a worker disconnectsSam Thursfield2015-03-041-8/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | The logic to handle a worker disconnecting was broken. The WorkerConnection object would remove itself from the main loop as soon as the worker disconnected. But it would not get removed from the list of available workers that the WorkerBuildQueue maintains. So the controller would continue sending messages to this dead connection, and the builds it sent would hang forever for a response.
| * | Only update Git submodules in cache when necessarySam Thursfield2015-03-043-66/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This saves a duplicate `git remote update origin` that was being run as part of each chunk build. For any repos that have submodules, it also avoids updating repos if the SHA1 we need to build is already present locally. As well as speeding up builds slightly, this means Morph can now build without being connected to a network, as long as the local Git cache all of the necessary repos and commits in the build, without needing the '--no-git-update' option. The code is also now in a more logical place than before.
| * | Fix copyright yearsSam Thursfield2015-03-041-1/+1
| | |
* | | Merge remote-tracking branch 'petefoth/pf_copyright_in_help'Sam Thursfield2015-03-059-1/+127
|\ \ \ | | | | | | | | | | | | | | | | | | | | Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk> Reviewed-By: Javier Jardón <javier.jardon@codethink.co.uk> Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
| * | | Add copyright headers to write.help and configure.help filesPete Fotheringham2015-03-059-1/+127
| | | |
* | | | Merge branch 'jjardon/versioning_support'Javier Jardón2015-03-042-31/+65
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | Reviewed-By: Paul Sherwood <paul.sherwood@codethink.co.uk> Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk> Reviewed-By: Richard Maw <richard.maw@gmail.com>
| * | | | morphlib/sourceresolver.py: Check and parse VERSION filejjardon/versioning_supportJavier Jardón2015-03-031-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only fail if: - VERSION file exists - and its a yaml file - and its a dict - and has the key 'version' - and the contents of the key 'version' is an int - and that int is in the list of non_supported_versions (empty at the moment)
| * | | | morphlib/sourceresolver.py: Remove not used functionsJavier Jardón2015-02-271-16/+0
| | | | | | | | | | | | | | | | | | | | _get_morphology_from_definitions() and _get_morphology_from_repo()
| * | | | morphlib/sourceresolver.py: Do not duplicate what is already done in ↵Javier Jardón2015-02-271-8/+3
| | | | | | | | | | | | | | | | | | | | load_from_string()
| * | | | morphlib/morphloader.py: Add a check to load_from_string()Javier Jardón2015-02-271-1/+5
| | | | |
| * | | | morphlib/morphloader.py: Update copyrigthJavier Jardón2015-02-271-1/+1
| | | | |
| * | | | morphlib/sourceresolver.py: Add _get_file_contents()Javier Jardón2015-02-271-12/+23
| | | | | | | | | | | | | | | | | | | | And make _get_morphology() use it
| * | | | morphlib/sourceresolver.py: Add _get_file_contents_from_definitions()Javier Jardón2015-02-271-1/+10
| | | | | | | | | | | | | | | | | | | | And make _get_morphology_from_definitions() use it
| * | | | morphlib/sourceresolver.py: Add _get_file_contents_from_repo()Javier Jardón2015-02-271-5/+11
| | | | | | | | | | | | | | | | | | | | And make _get_morphology_from_repo() use it
* | | | | Merge remote-tracking branch 'origin/baserock/richardipsum/kvm-ext-more-checks'Richard Maw2015-03-041-1/+70
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | Reviewed-by: Pedro Alvarez Reviewed-by: Francisco Redondo Marchena Reviewed-by: Richard Maw
| * | | | Add check for virtual networksRichard Ipsum2015-01-291-0/+48
| | | | | | | | | | | | | | | | | | | | An exception will be raised if any needed networks are not started
| * | | | Check file can be created at locationRichard Ipsum2015-01-291-1/+22
| | | | |
* | | | | Merge branch 'sam/distbuild-worker-disconnect'Sam Thursfield2015-03-031-8/+35
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reviewed-By: Richard Maw <richard.maw@codethink.co.uk> Reviewed-By: Francisco Redondo Marchena <francisco.marchena@codethink.co.uk> Reviewed-By: Mike Smith <mike.smith@codethink.co.uk>
| * | | | | distbuild: Be more robust when a worker disconnectsSam Thursfield2015-02-031-8/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The logic to handle a worker disconnecting was broken. The WorkerConnection object would remove itself from the main loop as soon as the worker disconnected. But it would not get removed from the list of available workers that the WorkerBuildQueue maintains. So the controller would continue sending messages to this dead connection, and the builds it sent would hang forever for a response.
* | | | | | Merge branch 'sam/fewer-submodule-updates'Sam Thursfield2015-03-033-66/+65
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | | | | | | | | | | | | | Reviewed-By: Javier Jardón <javier.jardon@codethink.co.uk> Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>
| * | | | | Only update Git submodules in cache when necessarySam Thursfield2015-02-103-67/+66
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This saves a duplicate `git remote update origin` that was being run as part of each chunk build. For any repos that have submodules, it also avoids updating repos if the SHA1 we need to build is already present locally. As well as speeding up builds slightly, this means Morph can now build without being connected to a network, as long as the local Git cache all of the necessary repos and commits in the build, without needing the '--no-git-update' option. The code is also now in a more logical place than before.
* | | | | Fix copyright yearsSam Thursfield2015-02-271-1/+1
| | | | |
* | | | | Merge remote-tracking branch 'origin/sam/disable-new-btrfs-features'Sam Thursfield2015-02-271-1/+25
|\ \ \ \ \ | | |_|/ / | |/| | | | | | | | | | | | | Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk> Reviewed-By: Zara Zaimeche <zara.zaimeche@codethink.co.uk>
| * | | | Fix Morph producing unbootable systemsSam Thursfield2015-02-261-1/+25
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the version of btrfs-progs in the Baserock reference system definitions was updated to v3.18.2, Morph has produced unbootable x86 systems. This is down to lack of support for new Btrfs features in SYSLINUX. This patch disables the new features so that deployed systems will boot. Although I generally don't want to have compatibility code in Morph, this patch keeps support for the old mkfs.btrfs (which doesn't support the commandline options that we need to pass to new mkfs.btrfs). This will hopefully save people from suffering 'I need to use new Morph to upgrade my devel system, but new Morph doesn't run on my devel system'.
* | | | Merge branch 'sam/sourceresolver-fixes'Sam Thursfield2015-02-254-87/+138
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Reviewed-By: Paul Martin <paul.martin@codethink.co.uk> Reviewed-By: Francisco Redondo Marchena <francisco.marchena@codethink.co.uk>
| * | | | sourceresolver: Never assume that a given ref is present locallySam Thursfield2015-02-201-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Checking that a given ref exists using `git rev-parse --verify 1234^{commit}` is a reasonably quick operation. As a rough guide, 1000 invocations took 1.6 seconds on my PC. The code is too fragile and hard to reason about if we assume that one function has been called before another so the repo will already be up to date. This should fix any spurious InvalidRefError exceptions that the build graph speedups branch has introduced.
| * | | | sourceresolver: Factor out 'cache repo locally' code into a functionSam Thursfield2015-02-204-31/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, move the repo.update() call into the 'fetch from tarball' code path in the localrepocache module -- there's no need to update straight after doing a `git clone`, but we do need to do one if we got the repo from a `git archive` tarball that may be out of date.
| * | | | sourceresolver: Simplify some code pathsSam Thursfield2015-02-202-36/+40
| | | | | | | | | | | | | | | | | | | | | | | | | It turns out that always looking for the chunk morph in the definitions repo allows us to make the code a little less nasty. Bonus!
| * | | | sourceresolver: Fix InvalidRefError when local git cache is out of dateSam Thursfield2015-02-201-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code in sourceresolver.py assumed that resolve_ref() would be called for the chunk repo before get_morphology() was called, so the repo would always be up to date. This wasn't actually true. If your local repo cache was out of date, you might see the following sort of error: InvalidRefError: Git directory /src/cache/gits/git___git_baserock_org_delta_usbutils has no commit at ref c37f146eb2c6642c600f1b025a6d56996b0697ff^{tree}.
| * | | | sourceresolver: Always try to read chunk morph files from definitionsSam Thursfield2015-02-201-29/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the 'Morph ignores the chunk morph file I added to definitions' regression introduced in the recent build-graph speedups branch. The new 'detected-chunk-buildsystems' cache associates a (chunk repo, chunk ref) pair with the auto-detected build system. When calculating the build graph, if the is an auto-detected build system known already, that will be used instead of looking for a chunk morphology. There's a flaw here: if the user added or changed the chunk morphology in the definitions repo, the *chunk* ref won't necessarily have changed -- so Morph will ignore the user's changes, if it had already cached an autodetected buildsystem for that repo/ref pair. This doesn't cost much in terms of speed because we're just reading a file from disk. We can still avoid looking in the chunk repo for a chunk morph, because the chunk ref would be different if something had changed in the chunk repo.
| * | | | sourceresolver: Fix LsTreeError raised when constructing build graphSam Thursfield2015-02-202-9/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you had a repo that was not in your local or remote cache in your definitions, Morph might raise LsTreeError and abort. The code was assuming the repo would already be cached in the local cache by the time it got to detecting build systems, but that's not always true -- if the (reponame, ref) pair was already in the 'resolved_trees' cache but the repo had been deleted from the local Git cache, to name one possibility. Also, the remoterepocache.ls_tree operation can fail if the repo is not hosted in the Trove, so we shouldn't abort the program in that case. Finally, this patch removes an unused variable.
* | | | | Merge remote-tracking branch 'lauren/baserock/lauren/morph-versioning'Sam Thursfield2015-02-253-3/+24
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | Reviewed-By: Richard Maw <richard.maw@codethink.co.uk> Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
| * | | | Add protocol versioning for distbuild systemsLauren Perry2015-02-253-3/+24
|/ / / /
* | | | Merge remote-tracking branch ↵Sam Thursfield2015-02-202-13/+22
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'lauren/baserock/lauren/distbuild-invalid-input-crash' Reviewed-By: Richard Maw <richard.maw@codethink.co.uk> Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
| * | | | Update copyright yearsLauren Perry2015-02-092-2/+2
| | | | |
| * | | | Fix distbuild controller crashing on some invalid inputsLauren Perry2015-02-092-11/+20
| | | | |
* | | | | Merge branch 'baserock/adamcoldrick/build-graph-speedups-v2'Adam Coldrick2015-02-1818-245/+570
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | | | | | | Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk> Reviewed-By: Richard Ipsum <richard.ipsum@codethink.co.uk>