Releases: dathere/qsv
Releases · dathere/qsv
0.73.0
Added
safenames
: new command to modify header names to db-safe names in #606apply
: addedcensor-count
operation in #599apply
: addedescape
operation in #600excel
: added--safe-names
option in #598
Changed
apply
: refactored to use enums instead of strings for operations in #601fetch
&fetchpost
: --http-header -H shortcut in #596excel
: smarter date parsing for XLSX files; rename --safe-column-names to --safe-names in #603- Smarter safe names in #605
- Bump uuid from 1.2.1 to 1.2.2 by @dependabot in #594
- Bump mimalloc from 0.1.31 to 0.1.32 by @dependabot in #595
- Bump censor from 0.2.0 to 0.3.0 by @dependabot in #597
- Bump Swatinem/rust-cache from 1 to 2 by @dependabot in #602
- cargo update bump several indirect dependencies
- pin Rust nightly to 2022-11-19
Full Changelog: 0.72.0...0.73.0
0.72.0
Added
apply
: added --keep-zero-time option in #590lua
andluajit
: added --prologue & --epilogue options in #592luau
&luajit
: switched from Lua to Luau; added special vars _idx and _rowcount in #593luau
&luajit
: return exitcode 1 if interpretation error is encountered 655041b
Changed
schema
&validate
: expand description/usage text in 60dfebcvalidate
: return exitcode 0 if CSV is valid; exitcode 1 otherwise in #591- Bump hashbrown from 0.12.3 to 0.13.1 by @dependabot in #586
- cargo bump update indirect dependencies, notably chrono from 0.4.22 to 0.4.23
- Shortened command descriptions for
luau
&luajit
and added salient notes to new interpreter section - adjust GitHub Actions workflows to use
luau
feature - pin Rust nightly to 2022-11-14
Full Changelog: 0.71.1...0.72.0
0.71.1
Changed
python
feature is no longer enabled in the prebuilt binaries to avoid distribution issues and qsv panicking if the exact python version it was statically linked against is not available. If you require thepython
feature, you'll have to install/build from source.
Fixed
- whirlwind tour:
join
's--no-case
option has been replaced by--ignore-case
by @alperyilmaz in #585
New Contributors
- @alperyilmaz made their first contribution in #585
Full Changelog: 0.71.0...0.71.1
0.71.0
Added
apply
: newencode
anddecode
operations in #569apply
: add ability to show confidence to whatlang language detection in #579count
: add --width option in #582fetch
&fetchpost
: Added --user_agent option by @minhajuddin2510 in #565 and f59bd85- Documented Homebrew installer 🚀 created by @FnControlOption
Changed
apply
: refactor operations validation in #564 and f83ec6fsortcheck
: expand usage text and use fail_clierror macro 8513b53stats
: minor refactoring 3879513tojsonl
: it does "smart" conversion of CSV to JSONL af98290validate
: also show --progressbar when doing schemaless validation aae550a- only show enabled commands in command list in #583
- Updated the benchmark script by @minhajuddin2510 in #581
- Switch back to using num_cpus for detecting parallelism b7dbed8
- qsv now links against Python 3.11 for the
py
command in #576 - Bump robinraju/release-downloader from 1.5 to 1.6 by @dependabot in #568
- Bump newline-converter from 0.2.0 to 0.2.1 by @dependabot in #567
- Bump sysinfo from 0.26.5 to 0.26.7 by @dependabot in #566 and #572
- Bump ahash from 0.8.0 to 0.8.1 by @dependabot in #575
- Bump flexi_logger from 0.24.0 to 0.24.1 by @dependabot in #574
- Bump pyo3 from 0.17.2 to 0.17.3 by @dependabot in #573
- Bump jql from 5.1.1 to 5.1.2 by @dependabot in #577
- Bump num_cpus from 1.13.1 to 1.14.0 by @dependabot in #580
- Bump mimalloc from 0.1.30 to 0.1.31
- Bump indicatif from 0.17.1 to 0.17.2
- cargo update bump several indirect dependencies
- updated rustfmt.toml with comment and string formatting options
- bump MSRV to 1.65.0
- pin Rust Nightly to 2022-11-07
Full Changelog: 0.70.0...0.71.0
0.70.0
Added
apply
: additional operations -squeeze0
,strip_prefix
andstrip_suffix
#518 & #519apply
: addcalcconv
subcommand, which parses & evaluate math expressions, with support for units & conversions. #560
Changed
search
&searchset
: make match count optional #526jsonl
: remove panic and do proper error handling; add --ignore-errors option #531py
: py command does not do aggregations (reduce) operations #548lua
&luajit
can do aggregations across CSV rows andpy
cannot #549py
: add more complex f-string formatting example #556- Standardize ignore case option #535
- Use rustfmt nightly to take advantage of advanced features like StdExternalCrate #514 & #517
- Update benchmark-basic.sh by @minhajuddin2510 in #542
- Use fail macros more consistently #545
- Use Redis
ahash
feature for performance - Added wix file for future Windows Installer by @minhajuddin2510 in #546
- Bump console from 0.15.1 to 0.15.2 by @dependabot in #512
- Bump pyo3 from 0.17.1 to 0.17.2 by @dependabot in #522
- Bump jql from 5.0.2 to 5.1.0 by @dependabot in #521
- Bump titlecase from 2.2.0 to 2.2.1 by @dependabot in #534
- Bump itoa from 1.0.3 to 1.0.4 by @dependabot in #533
- Bump sysinfo from 0.26.4 to 0.26.5 by @dependabot in #554
- Bump mlua from 0.8.3 to 0.8.4 by @dependabot in #540
- Bump uuid from 1.1.2 to 1.2.1 by @dependabot in #539
- Bump flexi_logger from 0.23.3 to 0.24.0 by @dependabot in #538
- Bump serde_json from 1.0.85 to 1.0.86 by @dependabot in #537
- Bump actions/setup-python from 4.2.0 to 4.3.0 by @dependabot in #541
- Bump filetime from 0.2.17 to 0.2.18 by @dependabot in #559
- Bump redis from 0.21.6 to 0.22.1 by @dependabot in #555
- Bump cached from 0.39.0 to 0.40.0 by @dependabot in #561
- Bump whatlang from 0.16.1 to 0.16.2 by @dependabot in #562
- cargo update bump several indirect dependencies
- Pin Rust nightly to 2022-10-22
Fixed
excel
: xls float temporary workaround for #516 that was ultimately fixed in PR 558 #520tojsonl
: escape newlines and double quotes. Fixes #552 #553tojsonl
: better error handling; when checking stdin for utf8, make sure its not empty. Fixes #530 #536
Removed
excel
: removed xls float workaround now that calamine crate has been fixed. Fixes #516 removing need for PR 520 workaround. #558- removed obsolete Rust Nightly workflow 2a99318
New Contributors
- @minhajuddin2510 made their first contribution in #542
Full Changelog: 0.69.0...0.70.0
0.69.0
Added
luajit
: new command using LuaJIT, which is much faster than Lua #500
Changed
python
: tweaks. Expanded usage text. Only show python version when logging is on. #507fetch
&fetchpost
: apply clippy recommendation dd7220bexcel
: usewinfo!
macro 7211ff2- Removed anyhow dependency #508
- Bump actions/stale from 5 to 6 by @dependabot in #505
- Bump sysinfo from 0.26.3 to 0.26.4 by @dependabot in #510
- Cargo update bump several indirect dependencies
- include Python 3.10 shared libraries when publishing for select platforms
- bump MSRV to Rust 1.64.0
- Pin Rust nightly to 2022-09-26
Fixed
python
: corrected erroneous --helper example. Included hashhelper.py example.extsort
: fixed --help bug (#506)
Full Changelog: 0.68.0...0.69.0
0.68.0
Changed
- Simplify python support. For prebuilt binaries, Python 3.10 is now required and the python 3.10 shared libraries are bundled for select platforms. If you require an earlier version of Python (3.6 and up), you'll have to install/compile from source. #492
- Smarter self update. --update can still be explicitly invoked even when self-update feature has been disabled. Further, if you compiled qsv from source, self-update will only notify you of new releases, instead of proceeding with self-update. #490 and #493
lua
: switch from Lua 5.4 to LuaJIT 2.1, primarily for performance #495lua
: when filtering using floats, "0.0" is falsejoin
: removed unneeded utf8 checksearch
: simplify regex_unicode checkfetch
&fetchpost
: optimize imports; remove unneeded utf8 check- Bump anyhow from 1.0.64 to 1.0.65 by @dependabot in #498
- Bump self_update from 0.31.0 to 0.32.0 by @dependabot in #499
- add additional copyright holder to MIT License
- Improved publishing workflow for prebuilt binaries
- cargo update bumped several dependencies
- pin Rust nightly to 2022-09-14
Fixed
- fix typos by @kianmeng in #491
python
: better error handling. When mapping/filtering, python expression errors no longer cause a panic, but instead fail to map/filter as expected (when mapping, "<ERROR>" is returned, when filtering, the filter is not applied), and continue processing. Also, other errors are properly propagated instead of panicking. #496lua
: better error handling. When mapping/filtering, Lua errors no longer cause a panic, but instead fail to map/filter as expected (when mapping, "<ERROR>" is returned, when filtering, the filter is not applied), and continue processing. #497
New Contributors
Full Changelog: 0.67.0...0.68.0
publish-testing: skip license file for now
This release is for testing the Release Github Action publishing workflow.
These downloads are not meant for general use.
0.67.0
Added
- added
self_update
feature, so users can build qsv without self-update engine.
Previously, self-update was enabled by default. #483 and #484
Changed
search
&searchset
: --quick option returns first match row to stderr #475python
: make --batch size configurable #485stats
: added more implementation comments; standardize string creationreplace
: add conditional compilation to eliminate dead_code warninglua
: when filtering, non-zero integers are true- refactored
workdir.rs
test helpers - refactored
util:init_logger()
to log command-line arguments - Bump url from 2.3.0 to 2.3.1 by @dependabot in #489
- Bump anyhow from 1.0.63 to 1.0.64 by @dependabot in #478
- Bump sysinfo from 0.26.1 to 0.26.2 by @dependabot in #477
- Bump robinraju/release-downloader from 1.4 to 1.5 by @dependabot in #481
- cargo update bump indirect dependencies
- pin Rust nightly to 2022-09-07
Full Changelog: 0.66.0...0.67.0
0.66.0
Added
apply
: added Multi-column subcommands by @udsamani in #462stats
: added --round option #474- created
fail_format!
macro for more concise error handling in #471
Changed
- Move command usage text to beginning of cmd source code, so we don't need to move around deeplinks to usage texts from README #467
- Optimize conditional compilation of various qsv binary variants, removing dead code #473
fetch
&fetchpost
: removed initial burst of requests, making the commands "friendlier" to rate-limited APIssearch
,searchset
&replace
: minor performance optimizations- created dedicated rustfmt GitHub action workflow to ensure code is always rust formatted. Previously, rustfmt check was in Linux workflow.
- applied some clippy recommendations
- Bump actix-governor from 0.3.1 to 0.3.2 by @dependabot in #461
- cargo update bumped several dependencies
- pin Rust nightly to 2022-08-31
- set RUSTFLAGS to emit=asm when compiling pre-built binaries for performance
see http://likebike.com/posts/How_To_Write_Fast_Rust_Code.html#emit-asm
Fixed
extsort
code was being compiled for qsvdp even if it was not enabled- bump sysinfo from 0.25.2 to 0.26.0, fixing segfault on Apple Silicon
- fixed qsvnp on Windows so it doesn't look for python shared libraries even if python is not enabled
- fixed CliError::Other so it returns bad exitcode (exitcode 1) instead of incorrect_usage (exit code 2)
New Contributors
Full Changelog: 0.65.0...0.66.0