bazelbuild / rules_perl

Perl rules for Bazel
Apache License 2.0
25 stars 38 forks source link

Support import via http_archive #37

Closed laramiel closed 2 years ago

laramiel commented 2 years ago

I'm trying to just import rules_perl via http_archive, but the repository isn't setup to make that trivial:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_perl",
    urls = ["https://github.com/bazelbuild/rules_perl/archive/9003b044f8555d7b7f4da051aa0f4b5616e65465.tar.gz"],
    sha256 = "0d1eabe253ca8f1a9270979869ef5f5b804727c0e4aaa85f14abf7d1827ca3cb",
)

load("@rules_perl//perl:deps.bzl", "perl_register_toolchains", "perl_rules_dependencies")

perl_rules_dependencies()
perl_register_toolchains()

ERROR: error loading package '': Every .bzl file must have a corresponding package, but '@rules_perl//perl:deps.bzl' does not have one. Please create a BUILD file in the same or any parent directory. Note that this BUILD file does not need to do anything except exist.

If I add a trivial build file, build_file_content = "# noop ",

ERROR: error loading package '': Label '@rules_perl//perl:deps.bzl' is invalid because 'perl' is not a package; perhaps you meant to put the colon here: '@rules_perl//:perl/deps.bzl'?

If I change the import: load("@rules_perl//:perl/deps.bzl", "perl_register_toolchains", "perl_rules_dependencies")

ERROR: error loading package '': cannot load '@rules_perl//:perl/deps.bzl': no such file

UebelAndre commented 2 years ago

I believe you're missing strip_prefix.

http_archive(
    name = "rules_perl",
    urls = ["https://github.com/bazelbuild/rules_perl/archive/9003b044f8555d7b7f4da051aa0f4b5616e65465.tar.gz"],
    sha256 = "0d1eabe253ca8f1a9270979869ef5f5b804727c0e4aaa85f14abf7d1827ca3cb",
    strip_prefix = "rules_perl-9003b044f8555d7b7f4da051aa0f4b5616e65465",
)
laramiel commented 2 years ago

Ah, could be. It's late.