Skip to content

Commit

Permalink
Merge pull request #86 from eed3si9n/wip/scalafix
Browse files Browse the repository at this point in the history
Bazel + Scalafix
  • Loading branch information
eed3si9n committed Jul 16, 2023
2 parents 63c5ada + de41fc2 commit 45dd59f
Show file tree
Hide file tree
Showing 42 changed files with 371 additions and 69 deletions.
1 change: 0 additions & 1 deletion .bazelignore

This file was deleted.

1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,4 @@ jobs:
run: |
./bazelenv scala_2.13
bazel test ...
bin/scalafix ... --check
5 changes: 5 additions & 0 deletions .scalafix.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rules = [
DisableSyntax,
OrganizeImports,
RemoveUnused,
]
13 changes: 13 additions & 0 deletions 3rdparty/jvm/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
load("@scala_multiverse//:cross_scala_config.bzl", "maven_dep")

alias(
name = "ch_epfl_scala__scalafix-cli",
actual = maven_dep("ch.epfl.scala:::scalafix-cli"),
visibility = ["//visibility:public"],
)

alias(
name = "org_scalameta__semanticdb_scalac",
actual = maven_dep("org.scalameta:::semanticdb.scalac"),
visibility = ["//visibility:public"],
)
2 changes: 2 additions & 0 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ UNFILTERED_VER = "0.10.4"

