START saves every song every week (old one parked z/zz), logs SAVED/PARKED on the key; SONG KEYS no longer warns ONLY <key>; install.sh and the location kit ship ableton_start.py (NA had the 10/22 copy)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-27 11:57:14 -04:00
co-authored by Claude Opus 5.5
parent caeee9179b
commit e9c2ef0b6c
7 changed files with 30 additions and 37 deletions
+3 -4
View File
@@ -302,10 +302,9 @@ class TestKeys(unittest.TestCase):
def test_the_set_in_another_key(self):
keys = dict(GOOD, **{"Holy Forever": "C"})
line = rd.eval_keys(RC, keyed(keys), with_pads_and_finished())
# Rejoice Again: Finished Songs only has it in B (PCO and the set say Bb)
self.assertEqual(msgs(line), ["REJOICE AGAIN ONLY B", "HOLY FOREVER B NOT C", "HOLY FOREVER PAD B NOT C",
"HOLY FOREVER ONLY B"])
self.assertEqual([lv for lv, _, _ in line.faults], [rd.WARN, rd.ERR, rd.ERR, rd.WARN])
# Rejoice Again: Finished Songs only has it in B (PCO and the set say Bb): no warning, START transposes it
self.assertEqual(msgs(line), ["HOLY FOREVER B NOT C", "HOLY FOREVER PAD B NOT C"])
self.assertEqual([lv for lv, _, _ in line.faults], [rd.ERR, rd.ERR])
def test_a_song_pco_has_no_key_for(self):
line = rd.eval_keys(RC, keyed(dict(GOOD, **{"Holy Forever": ""})), with_pads_and_finished())
+9 -15
View File
@@ -349,22 +349,16 @@ class TestBuild(unittest.TestCase):
self.assertEqual(st["step"], "NOTHING TO DO")
self.assertEqual(os.listdir(os.path.join(self.proj, "NA", "261101 NA Project")), [])
def test_an_unchanged_song_is_not_saved_again_and_a_changed_one_parks_the_old(self):
def test_every_song_is_saved_every_week_and_the_old_ones_parked(self):
"""User, 2026-10-27: every song saved new every week; the old one goes to z, zz, ... (the bottom of the folder)."""
self.run_job()
shutil.rmtree(os.path.join(self.proj, "NA", "261101 NA Project"))
st = self.run_job()
self.assertEqual(st["saved"], [])
self.assertFalse(os.path.exists(os.path.join(self.fin, "zOLD SONG [Eb]")))
# A re-consolidated stem (new file) is a new version: the old folder is parked as z.
base = os.path.join(self.proj, "NA", "261025 NA Project", "261025 NA Project.als")
xml = gzip.open(base).read().decode()
i = xml.index("21-Piano")
xml = xml[:i] + xml[i:].replace('Value="1000"', 'Value="2000"', 1)
write_als(base, xml)
shutil.rmtree(os.path.join(self.proj, "NA", "261101 NA Project"))
st = self.run_job()
self.assertEqual(st["saved"], ["OLD SONG [Eb]"])
self.assertTrue(os.path.isdir(os.path.join(self.fin, "zOLD SONG [Eb]")))
for parked in ("zOLD SONG [Eb]", "zzOLD SONG [Eb]"):
shutil.rmtree(os.path.join(self.proj, "NA", "261101 NA Project"))
st = self.run_job() # unchanged, saved again all the same
self.assertEqual(st["saved"], ["OLD SONG [Eb]"])
self.assertIn("SAVED OLD SONG [Eb]", st["log"])
self.assertTrue(os.path.isdir(os.path.join(self.fin, parked)))
self.assertTrue(os.path.exists(os.path.join(self.fin, "OLD SONG [Eb]", "OLD SONG.als")))
def test_a_changed_song_replaces_the_version_it_was_made_from(self):
# Last week's "OLD SONG" group was made from "OLD SONG LIVE [Eb]", then edited (a stem swapped).