From 52e2b4aa1463e0247b6d1ef1653bbacc5dc0e02c Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Wed, 22 Jan 2014 13:39:34 +0000 Subject: yarns: Move system artifact inclusion implementation 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. --- yarns/implementations.yarn | 12 ++++++++++++ yarns/splitting.yarn | 17 ++--------------- 2 files changed, 14 insertions(+), 15 deletions(-) (limited to 'yarns') diff --git a/yarns/implementations.yarn b/yarns/implementations.yarn index 89f30c3e..7e9b7275 100644 --- a/yarns/implementations.yarn +++ b/yarns/implementations.yarn @@ -797,3 +797,15 @@ Implementations for tarball inspection IMPLEMENTS THEN tarball (\S+) doesn't contain (.*) ! tar -tf "$DATADIR/$MATCH_1" | grep -Fe "$MATCH_2" + +Implementations for morphology manipulation +========================================== + +Altering morphologies in their source repositories +-------------------------------------------------- + + IMPLEMENTS GIVEN system (\S+) uses (.+) from (\S+) + "$SRCDIR/scripts/edit-morph" set-system-artifact-depends \ + "$DATADIR/gits/morphs/$MATCH_1.morph" "$MATCH_3" "$MATCH_2" + run_in "$DATADIR/gits/morphs" git add "$MATCH_1.morph" + run_in "$DATADIR/gits/morphs" git commit -m "Make $MATCH_1 only use $MATCH_2" diff --git a/yarns/splitting.yarn b/yarns/splitting.yarn index e55d5ed0..40da5fb4 100644 --- a/yarns/splitting.yarn +++ b/yarns/splitting.yarn @@ -40,7 +40,7 @@ libraries. The only change we need to make is to add a field to the system morphology to select which artifact to use in the system. - AND system test-system only uses test-stratum-runtime from test-stratum + AND system test-system uses test-stratum-runtime from test-stratum WHEN the user checks out the system branch called master The best way to test that only using some stratum artifacts works is @@ -75,7 +75,7 @@ so we know that if the system successfully builds, then we only built chunks that were needed. AND stratum test-stratum has chunks that aren't used in test-stratum-minimal - AND system test-system only uses test-stratum-minimal from test-stratum + AND system test-system uses test-stratum-minimal from test-stratum WHEN the user checks out the system branch called master THEN morph build the system test-system of the branch master @@ -168,19 +168,6 @@ Implementations run_in "$DATADIR/gits/morphs" git add "$MATCH_1.morph" run_in "$DATADIR/gits/morphs" git commit -m 'Add default splitting rules' - IMPLEMENTS GIVEN system (\S+) only uses (\S+) from (\S+) - python -c 'import sys, yaml - with open(sys.argv[1], "r") as f: - d = yaml.load(f) - for spec in d["strata"]: - if spec["name"] == sys.argv[3]: - spec["artifacts"] = [sys.argv[2]] - with open(sys.argv[1], "w") as f: - yaml.dump(d, f) - ' "$DATADIR/gits/morphs/$MATCH_1.morph" "$MATCH_2" "$MATCH_3" - run_in "$DATADIR/gits/morphs" git add "$MATCH_1.morph" - run_in "$DATADIR/gits/morphs" git commit -m "Make $MATCH_1 only use $MATCH_2" - IMPLEMENTS GIVEN stratum (\S+) has chunks that aren't used in (\1-\S+) # Create an extra chunk that will never successfully build cat >"$DATADIR/gits/test-chunk/unbuildable-chunk.morph" <