Skip to content

Repository files navigation

Coursier Apps

Build status Release status

This repository holds the apps in the Main and Contrib channels for Coursier. You can find information about creating your own application to be installed with cs here on the website.

Each channel is made of one JSON file per app, under apps/resources (Main channel) and apps-contrib/resources (Contrib channel). Those are aggregated into a single JSON file per channel, listings/apps.json and listings/apps-contrib.json, that coursier reads as URL-based channels:

Those aggregated files are generated by the .github/scripts/generate-channels.sc Scala CLI script. Please don't update them directly: upon pushes to the main branch, CI regenerates them and opens a pull request with the changes, if any. Locally, you can regenerate them with

scala-cli run .github/scripts/generate-channels.sc

The channels are also published as JARs, as io.get-coursier:apps and io.get-coursier:apps-contrib, for former coursier versions. Up to 1.0.70, these were published on Maven Central. Newer versions, and snapshots of the main branch, are published on GitHub Packages, whose Maven repository is https://maven.pkg.github.com/coursier/apps.

The app descriptors are validated by the validator module of the Mill build. On PRs, CI checks every descriptor (that coursier can parse it, that it has no unknown keys, valid main classes, …), and, for the descriptors changed by the PR, fetches the dependencies, and checks the main class and the prebuilt launchers, for a sample of the versions handled by the base descriptor and by each version override. Each app has its own module in the Mill build, whose check command validates it, so that Mill's selective execution only validates the apps whose descriptor or known issues changed. Locally, you can validate some apps with

./mill apps.scala.check
./mill apps-contrib.bfg.check

or with the validator directly (pass --offline to skip the online checks)

./mill validator.run scala apps-contrib/resources/bfg.json

Known problems of former app versions, like missing prebuilt launchers, are listed in validator/known-issues, in one file per app.

Main

These are the apps in the default Main channel, used by cs install and cs launch.

  • almond
  • ammonite
  • bloop-jvm
  • bloop
  • coursier
  • cs
  • csbt
  • dotty-repl
  • echo-graalvm
  • echo-java
  • echo-native
  • giter8
  • mdoc
  • metac
  • metals-emacs
  • metals-mcp
  • metals
  • metap-native
  • metap
  • mill-interactive
  • mill
  • sbt-launcher
  • sbt
  • sbtn
  • scala-cli
  • scala-experimental
  • scala
  • scala3-compiler
  • scala3-decompiler
  • scala3-doc
  • scala3-repl
  • scala3
  • scalac
  • scaladoc
  • scalafix
  • scalafmt
  • scalap
  • scalapbc
  • stc

Contrib

These apps are available by passing --contrib to the cs install and cs launch commands. Feel free to send in a PR to add your application here!

  • amm-runner
  • asm-textifier
  • asmifier
  • authors
  • avro-tools
  • bfg
  • cache-migration
  • catscript
  • cellar
  • cfr
  • clojure
  • cmta
  • cmtc
  • fastpass-jvm
  • fastpass
  • firstbird-emergence
  • flyway
  • frege
  • git-changelog
  • google-java-format
  • groovy-shell
  • groovy
  • guardrail
  • ivy
  • jansi
  • jfiglet
  • jruby
  • jython
  • kafka-console-consumer
  • kafka-console-producer
  • kafka-consumer-groups
  • kafka-server
  • kafka-topics
  • kinetic-merge
  • ktfmt
  • lsif-java
  • make-it-g8
  • openapi-generator
  • plantuml
  • proguard-7
  • proguard-retrace
  • proguard
  • protoc-jar
  • rhino
  • rsc
  • rscj
  • s2d
  • scala-debugger
  • scala-monitor
  • scala-steward
  • scala-update
  • scalals
  • scalaxb
  • scip-java
  • sclin
  • sjsls
  • smithy-cli
  • smithy-language-server
  • smithy4s
  • smithytranslate
  • sn-bindgen
  • sn-sizemap
  • sn-vcpkg
  • spaeti
  • spark-connect-repl
  • spark-repl
  • sqlline
  • swagger-codegen
  • wiremock
  • zookeeper

Updating the README

This README is auto-generated by the .github/scripts/generate-readme.sc Scala CLI script. Please don't update the README directly, but rather update the README.template.md. Note that you don't need to manually add your app to it, it will be automatically added in CI.

Testing a change

If you'd like to test a change locally to ensure what you're adding or changing works correctly, you can do the following while in the workspace.

cs launch --default-channels=false --channel ./(apps|apps-contrib)/resources <app name>

This reads the app descriptors straight from the resources directories, so that you don't need to regenerate the files under listings/ when testing.

About

No description, website, or topics provided.

Resources

Stars

41 stars

Watchers

3 watching

Forks

Packages

Used by

Contributors

Languages