fix: restart Dever releases at 0.0.1 with complete signed assets

This commit is contained in:
Codex committed 2026-10-12 07:31:28 +00:00
1 parent 5589b657db
commit faf8b168a7
22 files changed
+582 -94

No files matched your search

+35 -1
View File
@@ -12,6 +12,7 @@ import subprocess
import tarfile
import tempfile
import unittest
import zipfile
from unittest import mock
from install_support import load_installer
@@ -88,7 +89,7 @@ class InstallerTests(unittest.TestCase):
self.platform, "1.2.3")
def create_assets(self, output):
return assets.create(self.release, output, ZSTD)
return assets.create(self.release, output, ZSTD, complete=False)
def release_record(self, directory, version="1.2.3"):
return {
@@ -173,6 +174,39 @@ class InstallerTests(unittest.TestCase):
with self.assertRaisesRegex(ValueError, "base package"):
self.create_assets(self.root / "host-target")
def test_complete_release_requires_all_extensions_and_matching_editor(self):
manifest = json.loads((self.release / "manifest.json").read_text())
with self.assertRaisesRegex(ValueError, "complete release is missing"):
assets.create(self.release, self.root / "incomplete", ZSTD)
self.assertFalse((self.root / "incomplete").exists())
with self.assertRaisesRegex(ValueError, "complete release is missing"):
assets.verify_complete(manifest, None)
for target in ("linux-x86_64", "linux-aarch64"):
for ecosystem in ("pip", "npm", "go"):
manifest["extensions"].append({"kind": {"type": "runtime", "ecosystem": ecosystem},
"target": target, "artifacts": []})
for ecosystem in ("pip", "npm"):
manifest["extensions"].append({"kind": {"type": "build", "ecosystem": ecosystem},
"target": self.platform, "artifacts": []})
manifest["extensions"].append({"kind": {"type": "target"}, "target": "linux-aarch64",
"artifacts": []})
with self.assertRaisesRegex(ValueError, "editor VSIX"):
assets.verify_complete(manifest, None)
editor = self.root / "editor.vsix"
package = {"name": "dever-language", "publisher": "shemic", "version": manifest["version"]}
with zipfile.ZipFile(editor, "w") as archive:
archive.writestr("extension/package.json", json.dumps(package))
assets.verify_complete(manifest, editor)
for index in range(len(manifest["extensions"])):
incomplete = {**manifest, "extensions": manifest["extensions"][:index] + manifest["extensions"][index + 1:]}
with self.assertRaisesRegex(ValueError, "complete release is missing"):
assets.verify_complete(incomplete, editor)
package["version"] = "9.9.9"
with zipfile.ZipFile(editor, "w") as archive:
archive.writestr("extension/package.json", json.dumps(package))
with self.assertRaisesRegex(ValueError, "identity/version"):
assets.verify_complete(manifest, editor)
def test_signed_release_without_matching_skill_is_rejected(self):
path = self.release / "manifest.json"
manifest = json.loads(path.read_text())