Fork me on GitHub
#clojure-norway
<
2024-01-04
>
augustl10:01:51

god morgen!

infosophy12:01:41

Goehhtermiddag!

slipset12:01:45

I siste episode av Software Unscripted snakkes det om dependency management og spesifikt version-ranges. For meg så er dette et ikke problem, fordi vi har alle våre deps på eksakte versjoner. Er det vanlig, eller brukere dere version-ranges?

cjohansen12:01:47

Nei. Jeg vet ikke engang om deps.edn støtter det? 😅

cjohansen12:01:23

Kunne ikke falle meg inn å la det være opp til tilfeldighetene hvilken versjon jeg ender opp med. Spesielt ikke etter at Rich Hickey tok fra meg illusjonen om semantisk versjonering.

👍 1
Olav Fosse13:01:03

clojure cli er veldig ikke deterministisk. Når man sier {:mvn/version version} sier man ingenting om hvilken maven repo man ønsker å hente fra. Først prøves clojars og deretter prøves maven central. Problemet er hvis du bruker en maven central dep og så laster noen opp en clojars dep med tilsvarende kordinat…

cjohansen13:01:20

Desto større grunn til å bruke git-koordinater, da

Olav Fosse13:01:01

dessverre bruker nok de fleste git deps.edn biblioteker transitivt :mvn kordinater. så er litt vrient å jobbe seg rundt dette her…

cjohansen13:01:16

Ja, den var kinkig

cjohansen13:01:33

Er det ikke mulig å være eksplisitt på repo heller?

Olav Fosse13:01:51

eg rapporterte dette til clojure og en rekke clojure selskaper i fjor forfjor, men det var egt ingen som tok det spes seriøst 😕

cjohansen13:01:34

Clojars har strammet opp reglene sine litt ihvertfall

Olav Fosse13:01:40

ja, man trenger eierskap av domenet foo.bar for å lage clojars pakker under bar.foo/

Olav Fosse13:01:31

forsåvidt en fornuftig regel, men det hjelper bare littegran med denne sårbarheten

Olav Fosse13:01:24

det er trivielt å finne maven pakker hvor domenet tilsvarende groupid er utgått. for en slem hacker er det bare å snappe opp et slikt domene for så å injecte malware…

cjohansen12:01:36

Det er vel ikke så rent uvanlig i npm-verdenen tror jeg.

slipset12:01:07

Jepp, og tiden jeg bruker på å oppdatere versjoner er ubetydelig. Jeg skrev en epost til Richard og spurte om hvorfor han vil ha version-ranges i systemet sitt.

cjohansen12:01:21

Han ville ha det?

cjohansen12:01:36

Det programmeringsspråket han lager?

augustl13:01:07

gjøre det lettere å ha mange (aka oppdatere) dependencies? Burde være omvendt, depositum på $100 per dependency

😂 1
infosophy13:01:50

Hva med dagbøter for alle tilfeller hvor benyttede ranges mapper til mer enn én versjon, som er proposjonalt med antallet versjoner over 1?

💯 2
😂 1
slipset13:01:49

Jeg talte 89 deps i api’et vårt. Bruker fortsatt “null” tid på oppgradering.

cjohansen13:01:00

Det er opptil flere dager siden jeg spammet kanalen med rendering-biblioteket vi holder på med. Har jeg nevnt at det har 0 avhengigheter? 😄

cjohansen13:01:23

Jeg har brukt forsvinnende lite tid på å oppgradere avhengigheter de siste 6 åra

cjohansen13:01:58

Til og med da jeg tok over en kodebase som var tilnærmet urørt i 2 år tok det meg maks en halvtime å få alt på siste versjon

augustl13:01:44

yarn har tilogmed et ncurses-aktig terminalverktøy for å oppdatere deps

augustl13:01:50

gruer meg til å oppdatere disse… De har endret helt på strukturen i hvordan ting requires, for å gjøre tree shaking lettere laughcry

cjohansen13:01:17

Ingenting setter frykten i en utvikler som en ny majorversjon av en avhengighet

laughcry 2
slipset13:01:25

Der er jeg vel uenig. Med ny major versjon vet du jo at alt går til helvete og kan forberede deg deretter. Ny minor? Da skal ingenting gå til helvete, men gjør det likevel og på de aller mest uventede og spektakulære måter.

augustl13:01:59

horse clojure-norway: ingenting setter frykten i en utvikler som en avhengighet

cjohansen13:01:41

Ny majorversjon av bibliotek i et sterkt typet språk kan fort føre til rewrite av hele kodebasen din

cjohansen13:01:52

Hjelper ikke mye at IDE-et har fantastisk refaktoreringsstøtte da