release: v0.2.0 — a nyelv lezárása és a trust-lánc bizonyíthatóvá tétele - #1
Merged
Conversation
Miért 0.2.0 és nem 0.1.6: ez a kiadás töri a nyelvet. Egy patch-verzió
elrejtené, hogy a 0.1.5-re írt kompozíciók nem mind érvényesek alatta.
Role lapos hétértékű enumból három ortogonális tengely; a
`role: reference` rövid alak megszűnt
reference `shape_type: reference` visszavonva — annotáció lett; a
dokumentált `cic:{namespace}:{Kind}` formátum hibás volt
descriptor `type` → `shape_type`, amit minden kompozíció amúgy is így írt
default nem uniform: megfigyelt, derived, volatile és kulcs értékre tilos
surface a node nem mondhat ellent a felületnek; a beágyazottak öröklik
presence egyetlen tengely, tagadó alak nélkül
lista minden listának van kulcsa; összetettnél `item_key` kötelező
envelope v2 a build_hash az EGÉSZ bundle-t fedi. A v1 négy tagot fedett, így
a kind/version/timestamp aláíratlan volt — egy 0.1.5 → 9.9.9
átcímkézés 2099-es időbélyeggel tisztán verifikált. A v1 továbbra
is verifikál; D-015 rögzíti, a D-013 módosításaként.
A docs/RELEASE-0.2.0.md a migrációt is leírja, és kimondja, amit mérni lehetett:
a három élő kompozíciónak (kubernetes-pod, network-interface, compute-resource)
EGYIK lépés sem kell. A szabályok a korpuszból íródtak, nem ellene.
A README-k OCI példái v0.2.0-ra állítva.
Az aláírt artifact NINCS ebben a commitban: a `make release` Vault-kulcsot
igényel, és ezen az ágon fut le. A kapu addig is zöld: self-test 40/40,
153 teszt, 89% lefedettség.
---
[signing-metadata]
key = cic-my-sign-key
signature = vault:v1:MEUCIQDbbVQ7sW4QOgmRFa8bE9+AENx0VcuBfpacG8vbjHCFOwIgXBd0tg3I2N6qhGM3w3/315qeREy+NgO94yrkP6h0Etc=
hash-algorithm = sha256
digest = 7JU4YiJrxSlHdOSQDCr+kshftKNb4KlNVcQStCGi4dg=
[certificate]
-----BEGIN CERTIFICATE-----
MIICBjCCAaygAwIBAgIUSnRMR6RPnEbg296XWPOqq/u5PCwwCgYIKoZIzj0EAwIw
QzELMAkGA1UEBhMCSFUxGTAXBgNVBAoMEENlbnRyYWxJbmZyYUNvcmUxGTAXBgNV
BAMMEENJQyBEZXZlbG9wZXIgQ0EwHhcNMjYwMzIwMTMyMjU5WhcNMjYxMjMxMTMy
MjU5WjBFMQswCQYDVQQGEwJIVTEZMBcGA1UECgwQQ2VudHJhbEluZnJhQ29yZTEb
MBkGA1UEAwwSR2Fib3IgWm9sdGFuIFNpbmtvMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEIG2CVmTfmLB9pLLclj7YmP2eedAjklpy4LGrU2ijoiy6Xqpuybv7OgJe
i+ez31s65NEV8+X/ByeX1cstR988z6N8MHowCQYDVR0TBAIwADAdBgNVHQ4EFgQU
yZN6AIX/TNnIJ9GwAa/NRN3ujHAwHwYDVR0jBBgwFoAUXn6CHYzPUqU4JVP8g+OS
WeDYjhcwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
BQcDBDAKBggqhkjOPQQDAgNIADBFAiEA+bFzXRoJ4PCQbhAAtpkcMjt0vNj5rEW0
lOMBGDNyaWkCIB1vmM7PcZzv/c9bIrxF5kqv6QXomouhByUfeNUTbpKW
-----END CERTIFICATE-----
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Miért 0.2.0, és miért nem 0.1.6
Ez a kiadás töri a nyelvet. Egy patch-verzió elrejtené, hogy a 0.1.5-re írt kompozíciók nem mind érvényesek alatta.
authority/structural/lifecycle); arole: referencerövid alak megszűntshape_type: referencevisszavonva — annotáció lett. A dokumentáltcic:{namespace}:{Kind}formátum hibás volt: a namespace már hordozza a prefixettype→shape_type, amit minden kompozíció amúgy is így írtderived,volatileés kulcs értékre tilositem_keykötelezőbuild_hashaz egész bundle-t fediv1.0.0korai lenne: a Contract typed payload, az Access policy-grammatika és aconformance/capabilitykérdés nyitott.Amit az envelope v2 zár le
A v1 négy tagot fedett, így a
kind, aversionés atimestampaláíratlan volt: egy0.1.5 → 9.9.9átcímkézés 2099-es időbélyeggel tisztán verifikált. A v2 kizárás alapú (release.sign,release.build_hash,cic_countersignkivételével mindent fed), így egy később hozzáadott mező nem maradhat véletlenül aláíratlanul.A v1 artifactok továbbra is verifikálnak. D-015 rögzíti, a D-013 módosításaként — az a lezárt döntés azt mondta, hogy a bundle nem tartalmaz
build_hash-t, miközben az implementáció két lépésben elmozdult tőle, rögzítetlenül.Amit a verifier most bizonyít — és amit megtagad állítani
kindés a dátumablak — egy kézzel írt, kitalált mezőkkel teli commitment átment.--trust-root <pem>a külső horgony. Nélküle minden cert önmagát állítja — és ezt a kimenet ki is mondja.Migráció
A
docs/RELEASE-0.2.0.mdhat lépésben írja le. Mérve a három élő kompozíción (kubernetes-pod,network-interface,compute-resource): egyik lépés sem kell nekik. A szabályok a korpuszból íródtak, nem ellene.Kapuk
A
make releasemegtagadja a build-et, ha a grammatika elutasítana egy szállítandó kompozíciót — és előbb lefuttatja a grammatika saját self-testjét: egy checker, ami már nem tud bukni, semmit nem bizonyít arról, amit jóváhagy.Az aláírt artifact nincs ebben a PR-ben. A
make releaseVault-kulcsot igényel:A commit ugyanerre az ágra megy, tehát ebbe a PR-be kerül. Merge után jön a tag:
Utána a downstream fanout és a
cic-primitive-enginedependency.yaml-jának lezárása (mamain-re mutat,pinned: false).