github chmln/sd v1.0.0
v1.0.0 - 2023-11-07

12 months ago

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

Don't miss a new sd release

NewReleases is sending notifications on new releases.