Releases: durbanlegend/thag_rs
v0.2.1
thag_rs 0.2.1 and thag_demo 0.2.1
This release addresses cross-platform build issues discovered in v0.2.0.
What's Fixed
Package Installation
- Fixed
thag_commonpath todefault_config.toml(moved from workspace root tothag_common/assets/) - Added missing
build_utils.rsto package includes - Resolved
.DS_Storepackaging issues
Cross-Platform Compatibility
- Added missing
std::error::Errorimport for Windows builds - Properly gated Windows-only tools (
thag_winterm_add_theme,thag_mintty_add_theme) with platform-specific compilation - Verified builds on Windows, Linux, and macOS
Published Crates
All crates updated to v0.2.1 (v0.1.1 for thag_profiler):
thag_common0.2.1thag_proc_macros0.2.1thag_styling0.2.1thag_profiler0.1.1thag_rs0.2.1thag_demo0.2.1
Previous v0.2.0 versions have been yanked.
Documentation
- See CLAUDE.md for development guidelines
- Added major.minor version convention for demo script toml blocks
For v0.2.x highlights, see the v0.2.0 release notes.
For the full v0.2.x feature set, see the README.
Install thag_rs 0.2.1
Install via cargo:
cargo install thag_rsOr download pre-built binaries below for your platform.
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/durbanlegend/thag_rs/releases/download/v0.2.1/thag_rs-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/durbanlegend/thag_rs/releases/download/v0.2.1/thag_rs-installer.ps1 | iex"Download thag_rs 0.2.1
| File | Platform | Checksum |
|---|---|---|
| thag_rs-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| thag_rs-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| thag_rs-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| thag_rs-x86_64-pc-windows-msvc.msi | x64 Windows | checksum |
| thag_rs-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Install thag_demo 0.2.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/durbanlegend/thag_rs/releases/download/v0.2.1/thag_demo-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/durbanlegend/thag_rs/releases/download/v0.2.1/thag_demo-installer.ps1 | iex"Download thag_demo 0.2.1
| File | Platform | Checksum |
|---|---|---|
| thag_demo-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| thag_demo-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| thag_demo-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| thag_demo-x86_64-pc-windows-msvc.msi | x64 Windows | checksum |
| thag_demo-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.1.9 (2024-12-15)
Release Notes
Highlights
v0.1.9 brings some next-level enhancements for doing more with your scripts with less effort, such as running scripts straight from URLs,
and helping you develop or get started with proc macros. And as ever, although it can't speed up Cargo builds, thag always aims to achieve
near-ludicrous speed in its own operations.
-
Proc macro development support including macro expansion for debugging:
- The starter kit now includes a new local crate
demo/proc_macroswith alib.rsand demo proc macros in their own modules that you
can adapt or add to. - lib.rs features a function
intercept_and_debugthat allows you to display the expansion of your proc macro/s in your build
output. You can currently switch expansion on or off for a given proc macro by a hard-coded boolean in demo/proc_macros/lib.rs,
or by enabling themacro-debugfeature in demo/proc_macros/Cargo.toml, or by including anexpand_macroattribute in the
caller's proc macro invocation, or by a combination of feature and attribute. - the new expand (-X) command-line option shows the full expansion of the script, including all macros, side by side with
the source script.
- The starter kit now includes a new local crate
-
Enhanced dependency inference means you often don't need a
tomlblock at all.- infer dependencies from more code points including command invocations, function signatures etc.
- configure feature inclusion and exclusion at global and individual crate level.
- configurable options max, min, config (recomm/default), none.
- support added for detailed dependency format: selects simple or detailed format for each dependency as appropriate.
- --verbose option shows results of dependency inference that can be pasted as a new toml block or into an existing one, as the case may be.
-
New command-line options:
--cargo (-A) runs any valid cargo subcommand against the generated script, e.g.test,clippy,tree,docetc.
--infer (-i) overrides configured or system default dependency inference level
--expand (-X) shows script source and expanded source side by side. Requires you to have installed cratecargo-expand. -
Enhancements to generated demo/README.md:
- Demo script classification by category
- New Run this example: code block for most scripts that you can copy and paste to the command line to run the script directly from its
GitHub URL (not provided for a few scripts that usetermbgor need to run in terminal mode.)
Requires you to have compileddemo/thag_url.rsto a command, which is done bythag demo/thag_url.rs -x.
-
thagnow helps you debug malformed scripts that can't be parsed into an AST, by seamlessly callingrustfmtto display the errors. -
"Demo" starter kit now includes handy new tools that you're encouraged to compile to commands with --executable (-x):
- Front-end helper scripts
- thag_cargo (demo/thag_cargo.rs) - uses
inquirecrate to allow user to pick a demo script and a Cargo command to run against it. - thag_clippy (demo/thag_clippy.rs) - uses
inquirecrate to allow user to pick a demo script and one or more Clippy lint groups
to run against it, e.g.correctnessorpedantic. - thag_url (demo/thag_url.rs) - runs scripts from URLs. Converts source code URLs from GitHub, Rust playground, Gitlab and BitBucket where
necessary, downloads the source, checks validity and passes it tothagwith --stdin (default) or --edit options to run.
thagdependency inference helps ensure that many such scripts will compile and run without the need to manually specify manifest info. - Config file builder "config_builder" (demo/config_builder.rs) - uses
inquirecrate with the current activethag_rsstructs and enums
to guide the user through the process of building a config.toml file that precisely matches their needs. - Fast report generator "filter_demos" (demo/filter_demos.rs) - helps you quickly find demos of interest. It uses the
inquirecrate to
allow the user to select script categories and/or crates of interest, with a choice of And/Or/All logic. It displays them either as HTML
via HTTP, or as markdown to a pager (less) or to a.mdfile with sensible default naming.
-
Now over 230 demo scripts including 22 in demo/proc_macros.
-
Enhanced help screen
-
Code quality improvements
-
New lazy_static_var! macro to define lazy statics using std::sync::OnceLock.
-
Make extensive use of From trait in colors module colour conversions.
-
New and updated unit tests.
-
Dependency bumps.
-
Merge pull request #75 from durbanlegend/dependabot/github_actions/actions/upload-artifact-4
-
Merge pull request #76 from durbanlegend/dependabot/cargo/tempfile-3.14.0
-
Fix edit_history replacing LF in multi-line REPL history entries with \n
-
Revert "Work around reedline KeyCombination being unavailable"
-
Merge pull request #78 from durbanlegend/dependabot/cargo/mockall-0.13.1
-
Merge pull request #79 from durbanlegend/dependabot/cargo/serde_json-1.0.133
-
Merge pull request #80 from durbanlegend/dependabot/cargo/reedline-0.37.0
-
Merge pull request #81 from durbanlegend/dependabot/cargo/clap-4.5.21
-
Merge pull request #82 from durbanlegend/dependabot/cargo/termbg-0.6.1
-
[Merge pull request #83 fro...
v0.1.7
Release Notes
Highlights
-
Provide helpful message if source can't be parsed to AST.
-
CLI simplification: De-emphasise --gen and --build, make them imply "don't run" and drop explicit --norun. Group options by category on help screen and clarify wording.
-
Pick up crates with
use <single-path_segment>; -
Add new
Brightlevel to message levels for emphasis. -
Streamline logging and colour handling.
-
Make
simplelogthe default logger in place ofenv_loggerbut retainenv_loggeras an alternative feature. -
Pick better message colours with the aid of new displays in demo/colors.rs, and align
XtermColorcolour choices withnu_ansi_termandratatui.
Ensure Ansi-16 colours are valid. -
Add REPL support for edit-run cycle with external editor, analogous to tui_edit-submit cycle with built-in TUI editor.
-
Enhance selected line highlighting in TUI editor with toggling between main level colours.
-
Bring look of file dialog in line with others and add a separate keys display screen for filename input mode as opposed to list mode.
-
Sort TUI editor keys displays by sequence number provided for the purpose.
-
Introduce unit tests for fn
from_xtermintermbgmodule. -
Make many more common items public in lib.
-
Remove redundant code including alternative REPL in stdin (now merged into repl.rs) and old TUI history edit function from before
tui_editor::tui_edit. -
Clean after
cargo checkin demo testing to avoid space issues in Github CI. -
New demo scripts
-
Remove reference to revisit-REPL feature, decommissioned because too expensive.
-
Bump dependencies
-
Merge pull request #58 from durbanlegend/dependabot/cargo/syn-2.0.82
-
Merge pull request #59 from durbanlegend/dependabot/cargo/prettyplease-0.2.24
-
Merge pull request #60 from durbanlegend/dependabot/cargo/serde_json-1.0.132
-
Merge pull request #61 from durbanlegend/dependabot/cargo/reedline-0.36.0
-
file_dialog: list filtering, context sensitive key displays.
-
Merge pull request #62 from durbanlegend/dependabot/cargo/serde-1.0.213
-
Merge pull request #64 from durbanlegend/dependabot/cargo/syn-2.0.85
-
Merge pull request #66 from durbanlegend/dependabot/cargo/proc-macro2-1.0.89
-
Merge pull request #67 from durbanlegend/dependabot/cargo/syn-2.0.87
Notes
-
Add darling demo.
-
Bumps syn from 2.0.79 to 2.0.82.
Release notes
Commits--
updated-dependencies:
dependency-name: syn
dependency-type: direct:production
update-type: version-update:semver-patch
...Signed-off-by: dependabot[bot] support@github.com
-
Bumps prettyplease from 0.2.22 to 0.2.24.
Release notes
Commits--
updated-dependencies:
dependency-name: prettyplease
dependency-type: direct:production
update-type: version-update:semver-patch
...Signed-off-by: dependabot[bot] support@github.com
-
Bumps serde_json from 1.0.129 to 1.0.132.
Release notes
Commits--
updated-dependencies:
dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
...Signed-off-by: dependabot[bot] support@github.com
-
Bumps reedline from 0.35.0 to 0.36.0.
Release notes
Commits--
updated-dependencies:
dependency-name: reedline
dependency-type: direct:production
update-type: version-update:semver-minor
...Signed-off-by: dependabot[bot] support@github.com
-
Remove reference to revisit-REPL feature, decommissioned because too expensive.
-
From 0.1.4 to 0.1.5 and branch = "develop" to implicit main.
-
Add darling_comsume_fields.rs
-
Test broken termbg 0.5.2 against fixed 0.6.0. Script bank\termbg_bug.rs has app.log for features=simplelog, which if run under Windows 1.22+ should show it was answered with an RGB value, or if run under an earlier version, should show no response was...
v0.1.5 (2024-10-20)
Release Notes
Highlights
-
Common TUI editor with file save dialog, status message and working history, basic mouse selection support, TUI history edit.
-
Feature to promote script from REPL (-r) to TUI (with separate TUI history shared with -d option)
-
Code quality improvements, e.g. From trait for message level to style conversions, ThagResult, Keys display build, regex! macro,
clippy::nursery recommendations as well as clippy::pedantic. -
Fix termbg Windows behaviour (using custom version of termbg pending PR raised on termbg crate)
-
Crokey-based key bindings (using custom version of crokey)
-
simplelog option as alternative to env_logger
-
Replaced lazy_static crate with standard Rust built-ins
-
New demo and bank scripts
-
Drop individual REPL builds as too expensive
-
New ThagErrors: Logic and UnsupportedTerm
-
Rename test functions to incorporate module name and thus allow filtering tests by module
-
Merge pull request #43 from durbanlegend/dependabot/cargo/serde-1.0.210
-
Merge pull request #44 from durbanlegend/dependabot/cargo/termbg-0.5.1
-
Merge pull request #46 from durbanlegend/dependabot/cargo/clap-4.5.18
-
Merge pull request #45 from durbanlegend/dependabot/cargo/reedline-0.35.0
-
Merge pull request #47 from durbanlegend/dependabot/cargo/tempfile-3.13.0
-
Merge pull request #48 from durbanlegend/dependabot/cargo/cargo_toml-0.20.5
-
Merge pull request #49 from durbanlegend/dependabot/cargo/regex-1.11.0
-
Merge pull request #50 from durbanlegend/dependabot/cargo/syn-2.0.79
-
Merge pull request #52 from durbanlegend/dependabot/cargo/clap-4.5.19
-
Merge pull request #51 from durbanlegend/dependabot/cargo/serde_with-3.11.0
-
Merge pull request #56 from durbanlegend/dependabot/cargo/clap-4.5.20
-
Merge pull request #55 from durbanlegend/dependabot/cargo/proc-macro2-1.0.87
-
Merge pull request #54 from durbanlegend/dependabot/cargo/termbg-0.5.2
Notes
-
Also REPL alternatives to reedline.
-
Bumps serde from 1.0.209 to 1.0.210.
Release notes
Commits
Install thag_rs 0.1.5
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/durbanlegend/thag_rs/releases/download/v0.1.5/thag_rs-installer.sh | shInstall prebuilt binaries via powershell script
powershell -c "irm https://github.com/durbanlegend/thag_rs/releases/download/v0.1.5/thag_rs-installer.ps1 | iex"Download thag_rs 0.1.5
| File | Platform | Checksum |
|---|---|---|
| thag_rs-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| thag_rs-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| [thag_rs-x86_64-pc-windows-msvc.... |
v0.1.4
Release Notes
Upgrade manifest processing to allow arbitrary valid Cargo.toml such as profiles to be specified in toml block.
(Catch up with inadventent over-promise in Readme.)
Add config.toml template and add edit config.toml option --config (-C) to CLI, renaming --cargo (-C) to --toml (-T).
Add --unquote (-u) true/false option to CLI and add user default setting to config.toml. true will strip quotes from string
values returned implicitly by a snippet, false (default) will retain them. = sign is optional, e.g. -u=true and -u true are interchangeable. --unquote or -u specified without a value equates to -u true.
E.g. run thag -- -e '"Hello world!"' -u vs thag -- -e '"Hello world!"' -u false to see the difference.
Group related args in --help display.
Rationalise and streamline error handling and eliminate undue expects, unwraps and panics.
Run well-formed program scripts from original source for efficiency.
Reduce cloning and make other optimisations and code improvements.
Build out profiling instrumentation.
Documentation corrections and enhancements.
Demo script corrections and additions.
Bump dependencies via Dependabot.
Install thag_rs 0.1.4
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/durbanlegend/thag_rs/releases/download/v0.1.4/thag_rs-installer.sh | shInstall prebuilt binaries via powershell script
powershell -c "irm https://github.com/durbanlegend/thag_rs/releases/download/v0.1.4/thag_rs-installer.ps1 | iex"Download thag_rs 0.1.4
| File | Platform | Checksum |
|---|---|---|
| thag_rs-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| thag_rs-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| thag_rs-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| thag_rs-x86_64-pc-windows-msvc.msi | x64 Windows | checksum |
| thag_rs-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| thag_rs-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
v0.1.2
thag_rs 0.1.2
Release Notes
Rename error class frim BuildRunError to ThagError to reflect project name change.
Start profiling with firestorm.
Replace rustfmt by prettyprint for speed boost and direct call, at the cost of losing comments at syn::parse stage.
Add changelog.
Minor fixes and updates.
Install thag_rs 0.1.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/durbanlegend/thag_rs/releases/download/v0.1.2/thag_rs-installer.sh | shInstall prebuilt binaries via powershell script
powershell -c "irm https://github.com/durbanlegend/thag_rs/releases/download/v0.1.2/thag_rs-installer.ps1 | iex"Download thag_rs 0.1.2
| File | Platform | Checksum |
|---|---|---|
| thag_rs-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| thag_rs-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| thag_rs-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| thag_rs-x86_64-pc-windows-msvc.msi | x64 Windows | checksum |
| thag_rs-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| thag_rs-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Full Changelog: v0.1.1...v0.1.2
v0.1.1
thag_rs 0.1.1
Release Notes
Create demo.zip and installation artifacts, minor demo script updates, e.g replace thag git dependency with new crates.io release.
Install thag_rs 0.1.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/durbanlegend/thag_rs/releases/download/v0.1.1/thag_rs-installer.sh | shInstall prebuilt binaries via powershell script
powershell -c "irm https://github.com/durbanlegend/thag_rs/releases/download/v0.1.1/thag_rs-installer.ps1 | iex"Download thag_rs 0.1.1
| File | Platform | Checksum |
|---|---|---|
| thag_rs-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| thag_rs-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| thag_rs-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| thag_rs-x86_64-pc-windows-msvc.msi | x64 Windows | checksum |
| thag_rs-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| thag_rs-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Initial release
v0.1.0 Initial release