Linux package repository migration + automatic release#8
Linux package repository migration + automatic release#8rochala wants to merge 2 commits intosbt:developfrom
Conversation
So we would have to clone this repo from sbt/sbt CI to release sbtn.
What about using an environment variable to achieve that? I think we use one already in the sbt/sbt CI.
Do we need to set them up here or in sbt/sbt? |
It works a bit different. SBT only pings this repository to start the release automatically - https://github.com/rochala/sbt/blob/1.9.x/.github/workflows/release.yml
This is one solution and it can be extracted during CI to use previous release from this repository, as this is the source of sbt native client binaries.
In this repository we need various of secrets:
And both repositories need
I used Github App instead of personal access token as with Github app you can limit the repositories it can access and have more granular possible actions. |
|
The one part I'm not sure if we can do is changing how our repository is structured. Currently we have separated source info for sbt < 1.5.0 called sbt_old.list and another one for new versions. This leads to well additional problems as you have to add 2. echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.listWe can also add architecture in the source input: echo "deb [arch=all] https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.listwhich will solve the problem with missing support for aarch64 architecture. The drawback of removing the separation of both repositories is that it will break on the user machines and they will need to update it. In my opinion it is worth. |
PR implementing ongoing effort of migration from JFrog and securing sbt repository: https://contributors.scala-lang.org/t/roadmap-for-the-sbt-community-repository/6195
This PR focuses on 2 aspects:
sbt/sbtrepository). This is important to have proper automation, as it won't require any input from the maintainers to have it released (right now version 1.9.3 of sbtn is not published nor released)On top of that, this should answer a few reported issues such as:
apt install sbtbut required an additional flag selecting the amd64 architecture, despite the fact sbtn is platform independent.This will require changes in
sbt/sbtsuch as adding additional CI which will run the deployment in this repository and also update sbtn-version to the released onehttps://github.com/sbt/sbt/blob/1.9.x/sbt#L27 with possible fallback. This PR may require additional changes to separate building and signing linux packages from native client building.
All the packages in this PR are signed with different key, as secrets are not yet setup in this repository.