-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Problem
BEAST 3 artifacts could be published to GitHub Packages, but this requires authentication (a GitHub PAT with read:packages scope) even for public repositories. This is a barrier for external package developers who need to depend on beast-base, beast-pkgmgmt, or beast-fx.
Proposal
Publish BEAST 3 artifacts to Maven Central under the namespace io.github.compevol. Maven Central is free for open source projects and requires no authentication to pull dependencies.
Namespace
Register io.github.compevol via the Central Portal. Verification is done by creating a temporary repo in the CompEvol GitHub org with a verification key as its name.
Artifact coordinates
| Current (GitHub Packages) | Proposed (Maven Central) |
|---|---|
beast:beast-base |
io.github.compevol:beast-base |
beast:beast-pkgmgmt |
io.github.compevol:beast-pkgmgmt |
beast:beast-fx |
io.github.compevol:beast-fx |
beast:beagle |
io.github.compevol:beagle |
beast:colt |
io.github.compevol:colt |
Requirements
Maven Central requires:
- Sources JAR and javadoc JAR for each artifact
- GPG signatures on all artifacts
- POM metadata: name, description, license, SCM URL, developer info
Benefits
- No authentication needed — any developer can add
beast-baseas a dependency and it just works - Standard tooling — Maven Central is the default repository, no
<repository>block needed in POMs - Reliability — Maven Central has an SLA and CDN; GitHub Packages has had outages
- Discoverability — packages are searchable on https://central.sonatype.com/
Migration path
- Register
io.github.compevolnamespace - Add
maven-source-plugin,maven-javadoc-plugin, andmaven-gpg-pluginto the build - Update
groupIdfrombeasttoio.github.compevolacross all POMs - Set up CI to publish to Maven Central on release tags
- Update external packages (morph-models, beast-package-skeleton) to use new coordinates
- Keep GitHub Packages as a secondary/snapshot repository if desired
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels