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-base as 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.compevol namespace
- Add
maven-source-plugin, maven-javadoc-plugin, and maven-gpg-plugin to the build
- Update
groupId from beast to io.github.compevol across 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
Problem
BEAST 3 artifacts could be published to GitHub Packages, but this requires authentication (a GitHub PAT with
read:packagesscope) even for public repositories. This is a barrier for external package developers who need to depend onbeast-base,beast-pkgmgmt, orbeast-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.compevolvia 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
beast:beast-baseio.github.compevol:beast-basebeast:beast-pkgmgmtio.github.compevol:beast-pkgmgmtbeast:beast-fxio.github.compevol:beast-fxbeast:beagleio.github.compevol:beaglebeast:coltio.github.compevol:coltRequirements
Maven Central requires:
Benefits
beast-baseas a dependency and it just works<repository>block needed in POMsMigration path
io.github.compevolnamespacemaven-source-plugin,maven-javadoc-plugin, andmaven-gpg-pluginto the buildgroupIdfrombeasttoio.github.compevolacross all POMs