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
2c66c1c778
fix: fail with better error message with trying to base64 decode a string that is not base64 encoded ( #298 )
2022-12-12 12:03:18 -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
68aee64093
feat: add write_source_file to public API ( #295 )
2022-12-03 14:57:28 -08:00
Greg Magolan
421cf266bc
fix: add diff_test to docs ( #296 )
2022-12-03 11:32:37 -08:00
Greg Magolan
0109a2eee3
refactor: use rm -R instead -r as it is the primary option and lowercase -r is the alias ( #294 )
2022-12-03 10:52:52 -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
b5e0ac13e1
perf: optimize glob_match if the expression does not have any glob symbols ( #283 )
2022-11-14 14:45:25 -08:00
Greg Magolan
9077a147c0
fix: fix copy_to_directory flattening with root_paths = ['**'] ( #277 )
2022-11-07 18:28:04 -08:00
Greg Magolan
eab96f51f0
refactor: move bzl_library target out of @local_config_platform and just use exports_files in there instead ( #276 )
2022-11-04 15:11:14 -07:00
Greg Magolan
1f76b0b0bb
chore: nit cleanup in copy_to_directory _longest_glob_match helper ( #275 )
2022-11-03 09:42:03 -07: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
f030847908
feat: add maybe_http_archive ( #270 )
2022-10-27 15:55:57 -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
Greg Magolan
93c43e908e
chore: upgrade to Bazel 6.0.0rc1 but continue to also test Bazel 5.3.2 on CI ( #266 )
2022-10-26 15:05:27 -07:00
Greg Magolan
35623e23fe
feat: add is_bazel_6_or_greater utility function ( #264 )
2022-10-26 12:30:08 -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
renovate[bot]
b0921687e5
chore(deps): update dependency bazel_skylib to v1.3.0 ( #259 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-12 09:07:11 -06:00
Matt Mackay
569dd2663b
fix: handle other CPU architectures in local_config_platform ( #257 )
2022-10-07 12:41:31 -07:00
Matt Mackay
9d531ca646
feat: add test_suite containing all tests from write_source_files ( #256 )
2022-10-05 09:01:50 -07:00
Thulio Ferraz Assis
e609c85efe
Update stamping.bzl
2022-09-29 09:54:09 -07:00
Greg Magolan
6f37a3808b
fix: isolate bzl_libary targets for //lib/private:*.bzl i //lib/private/docs package so that platform_utils dep on @local_config_platform//:constraints doesn't leak unless downstream consumer is generating docs ( #254 )
2022-09-27 09:59:19 -07:00
Jason Bedard
475015bee0
refactor: give internal impl methods meaningful names ( #252 )
2022-09-20 15:23:56 -07:00
Greg Magolan
8e230b0721
feat: add bazel_version value to host_repo repository rule ( #246 )
2022-09-16 11:51:48 -07:00
Greg Magolan
65e852f774
fix: don't generate @aspect_bazel_lib_local_config_platform repository as it is a leaky abstraction for rule consumers and not just rule authors ( #243 )
2022-09-13 21:58:08 -07:00
Greg Magolan
be5c9d06bc
fix: fix bzl_library breakage created with load from @local_config_platform in copy rules ( #242 )
2022-09-13 20:37:24 -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
Jason Bedard
803dbf815e
copy_to_directory performance improvements ( #236 )
...
* reduce use of depset.to_list()
* avoid copying arrays when invoking copy_file
* fixup! reduce use of depset.to_list()
* fixup! reduce use of depset.to_list()
2022-09-12 18:01:25 -07:00
John Firebaugh
21216126b6
Add TODO comment in the windows implementation
2022-09-07 13:53:08 -07:00
John Firebaugh
77137f4020
Add JUnit XML output for diff_test
2022-09-07 13:53:08 -07:00
David Zbarsky
5edb10a0d8
Cleanup diff_test and copy_file implementations
2022-08-31 12:12:47 -07:00
Alex Eagle
b5653b6037
fix: TARGET make variable expansion: no extra leading @
...
Part of https://github.com/aspect-build/rules_js/issues/406
2022-08-29 07:45:00 -07:00
Greg Magolan
9efedb72c0
fix: handle the ** root_path case correctly in copy_to_directory
2022-08-25 21:25:13 -07:00
Greg Magolan
cbec12b286
chore: remote out-of-date reference to DefaultOutputPathInfo in write_source_files error message
2022-08-25 20:25:21 -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
Greg Magolan
3e20e6c0b1
fix: fix issue in copy_to_directory where root_path is the full path of a directory input
2022-08-18 21:14:12 -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
Derek Cormier
c1e7aa1181
fix: fix a bug where multiple files were not written at the root package
2022-08-16 11:20:55 -07:00
Greg Magolan
c867e37856
fix: fix make var expansion in expand_template ( #213 )
2022-08-11 19:30:45 -07:00
Greg Magolan
3caff577b9
fix: handle copy_to_directory '.' and './**' special patterns correctly when in the root package ( #212 )
2022-08-11 16:25:51 -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
165d7dafdb
chore: normalize src and outputs paths in copy_to_directory ( #206 )
2022-08-01 13:14:18 -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
6d3c1a393b
chore: add improved error messages to copy_to_directory when include_srcs_packages and include_srcs_patterns are empty
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
83912625a3
chore: fix out-of-date text in copy_to_directory.include_srcs_patterns docstring ( #202 )
2022-07-28 23:31:08 -07:00
Greg Magolan
c74f0e29a6
chore: fix out-of-date text in copy_to_directory.include_srcs_patterns docstring: ( #201 )
2022-07-28 23:13:22 -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
a945d66eb5
chore: add glob_match to docs ( #195 )
2022-07-28 11:15:14 -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
Derek Cormier
998ee22369
fix: improve error message in directory_path when directory does not ( #192 )
...
exist
2022-07-22 09:37:27 -07:00
Derek Cormier
d0a897488b
fix: patch diff_test with runfiles fix
2022-07-15 13:07:28 -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
56bc408d94
feat: add stamping ability to run_binary
...
Fixes #185
2022-07-14 22:37:42 -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
Jesse Schalken
f2e5f4675f
fix: diff_test not working for files in directories starting with "external"
...
Example "external-dependencies/foo.txt"
2022-07-07 16:31:00 -07:00
Derek Cormier
a24508a202
fix: remote target_compatible_with from jq and yq toolchains
2022-07-06 10:46:23 -07:00
Derek Cormier
77474915d8
docs: encourage use of latest yq/jq in docs
2022-07-02 10:00:23 -07:00
Greg Magolan
d4f6524fbd
feat: add copy_to_directory_action
2022-06-28 09:08:45 -07:00
Alex Eagle
910786038c
chore: improve error when run_binary has no outputs
...
Otherwise users get
```
Traceback (most recent call last):
File "/private/var/tmp/_bazel_long.ho/a2216e06a77a9425f6dcd5fd195f64d5/external/aspect_bazel_lib/lib/private/run_binary.bzl", line 46, column 20, in _impl
ctx.actions.run(
Error in run: param 'outputs' may not be empty
```
2022-06-27 12:30:13 -07:00
David
f08952a8a6
docs: add a note about excluding from linters/formatters ( #156 )
2022-06-24 12:30:08 -07:00
Derek Cormier
de6e9ef843
fix: improve copy_to_bin error messaging when file is in external repo
2022-06-22 10:43:16 -07:00
Matt Mackay
829e5d513d
feat: add buildozer command to add visibility to the copy_to_bin helper error ( #171 )
2022-06-22 16:46:35 +01: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
Greg Magolan
63014de382
chore: cleanup fail msgs with substitutions for cleaner error logs
2022-06-14 06:46:34 -07:00
Alex Eagle
5a39b1fdab
chore: warn when copy_to_bin reads from bazel-out
2022-06-13 19:07: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
Renovate Bot
1fcd85b247
chore(deps): update dependency bazel_skylib to v1.2.1
2022-06-10 17:46:01 -07:00
Alex Eagle
40f130b43b
refactor: nicer pattern for inlined maybe
2022-06-10 14:04:49 -07:00
Alex Eagle
abc3128fe7
refactor: remove use of maybe() helper ( #138 )
...
This allows renovate to understand our dependencies
2022-06-10 12:51:13 -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
Greg Magolan
128f7c63fb
fix: improve error message when an invalid label or a file that is not a directory is passed to directory_path ( #127 )
2022-06-03 00:39:35 -07:00
Derek Cormier
9162a3f552
fix: buildifier lint errors
2022-06-02 18:15:24 -07:00
Alex Eagle
f11dea1b7a
chore: nit on error message ( #125 )
2022-06-01 18:01:15 -07:00
=
7017045707
fix: fix yq windows issues by bumping version
2022-05-31 11:07:14 -07:00
Greg Magolan
9a1edce1aa
fix: set correct suggested_update_target for write_source_files macros with multiple files ( #120 )
2022-05-25 18:47:32 -07:00
Derek Cormier
faba95385d
fix: fix a bug where copy_to_directory wouldn't copy hidden files inside
...
of folders
2022-05-19 20:50:43 -07:00
Derek Cormier
147a373568
fix: add mandatory provider for write_source_files
...
additional_update_targets
2022-05-18 10:50:09 -07:00
Sahin Yort
a699ccd4eb
fix: add mnemonic to jq and yq ( #106 )
2022-05-06 21:01:27 +03:00
Greg Magolan
47114fd4f9
fix: only use ctx.attr.patches if patches param is not specified ( #105 )
...
The currently implementation differs from the docstring here and in upstream skylib:
This rule is intended to be used in the implementation function of
a repository rule. If the parameters "patches", "patch_tool",
"patch_args", "patch_cmds" and "patch_cmds_win" are not specified
then they are taken from "ctx.attr".
2022-05-04 10:32:18 -07:00
Derek Cormier
2b50f99ab3
refactor: show a more helpful error message in copy_to_bin
2022-05-03 15:46:57 -07:00
Derek Cormier
400ff189b3
fix: fix a bug where yq failed to build in the root package
2022-05-02 20:35:59 -07:00
Greg Magolan
58b2c59bb0
refactor: export copy_to_directory_lib in the public API for use downstream in packaging rules ( #96 )
2022-04-29 15:26:24 -07:00
Greg Magolan
9a9a1888e1
chore: normalize @generated by comments ( #93 )
2022-04-29 00:49:15 -07:00
Greg Magolan
f1e10df09c
chore: replace is_windows select pattern with target_platform_has_constraint pattern ( #95 )
2022-04-29 00:36:51 -07:00
Greg Magolan
67e1072e25
chore: use aspect_bazel_lib diff_test ( #94 )
2022-04-29 00:36:41 -07:00
Greg Magolan
ec587d974e
chore: rename all instances of repository_ctx to the preferred rctx ( #92 )
2022-04-29 00:36:25 -07:00
Derek Cormier
6743c0cbcf
feat: make it easier to resolve jq/yq toolchains from a repository rule
2022-04-28 16:30:24 -07:00
Greg Magolan
41ce34470f
feat: add @aspect_bazel_lib_host repository and normalize function names in repo_utils ( #90 )
2022-04-28 14:18:06 -07:00
Alex Eagle
626af72fe8
test: add test coverage for docs rules
2022-04-27 17:34:45 -07:00
Alex Eagle
8138d7f6c3
test: introduce an e2e test asserting that bzlmod works
2022-04-27 17:34:45 -07:00
Greg Magolan
04c0f95136
feat: rename @yq_host and @jq_host to @yq and @jq respectively and export bin() function in index.bzl to get bin label for host platform ( #87 )
2022-04-27 08:08:28 -07:00
Greg Magolan
c2d4481570
feat: add default yq and jq versions ( #86 )
2022-04-23 12:06:40 -07:00
Derek Cormier
cf7b195031
fix: minor yq docs updates and fixes
2022-04-22 13:21:57 -07:00
Greg Magolan
048c32ae8d
feat: add jq_host and yq_host repositories
2022-04-21 18:48:45 -07:00
Greg Magolan
207d219a88
feat: add os_arch_name() function to repo_utils and cleanup yq & jq toolchains for repository names follow this convention ( #82 )
2022-04-21 17:45:33 -07:00
Derek Cormier
3e4024c785
feat: yq ( #80 )
2022-04-19 21:45:06 -07:00
Derek Cormier
e0af9633ed
chore: fix buildifier errors
2022-04-15 15:44:40 -07:00
Greg Magolan
d59ca6092f
fix: improve execution requirements of all copy files/directory rules for better perf ( #79 )
2022-04-14 10:48:44 -07:00
Greg Magolan
48b6f29367
fix: make tool of run_binary cfg=exec ( #74 )
2022-04-14 10:40:39 -07:00
Greg Magolan
0a9c48a712
feat: add create_windows_native_launcher_script to lib/windows_utils.bzl ( #75 )
2022-04-14 09:01:08 -07:00
Greg Magolan
35b430abcc
feat: add some additional make variable substitutions for common useful values in the context ( #73 )
2022-04-14 07:05:28 -07:00
Greg Magolan
03528db12b
chore: remove unused file ( #77 )
2022-04-14 07:02:20 -07:00
Greg Magolan
b9bc7a4cea
fix: add copy_file_to_bin_action and copy_files_to_bin_actions to //lib:copy_to_bin.bzl ( #72 )
2022-04-13 13:55:41 -07:00
Greg Magolan
6828d92964
refactor: split copy_to_bin_action into copy_file_to_bin_action and copy_files_to_bin_actions ( #71 )
2022-04-13 13:01:17 -07:00
Greg Magolan
62bb04db30
feat: add copy_to_bin_action for use in other rules ( #70 )
2022-04-13 12:40:07 -07:00
Greg Magolan
b2955dcb05
feat: add copy_to_bin rule ( #69 )
2022-04-12 16:31:04 -07:00
Greg Magolan
6e653ca787
feat: add copy_file_action helper function to the public API ( #68 )
2022-04-12 13:58:30 -07:00
Greg Magolan
2e213c2029
feat: add copy_directory_action help to the public API ( #67 )
2022-04-12 03:34:51 -07:00
Greg Magolan
322bbc92df
feat: add repo_utils with fork of @bazel_tools patch function that takes a working_directory argument
2022-04-11 18:15:32 -07:00
Greg Magolan
1421a1d6f4
chore: add upstream @bazel_tools patch utility function prior to forking
2022-04-11 18:15:32 -07:00
Jason Bedard
0f30bf96b7
fix(write_source_files): fix nested directories ( #65 )
2022-04-06 11:25:17 -07:00
Derek Cormier
35b8fd3425
refactor: remove directory functionality from copy_file ( #64 )
2022-04-05 13:38:54 -07:00
Derek Cormier
a23d1b03f7
feat: add copy_directory ( #63 )
2022-04-03 17:52:03 -07:00
Derek Cormier
9ef738909b
fix: incorrect variable name
2022-04-01 10:52:09 -07:00
Derek Cormier
ccea32c670
fix: fix invalid format string
2022-04-01 10:52:09 -07:00
Greg Magolan
e679a26b42
fix: use -R instead of -r in cp calls so macos & linxu behavior is the same ( #58 )
2022-04-01 00:57:34 -07:00
Greg Magolan
e30e89fa3d
feat: add run_binary with output directory support & improved makevar expansion ( #57 )
2022-03-31 20:04:35 -07:00
Alex Eagle
096133e5d2
feat: platform_transition_filegroup ( #55 )
...
* feat: platform_transition_filegroup
Lifted from https://github.com/aspect-build/gcc-toolchain/pull/8/files
See also https://github.com/fmeum/rules_meta/blob/main/meta/internal/meta.bzl#L4
* test: add tests for transition filegroup
2022-03-30 21:04:14 -07:00
Jason Bedard
a2e228dde0
fix(write_source_files): fix writing to workspace root ( #53 )
2022-03-30 17:04:35 -07:00
Greg Magolan
3599515632
fix: ensure out_file does not show up in source file query of write_source_file so that it can be used with ibazel ( #52 )
2022-03-28 14:53:58 -07:00
Greg Magolan
bda5c632be
feat: replace default_info_files with output_files which adds output_group attribute ( #50 )
2022-03-15 17:36:22 -07:00
Greg Magolan
3b93ee0baa
Add DefaultOutputPathInfo provider and update write_source_files to accept it ( #48 )
...
Also update write_source_files to accept DirectoryPathInfo
2022-03-14 17:33:52 -07:00
Derek Cormier
7f2641cd07
reimplement stardoc_with_diff_test to use write_source_files
2022-03-11 09:50:55 -08:00
Greg Magolan
0fd56dc59d
feat: add directory_path rule and DirectoryPathInfo for specifying files within tree artifacts ( #42 )
2022-03-03 16:40:32 -08:00
Derek Cormier
f788d286d0
feat: write to source folders ( #41 )
2022-03-02 12:58:36 -08:00
Derek Cormier
ca764e53e8
feat: write_source_files bulk write for windows ( #43 )
2022-03-02 12:56:50 -08:00
Derek Cormier
71c1b893d6
feat: bulk updates for write_source_files ( #40 )
2022-02-28 15:42:20 -08:00
Derek Cormier
2195e1c69a
feat: write_source_files windows implementation
2022-02-24 16:45:31 -08:00
Derek Cormier
ca4a9f8c23
fix: fix buildifier 5.0.0 errors ( #35 )
2022-02-11 07:52:01 -08:00
Derek Cormier
8e6a15ceae
feat: write_source_files
2022-02-07 10:00:35 -08:00