Greg Magolan
cb9b74f41e
refactor: remove to_workspace_path and to_manifest_path ( #590 )
2023-10-06 08:37:53 -07:00
Derek Cormier
99f36cc298
feat(presets): always fetch all coverage files on coverage runs ( #564 )
2023-10-05 15:57:37 -07:00
Derek Cormier
dca2b1df0c
chore: remove legacy copy_to_directory_action ( #582 )
2023-10-05 15:52:37 -07:00
Alex Eagle
6a4381bf07
chore: run gazelle ( #584 )
...
Also delete the local_config_platform workaround for bazel 5 which made our docs setup complex
2023-10-05 14:22:38 -07:00
Derek Cormier
46a16e500c
chore: remove expand_template re-export ( #580 )
2023-10-05 12:33:13 -07:00
Alex Eagle
a283a8216d
feat: add a tar toolchain ( #468 )
...
* feat: add a BSD tar toolchain
@thesayyn discovered that it has a feature which should make it a drop-in replacement for pkg_tar
including fine-grained file permissions and symlinks:
https://man.freebsd.org/cgi/man.cgi?mtree(8)
* show example of mtree usage
* feat: introduce tar rule
* cleanup and get test passing
* more cleanup
* chore: add support for compress flags
* chore: add docs
* chore: add docs
* feat: implement linux bsdtar toolchain (#566 )
* chore: improve target naming
* WIP: args
* feat: generate mtree spec
Also allow arbitrary args
* refactor: mtree is required
* refactor: style nits
* fix: support mix of source and generated artifacts
* feat: demonstrate strip_prefix
* chore: regen docs
* fix: make host toolchain a fallback toolchain
* fix: include libarchive13.so when installing BSD tar
* chore: buildifier
* fix: aarch64 cpu constraint
* fix(ci): include libarchive13.so when running tar
* chore: add libnettle
* refactor: inputs mutated less
* refactor: remove unneeded substitution arg
* refactor: don't advertise unsupported modes
* fix: hack enough to make it run on my machine
* chore: dynamic libraries included in sh_binary under toolchain
* make sh_binary work
* refactor: drop arm64 for now
* fix toolchain
* fix test
* chore: improve test naming scheme
---------
Co-authored-by: Sahin Yort <thesayyn@gmail.com>
2023-10-03 13:50:55 -07:00
Derek Cormier
174bb9425d
feat: support jq 1.7 toolchain ( #520 )
2023-10-03 13:50:55 -07:00
Alex Eagle
e00ea2b977
chore: update pre-commit buildifier ( #563 )
...
It needs to match the one CI runs in
https://github.com/aspect-build/bazel-lib/actions/runs/6357283303/job/17268197322
2023-09-29 14:42:33 -07:00
Greg Magolan
bcb10f8154
feat: add undeclared output mode to expand_template ( #561 )
2023-09-29 11:30:02 -07:00
Greg Magolan
1d816e011b
feat: add assert_directory_contains test to testing.bzl ( #560 )
2023-09-29 09:53:00 -07:00
Alex Eagle
bc54655e71
ci: add assertion that bcr patches apply ( #556 )
2023-09-27 10:26:38 -07:00
Aaron Son
a4e997de1f
feat: add propagate_common_{,test_,binary_}rule_attributes
to lib/utils. ( #553 )
...
* feat: add `propagate_common_{,test_,binary_}rule_attributes` to lib/utils.
* lib/private/utils: PR feedback: extract COMMON_BINARY_RULE_ATTRIBUTES and COMMON_TEST_RULE_ATTRIBUTES to global constants.
* lib/private/utils: PR feedback: remove default value for attrs param to propagate_common_*rule_attributes
* fix: lib/private/utils: buildifier.
2023-09-26 14:29:42 -07:00
Matt Mackay
8fa2127518
fix: allow for BUILD files in outputs of write_source_file ( #540 )
2023-09-21 19:50:04 -04:00
Matt Mackay
62394fbb68
fix: lookup source files from execroot when running diff_test on RBE ( #531 )
2023-09-21 13:27:08 -07:00
Marc Redemske
45986f000d
feat: add list utils ( #512 )
...
* feat: add list utils
* chore: add docs for lists
* fixes accoding to review
---------
Co-authored-by: Alex Eagle <alex@aspect.dev>
2023-09-21 10:12:47 -07:00
Alex Eagle
882bc95615
feat: expand_template allows inline template content ( #533 )
...
Co-authored-by: thesayyn <thesayyn@gmail.com>
2023-09-20 18:32:05 -07:00
Ted Kaplan
fc3c3181f3
docs: Add --incompatible_disallow_empty_glob to correctness.bazelrc ( #524 )
2023-09-18 19:58:27 -07:00
peter woodman
3e9577ab16
yq: allow any filename in srcs ( #496 )
...
* yq: allow any filename in srcs
* yq: add test cases for free-form file extensions in input
* run buildifier
---------
Co-authored-by: Alex Eagle <alex@aspect.dev>
2023-08-30 09:18:10 -07:00
Greg Magolan
76ef6c8988
chore: add test coverage for run_binary & expand_variables makevars ( #504 )
2023-08-26 13:59:48 -07:00
Malte Poll
d79f4d4867
feat: yq supports stamping
...
Fixes #223
2023-06-15 16:50:26 -07:00
Jason Bedard
47dd4ce9fd
chore: run buildifier
2023-06-13 16:28:17 -07:00
Jason Bedard
c4e601f244
ci: add bazel 7 prerelease tests ( #452 )
2023-06-13 16:26:33 -07:00
Sahin Yort
6af964f261
feat: support stamp substituions ( #435 )
2023-05-16 16:14:50 -07:00
Jason Bedard
e0ae19940c
test: add tests for copying hidden files ( #438 )
...
See https://github.com/aspect-build/rules_js/issues/1055
2023-05-16 15:57:57 -07:00
Sahin Yort
781d1cbebf
feat: implement chr, ord, and hex ( #425 )
2023-05-15 12:15:55 -07:00
Jason Bedard
b5e9238dfa
fix: support special chars in assert_contains expected expression ( #426 )
...
See https://github.com/aspect-build/rules_js/issues/1045
2023-05-10 16:07:40 -07:00
Jason Bedard
14be93a63e
fix: rewrite glob implementation to follow standard glob specs
...
Implementation based on 465a339d8d/match.go (L74)
Fix https://github.com/aspect-build/bazel-lib/issues/419
2023-05-08 07:46:19 -07:00
Jason Bedard
c363420c70
refactor: cleanup glob implementation, add tests ( #420 )
...
Prefactor to https://github.com/aspect-build/bazel-lib/issues/419
2023-05-05 15:11:16 -07:00
Alex Eagle
6f1f2fb198
fix(yq): restore default version, reverting #405
...
The new version of yq is quite breaking, as it requires '-oj -r' for continued operation in rules_oci.
We can do a default version flip later when more downstream projects are compatible.
2023-05-05 13:07:51 -07:00
Henk Erik van der Hoek
39d556a225
Chore: update YQ ( #405 )
...
* Chore: update YQ
* Update tests
* Update docs
* Update docs
---------
Co-authored-by: Greg Magolan <gmagolan@gmail.com>
2023-05-01 19:18:50 -07:00
Alex Eagle
adca277409
fix: use test command for test flags
...
I don't think there's any reason we apply these two flags for `build`?
2023-04-13 07:45:07 -07:00
Derek Cormier
be41c1d686
fix: remove merkle tree caching ( #390 )
2023-03-09 12:24:44 -08:00
Greg Magolan
34bcfdedea
chore: update goldens
2023-03-05 17:52:12 -08:00
Greg Magolan
8c58935da1
feat: add label_str utility to generate consistent label strings for all Bazel versions ( #386 )
2023-03-03 18:23:17 -08:00
Derek Cormier
018fb2db18
chore: set --heap_dump_on_oom preset to apply to all commands
2023-03-01 15:40:17 -08:00
Derek Cormier
2704c61128
chore: remove unnecessary duplication in bazelrc presets
2023-03-01 14:47:54 -08:00
Greg Magolan
91eeca7d40
fix: remove --experimental_guard_against_concurrent_changes from recommended correctness settings ( #380 )
2023-02-23 00:28:46 -08:00
Matt Mackay
09c08e4ed7
fix: update recommend CI flags from Workflows ( #378 )
2023-02-22 15:46:20 -08:00
Greg Magolan
1fdfd6e831
fix: add missing **kwargs to write_aspect_bazelrc_presets ( #379 )
2023-02-22 12:17:00 -08:00
Greg Magolan
569fa374ef
feat: add write_aspect_bazelrc_presets macro ( #370 )
2023-02-17 14:34:06 -08:00
Alex Eagle
1df2becc7a
chore: turn on more basic precommit checks
...
In particular this makes our bazelrc presets more compliant with client codebases, ensuring they can copy these files and not trip on their own pre-commit check
2023-02-17 11:00:00 -08:00
Greg Magolan
fde705ba8c
feat: make bazel-lib the source-of-truth for Aspect recommended bazelrc settings ( #369 )
2023-02-16 16:59:21 -08:00
Greg Magolan
8f02b3364e
feat: add to_rlocation_path and to_repository_relative_path functions to paths.bzl ( #362 )
2023-02-11 12:36:49 -08:00
Alex Eagle
2cb6c7ac4f
chore: also accept expected as a list of entries
2023-01-20 16:16:42 -08:00
Alex Eagle
19dcea9828
refactor: infer the archive type from the filename
2023-01-20 16:16:42 -08:00
Alex Eagle
9b7250d146
test: add happy-path test for assert_archive_contains
2023-01-20 16:16:42 -08:00
Greg Magolan
63f5aff803
feat: hardlink generated files in copy_to_directory and copy_directory instead of copying ( #321 )
2023-01-16 17:19:13 -08:00
Greg Magolan
ce043b299d
fix: fix pathing issue in new copy_to_directory binary tool on Windows ( #334 )
2023-01-16 15:09:18 -08:00
Sahin Yort
4dc36a97f2
feat: add coreutils toolchain ( #332 )
2023-01-16 21:02:17 +03:00
Greg Magolan
7b6c814e27
Add copy_directory binary tool ( #324 )
2023-01-14 15:51:01 -08:00
Greg Magolan
4edb5018e8
chore: update pre-bazel 6 work-around in utils to only apply for bazel versions < 6 ( #320 )
2023-01-14 12:13:02 -08:00
Greg Magolan
fb3ef6e45d
feat: improved copy_to_directory performance & globbing support using copy_to_directory_bin_action ( #311 )
2023-01-07 11:26:27 -08:00
Konstantin Zadorozhny
b13fd20bee
Remove the use of realpath in tests ( #315 )
...
* do not use realpath
* make the file to follow symlinks on linux
2023-01-06 11:56:25 -08:00
Greg Magolan
bf76da829c
fix: handle directory symlinks in copy_to_directory_bin_action tool binary ( #314 )
2023-01-06 10:29:45 -08:00
Greg Magolan
ec13ec9a69
feat: improve performance of copy_to_directory by moving glob match & copying to a golang binary ( #308 )
2023-01-03 09:42:20 -08:00
Greg Magolan
4ad1dc2398
chore: run gazelle for golang ( #305 )
2023-01-01 15:37:00 -08:00
Derek Cormier
2689a48940
fix: fix a bug where transition tests required cpp toolchain on osx ( #299 )
2022-12-14 18:49:45 -08:00
Derek Cormier
72a26212f2
Add platform_transition_binary rule ( #289 )
...
* feat: add platform_transition_binary rule
2022-12-14 11:21:08 -08:00
Greg Magolan
35b7662e55
fix: write_source_files should use target platform for additional_update_targets ( #297 )
2022-12-03 15:02:33 -08:00
Greg Magolan
9059f8fa5e
feat: add executable attribute to write_source_files
2022-12-03 10:46:08 -08:00
Greg Magolan
3d73637ee5
feat: add base64 encode & decode utility functions ( #292 )
2022-11-25 17:00:02 -08:00
Greg Magolan
9077a147c0
fix: fix copy_to_directory flattening with root_paths = ['**'] ( #277 )
2022-11-07 18:28:04 -08:00
Jason Bedard
350408b93d
perf: do not execute glob for non-glob copy_to_directory root_paths/replace_prefix params ( #274 )
...
* glob: add is_glob util method
* perf: do not execute glob for non-glob copy_to_directory root_paths/replace_prefix params
* perf: add common path matching shortcuts
* fix: disallow invalid empty glob expressions
2022-11-02 18:44:42 -07:00
Alex Eagle
a9dc052c8b
feat: add assert_outputs
...
It's a simple way to make an executable example demonstrate what outputs a rule produces.
See https://github.com/aspect-build/rules_ts/pull/214 for an example usage in the real world.
2022-10-31 15:25:12 -07:00
Greg Magolan
21873d57b7
fix: use bzlmod @@ in to_label if Bazel version is 6 or greater ( #265 )
2022-10-26 15:46:39 -07:00
Alex Eagle
1ec71cdcb5
fix: @@//label is not external
...
Workaround https://github.com/bazelbuild/bazel/issues/16528
2022-10-21 14:42:37 -07:00
Jason Bedard
475015bee0
refactor: give internal impl methods meaningful names ( #252 )
2022-09-20 15:23:56 -07:00
Greg Magolan
bbfb74c8e6
fix: fix host platform detection on all copy actions which always run locally ( #241 )
2022-09-12 20:45:48 -07:00
Alex Eagle
f688d17cfb
feat: jq supports stamping
...
Fixes #223
2022-08-22 12:39:54 -07:00
Alex Eagle
896ee0c1f0
chore: set test timeouts to short
...
I recently enabled --test_verbose_timeout_warnings and that caused a bunch of warnings in our build.
This fixes it, and adds a utility for us or others to make test-wrapping macros that set to short by default.
2022-08-20 13:58:43 -07:00
Derek Cormier
889e736476
fix: fix a bug where the same file couldn't be copied to the same output
...
dir twice on Windows
2022-08-20 11:31:56 -07:00
Alex Eagle
15ec78eb73
ci: enable engflow RBE for github actions
2022-08-19 08:42:00 -07:00
Twan Koolen
e446a3d8e7
Add failing test case demonstrating issue with root_paths in the presence of globs in dependencies.
2022-08-18 21:14:12 -07:00
Greg Magolan
c867e37856
fix: fix make var expansion in expand_template ( #213 )
2022-08-11 19:30:45 -07:00
Alex Eagle
20d759f669
feat: add utility for asserting that a file contains a string
...
Useful for basic smoke tests of bazel outputs
2022-08-04 18:02:29 -07:00
Greg Magolan
06d54eef4c
fix: improve handling of duplicate files in copy_to_directory ( #205 )
2022-08-01 09:56:52 -07:00
Greg Magolan
c4f6fcff42
fix: add missing convienence aliases to exclude_srcs_packages
2022-07-29 18:52:54 -07:00
Greg Magolan
01da4db80c
fix: add missing convienence aliases to include_srcs_packages
2022-07-29 18:52:54 -07:00
Greg Magolan
71910e93f3
feat: add include_srcs_packages and exclude_srcs_packages and improve implementation and documentation of other filters and transformations ( #203 )
2022-07-29 16:16:33 -07:00
Greg Magolan
a5e61b3961
fix: dedup additional files in copy_to_directory_action ( #200 )
2022-07-28 20:39:12 -07:00
Greg Magolan
e4399557d7
chore: add '?' pattern to test cases of copy_to_directory ( #199 )
2022-07-28 12:59:30 -07:00
Greg Magolan
85e8b7e555
feat: add glob support to copy_to_directory include_srcs_patterns, exclude_srcs_patterns, replace_prefixes and root_paths. ( #196 )
...
This deprecates exclude_prefixes with docs suggesting to using exclude_srcs_patterns instead
2022-07-28 12:50:41 -07:00
Greg Magolan
fd03cf0ecb
feat: add glob_match starlark utility function that support "*", "**" and "?" expressions as well as optionally allow for "*" and "?" to match of path separators ( #194 )
2022-07-27 18:48:02 -07:00
Greg Magolan
61c7cc209b
feat: add include_prefixes to copy_to_directory ( #193 )
2022-07-27 15:15:42 -07:00
Alex Eagle
8a11a106db
chore: change default for run_binary#stamp
...
Greg convinced me that users will get really slow stamped builds because most run_binary tools don't actually read the status files, but will be cache-invalidated.
2022-07-15 09:29:28 -07:00
Alex Eagle
de081fb72e
feat: basic stamping support
2022-07-14 22:37:42 -07:00
Alex Eagle
6f52c77a51
assert that directories aren't included in file_exists
2022-07-14 07:53:05 -07:00
Alex Eagle
546758589d
Add utility for checking file existence.
...
Avoids continued copy-paste of this like https://github.com/aspect-build/rules_ts/blob/main/ts/defs.bzl#L35-L44
2022-07-14 07:53:05 -07:00
Greg Magolan
d4f6524fbd
feat: add copy_to_directory_action
2022-06-28 09:08:45 -07:00
Alex Eagle
32882befdf
feat: let jq act like copy_to_bin
...
This lets you have a file in the output tree with the same path as a source file, but modified.
2022-06-21 18:40:29 -07:00
Jesse Tatasciore
63ae772087
fix: Allow relative_file to take in paths starting with ../ ( #166 )
...
* fix: relative_file fix when to path is itself relative starting with ../
* feat: Allow users to use ../ in paths and add tests
* fix: Clarify documentation
Co-authored-by: Greg Magolan <gmagolan@gmail.com>
2022-06-20 14:21:49 -07:00
Derek Cormier
ce015ca4f3
fix: support non-json input files in jq
2022-06-17 10:27:18 -07:00
Greg Magolan
b3c2884bdf
feat: add mnemonic, progress_message && execution_requirements to run_binary ( #161 )
2022-06-16 16:58:41 -07:00
Greg Magolan
14f83ab4e8
feat: add out_dirs to run_binary rule and deprecate output_dir ( #160 )
2022-06-16 16:26:29 -07:00
Derek Cormier
80603fb7eb
fix: fix a bug where two copy_to_bin actions couldn't copy the same file
2022-06-16 11:49:09 -07:00
Derek Cormier
3ff61c57e9
fix: fix a bug where write_source_files diff_test fails on windows when
...
a source is from an external repository
2022-06-16 09:10:30 -07:00
Greg Magolan
6ba7c64c8d
feat: add allow_overwrites attribute to copy_to_directory and disable overwrites as the default behavior on linux and macos ( #153 )
2022-06-14 10:52:40 -07:00
Alex Eagle
562c4b231d
feat: add to_output_relative_path
...
This is useful in rules_js ecosystem where the working directory is bazel-out/arch/bin so many paths need to be relative to there.
2022-06-13 12:55:22 -07:00
Alex Eagle
695a8c4ad4
fix: copy_to_directory repairs read-only file permissions ( #134 )
...
When two srcs have the same nested folder, we need to correct the permissions like bazel's sandbox would.
Fixes #133
2022-06-08 15:41:54 -07:00
=
7017045707
fix: fix yq windows issues by bumping version
2022-05-31 11:07:14 -07:00