Skip to content

Commit a089191

Browse files
Updated the README.md
1 parent 8324f8b commit a089191

File tree

1 file changed

+61
-55
lines changed

1 file changed

+61
-55
lines changed

README.md

Lines changed: 61 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
1-
# higherkindness/rules_scala
1+
# lucidsoftware/rules_scala
22

33
[![Build Status](https://github.com/lucidsoftware/rules_scala/workflows/CI/badge.svg)](https://github.com/lucidsoftware/rules_scala/actions)
44

5-
`higherkindness/rules_scala` evolved, in part, from the need for Bazel adoption support for large, monorepo Scala projects.
6-
Bazel is wonderful because it makes use of parallelism and caching to vastly improve build times. However, to see these benefits, a project must first be broken down into
7-
tiny packages and make use of fine-grained dependencies. This is not always a realistic short-term goal for large, monorepo Scala projects.
5+
Previously known as [higherkindness/rules_scala](https://github.com/higherkindness/rules_scala),
6+
`lucidsoftware/rules_scala` evolved, in part, from the need for Bazel adoption support for large,
7+
monorepo Scala projects. Bazel is wonderful because it makes use of parallelism and caching to
8+
vastly improve build times. However, to see these benefits, a project must first be broken down into
9+
tiny packages and make use of fine-grained dependencies. This is not always a realistic short-term
10+
goal for large, monorepo Scala projects.
811

9-
`higherkindness/rules_scala` allows for the optional use of Zinc incremental compilation to provide a stepping stone for these projects as they migrate to Bazel.
12+
`lucidsoftware/rules_scala` allows for the optional use of Zinc incremental compilation to provide a
13+
stepping stone for these projects as they migrate to Bazel. Although we've verified it to be correct
14+
and determinisitc, we recommend leaving this disabled, as fine-grained and isolated targets are
15+
more in-line with the [Bazel philosophy](https://bazel.build/basics/hermeticity).
1016

11-
`higherkindness/rules_scala` is written with maintainability and accessibility in mind. It aims to facilitate the transition to Bazel, and to satisfy use cases throughout the Scala ecosystem.
17+
`lucidsoftware/rules_scala` is written with maintainability and accessibility in mind. It aims to
18+
facilitate the transition to Bazel, and to satisfy use cases throughout the Scala ecosystem.
1219

1320
## Principles
1421

@@ -17,7 +24,8 @@ tiny packages and make use of fine-grained dependencies. This is not always a re
1724
3. Be accessible and maintainable.
1825
4. Have high-quality documentation.
1926

20-
If the right design principles are kept, implementing additional features should be simple and straightforward.
27+
If the right design principles are kept, implementing additional features should be simple and
28+
straightforward.
2129

2230
## Features
2331

@@ -51,73 +59,71 @@ WORKSPACE
5159
```python
5260
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
5361

54-
# Load rules scala annex
55-
rules_scala_annex_version = "ae99fcb08bbddfc24fef00d7b13f6c065e1df8d5"
56-
rules_scala_annex_sha256 = "1630fc7ecc7a4ffeabcdef73c7600eab9cf3fd2377db1f69b8ce1927560211ff"
62+
# rules_java
63+
http_archive(
64+
name = "rules_java",
65+
sha256 = "a9690bc00c538246880d5c83c233e4deb83fe885f54c21bb445eb8116a180b83",
66+
url = "https://github.com/bazelbuild/rules_java/releases/download/7.12.2/rules_java-7.12.2.tar.gz",
67+
)
68+
69+
# Load rules_scala_annex
70+
rules_scala_annex_version = "lucid_2024-11-18"
71+
5772
http_archive(
5873
name = "rules_scala_annex",
59-
sha256 = rules_scala_annex_sha256,
74+
integrity = "sha256-WjZvojiclkiyVxQ1NqkH1lDeGaDLyzQOGiDsCfhVAec=",
6075
strip_prefix = "rules_scala-{}".format(rules_scala_annex_version),
61-
url = "https://github.com/higherkindness/rules_scala/archive/{}.zip".format(rules_scala_annex_version),
76+
type = "zip",
77+
url = "https://github.com/lucidsoftware/rules_scala/archive/{}.zip".format(rules_scala_annex_version),
6278
)
6379

64-
rules_jvm_external_tag = "2.9"
65-
rules_jvm_external_sha256 = "e5b97a31a3e8feed91636f42e19b11c49487b85e5de2f387c999ea14d77c7f45"
80+
rules_jvm_external_version = "6.1"
81+
6682
http_archive(
6783
name = "rules_jvm_external",
68-
sha256 = rules_jvm_external_sha256,
69-
strip_prefix = "rules_jvm_external-{}".format(rules_jvm_external_tag),
70-
url = "https://github.com/bazelbuild/rules_jvm_external/archive/{}.zip".format(rules_jvm_external_tag),
84+
sha256 = "42a6d48eb2c08089961c715a813304f30dc434df48e371ebdd868fc3636f0e82",
85+
strip_prefix = "rules_jvm_external-{}".format(rules_jvm_external_version),
86+
type = "zip",
87+
url = "https://github.com/bazelbuild/rules_jvm_external/archive/{}.zip".format(rules_jvm_external_version),
88+
)
89+
90+
load(
91+
"@rules_scala_annex//rules/scala:workspace.bzl",
92+
"scala_register_toolchains",
93+
"scala_repositories",
94+
)
95+
96+
load(
97+
"@rules_scala_annex//rules/scala_proto:workspace.bzl",
98+
"scala_proto_register_toolchains",
99+
"scala_proto_repositories",
100+
)
101+
102+
load(
103+
"@rules_scala_annex//rules/scalafmt:workspace.bzl",
104+
"scalafmt_default_config",
105+
"scalafmt_repositories",
71106
)
72107

73-
load("@rules_scala_annex//rules/scala:workspace.bzl", "scala_register_toolchains", "scala_repositories")
74108
scala_repositories()
109+
75110
load("@annex//:defs.bzl", annex_pinned_maven_install = "pinned_maven_install")
111+
76112
annex_pinned_maven_install()
77-
scala_register_toolchains(default_scala_toolchain_name = "annex_zinc_3")
78113

79-
load("@rules_scala_annex//rules/scalafmt:workspace.bzl", "scalafmt_default_config", "scalafmt_repositories")
114+
scala_register_toolchains(default_scala_toolchain_name = "annex_zinc_3")
80115
scalafmt_repositories()
116+
81117
load("@annex_scalafmt//:defs.bzl", annex_scalafmt_pinned_maven_install = "pinned_maven_install")
118+
82119
annex_scalafmt_pinned_maven_install()
83120
scalafmt_default_config()
84-
85-
load("@rules_scala_annex//rules/scala_proto:workspace.bzl", "scala_proto_register_toolchains", "scala_proto_repositories",)
86121
scala_proto_repositories()
122+
87123
load("@annex_proto//:defs.bzl", annex_proto_pinned_maven_install = "pinned_maven_install")
124+
88125
annex_proto_pinned_maven_install()
89126
scala_proto_register_toolchains()
90-
91-
# Load bazel skylib and google protobuf
92-
bazel_skylib_tag = "1.0.2"
93-
bazel_skylib_sha256 = "97e70364e9249702246c0e9444bccdc4b847bed1eb03c5a3ece4f83dfe6abc44"
94-
http_archive(
95-
name = "bazel_skylib",
96-
sha256 = bazel_skylib_sha256,
97-
urls = [
98-
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/{tag}/bazel-skylib-{tag}.tar.gz".format(tag = bazel_skylib_tag),
99-
"https://github.com/bazelbuild/bazel-skylib/releases/download/{tag}/bazel-skylib-{tag}.tar.gz".format(tag = bazel_skylib_tag),
100-
],
101-
)
102-
103-
protobuf_tag = "3.10.1"
104-
protobuf_sha256 = "678d91d8a939a1ef9cb268e1f20c14cd55e40361dc397bb5881e4e1e532679b1"
105-
http_archive(
106-
name = "com_google_protobuf",
107-
sha256 = protobuf_sha256,
108-
strip_prefix = "protobuf-{}".format(protobuf_tag),
109-
type = "zip",
110-
url = "https://github.com/protocolbuffers/protobuf/archive/v{}.zip".format(protobuf_tag),
111-
)
112-
113-
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
114-
protobuf_deps()
115-
116-
# Specify the scala compiler we wish to use; in this case, we'll use the default one specified in rules_scala_annex
117-
bind(
118-
name = "default_scala",
119-
actual = "@rules_scala_annex//src/main/scala:annex_zinc_2_13",
120-
)
121127
```
122128

123129
BUILD
@@ -126,8 +132,8 @@ BUILD
126132
load("@rules_scala_annex//rules:scala.bzl", "scala_library")
127133

128134
scala_library(
129-
name = "example",
130-
srcs = glob(["**/*.scala"])
135+
name = "example",
136+
srcs = glob(["*.scala"])
131137
)
132138
```
133139

0 commit comments

Comments
 (0)