maven.install(
artifacts = [
"ch.epfl.scala:::scalafix-cli:0.11.0",
"org.scalameta:::semanticdb-scalac:4.8.4",
"com.squareup.okhttp3:okhttp:3.14.2",
"com.typesafe::ssl-config-core:0.6.1",
"org.asynchttpclient:async-http-client:2.0.39",
Expand Down
11 changes: 5 additions & 6 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ http_archive(
url = "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/{}/bazel-skylib-{}.tar.gz".format(skylib_version, skylib_version),
)

rules_scala_version = "56bfe4f3cb79e1d45a3b64dde59a3773f67174e2"
rules_scala_version = "58b98f2f90c3c9038d53a80b5f7901bc96ba3f60"
http_archive(
name = "io_bazel_rules_scala",
sha256 = "f1a4a794bad492fee9eac1c988702e1837373435c185736df45561fe68e85227",
sha256 = "e96f0b9965b40efe0a750ce124bf468b785e0e1a1dd981772d3e043eba4bb5b3",
strip_prefix = "rules_scala-%s" % rules_scala_version,
type = "zip",
url = "https://github.com/bazelbuild/rules_scala/archive/%s.zip" % rules_scala_version,
Expand All @@ -25,15 +25,14 @@ local_repository(
load("@scala_multiverse//:cross_scala_config.bzl", "cross_scala_config")
cross_scala_config()

load("@io_bazel_rules_scala//scala:scala.bzl", "scala_repositories")
scala_repositories()
load("@scala_multiverse//:cross_scala_repositories.bzl", "cross_scala_repositories")
cross_scala_repositories()

load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
rules_proto_dependencies()
rules_proto_toolchains()

load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_register_toolchains")
scala_register_toolchains()
register_toolchains("//toolchains:scala_toolchain")

rules_jvm_export_version = "bb586d5ecb4fd6190197dbd2a15919b7fbdc1d3d"
http_archive(
Expand Down
18 changes: 18 additions & 0 deletions bin/scalafix
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash

set -o errexit # abort on nonzero exitstatus
set -o nounset # abort on unbound variable
set -o pipefail # don't hide errors within pipes

BUILD_TARGET_QUERY=${1:-}
if [[ -z "$BUILD_TARGET_QUERY" ]]; then
echo "usage: $0 <query> --rules <scalafix rules>"
exit 1
fi
shift

SCALAFIX_TARGETS=$(bazel query "kind('scalafix', $BUILD_TARGET_QUERY)")
for TARGET in $SCALAFIX_TARGETS; do
echo "processing $TARGET"
bazel run "$TARGET" -- $@
done
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_library", "scala_binary", "scala_test")
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_binary", "scala_test")
load("@scala_multiverse//:cross_scala_config.bzl", "maven_dep")
load("//tools/rules/scala:scala.bzl", "scala_library")

scala_library(
name = "gigahorsetest",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,19 @@

package gigahorsetest

import gigahorse.HeaderNames
import gigahorse.MimeTypes
import gigahorse.SignatureCalculator
import gigahorse.WebSocketEvent
import org.scalatest.Assertion
import org.scalatest.flatspec.AsyncFlatSpec
import org.scalatest.matchers.should.Matchers
import unfiltered.netty.Server

import scala.util.Success
import scala.concurrent._
import java.io.File
import java.nio.charset.Charset

import gigahorse.{HeaderNames, MimeTypes, SignatureCalculator, WebSocketEvent}
import unfiltered.netty.Server
import scala.concurrent._
import scala.util.Success

abstract class BaseHttpClientSpec extends AsyncFlatSpec with Matchers {
val port: Int = unfiltered.util.Port.any
Expand Down
2 changes: 1 addition & 1 deletion common-test/src/main/scala/gigahorsetest/TestPlan.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@

package gigahorsetest

import unfiltered.netty.cycle.Planify
import unfiltered.request._
import unfiltered.response._
import unfiltered.netty.cycle.Planify

object TestPlan {
val Fail = Unauthorized ~> WWWAuthenticate("""Basic realm="/"""")
Expand Down
3 changes: 2 additions & 1 deletion core/src/main/BUILD → core/src/main/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_library", "scala_binary", "scala_test")
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_binary", "scala_test")
load("@twitter_rules_jvm_export//jvm_export:jvm_export.bzl", "jvm_export")
load("@scala_multiverse//:cross_scala_config.bzl", "maven_dep")
load("//tools/rules/scala:scala.bzl", "scala_library")

scala_library(
name = "main",
Expand Down
4 changes: 1 addition & 3 deletions core/src/main/contraband-scala/gigahorse/EmptyBody.scala
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@ override def hashCode: Int = {
override def toString: String = {
"EmptyBody()"
}
private[this] def copy(): EmptyBody = {
new EmptyBody()
}


}
object EmptyBody {
Expand Down
File renamed without changes.
10 changes: 6 additions & 4 deletions core/src/main/scala/gigahorse/ConfigExtra.scala
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@

package gigahorse

import java.io.File
import java.nio.charset.Charset
import java.net.URI
import com.typesafe.config.{ Config => XConfig }
import scala.concurrent.duration.{ Duration, FiniteDuration }
import com.typesafe.sslconfig.ssl.SSLConfigFactory

import java.io.File
import java.net.URI
import java.nio.charset.Charset
import scala.concurrent.duration.Duration
import scala.concurrent.duration.FiniteDuration

object ConfigParser {
import ConfigDefaults._
implicit def toRichXConfig(config: XConfig): RichXConfig = new RichXConfig(config)
Expand Down
4 changes: 2 additions & 2 deletions core/src/main/scala/gigahorse/DownloadHandler.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

package gigahorse

import java.io.{ File, FileOutputStream }

import java.io.File
import java.io.FileOutputStream
import scala.concurrent.Future
import scala.util.Try

Expand Down
3 changes: 2 additions & 1 deletion core/src/main/scala/gigahorse/FutureLifter.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@

package gigahorse

import scala.concurrent.{ Future, ExecutionContext }
import scala.concurrent.ExecutionContext
import scala.concurrent.Future

/**
* Lifts Future[A] into Future[Either[Throwable, A]]
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/gigahorse/GigahorseSupport.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@

package gigahorse

import java.io.File
import java.nio.ByteBuffer
import java.nio.charset.Charset
import java.io.File
import scala.concurrent.Future

/** Common interface for Gigahorse backends.
Expand Down
3 changes: 2 additions & 1 deletion core/src/main/scala/gigahorse/HttpClient.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@

package gigahorse

import scala.concurrent.{ Future, ExecutionContext }
import java.io.File
import scala.concurrent.ExecutionContext
import scala.concurrent.Future

abstract class HttpClient extends AutoCloseable {
def underlying[A]: A
Expand Down
3 changes: 2 additions & 1 deletion core/src/main/scala/gigahorse/SSL.scala
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ package gigahorse

import com.typesafe.sslconfig.ssl._
import com.typesafe.sslconfig.util.NoopLogger
import javax.net.ssl._

import java.security.KeyStore
import java.security.cert.X509Certificate
import javax.net.ssl._

private[gigahorse] object SSL {
def buildContext(sslConfig: SSLConfigSettings): (SSLContext, Option[TrustManager]) = {
Expand Down
1 change: 1 addition & 0 deletions core/src/main/scala/gigahorse/Stream.scala
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package gigahorse

import org.reactivestreams.Publisher

import scala.concurrent.Future

abstract class Stream[A] {
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_library", "scala_binary", "scala_test")
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_binary", "scala_test")
load("@twitter_rules_jvm_export//jvm_export:jvm_export.bzl", "jvm_export")
load("@scala_multiverse//:cross_scala_config.bzl", "maven_dep")
load("//tools/rules/scala:scala.bzl", "scala_library")

scala_library(
name = "okhttp",
Expand Down
34 changes: 25 additions & 9 deletions okhttp/src/main/scala/gigahorse/support/okhttp/OkhClient.scala
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,33 @@
package gigahorse
package support.okhttp

import java.io.{ByteArrayOutputStream, File, IOException}

import okhttp3.{OkHttpClient => XOkHttpClient, Request => XRequest, Response => XResponse}
import okhttp3.{Authenticator, Cache, Call, Callback, Credentials, HttpUrl, Interceptor, MediaType, RequestBody, Route}

import scala.concurrent.{ExecutionContext, Future, Promise}
import scala.util.control.NonFatal
import okio.Okio
import com.typesafe.sslconfig.ssl._
import javax.net.ssl.{SSLContext, TrustManager, X509TrustManager}
import okhttp3.Authenticator
import okhttp3.Cache
import okhttp3.Call
import okhttp3.Callback
import okhttp3.Credentials
import okhttp3.HttpUrl
import okhttp3.Interceptor
import okhttp3.MediaType
import okhttp3.RequestBody
import okhttp3.Route
import okhttp3.{OkHttpClient => XOkHttpClient}
import okhttp3.{Request => XRequest}
import okhttp3.{Response => XResponse}
import okio.Okio

import java.io.ByteArrayOutputStream
import java.io.File
import java.io.IOException
import java.security.SecureRandom
import javax.net.ssl.SSLContext
import javax.net.ssl.TrustManager
import javax.net.ssl.X509TrustManager
import scala.concurrent.ExecutionContext
import scala.concurrent.Future
import scala.concurrent.Promise
import scala.util.control.NonFatal

class OkhClient(config: Config) extends HttpClient {
private type HB = HttpUrl.Builder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package gigahorse
package support.okhttp

import okhttp3.{ Response => XResponse }

import java.nio.ByteBuffer
import scala.collection.JavaConverters._

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@
package gigahorse
package support.okhttp

import scala.concurrent.Future
import okhttp3.Headers

import scala.concurrent.Future

abstract class OkhStreamHandler[A] extends OkhHandler {
def onStatusReceived(status: Int): Unit = ()
def onHeadersReceived(headers: Headers): Unit = ()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,13 @@ package gigahorse
package support.okhttp

import okhttp3.{ Response => XResponse }
import okhttp3.{ WebSocket => XWebSocket , WebSocketListener => XWebSocketListener }
import scala.concurrent.Promise
import okhttp3.{WebSocket => XWebSocket}
import okhttp3.{WebSocketListener => XWebSocketListener}
import okio.ByteString
import scala.util.{ Failure, Success }

import scala.concurrent.Promise
import scala.util.Failure
import scala.util.Success

class OkhWebSocketListener(handler: PartialFunction[WebSocketEvent, Unit],
result: Promise[WebSocket]) extends XWebSocketListener {
Expand Down
File renamed without changes.
30 changes: 30 additions & 0 deletions toolchains/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
load(
"@io_bazel_rules_scala//scala:scala.bzl",
"setup_scala_toolchain",
)

setup_scala_toolchain(
name = "scala_toolchain",
scala_compile_classpath = [
"@maven//:org_scala_lang_scala_compiler",
"@maven//:org_scala_lang_scala_library",
"@maven//:org_scala_lang_scala_reflect",
],
scala_library_classpath = [
"@maven//:org_scala_lang_scala_library",
"@maven//:org_scala_lang_scala_reflect",
],
scala_macro_classpath = [
"@maven//:org_scala_lang_scala_library",
"@maven//:org_scala_lang_scala_reflect",
],
scalacopts = [
"-Yrangepos",
"-deprecation",
"-Xlint",
"-feature",
"-language:existentials",
"-language:higherKinds",
],
visibility = ["//visibility:public"]
)

0 comments on commit 45dd59f

Please sign in to comment.