Closed teodorlu closed 7 months ago
Jeg gjorde en grep og fant disse uriktige:
./o/olorm-49/meta.edn: :doc/uuid "25418c1c-b094-4080-0775-c42cf246de78",
./o/olorm-51/meta.edn: :doc/uuid "ac7b4e4d-db86-43fa-6def-0c5349a5aec2",
./text/kiel/kiel-2/meta.edn: :doc/uuid "9b7d0698-0574-400b-490a-a7cf3ead64c4",
Jeg antar at det betyr at en generisk UUID-parser (som lager 128-bit integers) kommer til å feile når vi leser sånne UUID-er.
Det er ikke helt sikkert, men den vil nok rapportere feil variant, eksempel:
uuid.UUID('8aa1250a-ddf0-4135-8b99-0924d1a297be').variant
'specified in RFC 4122'
^ forventet. En uriktig:
uuid.UUID('ac7b4e4d-db86-43fa-6def-0c5349a5aec2').variant
'reserved for NCS compatibility'
OK, skjønner. Bra du har kontroll! Hvis jeg hadde skullet lage min egen UUID-generator, hadde jeg innført samme bug 😅
Jeg har tenkt meg om, og jeg tror faktisk ikke UUID-ene er i bruk -- verken internt i koden eller ute på Internett. Vi putter ikke ennå UUID-er i dokument-metadata (fordi jeg ikke har fått gjort det), og vi bruker slugs som UUID RSS-feeden (jeg ikke var involvert i design-diskusjonen da RSS ble implementert).
Dette er koden som lager en RSS-seksjon for hvert dokument:
, og det eneste vi bruker fra dokument-metadata er tidspunktet dokumentet ble opprettet:
Basert på det tror jeg det er trygt å generere nye tilfeldige (korrekte) UUID-er til de tre dokumentene det gjelder. Men jeg vil gjerne sove på den vurderingen før vi går inn og endrer metadata!
Jeg finner ingen referanser til :doc/uuid
i kode som leser dokumenter, kun i kode som skriver dokumenter (mblog.sh
og mikrobloggeriet.cli
).
$ pwd
/Users/teodorlu/dev/iterate/mikrobloggeriet
$ git rev-parse HEAD
2f70c226435b19e1dd046d365d9bc83d27bafdb0
$ rg -l :doc/uuid | sort
j/jals-1/meta.edn
j/jals-2/meta.edn
j/jals-3/meta.edn
j/jals-4/meta.edn
j/jals-5/meta.edn
j/jals-6/meta.edn
j/jals-7/meta.edn
j/jals-8/meta.edn
j/jals-9/meta.edn
mblog.sh
o/olorm-1/meta.edn
o/olorm-10/meta.edn
o/olorm-11/meta.edn
o/olorm-12/meta.edn
o/olorm-13/meta.edn
o/olorm-14/meta.edn
o/olorm-15/meta.edn
o/olorm-16/meta.edn
o/olorm-17/meta.edn
o/olorm-18/meta.edn
o/olorm-19/meta.edn
o/olorm-2/meta.edn
o/olorm-20/meta.edn
o/olorm-21/meta.edn
o/olorm-22/meta.edn
o/olorm-23/meta.edn
o/olorm-24/meta.edn
o/olorm-25/meta.edn
o/olorm-26/meta.edn
o/olorm-27/meta.edn
o/olorm-28/meta.edn
o/olorm-29/meta.edn
o/olorm-3/meta.edn
o/olorm-30/meta.edn
o/olorm-31/meta.edn
o/olorm-32/meta.edn
o/olorm-33/meta.edn
o/olorm-34/meta.edn
o/olorm-35/meta.edn
o/olorm-36/meta.edn
o/olorm-37/meta.edn
o/olorm-38/meta.edn
o/olorm-39/meta.edn
o/olorm-4/meta.edn
o/olorm-40/meta.edn
o/olorm-41/meta.edn
o/olorm-42/meta.edn
o/olorm-43/meta.edn
o/olorm-44/meta.edn
o/olorm-45/meta.edn
o/olorm-46/meta.edn
o/olorm-47/meta.edn
o/olorm-48/meta.edn
o/olorm-49/meta.edn
o/olorm-5/meta.edn
o/olorm-50/meta.edn
o/olorm-51/meta.edn
o/olorm-52/meta.edn
o/olorm-6/meta.edn
o/olorm-7/meta.edn
o/olorm-8/meta.edn
o/olorm-9/meta.edn
src/mikrobloggeriet/cli.clj
text/kiel/kiel-1/meta.edn
text/kiel/kiel-2/meta.edn
text/luke/luke-1/meta.edn
text/luke/luke-10/meta.edn
text/luke/luke-11/meta.edn
text/luke/luke-12/meta.edn
text/luke/luke-13/meta.edn
text/luke/luke-14/meta.edn
text/luke/luke-15/meta.edn
text/luke/luke-16/meta.edn
text/luke/luke-17/meta.edn
text/luke/luke-18/meta.edn
text/luke/luke-2/meta.edn
text/luke/luke-3/meta.edn
text/luke/luke-4/meta.edn
text/luke/luke-5/meta.edn
text/luke/luke-6/meta.edn
text/luke/luke-7/meta.edn
text/luke/luke-8/meta.edn
text/luke/luke-9/meta.edn
text/oj/oj-1/meta.edn
text/oj/oj-2/meta.edn
text/vakt/vakt-1/meta.edn
Jeg lukker denne fordi @tingstad har identifisert dokumentene med ugyldig UUID.
Se #107 for forslag til handling.
Kontekst
I #103 kom det fram at
mblog.sh
produserer feilformaterte UUID-er.Jeg antar at det betyr at en generisk UUID-parser (som lager 128-bit integers) kommer til å feile når vi leser sånne UUID-er.
Problem
Det kan hende at vi derfor har
meta.edn
-filer med feilformaterte UUID-er.Løsningsforslag
Det kan sikkert gjøres i bash, med clojure eller på andre måter. Jeg tror en glob på
**/meta.edn
er en god start (i bash feks medecho **/meta.edn
, i clojure feks medbabashka.fs/glob
)