Skip to content

Releases: chmln/sd

v1.1.0

25 Feb 19:27
4a7b216

Choose a tag to compare

Breaking

  • #328 Make line-by-line processing the default and add --across / -A (@orion Gonzalez)
    • sd now processes input line-by-line by default, reducing memory usage and
      enabling streaming output for stdin
    • The previous whole-file behavior is still available via --across / -A

Improvements

  • #313 Replace the unescape implementation with a more lenient one (@orion Gonzalez)
    • Avoids the previous all-or-nothing behavior when escape parsing partially fails
  • #326 Retain file ownership on atomic writes (@gregory)
    • Preserves original file uid/gid when replacing files through the atomic write path

Docs

  • #279 Update man page examples for the renamed string literal flag (@philipp Gillé)
  • #281 Update README for string literal argument changes (@evan Platzer)
  • #292 Fix capture group example in the man page (@john Careaga)
  • #299 Add README_zh-CN.md and follow-up note adjustments (@zhangyanming)
  • #320 Fix missing single quotes in a man page example (@Freimut Diener)

Pre-built Releases

  • (90bc67d) Add Windows ARM64 (aarch64-pc-windows-msvc) release targets (@orion Gonzalez)
  • (c864c58) Add aarch64-unknown-linux-gnu target to CI and releases (@orion Gonzalez)
  • #293 Bump svenstaro/upload-release-action from 2.7.0 to 2.9.0 (@dependabot[bot])

Internal

  • #265 Overall codebase reorganization (@blair Noctis)
    • Refactors application structure, error handling, and tests
  • xtask cleanup and test setup refactors (@gregory, @orion Gonzalez)
  • Dependency and tooling updates
    • Bump libc from 0.2.149 to 0.2.155 (@jingyun Hua)
    • Upgrade assert_cmd and fix clippy warnings (@gregory)

v1.0.0 - 2023-11-07

08 Nov 02:22
eb51bdf

Choose a tag to compare

A huge thanks to everyone who helped make this release happen! 🎉

A quick note to any packagers. 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)
    • striped 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

1.0.0-beta.0 - 2023-11-05

05 Nov 19:19
cb015f7

Choose a tag to compare

Pre-release

The official v1.0 release is out. Check that out instead!

Original release notes

This is the official beta release for v1.0. Expect the 1.0 release in the coming days. Enjoy 🎉

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)
    • striped 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

[PRE-RELEASE] 1.0.0-pre-alpha.5

28 Oct 20:26
a88673b

Choose a tag to compare

Pre-release

This is just a pre-alpha, so don't get too excited (yet). We're just making sure that all the assets get built and uploaded correctly for the pending official release

v1.0.0-alpha.0 - 2023-10-30

31 Oct 02:22
a88673b

Choose a tag to compare

Pre-release

An alpha release for the upcoming v1.0 release. A beta release should follow in the coming days

v0.7.6

01 Aug 02:56
977f2cb

Choose a tag to compare

(cargo-release) sd version 0.7.6

v0.7.5 - 2020-05-04

04 May 21:14
6068451

Choose a tag to compare

Changes:

  • 6068451 (cargo-release) version 0.7.5
  • 1014135 Add empty-file check for memmep use in stdout [ #76 ]

This list of changes was auto generated.

v0.7.4 - 2020-04-22

22 Apr 21:03
c1f6242

Choose a tag to compare

Changes:

  • c1f6242 (cargo-release) version 0.7.4
  • 88e2d3e replace: isolate memmap from file errs
  • 39c29b2 Ensure memmap source is not empty [ #74 ]
  • 4a57005 Update cargo.toml + lock

This list of changes was auto generated.

v0.7.3 - 2020-04-11

11 Apr 19:10
c8022e2

Choose a tag to compare

Changes:

This list of changes was auto generated.

v0.7.2 - 2020-03-31

31 Mar 19:56
fd55fa0

Choose a tag to compare

Changes:

  • Enable multi-line matching by default
  • 87491b4 Let ^$ match lines by default [ #60 ]
  • 1a622ce Add s flag to make . match newline
    instructions and e flag to disable multi-line matching