mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 02:57:37 +00:00
run-make-support: add changelog
This commit is contained in:
parent
d308a70890
commit
5ec3eef9e7
67
src/tools/run-make-support/CHANGELOG.md
Normal file
67
src/tools/run-make-support/CHANGELOG.md
Normal file
@ -0,0 +1,67 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to the `run_make_support` library should be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the support
|
||||
library should adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) even if it's
|
||||
not intended for public consumption (it's moreso to help internally, to help test writers track
|
||||
changes to the support library).
|
||||
|
||||
This support library will probably never reach 1.0. Please bump the minor version in `Cargo.toml` if
|
||||
you make any breaking changes or other significant changes, or bump the patch version for bug fixes.
|
||||
|
||||
## [0.1.0] - 2024-06-09
|
||||
|
||||
### Changed
|
||||
|
||||
- Use *drop bombs* to enforce that commands are executed; a command invocation will panic if it is
|
||||
constructed but never executed. Execution methods `Command::{run, run_fail}` will defuse the drop
|
||||
bomb.
|
||||
- Added `Command` helpers that forward to `std::process::Command` counterparts.
|
||||
|
||||
### Removed
|
||||
|
||||
- The `env_var` method which was incorrectly named and is `env_clear` underneath and is a footgun
|
||||
from `impl_common_helpers`. For example, removing `TMPDIR` on Unix and `TMP`/`TEMP` breaks
|
||||
`std::env::temp_dir` and wrecks anything using that, such as rustc's codgen.
|
||||
- Removed `Deref`/`DerefMut` for `run_make_support::Command` -> `std::process::Command` because it
|
||||
causes a method chain like `htmldocck().arg().run()` to fail, because `arg()` resolves to
|
||||
`std::process::Command` which also returns a `&mut std::process::Command`, causing the `run()` to
|
||||
be not found.
|
||||
|
||||
## [0.0.0] - 2024-06-09
|
||||
|
||||
Consider this version to contain all changes made to the support library before we started to track
|
||||
changes in this changelog.
|
||||
|
||||
### Added
|
||||
|
||||
- Custom command wrappers around `std::process::Command` (`run_make_support::Command`) and custom
|
||||
wrapper around `std::process::Output` (`CompletedProcess`) to make it more convenient to work with
|
||||
commands and their output, and help avoid forgetting to check for exit status.
|
||||
- `Command`: `set_stdin`, `run`, `run_fail`.
|
||||
- `CompletedProcess`: `std{err,out}_utf8`, `status`, `assert_std{err,out}_{equals, contains,
|
||||
not_contains}`, `assert_exit_code`.
|
||||
- `impl_common_helpers` macro to avoid repeating adding common convenience methods, including:
|
||||
- Environment manipulation methods: `env`, `env_remove`
|
||||
- Command argument providers: `arg`, `args`
|
||||
- Common invocation inspection (of the command invocation up until `inspect` is called):
|
||||
`inspect`
|
||||
- Execution methods: `run` (for commands expected to succeed execution, exit status `0`) and
|
||||
`run_fail` (for commands expected to fail execution, exit status non-zero).
|
||||
- Command wrappers around: `rustc`, `clang`, `cc`, `rustc`, `rustdoc`, `llvm-readobj`.
|
||||
- Thin helpers to construct `python` and `htmldocck` commands.
|
||||
- `run` and `run_fail` (like `Command::{run, run_fail}`) for running binaries, which sets suitable
|
||||
env vars (like `LD_LIB_PATH` or equivalent, `TARGET_RPATH_ENV`, `PATH` on Windows).
|
||||
- Pseudo command `diff` which has similar functionality as the cli util but not the same API.
|
||||
- Convenience panic-on-fail helpers `env_var`, `env_var_os`, `cwd` for their `std::env` conterparts.
|
||||
- Convenience panic-on-fail helpers for reading respective env vars: `target`, `source_root`.
|
||||
- Platform check helpers: `is_windows`, `is_msvc`, `cygpath_windows`, `uname`.
|
||||
- fs helpers: `copy_dir_all`.
|
||||
- `recursive_diff` helper.
|
||||
- Generic `assert_not_contains` helper.
|
||||
- Scoped run-with-teardown helper `run_in_tmpdir` which is designed to run commands in a temporary
|
||||
directory that is cleared when closure returns.
|
||||
- Helpers for constructing the name of binaries and libraries: `rust_lib_name`, `static_lib_name`,
|
||||
`bin_name`, `dynamic_lib_name`.
|
||||
- Re-export libraries: `gimli`, `object`, `regex`, `wasmparsmer`.
|
Loading…
Reference in New Issue
Block a user