diff --git a/.github/actions.yml b/.github/actions.yml new file mode 100644 index 000000000..e02f01632 --- /dev/null +++ b/.github/actions.yml @@ -0,0 +1,2 @@ +pre: + docs: 'gem install jekyll -v 4' \ No newline at end of file diff --git a/README.md b/README.md index 0012d9cdf..964699065 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,6 @@ -[comment]: # (Start Badges) - [![Join the chat at https://gitter.im/47degrees/github4s](https://badges.gitter.im/47degrees/github4s.svg)](https://gitter.im/47degrees/github4s?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![codecov.io](http://codecov.io/gh/47degrees/github4s/branch/master/graph/badge.svg)](http://codecov.io/gh/47degrees/github4s) [![Maven Central](https://img.shields.io/badge/maven%20central-0.24.0-green.svg)](https://oss.sonatype.org/#nexus-search;gav~com.47deg~github4s*) [![License](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://raw.githubusercontent.com/47degrees/github4s/master/LICENSE) [![Latest version](https://img.shields.io/badge/github4s-0.24.0-green.svg)](https://index.scala-lang.org/47degrees/github4s) [![GitHub Issues](https://img.shields.io/github/issues/47degrees/github4s.svg)](https://github.com/47degrees/github4s/issues) -[comment]: # (End Badges) - Github4s ============= @@ -14,14 +10,10 @@ Github4s To get started with SBT, simply add the following to your build.sbt file. -[comment]: # (Start Replace) - ```scala libraryDependencies += "com.47deg" %% "github4s" % "0.24.0" ``` -[comment]: # (End Replace) - ## Github4s in the wild If you wish to add your library here please consider a PR to include it in the list below. @@ -32,11 +24,8 @@ If you wish to add your library here please consider a PR to include it in the l | | [**dashing**](https://github.com/benfradet/dashing) | Dashing is a collection of dashboards to monitor the health of an open source organization. | | [**cla-bot**](https://github.com/snowplow-incubator/cla-bot) | Bot making sure external contributors sign a CLA. -[comment]: # (Start Copyright) # Copyright Github4s is designed and developed by 47 Degrees Copyright (C) 2016-2020 47 Degrees. - -[comment]: # (End Copyright) diff --git a/build.sbt b/build.sbt index 0a2ddfdc6..b0c62c8ad 100644 --- a/build.sbt +++ b/build.sbt @@ -1,41 +1,28 @@ -addCommandAlias("ci-test", "+scalafmtCheckAll; +scalafmtSbtCheck; +docs/mdoc; +test") -addCommandAlias("ci-docs", "project-docs/mdoc; docs/mdoc; headerCreateAll") -addCommandAlias("ci-microsite", "docs/publishMicrosite") +ThisBuild / organization := "com.47deg" +ThisBuild / scalaVersion := "2.13.2" +ThisBuild / crossScalaVersions := Seq("2.12.11", "2.13.2") + +addCommandAlias("ci-test", "scalafmtCheckAll; scalafmtSbtCheck; mdoc; testCovered") +addCommandAlias("ci-docs", "github; mdoc; headerCreateAll; publishMicrosite") +addCommandAlias("ci-publish", "github; ci-release") skip in publish := true -lazy val github4s = project - .enablePlugins(BuildInfoPlugin) - .settings( - buildInfoKeys := Seq[BuildInfoKey]( - name, - version, - "token" -> sys.env.getOrElse("GITHUB_TOKEN", "") - ), - buildInfoPackage := "github4s" - ) - .settings(coreDeps: _*) +lazy val github4s = project.settings(coreDeps: _*) ////////// // DOCS // ////////// -lazy val docs: Project = project - .aggregate(github4s) +lazy val microsite: Project = project .dependsOn(github4s) - .settings(micrositeSettings: _*) - .settings(skip in publish := true) .enablePlugins(MicrositesPlugin) .enablePlugins(ScalaUnidocPlugin) - .settings( - unidocProjectFilter in (ScalaUnidoc, unidoc) := inProjects(github4s, docs) - ) + .settings(micrositeSettings: _*) + .settings(skip in publish := true) + .settings(unidocProjectFilter in (ScalaUnidoc, unidoc) := inProjects(github4s, microsite)) -lazy val `project-docs` = (project in file(".docs")) - .aggregate(github4s) - .dependsOn(github4s) - .settings(moduleName := "github4s-project-docs") - .settings(mdocIn := file(".docs")) +lazy val documentation = project + .enablePlugins(MdocPlugin) .settings(mdocOut := file(".")) .settings(skip in publish := true) - .enablePlugins(MdocPlugin) diff --git a/.docs/AUTHORS.md b/docs/AUTHORS.md similarity index 100% rename from .docs/AUTHORS.md rename to docs/AUTHORS.md diff --git a/.docs/CODE_OF_CONDUCT.md b/docs/CODE_OF_CONDUCT.md similarity index 100% rename from .docs/CODE_OF_CONDUCT.md rename to docs/CODE_OF_CONDUCT.md diff --git a/.docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md similarity index 100% rename from .docs/CONTRIBUTING.md rename to docs/CONTRIBUTING.md diff --git a/.docs/LICENSE.md b/docs/LICENSE.md similarity index 100% rename from .docs/LICENSE.md rename to docs/LICENSE.md diff --git a/.docs/NOTICE.md b/docs/NOTICE.md similarity index 100% rename from .docs/NOTICE.md rename to docs/NOTICE.md diff --git a/.docs/README.md b/docs/README.md similarity index 91% rename from .docs/README.md rename to docs/README.md index 04070e8ea..cd6e2e027 100644 --- a/.docs/README.md +++ b/docs/README.md @@ -1,10 +1,6 @@ -[comment]: # (Start Badges) - [![Join the chat at https://gitter.im/47degrees/github4s](https://badges.gitter.im/47degrees/github4s.svg)](https://gitter.im/47degrees/github4s?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![codecov.io](http://codecov.io/gh/47degrees/github4s/branch/master/graph/badge.svg)](http://codecov.io/gh/47degrees/github4s) [![Maven Central](https://img.shields.io/badge/maven%20central-@VERSION@-green.svg)](https://oss.sonatype.org/#nexus-search;gav~com.47deg~github4s*) [![License](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://raw.githubusercontent.com/47degrees/github4s/master/LICENSE) [![Latest version](https://img.shields.io/badge/github4s-@VERSION@-green.svg)](https://index.scala-lang.org/47degrees/github4s) [![GitHub Issues](https://img.shields.io/github/issues/47degrees/github4s.svg)](https://github.com/47degrees/github4s/issues) -[comment]: # (End Badges) - Github4s ============= @@ -14,14 +10,10 @@ Github4s To get started with SBT, simply add the following to your build.sbt file. -[comment]: # (Start Replace) - ```scala libraryDependencies += "com.47deg" %% "github4s" % "@VERSION@" ``` -[comment]: # (End Replace) - ## Github4s in the wild If you wish to add your library here please consider a PR to include it in the list below. @@ -32,11 +24,8 @@ If you wish to add your library here please consider a PR to include it in the l | | [**dashing**](https://github.com/benfradet/dashing) | Dashing is a collection of dashboards to monitor the health of an open source organization. | | [**cla-bot**](https://github.com/snowplow-incubator/cla-bot) | Bot making sure external contributors sign a CLA. -[comment]: # (Start Copyright) # Copyright Github4s is designed and developed by 47 Degrees Copyright (C) 2016-2020 47 Degrees. - -[comment]: # (End Copyright) diff --git a/docs/docs/activity.md b/microsite/docs/activity.md similarity index 100% rename from docs/docs/activity.md rename to microsite/docs/activity.md diff --git a/docs/docs/auth.md b/microsite/docs/auth.md similarity index 100% rename from docs/docs/auth.md rename to microsite/docs/auth.md diff --git a/docs/docs/contributing.md b/microsite/docs/contributing.md similarity index 100% rename from docs/docs/contributing.md rename to microsite/docs/contributing.md diff --git a/docs/docs/docs.md b/microsite/docs/docs.md similarity index 100% rename from docs/docs/docs.md rename to microsite/docs/docs.md diff --git a/docs/docs/gist.md b/microsite/docs/gist.md similarity index 100% rename from docs/docs/gist.md rename to microsite/docs/gist.md diff --git a/docs/docs/git_data.md b/microsite/docs/git_data.md similarity index 100% rename from docs/docs/git_data.md rename to microsite/docs/git_data.md diff --git a/docs/docs/index.md b/microsite/docs/index.md similarity index 100% rename from docs/docs/index.md rename to microsite/docs/index.md diff --git a/docs/docs/issue.md b/microsite/docs/issue.md similarity index 100% rename from docs/docs/issue.md rename to microsite/docs/issue.md diff --git a/docs/docs/organization.md b/microsite/docs/organization.md similarity index 100% rename from docs/docs/organization.md rename to microsite/docs/organization.md diff --git a/docs/docs/project.md b/microsite/docs/project.md similarity index 100% rename from docs/docs/project.md rename to microsite/docs/project.md diff --git a/docs/docs/pull_request.md b/microsite/docs/pull_request.md similarity index 100% rename from docs/docs/pull_request.md rename to microsite/docs/pull_request.md diff --git a/docs/docs/repository.md b/microsite/docs/repository.md similarity index 100% rename from docs/docs/repository.md rename to microsite/docs/repository.md diff --git a/docs/docs/team.md b/microsite/docs/team.md similarity index 100% rename from docs/docs/team.md rename to microsite/docs/team.md diff --git a/docs/docs/user.md b/microsite/docs/user.md similarity index 100% rename from docs/docs/user.md rename to microsite/docs/user.md diff --git a/docs/src/main/resources/microsite/data/menu.yml b/microsite/src/main/resources/microsite/data/menu.yml similarity index 100% rename from docs/src/main/resources/microsite/data/menu.yml rename to microsite/src/main/resources/microsite/data/menu.yml diff --git a/docs/src/main/resources/microsite/img/jumbotron_pattern.png b/microsite/src/main/resources/microsite/img/jumbotron_pattern.png similarity index 100% rename from docs/src/main/resources/microsite/img/jumbotron_pattern.png rename to microsite/src/main/resources/microsite/img/jumbotron_pattern.png diff --git a/docs/src/main/resources/microsite/img/jumbotron_pattern2x.png b/microsite/src/main/resources/microsite/img/jumbotron_pattern2x.png similarity index 100% rename from docs/src/main/resources/microsite/img/jumbotron_pattern2x.png rename to microsite/src/main/resources/microsite/img/jumbotron_pattern2x.png diff --git a/docs/src/main/resources/microsite/img/light-navbar-brand.svg b/microsite/src/main/resources/microsite/img/light-navbar-brand.svg similarity index 100% rename from docs/src/main/resources/microsite/img/light-navbar-brand.svg rename to microsite/src/main/resources/microsite/img/light-navbar-brand.svg diff --git a/docs/src/main/resources/microsite/img/light-sidebar-brand.svg b/microsite/src/main/resources/microsite/img/light-sidebar-brand.svg similarity index 100% rename from docs/src/main/resources/microsite/img/light-sidebar-brand.svg rename to microsite/src/main/resources/microsite/img/light-sidebar-brand.svg diff --git a/docs/src/main/resources/microsite/img/light_navbar_brand.png b/microsite/src/main/resources/microsite/img/light_navbar_brand.png similarity index 100% rename from docs/src/main/resources/microsite/img/light_navbar_brand.png rename to microsite/src/main/resources/microsite/img/light_navbar_brand.png diff --git a/docs/src/main/resources/microsite/img/navbar_brand.png b/microsite/src/main/resources/microsite/img/navbar_brand.png similarity index 100% rename from docs/src/main/resources/microsite/img/navbar_brand.png rename to microsite/src/main/resources/microsite/img/navbar_brand.png diff --git a/docs/src/main/resources/microsite/img/navbar_brand2x.png b/microsite/src/main/resources/microsite/img/navbar_brand2x.png similarity index 100% rename from docs/src/main/resources/microsite/img/navbar_brand2x.png rename to microsite/src/main/resources/microsite/img/navbar_brand2x.png diff --git a/docs/src/main/resources/microsite/img/poster.png b/microsite/src/main/resources/microsite/img/poster.png similarity index 100% rename from docs/src/main/resources/microsite/img/poster.png rename to microsite/src/main/resources/microsite/img/poster.png diff --git a/docs/src/main/resources/microsite/img/sidebar_brand.png b/microsite/src/main/resources/microsite/img/sidebar_brand.png similarity index 100% rename from docs/src/main/resources/microsite/img/sidebar_brand.png rename to microsite/src/main/resources/microsite/img/sidebar_brand.png diff --git a/docs/src/main/resources/microsite/img/sidebar_brand2x.png b/microsite/src/main/resources/microsite/img/sidebar_brand2x.png similarity index 100% rename from docs/src/main/resources/microsite/img/sidebar_brand2x.png rename to microsite/src/main/resources/microsite/img/sidebar_brand2x.png diff --git a/project/ProjectPlugin.scala b/project/ProjectPlugin.scala index 574bb016b..e122ca875 100644 --- a/project/ProjectPlugin.scala +++ b/project/ProjectPlugin.scala @@ -3,9 +3,7 @@ import microsites._ import microsites.MicrositesPlugin.autoImport._ import sbt.Keys._ import sbt._ -import scoverage.ScoverageKeys import scoverage.ScoverageKeys._ -import com.alejandrohdezma.sbt.github.SbtGithubPlugin import sbtunidoc.ScalaUnidocPlugin.autoImport._ import mdoc.MdocPlugin.autoImport._ @@ -13,22 +11,17 @@ object ProjectPlugin extends AutoPlugin { override def trigger: PluginTrigger = allRequirements - override def requires: Plugins = SbtGithubPlugin - object autoImport { lazy val V = new { - val scala212: String = "2.12.10" - val scala213: String = "2.13.1" - val base64: String = "0.2.9" - val cats: String = "2.1.1" - val catsEffect: String = "2.1.1" - val circe: String = "0.13.0" - val http4s: String = "0.21.4" - val paradise: String = "2.1.1" - val scalamock: String = "4.4.0" - val scalatest: String = "3.1.2" - val silencer: String = "1.6.0" + val base64: String = "0.2.9" + val cats: String = "2.1.1" + val circe: String = "0.13.0" + val http4s: String = "0.21.4" + val paradise: String = "2.1.1" + val scalamock: String = "4.4.0" + val scalatest: String = "3.1.2" + val silencer: String = "1.7.0" } lazy val docsMappingsAPIDir: SettingKey[String] = @@ -39,8 +32,6 @@ object ProjectPlugin extends AutoPlugin { micrositeDescription := "Github API wrapper written in Scala", micrositeBaseUrl := "github4s", micrositeDocumentationUrl := "docs", - micrositeGithubOwner := "47degrees", - micrositeGithubRepo := "github4s", micrositeAuthor := "Github4s contributors", micrositeGithubToken := Option(System.getenv().get("GITHUB_TOKEN")), micrositeCompilingDocsTool := WithMdoc, @@ -90,38 +81,25 @@ object ProjectPlugin extends AutoPlugin { "com.github.ghik" % "silencer-lib" % V.silencer % Provided cross CrossVersion.full, compilerPlugin("com.github.ghik" % "silencer-plugin" % V.silencer cross CrossVersion.full) ), - libraryDependencies ++= (CrossVersion.partialVersion(scalaBinaryVersion.value) match { - case Some((2, 13)) => Seq.empty[ModuleID] - case _ => - Seq(compilerPlugin("org.scalamacros" %% "paradise" % V.paradise cross CrossVersion.full)) - }) + libraryDependencies ++= on(2, 12)( + compilerPlugin("org.scalamacros" %% "paradise" % V.paradise cross CrossVersion.full) + ).value ) } - import autoImport.V - override def projectSettings: Seq[Def.Setting[_]] = Seq( - organization := "com.47deg", - crossScalaVersions := Seq(V.scala212, V.scala213), - scalacOptions := { - val withStripedLinter = scalacOptions.value filterNot Set("-Xlint", "-Xfuture").contains - (CrossVersion.partialVersion(scalaBinaryVersion.value) match { - case Some((2, 13)) => withStripedLinter :+ "-Ymacro-annotations" - case _ => withStripedLinter - }) :+ "-language:higherKinds" - }, + scalacOptions ++= on(2, 13)("-Ymacro-annotations").value, coverageMinimum := 70d, - coverageFailOnMinimum := true, - coverageExcludedPackages := ";github4s\\.scalaz\\..*", - // This is necessary to prevent packaging the BuildInfo with - // sensible information like the Github token. Do not remove. - mappings in (Compile, packageBin) ~= { (ms: Seq[(File, String)]) => - ms filter { - case (_, toPath) => - !toPath.startsWith("github4s/BuildInfo") - } - } + coverageFailOnMinimum := true ) + + def on[A](major: Int, minor: Int)(a: A): Def.Initialize[Seq[A]] = + Def.setting { + CrossVersion.partialVersion(scalaVersion.value) match { + case Some(v) if v == (major, minor) => Seq(a) + case _ => Nil + } + } } diff --git a/project/plugins.sbt b/project/plugins.sbt index 760326671..277466c4a 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,13 +1,13 @@ -addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.9.0") -addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.5.3") -addSbtPlugin("com.47deg" % "sbt-microsites" % "1.2.0") -addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.6.1") -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.3.3") -addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.2.0") -addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.4.3") -addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.4.0") -addSbtPlugin("com.alejandrohdezma" %% "sbt-github" % "0.6.0") -addSbtPlugin("com.alejandrohdezma" % "sbt-github-header" % "0.6.0") -addSbtPlugin("com.alejandrohdezma" % "sbt-github-mdoc" % "0.6.0") -addSbtPlugin("com.alejandrohdezma" % "sbt-mdoc-toc" % "0.2") -addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.1.11") +addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.5.3") +addSbtPlugin("com.47deg" % "sbt-microsites" % "1.2.1") +addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.6.1") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") +addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.2.0") +addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.4.3") +addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.6.0") +addSbtPlugin("com.alejandrohdezma" % "sbt-codecov" % "0.2.0") +addSbtPlugin("com.alejandrohdezma" % "sbt-github" % "0.8.2") +addSbtPlugin("com.alejandrohdezma" % "sbt-github-header" % "0.8.2") +addSbtPlugin("com.alejandrohdezma" % "sbt-github-mdoc" % "0.8.2") +addSbtPlugin("com.alejandrohdezma" % "sbt-remove-test-from-pom" % "0.1.0") +addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.1.11")