summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* migrations/008: Make it work for chunks whose ref is not a commit SHA1HEADmasterSam Thursfield2016-04-111-6/+45
| | | | | | Reported here: <https://storyboard.baserock.org/#!/story/93> Change-Id: I08aa2f2f205f805661dfd2043eb100baaf2eb72b
* migrations/008: Fix some PyLint warningsSam Thursfield2016-04-111-9/+6
| | | | | | | Fixes unused imports, unused variables, whitespace errors, and lines > 79 chars. Change-Id: Ib663a651de3999d3219c73de714ef064d936ae55
* Merge "Add .gitreview file"Pedro Alvarez2016-04-100-0/+0
|\
| * Add .gitreview fileSam Thursfield2016-04-101-0/+5
| | | | | | | | | | | | | | Useful when you clone the repo on a new machine and want to use git-review Change-Id: Ie2ebc923156bbe74061df29f28e632ca5d461d11
* | Merge "migrations: Fix version 7 looking for its data file"Pedro Alvarez2016-04-101-2/+2
|\ \
| * | migrations: Fix version 7 looking for its data fileSam Thursfield2016-04-101-2/+2
| | | | | | | | | | | | | | | | | | | | | This broke when I moved the migrations out of definitions.git, and I should have just implemented it like this in the first place. Change-Id: I0096f4410d6475e7f57fd2f04fbfb0e61062b435
* | | Merge "migrations: Fix version 6 migration when build system isn't detected"Pedro Alvarez2016-04-101-2/+5
|\ \ \ | |/ /
| * | migrations: Fix version 6 migration when build system isn't detectedSam Thursfield2016-04-101-2/+5
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Turns this... ../spec/migrations/006-specify-build-system.py: Traceback (most recent call last): File "../spec/migrations/006-specify-build-system.py", line 340, in <module> modify_cb=ensure_buildsystem_defined_where_needed) File "/home/sam/baserock/spec/migrations/migrations.py", line 220, in process_definitions changed = modify_cb(contents, filename) File "../spec/migrations/006-specify-build-system.py", line 327, in ensure_buildsystem_defined_where_needed chunk_ref['build-system'] = build_system.name AttributeError: 'NoneType' object has no attribute 'name' Into this: ../spec/migrations/006-specify-build-system.py: WARNING: Couldn't work out the build system of chunk Module-Build-Tiny WARNING: Couldn't work out the build system of chunk Params-Validate Change-Id: I9bc5408e6550303023abb839a45e6562306e4702
* | Speed up migration 008Pedro Alvarez2016-03-271-10/+27
| | | | | | | | | | | | | | | | | | | | Given that the script already needs access to the Trove git.baserock.org, use it to read the .gitmodules files without cloning the repositories. Also, avoid creating a 'submodules' field when .gitmodules is empty. Change-Id: I7587587e35b5f52251503fe52af92114fbad4644
* | Document submodule spec changesDaniel Firth2016-03-221-1/+14
| | | | | | | | Change-Id: Icc0aba5072cb4dd656e88855cdf2cbbb51c7caf9
* | Raise some headings up by a levelSam Thursfield2016-03-011-17/+20
| | | | | | | | | | | | | | | | | | As well as making the spec more readable, 2nd-level (----) headings show up in the sidebar generated by 'mkdocs', and are internal page anchors that we can link to. This allows more linking to between different sections of the spec. Change-Id: I35d4cf5e86b01fde3195944875640669d18dbca8
* | Document the DEFAULTS file, and rewrite description of chunksSam Thursfield2016-03-011-87/+139
| | | | | | | | Change-Id: Ie4e693fe37252860110b4d5ff0b7d172c7dae415
* | Describe what chunks, systems & strata actually are, and link to schemasSam Thursfield2016-03-011-8/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The spec was trying to be technically precise about describing the structure of the .morph files. The JSON-Schema format is much better than prose for precisely describing structure of JSON/YAML documents, so we should link to the schemas. The text of the spec can then be rewritten a bit so it describes the intention and meaning of the different .morph files a bit more clearly. More rewriting would be useful. It's also unfortunate that we have go as far as 4th-level headings (####), reorganising a bit could fix that. Change-Id: Ic502db0b5723a46f72d9cf375df623ad89b4686d
* | Move deployment into a separate pageSam Thursfield2016-03-013-111/+123
| | | | | | | | | | | | | | | | | | | | | | Deployment is pretty unrelated to the definitions format, it's mostly about how to run programs in the extensions/ directory. So I think it makes sense to describe it in a separate page. This helps shorten the 'Definitions format' page, which is pretty long right now. Change-Id: I13684a3cc0bc8bdd7c9c043dd2a9ee2addac0d6a
* | Update description of how deployment worksSam Thursfield2016-03-011-33/+15
| | | | | | | | | | | | It's not Morph-specific any more. Change-Id: I0742c21de14f6bb660ad60dd3b37242fd3067711
* | Merge "Allow rendering the spec as a website"Pedro Alvarez2016-02-297-37/+99
|\ \
| * | Allow rendering the spec as a websiteSam Thursfield2016-02-297-37/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The website isn't too pretty so far (especially when Javascript is disabled), help welcome on that front. It should be usable though. You can install mkdocs and the mkdocs-material theme from PyPI, then run `mkdocs serve` to test changes locally. Change-Id: Iaa33f936310f6e126f50e095e0b924babbdd8540
* | | Add .gitreviewSam Thursfield2016-02-291-0/+5
|/ /
* | Allow upgrade-type + upgrade-location in cluster.json-schemaPaul Sherwood2016-02-281-1/+5
| | | | | | | | | | | | jetson-upgrade.morph, for example, has upgrade-type and upgrade-location Change-Id: I32b2e9d96e2a657b03114933b424396f2e345923
* | Add migration tool for definitions version 8. Allows for explicitlyDan Firth2016-02-262-0/+229
| | | | | | | | | | | | | | declared submodule url translation in chunks with known submodules. Updated schema to match Change-Id: I26d141940cf32810cd9045e9a3c4065e35f7c8a3
* | Add scripts/yaml-jsonschemaPaul Sherwood2016-02-211-0/+50
| |
* | Merge remote-tracking branch 'ssam/master'Paul Sherwood2016-02-215-0/+694
|\ \ | |/
| * Don't put schemas into versioned subdirectoriesSam Thursfield2016-02-206-0/+0
| | | | | | | | | | | | This makes sense for build tools that want to support multiple versions of the definitions format, but it doesn't make sense here. You can look in the Git history for previous versions.
| * Add a LICENSE file, anything is better than no license!Sam Thursfield2016-02-201-0/+45
| |
| * Add an initial READMESam Thursfield2016-02-201-0/+31
| |
| * Add Makefile to generate spec.html from spec.mdwnSam Thursfield2016-02-201-0/+7
| | | | | | | | | | There are various bits of ikiwiki Markdown in spec.mdwn currently, but it's a starting point.
| * Creation of Baserock definitions format specification repoSam Thursfield2016-02-2022-0/+2869
| | | | | | | | | | This contains: - textual description of the Baserock definitions format, and the list of changes since version 0, taken from: git://baserock.branchable.com/ - migrations and schemas taken from git://git.baserock.org/baserock/baserock/definitions.
* Move content to schemas directoryPaul Sherwood2016-02-217-0/+0
|
* Merge branch 'schemas' of ../definitionsPaul Sherwood2016-02-217-0/+836
|\
| * Add missing period to owl grammarRichard Dale2016-02-181-1/+1
| | | | | | | | Change-Id: I5679b7657dcc370feeae552bd1476504f7c4cf3f
| * Add schemas for Baserock definitions formatSam Thursfield2015-09-186-0/+770
| | | | | | | | | | | | See schemas/README.schemas for information. Change-Id: I6c384692dbf70017a3ece2ed56c1f8cbe60b493d
| * Add migration and schema for definitions version 7Sam Thursfield2015-08-251-0/+66
| | | | | | | | | Version 7 of the schema adds a new file called DEFAULTS. I thought the best way to describe the layout of this file was to add a JSON-Schema description of it, and I propose keeping the canonical version of it in this Git repository in the schemas/ subdirectory. Change-Id: I18b6b997ba4e9f34028b98ccf682bdf56e507cec
* Move content to migrations directoryPaul Sherwood2016-02-2113-0/+0
|
* migrations: 007 defaults, remove extra quotePedro Alvarez2015-10-151-1/+1
| | | Change-Id: I7a3b00759a7a4913b38bda2bb80dea876165cd24
* migrations/006: Report network errors more clearlySam Thursfield2015-09-281-5/+30
| | | | | | | | | | | | | | | | | | | | | | | This is a bit of an awkward migration because it tries to contact the remote cache server in order to do build system autodetection. Users who are using a Trove other than git.baserock.org will need to change the script to point to their Trove. So the error message should point them in that direction, but without obscuring the original error (which may due to network connectivity or soemthing else). Error output now looks like this: WARNING: Unexpected response from server http://git.baserock.org:8080/ for repo git://git.baserock.org/delta/libndp: 404 Client Error: Not Found Error: Unable to look up one or more repos on remote Git server git.baserock.org. If you are using a Trove that is not git.baserock.org, please edit the TROVE_HOST constant in this script and run it again. Before, you would get a backtrace from the simplejson module in this situation. Change-Id: I3f6b3fb46ff436b8490a687ab4bd4d32d857f2ff
* migrations/007-initial-defaults: Add bootstrap[.sh] check to autotoolsJavier Jardón2015-09-251-0/+2
| | | | Change-Id: I3585977e49e19a6ec26d30a725d2de936e15a228
* Fix issues in the initial DEFAULTS file and version 7 migration scriptSam Thursfield2015-09-222-184/+205
| | | | | | | | | | | | | | | | | | | | | | | | | | First, embedding it in the Python script was stupid as \ characters got mangled, it's now in a separate file. The strip commands were totally broken, causing certain builds to fail, which is fixed now. The default commands for the 'cpan' build system are now in line with those built into Morph. The 'autotools' commands have been tweaked too, so that now they produce identical cache keys to the defaults that are built into Morph (as of morph.git commit 07df32fbd57477e5808cdbace965edcd0a81348f). This means that moving to definitions format version 7 should not trigger any rebuilds of anything. Also, I added the 'module-build' build system (which was added to Morph in commit f6613fe1ee6d879192fd4e503cb632b0dcab1fe7), so that it can be used in the reference systems once they use definitions format version 7. The migration script will warn if the definitions are version 7 already but there is no DEFAULTS file, because that's unlikely to be deliberate. Change-Id: I0a739ef38f521530e0d86d7330d1bcecf0a5bb73
* Add migration and schema for definitions version 7Sam Thursfield2015-08-251-0/+243
| | | | | | | | | Version 7 of the schema adds a new file called DEFAULTS. I thought the best way to describe the layout of this file was to add a JSON-Schema description of it, and I propose keeping the canonical version of it in this Git repository in the schemas/ subdirectory. Change-Id: I18b6b997ba4e9f34028b98ccf682bdf56e507cec
* Set migrations/006-specify-build-system.py to be executableSam Thursfield2015-07-291-0/+0
| | | | This was an oversight in the previous commit.
* Add migration for definitions version 6Sam Thursfield2015-07-281-0/+329
| | | | Change-Id: I80ce9eee253b25689f9a360047dc9b3e9b1cb12a
* migrations: Don't run 'indent' as a migrationSam Thursfield2015-07-281-1/+2
|
* Add migration scripts for historical versions of the definitions formatSam Thursfield2015-07-2810-0/+801
See README for more information on how the migrations are intended work. These migrations are probably not widely useful, as our definitions have already been migrated manually. However, I want to come up with a good pattern for writing migration scripts, and actually doing it seems like the best way. There is a 'migrations/indent' tool, which reformats a set of definitions according to how the ruamel.yaml program writes them out. This tool is nice if you like everything to have consistent indent and line wrapping, and you can run it before running the migrations to ensure that the migrations don't do any reformatting when writing the .moprh files back to disk. The migration scripts require the ruamel.yaml Python library. I have sent a separate change to add this to the 'build' and 'devel' reference systems. Change-Id: Ibd62ba140d3f7e8e638beed6d714f671405bdc79