lambdaisland / lambdaisland/open-source

Moving clojars artifact to com.lambdaisland groupId

Aperta
#2 8 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Clojure
Stelle
55
Fork
5
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

With the new Clojars policies we can no longer release new libraries as lambdaisland/..., we have to release them as com.lambdaisland/.... For existing libraries we could keep using lambdaisland/..., but that would mean keeping track of which ones are "new world" vs "old world" across over a dozen libraries, so we would rather move forward and re-release everything as com.lambdaisland/....

I started doing this to some of them, so far we have

com.lambdaisland/glogi
com.lambdaisland/kaocha-cljs

And one library which had to be released to com.lambdaisland, because it saw its first release after the policy change:

com.lambdaisland/daedalus

However this puts a burden of churn onto our users, which is something we generally really like to avoid. It also causes potential issues, since now Maven et al see these as two separate libraries, even though it's really one and the same, and so you may end up with two versions of the same library on the classpath. Not a recipe for success.

The clean solution would be Maven's "relocation" feature, which solves exactly this. It allows pushing a pom without a jar to the old artifact id, containing a relocation stanza pointing to the new group id.

However Clojars does not currently allow deploying a pom without a jar, and Clojure CLI/tools.deps don't yet understand Maven relocation. The issue stems from 2017 with little to no activity since, and my sense is we might have to contribute these features ourselves if we want to see them happen. Ideally Clojars would have first class support for relocation, so one can indicate moving to a new group without having to deal with poms.

We'll also have to check what Leiningen does. My guess is it will support relocation since it uses established tooling under the hood, but it should be checked.

Until these things are cleared out we'll continue to release old libs under lambdaisland, with the exception of the three above that have already moved.

Next steps:

  • adapt LIOSS build tooling so we can specifiy the groupId in bin/proj of each project
  • verify that Leiningen can handle relocation
  • follow up on TDEPS-8, possibly submit patch
  • follow up on clojars-web#801

FAQ

  • Why don't you keep using lambdaisland, doesn't Clojars grandfather existing groups?

Only existing libraries are grandfathered, we are not allowed to release new libraries under lambdaisland.

  • Will you also be prefixing namespaces with com.lambdaisland?

No, there is no plan for that at this time. Clojure also provides clojure.core and not org.clojure.core. It would be sensible to use full reversed domains there too, but that would be a lot of extra churn, which we really like to prevent.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia con il lavoro completato su groupId nel bin/proj di ciascun progetto e rivedi gli elementi rimanenti della checklist per TDEPS-8 e clojars-web#801. Leggi queste issue collegate e verifica le assunzioni del progetto su Leiningen e Clojure CLI. Il lavoro è completato quando viene dato seguito al supporto necessario per la rilocazione o questo viene inviato, e l'approccio di release è documentato per le librerie interessate.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
clojure
Ambito
build-system, release, tooling
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.