Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Publish rules_haskell@0.18 * Use Bazel 6.x
- Loading branch information
Showing
4 changed files
with
390 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,350 @@ | ||
module( | ||
name = "rules_haskell", | ||
version = "0.18", | ||
) | ||
|
||
bazel_dep( | ||
name = "platforms", | ||
version = "0.0.8", | ||
) | ||
bazel_dep( | ||
name = "rules_java", | ||
version = "6.1.0", | ||
) | ||
bazel_dep( | ||
name = "rules_license", | ||
version = "0.0.7", | ||
) | ||
bazel_dep( | ||
name = "protobuf", | ||
version = "21.7", | ||
repo_name = "com_google_protobuf", | ||
) | ||
bazel_dep( | ||
name = "rules_cc", | ||
version = "0.0.9", | ||
) | ||
bazel_dep( | ||
name = "rules_nodejs", | ||
version = "5.8.3", | ||
) | ||
bazel_dep( | ||
name = "rules_python", | ||
version = "0.21.0", | ||
) | ||
bazel_dep( | ||
name = "bazel_skylib", | ||
version = "1.5.0", | ||
) | ||
bazel_dep( | ||
name = "rules_proto", | ||
version = "5.3.0-21.7", | ||
) | ||
bazel_dep( | ||
name = "aspect_rules_js", | ||
version = "1.34.0", | ||
) | ||
bazel_dep( | ||
name = "rules_sh", | ||
version = "0.3.0", | ||
) | ||
|
||
ghc_version = use_extension("//extensions:ghc_version.bzl", "ghc_default_version") | ||
use_repo( | ||
ghc_version, | ||
"rules_haskell_ghc_version", | ||
) | ||
|
||
rules_haskell_dependencies = use_extension( | ||
"//extensions:rules_haskell_dependencies.bzl", | ||
"rules_haskell_dependencies", | ||
) | ||
use_repo( | ||
rules_haskell_dependencies, | ||
"Cabal", | ||
"os_info", | ||
"rules_haskell_stack", | ||
"rules_haskell_stack_update", | ||
"rules_haskell_worker_dependencies", | ||
) | ||
|
||
asterius = use_extension("@rules_haskell//haskell/asterius:extension.bzl", "rules_haskell_asterius") | ||
use_repo( | ||
asterius, | ||
"rules_haskell_asterius_build_setting", | ||
"rules_haskell_asterius_webpack", | ||
) | ||
|
||
haskell_toolchains = use_extension( | ||
"@rules_haskell//extensions:haskell_toolchains.bzl", | ||
"haskell_toolchains", | ||
) | ||
haskell_toolchains.bindists() | ||
use_repo( | ||
haskell_toolchains, | ||
"all_bindist_toolchains", | ||
"rules_haskell_ghc_windows_amd64_cc_toolchain", | ||
"rules_haskell_python_local", | ||
) | ||
|
||
# We need to register the nix toolchain before the bindist ones so it | ||
# take precedence when we use the nixpkgs config. | ||
register_toolchains( | ||
"@rules_haskell_ghc_nixpkgs_toolchain//:toolchain", | ||
dev_dependency = True, | ||
) | ||
|
||
register_toolchains( | ||
"@all_bindist_toolchains//:all", | ||
"@rules_haskell_ghc_windows_amd64_cc_toolchain//:all", | ||
"@rules_haskell_python_local//:toolchain", | ||
) | ||
|
||
# Setup node toolchain and install webpack for asterius. | ||
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") | ||
node.toolchain(node_version = "16.9.0") | ||
|
||
npm = use_extension( | ||
"@aspect_rules_js//npm:extensions.bzl", | ||
"npm", | ||
) | ||
npm.npm_translate_lock( | ||
name = "rules_haskell_npm", | ||
link_workspace = "rules_haskell", | ||
pnpm_lock = "//haskell/asterius/npm:pnpm-lock.yaml", | ||
verify_node_modules_ignored = "@rules_haskell//:.bazelignore", | ||
) | ||
use_repo(npm, "rules_haskell_npm") | ||
|
||
#### Development dependencies #### | ||
bazel_dep( | ||
name = "rules_nixpkgs_core", | ||
version = "0.10.0", | ||
dev_dependency = True, | ||
) | ||
bazel_dep( | ||
name = "rules_nixpkgs_cc", | ||
version = "0.10.0", | ||
dev_dependency = True, | ||
) | ||
bazel_dep( | ||
name = "rules_nixpkgs_python", | ||
version = "0.10.0", | ||
dev_dependency = True, | ||
) | ||
bazel_dep( | ||
name = "rules_nixpkgs_go", | ||
version = "0.10.0", | ||
dev_dependency = True, | ||
) | ||
bazel_dep( | ||
name = "rules_nixpkgs_posix", | ||
version = "0.10.0", | ||
dev_dependency = True, | ||
) | ||
bazel_dep( | ||
name = "stardoc", | ||
version = "0.6.2", | ||
dev_dependency = True, | ||
repo_name = "io_bazel_stardoc", | ||
) | ||
bazel_dep( | ||
name = "rules_nixpkgs_nodejs", | ||
version = "0.10.0", | ||
dev_dependency = True, | ||
) | ||
|
||
non_module_dev_deps = use_extension( | ||
"//:non_module_dev_deps.bzl", | ||
"non_module_dev_deps", | ||
dev_dependency = True, | ||
) | ||
use_repo( | ||
non_module_dev_deps, | ||
"examples", | ||
"examples-arm", | ||
"tutorial", | ||
) | ||
use_repo( | ||
non_module_dev_deps, | ||
"nixpkgs_default", | ||
"rules_haskell_ghc_nixpkgs", | ||
"rules_haskell_ghc_nixpkgs_toolchain", | ||
) | ||
use_repo( | ||
non_module_dev_deps, | ||
"nixpkgs_config_cc", | ||
"nixpkgs_config_cc_info", | ||
"nixpkgs_config_cc_toolchains", | ||
"nixpkgs_python_toolchain", | ||
) | ||
|
||
register_toolchains( | ||
"@nixpkgs_config_cc_toolchains//:all", | ||
"@nixpkgs_python_toolchain//:toolchain", | ||
dev_dependency = True, | ||
) | ||
|
||
# For buildifier | ||
bazel_dep( | ||
name = "rules_go", | ||
version = "0.39.1", | ||
dev_dependency = True, | ||
repo_name = "io_bazel_rules_go", | ||
) | ||
|
||
use_repo( | ||
non_module_dev_deps, | ||
"com_github_bazelbuild_buildtools", | ||
"nixpkgs_go_sdk_toolchains", | ||
) | ||
|
||
register_toolchains( | ||
"@nixpkgs_go_sdk_toolchains//:all", | ||
dev_dependency = True, | ||
) | ||
|
||
go_sdk = use_extension( | ||
"@io_bazel_rules_go//go:extensions.bzl", | ||
"go_sdk", | ||
dev_dependency = True, | ||
) | ||
go_sdk.download( | ||
version = "1.19.7", | ||
) | ||
|
||
bazel_dep( | ||
name = "gazelle", | ||
version = "0.33.0", | ||
dev_dependency = True, | ||
) | ||
|
||
go_deps = use_extension( | ||
"@gazelle//:extensions.bzl", | ||
"go_deps", | ||
dev_dependency = True, | ||
) | ||
go_deps.module( | ||
path = "github.com/gogo/protobuf", | ||
sum = "h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=", | ||
version = "v1.3.2", | ||
) | ||
use_repo( | ||
go_deps, | ||
"com_github_gogo_protobuf", | ||
"com_github_golang_mock", | ||
"com_github_golang_protobuf", | ||
"org_golang_google_genproto", | ||
"org_golang_google_grpc", | ||
"org_golang_google_protobuf", | ||
"org_golang_x_net", | ||
"org_golang_x_tools", | ||
) | ||
|
||
# For documentation | ||
use_repo( | ||
non_module_dev_deps, | ||
"graphviz", | ||
"linux_pandoc", | ||
"macos_pandoc", | ||
"nixpkgs_pandoc", | ||
"sphinx", | ||
"zip", | ||
) | ||
|
||
register_toolchains( | ||
"@rules_haskell//docs/pandoc:nixpkgs", | ||
"@rules_haskell//docs/pandoc:linux", | ||
"@rules_haskell//docs/pandoc:macos", | ||
"@rules_haskell//tests:protobuf-toolchain", | ||
"@rules_haskell//tests:protobuf-toolchain-osx_arm64", | ||
dev_dependency = True, | ||
) | ||
|
||
stack_snapshot = use_extension( | ||
"@rules_haskell//extensions:stack_snapshot.bzl", | ||
"stack_snapshot", | ||
) | ||
|
||
# The @stackage workspace is referenced in the `stack_snapshot` macro to | ||
# forward the generated `components.json` file to the `_stack_executables` | ||
# repository rule which generates the `@stackage-exe` workspace. This reference | ||
# is resolved within the scope of rules_haskell and therefore requires | ||
# `@stackage` to be imported. | ||
# See https://github.com/tweag/rules_haskell/blob/e31617dcd76264f00a833625f70e1e46e91fbc57/haskell/cabal.bzl#L2709 | ||
# TODO[AH] Find a way to not require an import of `@stackage` into rules_haskell. | ||
use_repo( | ||
stack_snapshot, | ||
"stackage", | ||
) | ||
|
||
stack_snapshot_dev = use_extension( | ||
"@rules_haskell//extensions:stack_snapshot.bzl", | ||
"stack_snapshot", | ||
dev_dependency = True, | ||
) | ||
|
||
[ | ||
stack_snapshot_dev.package( | ||
name = package, | ||
) | ||
for package in [ | ||
# Core libraries | ||
"base", | ||
"bytestring", | ||
"containers", | ||
"deepseq", | ||
"mtl", | ||
"text", | ||
"vector", | ||
# For tests | ||
"lens-family-core", | ||
"data-default-class", | ||
"proto-lens", | ||
"lens-family", | ||
] | ||
] | ||
|
||
stack_snapshot_dev.package( | ||
name = "ghc-paths", | ||
vendored = "@rules_haskell//tools/ghc-paths", | ||
) | ||
stack_snapshot_dev.package( | ||
name = "proto-lens-protoc", | ||
components = [ | ||
"lib", | ||
"exe", | ||
], | ||
setup_deps = ["@Cabal//:Cabal"], | ||
) | ||
|
||
[ | ||
# See https://github.com/tweag/rules_haskell/issues/1871 | ||
stack_snapshot_dev.package( | ||
name = package, | ||
setup_deps = ["@Cabal//:Cabal"], | ||
) | ||
for package in [ | ||
"HUnit", | ||
"bifunctors", | ||
"call-stack", | ||
"generic-deriving", | ||
"mono-traversable", | ||
"proto-lens-runtime", | ||
"quickcheck-io", | ||
"transformers-compat", | ||
"type-errors", | ||
"typed-process", | ||
"unliftio-core", | ||
] | ||
] | ||
|
||
stack_snapshot_dev.stack_snapshot_json(label = "@rules_haskell//:stackage_snapshot.json") | ||
stack_snapshot_dev.snapshot( | ||
local_snapshot = "@rules_haskell//:stackage_snapshot.yaml", | ||
) | ||
use_repo( | ||
stack_snapshot_dev, | ||
"stackage-exe", | ||
"stackage-unpinned", | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
bazel: 6.x | ||
matrix: | ||
platform: | ||
- debian10 | ||
- ubuntu2004 | ||
- macos | ||
- macos_arm64 | ||
# disable Windows for now, it fails with | ||
# "this rule is missing dependency declarations for the following files ..." | ||
#- windows | ||
tasks: | ||
verify_targets: | ||
name: Verify build targets | ||
platform: ${{ platform }} | ||
environment: | ||
BAZEL_USE_CPP_ONLY_TOOLCHAIN: '1' | ||
shell_commands: | ||
- | | ||
if apt --version >/dev/null 2>/dev/null; then | ||
sudo apt update | ||
sudo apt install --no-install-recommends -yy libtinfo5 libgmp-dev | ||
fi | ||
batch_commands: | ||
# enforce certificate update | ||
- 'powershell -Command "Invoke-WebRequest -Uri https://hackage.haskell.org/root.json -OutFile out.json"' | ||
- set BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 | ||
build_flags: | ||
- '--incompatible_enable_cc_toolchain_resolution' | ||
build_targets: | ||
- '@rules_haskell//haskell/...' | ||
- '@rules_haskell//tools/...' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"url": "https://github.com/tweag/rules_haskell/releases/download/v0.18/rules_haskell-0.18.tar.gz", | ||
"integrity": "sha256-0fDhvU8dXiSLKIK/3HwxoUYRL52FudLw73fnjQLsukU=", | ||
"strip_prefix": "rules_haskell-0.18", | ||
"patch_strip": 0, | ||
"patches": {} | ||
} |
Oops, something went wrong.