diff --git a/.github/workflows/site.yml b/.github/workflows/site.yml index c31b6a03..a7528aca 100644 --- a/.github/workflows/site.yml +++ b/.github/workflows/site.yml @@ -10,18 +10,40 @@ name: Website push: branches: - master + pull_request: {} jobs: + build: + name: Build and Test + runs-on: ubuntu-latest + if: ${{ github.event_name == 'pull_request' }} + steps: + - name: Git Checkout + uses: actions/checkout@v3.3.0 + with: + fetch-depth: '0' + - name: Setup Scala + uses: actions/setup-java@v3.9.0 + with: + distribution: temurin + java-version: 17 + check-latest: true + - name: Check if the README file is up to date + run: sbt docs/checkReadme + - name: Check if the site workflow is up to date + run: sbt docs/checkGithubWorkflow + - name: Check website build process + run: sbt docs/clean; sbt docs/buildWebsite publish-docs: name: Publish Docs runs-on: ubuntu-latest if: ${{ ((github.event_name == 'release') && (github.event.action == 'published')) || (github.event_name == 'workflow_dispatch') }} steps: - name: Git Checkout - uses: actions/checkout@v3.1.0 + uses: actions/checkout@v3.3.0 with: fetch-depth: '0' - name: Setup Scala - uses: actions/setup-java@v3.6.0 + uses: actions/setup-java@v3.9.0 with: distribution: temurin java-version: 17 @@ -38,14 +60,15 @@ jobs: generate-readme: name: Generate README runs-on: ubuntu-latest + if: ${{ (github.event_name == 'push') || ((github.event_name == 'release') && (github.event.action == 'published')) }} steps: - name: Git Checkout - uses: actions/checkout@v3.1.0 + uses: actions/checkout@v3.3.0 with: ref: ${{ github.head_ref }} fetch-depth: '0' - name: Setup Scala - uses: actions/setup-java@v3.6.0 + uses: actions/setup-java@v3.9.0 with: distribution: temurin java-version: 17 @@ -59,15 +82,15 @@ jobs: git add README.md git commit -m "Update README.md" || echo "No changes to commit" - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v4.2.3 with: - title: Update README.md - commit-message: Update README.md - branch: zio-sbt-website/update-readme - body: | + body: |- Autogenerated changes after running the `sbt docs/generateReadme` command of the [zio-sbt-website](https://zio.dev/zio-sbt) plugin. I will automatically update the README.md file whenever there is new change for README.md, e.g. - After each release, I will update the version in the installation section. - After any changes to the "docs/index.md" file, I will update the README.md file accordingly. - + branch: zio-sbt-website/update-readme + commit-message: Update README.md + delete-branch: true + title: Update README.md diff --git a/README.md b/README.md index ae58f80d..2799d2cc 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,60 @@ +[//]: # (This file was autogenerated using `zio-sbt-website` plugin via `sbt generateReadme` command.) +[//]: # (So please do not edit it manually. Instead, change "docs/index.md" file or sbt setting keys) +[//]: # (e.g. "readmeDocumentation" and "readmeSupport".) + # ZIO Keeper -| Project Stage | CI | Issues | Discord | -| ------------------------------------- |-----------------|-------------------------------------------------------------|-------------------------------------------| -| [![Project stage][Stage]][Stage-Page] | ![CI][Badge-CI] | [![Is it maintained?][Badge-Maintenance]][Link-Maintenance] | [![Discord][Badge-Discord]][Link-Discord] | +ZIO Keeper is a purely-functional, type-safe library for building distributed systems. + +[![Experimental](https://img.shields.io/badge/Project%20Stage-Experimental-yellowgreen.svg)](https://github.com/zio/zio/wiki/Project-Stages) ![CI Badge](https://github.com/zio/zio-keeper/workflows/CI/badge.svg) [![Sonatype Snapshots](https://img.shields.io/nexus/s/https/oss.sonatype.org/dev.zio/zio-keeper_2.13.svg?label=Sonatype%20Snapshot)](https://oss.sonatype.org/content/repositories/snapshots/dev/zio/zio-keeper_2.13/) [![ZIO Keeper](https://img.shields.io/github/stars/zio/zio-keeper?style=social)](https://github.com/zio/zio-keeper) -ZIO Keeper is a purely-functional, type-safe library for building distributed -systems. +## Introduction -It provides numerous primitives for tackling the common problems in distributed -computing (e.g. leader election, cluster forming etc.). Under the hood, the -library is backed by [ZIO][Link-ZIO] and [ZIO NIO][Link-NIO], profiting from their -performant, type and resource-safe APIs. +It provides numerous primitives for tackling the common problems in distributed computing (e.g. leader election, cluster forming etc.). +Under the hood, the library is backed by [ZIO][Link-ZIO] and [ZIO NIO][Link-NIO], profiting from their performant, type and resource-safe APIs: - **Composable**. Design complex systems by composing the available building blocks. - **Resilient**. Build apps with automated failure recovery. - **Secure**. Benefit from security guarantees built into the library core. -To learn more about ZIO Keeper, check out the following references: +From the high-level perspective, the library can be separated into the following +"modules": +- transport +- membership +- consensus + +## Installation + +In order to use this library, we need to add the following line in our `build.sbt` file: -- [Homepage](https://zio.dev/zio-keeper/) -- [Contributor's guide](./.github/CONTRIBUTING.md) -- [License](LICENSE) -- [Issues](https://github.com/zio/zio-keeper/issues) -- [Milestones](https://github.com/zio/zio-keeper/milestones?direction=asc&sort=title&state=open) -- [Pull Requests](https://github.com/zio/zio-keeper/pulls) +```scala +libraryDependencies += "dev.zio" %% "zio-keeper" % "" + +resolvers += Resolver.sonatypeRepo("snapshots") +``` -[Badge-CI]: https://github.com/zio/zio-keeper/workflows/CI/badge.svg -[Badge-Discord]: https://img.shields.io/discord/629491597070827530?logo=discord -[Badge-Maintenance]: http://isitmaintained.com/badge/resolution/zio/zio-keeper.svg -[Link-Discord]: https://discord.gg/2ccFBr4 -[Link-Maintenance]: http://isitmaintained.com/project/zio/zio-keeper [Link-ZIO]: https://zio.dev [Link-NIO]: https://zio.github.io/zio-nio/ -[Stage]: https://img.shields.io/badge/Project%20Stage-Experimental-yellow.svg -[Stage-Page]: https://github.com/zio/zio/wiki/Project-Stages +## Documentation + +Learn more on the [ZIO Keeper homepage](https://zio.dev/zio-keeper/)! + +## Contributing + +For the general guidelines, see ZIO [contributor's guide](https://zio.dev/about/contributing). + +## Code of Conduct + +See the [Code of Conduct](https://zio.dev/about/code-of-conduct) + +## Support + +Come chat with us on [![Badge-Discord]][Link-Discord]. + +[Badge-Discord]: https://img.shields.io/discord/629491597070827530?logo=discord "chat on discord" +[Link-Discord]: https://discord.gg/2ccFBr4 "Discord" + +## License + +[License](LICENSE) diff --git a/build.sbt b/build.sbt index 2ce22fb8..7b9f5694 100644 --- a/build.sbt +++ b/build.sbt @@ -39,8 +39,9 @@ addCommandAlias("check", "all scalafmtSbtCheck scalafmtCheck test:scalafmtCheck" lazy val root = project .in(file(".")) + .settings(crossScalaVersions := Seq(Scala212, Scala213)) .settings(skip in publish := true) - .aggregate(keeper, examples) + .aggregate(keeper, examples, docs) lazy val keeper = project .in(file("keeper")) @@ -80,24 +81,15 @@ lazy val examples = project lazy val docs = project .in(file("zio-keeper-docs")) .settings( - skip in publish := true, + publish / skip := true, moduleName := "zio-keeper-docs", - unusedCompileDependenciesFilter -= moduleFilter("org.scalameta", "mdoc"), - scalacOptions -= "-Yno-imports", - scalacOptions -= "-Xfatal-warnings", - scalacOptions ~= { _.filterNot(_.startsWith("-Ywarn")) }, - scalacOptions ~= { _.filterNot(_.startsWith("-Xlint")) }, - libraryDependencies ++= Seq( - ("com.github.ghik" % "silencer-lib" % "1.6.0" % Provided).cross(CrossVersion.full) - ), + scalaVersion := Scala213, + crossScalaVersions := Seq(Scala213), + mainModuleName := (keeper / moduleName).value, projectName := "ZIO Keeper", - badgeInfo := Some( - BadgeInfo( - artifact = "zio-keeper_2.12", - projectStage = ProjectStage.Experimental - ) - ), + projectStage := ProjectStage.Experimental, + ScalaUnidoc / unidoc / unidocProjectFilter := inProjects(), + checkArtifactBuildProcessWorkflowStep := None, docsPublishBranch := "master" ) - .dependsOn(keeper) .enablePlugins(WebsitePlugin) diff --git a/docs/index.md b/docs/index.md index 5a2e822d..12d2f593 100644 --- a/docs/index.md +++ b/docs/index.md @@ -28,7 +28,7 @@ From the high-level perspective, the library can be separated into the following In order to use this library, we need to add the following line in our `build.sbt` file: ```scala -libraryDependencies += "dev.zio" %% "zio-keeper" % "@VERSION@" +libraryDependencies += "dev.zio" %% "zio-keeper" % "" resolvers += Resolver.sonatypeRepo("snapshots") ``` diff --git a/project/BuildHelper.scala b/project/BuildHelper.scala index 204fbb1d..bc8d9e1a 100644 --- a/project/BuildHelper.scala +++ b/project/BuildHelper.scala @@ -11,8 +11,8 @@ object BuildHelper { incOptions ~= (_.withLogRecompileOnMacro(false)) ) - final private val Scala212 = "2.12.10" - final private val Scala213 = "2.13.1" + final val Scala212 = "2.12.17" + final val Scala213 = "2.13.10" final val ZioVersion = "1.0.0" final val NioVersion = "1.0.0-RC9" diff --git a/project/plugins.sbt b/project/plugins.sbt index 7c786c86..dd85e234 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -3,6 +3,4 @@ addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.5.5") addSbtPlugin("com.github.cb372" % "sbt-explicit-dependencies" % "0.2.16") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.2") addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.2.14") -addSbtPlugin("dev.zio" % "zio-sbt-website" % "0.2.4") - -resolvers += Resolver.sonatypeRepo("public") +addSbtPlugin("dev.zio" % "zio-sbt-website" % "0.3.9")