mirror of
https://github.com/chmln/sd
synced 2024-11-25 04:30:17 +00:00
eb51bdf11e
* Bump version to v1.0.0 * `cargo xtask gen` * Add all new entries to the changelog
191 lines
7.6 KiB
Markdown
191 lines
7.6 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [1.0.0] - 2023-11-07
|
|
|
|
A quick note to any packages. The generated shell completions and man page are
|
|
now in the `gen` directory of the repo. They're also included in the pre-built
|
|
release artifacts on the releases page.
|
|
|
|
### Improvements
|
|
|
|
- #115 Do not replace symlink with output file (@SimplyDanny)
|
|
- Fixes an issue where a symlink would be replaced with a regular file
|
|
- #124 Fix tests (@Linus789)
|
|
- Removed displaying the file path when passing the `--preview` flag and fixed
|
|
how text coloring was handled in tests
|
|
|
|
### Breaking
|
|
|
|
- #192 Rename `--string-mode` to `--fixed-strings` (@CosmicHorrorDev)
|
|
- Renamed `-s` `--string-mode` to `-f` `--fixed-strings` to better match
|
|
similar tools
|
|
- `-s` and `--string-mode` will still continue to work for backwards
|
|
compatibility, but are no longer documented
|
|
- #258 Error on `$<num><non_num>` capture replacement names (@CosmicHorrorDev)
|
|
- Previously when you tried to use a numbered capture group right before some
|
|
letters in the replacement text (e.g. `$1foo`) then it would be considered
|
|
the impossible-to-use `1foo` capture. The correct way to pass the numbered
|
|
capture group in this case would be to surround the number with curly braces
|
|
like so `${1}foo`. The error just detects this case and informs the user of
|
|
the issue
|
|
|
|
### Docs
|
|
|
|
- #93 Add note about in-place file modification to --help output (@jchook)
|
|
- #148 Doc: nitpick `--` has no special meaning to shells (@hexagonrecursion)
|
|
- #181 Fix man page -f flag help text (@ulope)
|
|
- Fixed copy-pasted text in the man page's `-f` flag's help text
|
|
- #186 Improve error message for failed replacements (@CosmicHorrorDev)
|
|
- #187 Freshen up README (@CosmicHorrorDev)
|
|
- Added a repology badge to document different installation methods
|
|
- Improved the formatting of the benchmarks
|
|
- #207 Documenting `$` escape (@yahkbar)
|
|
- Adds a section in the README that covers that `$$` is a literal `$` in the
|
|
replacement text
|
|
- #227 Improve README readability (@vassudanagunta)
|
|
- Various formatting improvements
|
|
- #231 Use `clap_mangen` and `roff` to generate manpage (@nc7s)
|
|
- This change ensures the man page contents stay in sync with the CLI
|
|
automatically, and fixes some broken rendering of the existing manpage
|
|
- #243 Exclude unsupported packages from the repology badge (@CosmicHorrorDev)
|
|
|
|
### Pre-built Releases
|
|
|
|
- (11295fb) Add ARM target (@chmln)
|
|
- Added the `arm-unknown-linux-gnueabihf` target to CI and releases
|
|
- #114 Adding `aarch64-apple-darwin` target (@yahkbar)
|
|
- #143 Fix paths to release binary in "publish" action (@skrattaren)
|
|
- #179 Build Adjustments (@yahkbar)
|
|
- `strip`ed release binaries and added the `aarch64-ubuntu-linux-musl` target
|
|
- #204 Adding `armv7-unknown-linux-gnueabihf` target (@yahkbar)
|
|
- Added the `armv7-unknown-linux-gnueabihf` target to the list of targets to
|
|
build in CI and for each release
|
|
- #205 Resolving broken `aarch64-apple-darwin` tests (@yahkbar)
|
|
- Switched `aarch64-apple-darwin` to only try building the executable without
|
|
running the tests since there seems to be no easy way to test for ARM Apple
|
|
targets
|
|
- #206 Adding Windows builds back (@yahkbar)
|
|
- Added the `x86_64-pc-windows-gnu` and `x86_64-windows-musl` targets back to
|
|
the list of targets to build in CI and for each release
|
|
|
|
### Internal
|
|
|
|
- #118 Fix master (@SimplyDanny)
|
|
- Fixes several cross-compilation issues that effected different targets in CI
|
|
- #182 `cargo update` (@CosmicHorrorDev)
|
|
- Bumps dependencies to their latest compatible versions
|
|
- #183 Switch `memmap` -> `memmap2` (@CosmicHorrorDev)
|
|
- Switches away from an unmaintained crate
|
|
- #184 Add editor config file matching rustfmt config (@CosmicHorrorDev)
|
|
- Adds an `.editorconfig` file matching the settings listed in the
|
|
`.rustfmt.toml` file
|
|
- #185 Fix warnings and clippy lints (@CosmicHorrorDev)
|
|
- #188 Switch `atty` for `is-terminal` (@CosmicHorrorDev)
|
|
- Switches away from an unmaintained crate
|
|
- #189 Replace structopt with clap v4 (@CosmicHorrorDev)
|
|
- Switches away from a defacto deprecated crate
|
|
- #190 Change how all shell variants are expressed (@CosmicHorrorDev)
|
|
- Tiny tidying up PR
|
|
- #196 Move generating static assets to a `cargo-xtask` task (@CosmicHorrorDev)
|
|
- Moves the generation of the man page and shell completions from a build
|
|
script to a [`cargo-xtask`](https://github.com/matklad/cargo-xtask) task
|
|
- #197 Add a release checklist (@CosmicHorrorDev)
|
|
- #209 Dependency updates (@yahkbar)
|
|
- #235 Update generated assets (@CosmicHorrorDev)
|
|
- #236 Tone down dependabot (@CosmicHorrorDev)
|
|
- #245 Update sd to 2021 edition (@CosmicHorrorDev)
|
|
- Updates `sd` to the Rust 2021 edition
|
|
- #248 Misc Cargo.toml tweaks (@CosmicHorrorDev)
|
|
- Switches to use workspace edition and dependencies where appropriate
|
|
- #249 Resolve CI warnings (@CosmicHorrorDev)
|
|
- Switched from `actions-rs` actions to `dtolnay@rust-toolchain`
|
|
- Switched from using `::set-output` to `$GITHUB_ENV`
|
|
- #251 Update dependencies (@CosmicHorrorDev)
|
|
- A lot of sad CI tweaking:
|
|
- #252 Fix build target usage in CI (@CosmicHorrorDev)
|
|
- #253 Improve publishing CI job (@CosmicHorrorDev)
|
|
- #256 More CI tweaks (@CosmicHorrorDev)
|
|
- #257 Fix publish action (@CosmicHorrorDev)
|
|
- #267 Rework the replacements flag (@CosmicHorrorDev)
|
|
- #269 Make modified text blue instead of green (@CosmicHorrorDev)
|
|
- #271 Fix release checklist indentation (@CosmicHorrorDev)
|
|
- #272 Remove outdated release checklist step (@CosmicHorrorDev)
|
|
- #274 Prepare 1.0.0-beta.0 release (@CosmicHorrorDev)
|
|
- #275 Update `sd` version in lockfile (@CosmicHorrorDev)
|
|
|
|
## (History listed in here is missing from v0.6.3 - v0.7.6)
|
|
|
|
## [0.6.2]
|
|
|
|
- Fixed pre-allocated memmap buffer size
|
|
- Fixed failing tests
|
|
|
|
## [0.6.0] - 2019-06-15
|
|
|
|
### Improvements
|
|
|
|
- `sd` now uses memory-mapped files, allowing replacement on files of any size
|
|
- `-p`/`--preview` flag is now added to preview changes
|
|
- as of right now, results are simply emitted to stdout
|
|
- in a future version, the output will be changed to contain only relevant information
|
|
- a `w` regex flag is added to match full words only, e.g. `sd -f w foo bar file.txt`
|
|
|
|
### Deprecations
|
|
|
|
- `--in-place` is now deprecated and assumed whenever a list of files is given
|
|
|
|
## [0.5.0] - 2019-02-22
|
|
|
|
### Improvements
|
|
|
|
- Windows support (thanks to @ErichDonGubler)
|
|
|
|
## [0.4.2] - 2019-01-02
|
|
|
|
### Improvements
|
|
|
|
- Support for unicode and special characters (like `\n`) in replacement expressions
|
|
- Only in regex mode
|
|
- Fixed edge-cases when replacing content containing unescaped characters
|
|
|
|
## [0.4.1] - 2019-01-01
|
|
|
|
### Improvements
|
|
|
|
- Significant performance improvements (see benchmarks in README)
|
|
|
|
## [0.4.0] - 2018-12-30
|
|
|
|
### Added
|
|
|
|
- Option to set regex flags via `-f` or `--flags`:
|
|
- `m` (multi-line)
|
|
- `c` (case-sensitive)
|
|
- `i` (case-insensitive)
|
|
- Smart case-sensitivity is used by default with regular expressions
|
|
|
|
### Improvements
|
|
|
|
- You may now pass multiple files to `sd`
|
|
- this is now valid: `sd -i "\n" "," *.txt`
|
|
|
|
## [0.3.0] - 2018-12-29
|
|
|
|
**Breaking Change**: the `-i`/`--input` is revamped per [#1](https://github.com/chmln/sd/issues/1). The file path now comes at the end, instead of `-i`.
|
|
|
|
Transforming the file in-place:
|
|
- Before: `sd -s 'str' '' -i file.txt'`
|
|
- Now: `sd -i -s 'str' '' file.txt`
|
|
- Future: `sd -i -s 'str' '' *.txt`
|
|
|
|
To reflect this change, `--input` is also renamed to `--in-place`. This is the first and most likely the last breaking change in this project.
|
|
|
|
### Improvements
|
|
|
|
- Files are now written to [atomically](https://github.com/chmln/sd/issues/3)
|
|
|
|
|