sd/CHANGELOG.md
CosmicHorror eb51bdf11e
Prepare 1.0.0 release (#277)
* Bump version to v1.0.0

* `cargo xtask gen`

* Add all new entries to the changelog
2023-11-07 20:19:46 -06:00

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)