Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Scaladoc Support #450

Merged
merged 13 commits into from
Jan 23, 2023
43 changes: 33 additions & 10 deletions .github/workflows/site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
69 changes: 46 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -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" % "<version>"

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)
26 changes: 9 additions & 17 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -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"))
Expand Down Expand Up @@ -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)
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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" % "<version>"

resolvers += Resolver.sonatypeRepo("snapshots")
```
Expand Down
4 changes: 2 additions & 2 deletions project/BuildHelper.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
4 changes: 1 addition & 3 deletions project/plugins.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -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")