Skip to content

CI to publish chipsalliance/rocket-chip SNAPSHOTs on Sonatype

Notifications You must be signed in to change notification settings

euphoric-hardware/rocket-chip-publish

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rocket-chip-publish

Overview

rocket-chip is a Chisel library that holds the Rocket RISC-V core, TileLink/AXI4 bus peripherals, L1 caches, and supporting infrastructure to build an SoC. Using rocket-chip in a containing project (such as Chipyard) usually entails cloning rocket-chip as a submodule and using it as a source dependency. This can be undesirable in cases where you just want to use components of rocket-chip and unwieldy since rocket-chip contains 100s of Scala sources to compile.

This repo contains a simple publishing script and Github Actions workflow to publish rocket-chip to Sonatype snapshots. It runs on an hourly timer, looks for new commits to rocket-chip, and publishes a new version to Sonatype when an update to rocket-chip/master is seen.

Rocket-chip is published against multiple Chisel versions and Scala 2.13. See the published snapshots for Chisel 5.0.0 and Chisel 3.6.0. The version of each snapshot is version in rocket-chip's build.sc-chisel version-git hash of rocket-chip commit-SNAPSHOT.

To use a snapshot, add this snippet to your build.sbt:

resolvers ++= Seq(
    Resolver.sonatypeRepo("snapshots"),
    Resolver.sonatypeRepo("releases"),
    Resolver.mavenLocal
)

libraryDependencies ++= Seq("edu.berkeley.cs" %% "rocketchip-3.6.0" % "1.6-3.6.0-50adbdb3e-SNAPSHOT")
  • Why publish snapshots instead of versioned releases?
    • The user-facing API of rocket-chip isn't stable and versioned releases require a stable API surface. Each snapshot is published once and will not be overwritten.
  • Why is the publishing scripting sitting outside rocket-chip?
    • It may be integrated into rocket-chip once proven useful.
  • How are rocket-chip's subprojects (hardfloat, api-config-chipsalliance, rocket-macros) versioned?
    • They are published as snapshots with the same version as rocket-chip. Each rocket-chip snapshot uses published snapshot versions of the subprojects (with the exact same version string). See this .pom as an example.

About

CI to publish chipsalliance/rocket-chip SNAPSHOTs on Sonatype

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published