Skip to content

Releases: nushell-prophet/numd

numd 0.3.0

01 Jan 03:28

Choose a tag to compare

Breaking Changes

  • Simplified configuration API: Replaced --config-path (YAML) with --eval flag that accepts inline Nushell code or sourced .nu files
    # Before: numd run file.md --config-path config.yaml
    # After:
    numd run file.md --eval '$env.numd.table-width = 80'
    numd run file.md --eval (open -r numd_config.nu)
  • Removed flags: --result-md-path, --save-ansi, --no-backup, --no-save (simplified API)
  • Renamed test commands: testingtest, testing-unittest-unit, testing-integrationtest-integration

New Features

  • Reproducible output by default: Runs intermediate scripts with nu -n (no config files) for consistent output across systems. Use --use-host-config to load host environment when needed
  • Git safety check: Errors on uncommitted changes before overwriting. Use --ignore-git-check to bypass
  • CI support: Added --fail flag to toolkit.nu test for non-zero exit on test failures
  • Test update mode: Added --update flag to automatically stage changed integration test files
  • Plumbing commands: New low-level composable commands in numd/plumbing.nu:
    • parse-file, strip-outputs, execute-blocks, to-markdown, to-numd-script
  • Command examples: Added @example attributes to commands for better discoverability

Bug Fixes

  • Fixed clear-outputs without --echo creating empty files
  • Fixed $env.numd fields being overwritten instead of merged in config loading

Improvements

  • Standardized terminology to "fence options" throughout codebase
  • Reorganized module structure: moved capture and parse-help to separate files
  • --echo now outputs only markdown without stats for cleaner piping
  • Added pipe-to helper for cleaner pipeline generation
  • Added unit tests for plumbing commands using nutest framework

CI/Infrastructure

  • Added Windows testing to GitHub Actions
  • Improved workflow with git diff reporting after integration tests

0.2.2

13 Dec 21:25

Choose a tag to compare

Removed > notation - New blank-line command grouping

The > prefix notation for REPL-style commands has been removed. Commands are now grouped by blank lines (double newlines):

Before (v0.1.21):

> ls | length
# => 42
> pwd
# => /home/user

After (v0.2.0+):

ls | length
# => 42

pwd
# => /home/user
  • Each command group (separated by blank lines) is executed separately
  • Output appears as # => prefixed lines after each group
  • Plain # comments are preserved; only # => output lines are regenerated

New Features

  • separate-block fence option: Output results in a separate code block instead of inline # => format
  • --json flag for testing: nu toolkit.nu testing --json outputs machine-readable test results for CI integration
  • Unit tests with nutest: New tests/test_commands.nu with 376 lines of unit tests covering internal parsing and transformation
  • Type annotations: Added precise generic type parameters to core functions for better IDE support and documentation

Improvements

  • Renamed internal commands for clarity:
    • find-code-blocks → parse-markdown-to-blocks
    • decortate-original-code-blocks → decorate-original-code-blocks
    • modify-path → build-modified-path
    • match-action → classify-block-action
    • create-execution-code → generate-block-execution
    • toggle-output-fences → convert-output-fences
  • Refactored testing commands: Restructured into testing, testing-unit, and testing-integration subcommands
  • Fixed keywords: Added source, overlay, alias to check-print-append keywords for proper output handling
  • Deterministic example outputs: Fixed examples to avoid time-dependent outputs where possible

Documentation

  • Added CLAUDE.md for Claude Code AI assistant integration
  • Improved command descriptions and fixed spelling errors
  • Updated README with new blank-line grouping format

CI/CD

  • Added GitHub Actions workflows for Claude Code review (claude-code-review.yml, claude.yml)

Bug Fixes

  • Fixed preservation of blank lines between command groups
  • Fixed JSON output validity for testing commands

0.1.21

02 Nov 02:00

Choose a tag to compare

What's Changed

Full Changelog: 0.1.20...0.1.21

0.1.20

20 Mar 01:10

Choose a tag to compare

What's Changed

  • format scripts with topiary, add kv for writing tests by @maxim-uvarov in #72
  • hot fixes for 0.103, remove parse-help from readme as split list behaves differently now by @maxim-uvarov in #74

Full Changelog: 0.1.18...0.1.20

0.1.18

25 Feb 02:51

Choose a tag to compare

What's Changed

Full Changelog: 0.1.15...0.1.18

0.1.17

25 Feb 02:45

Choose a tag to compare

What's Changed

  • Small fixes for parsing ast to decide if print can be appended, cosmetic code changes by @maxim-uvarov in #59
  • change numd parse-help formatting, small changes by @maxim-uvarov in #60
  • 0.100.0 compliance by @maxim-uvarov in #62
  • remove printing non-execution text blocks in the intermediate script (printing markdown verbatim) by @maxim-uvarov in #63
  • refactor exports: move all submodules to commands.nu to get rid of main by @maxim-uvarov in #64
  • Fix windows problems caused by use of to text by @maxim-uvarov in #66
  • Hot fix for std iter scan by @maxim-uvarov in #67
  • embed scan from std tier scan 0.101, rename variables by @maxim-uvarov in #68
  • compliance with 0.102

Full Changelog: 0.1.15...0.1.17

0.1.15

26 Aug 08:18

Choose a tag to compare

  • Small fixes for parsing ast to decide if print can be appended, cosmetic code changes

Full Changelog: 0.1.13...0.1.15

0.1.13

03 Aug 11:08

Choose a tag to compare

What's Changed

  • improve generation of intermed script, add docstring examples for commands by @maxim-uvarov in #53
  • rename variables, commands and flags
  • add support for loading config from external file (#31)
  • update tests accordingly (#55)

Full Changelog: 0.1.12...0.1.13

0.1.12

20 Jul 11:04

Choose a tag to compare

What's Changed

  • change to Unlicense, update tools.nu, update examples by @maxim-uvarov in #40
  • Made the paths in examples windows-compatible, renamed variables and commands, corrected typos, etc by @maxim-uvarov in #41
  • Add the development and testing chapter, update the code-block-options descriptions by @maxim-uvarov in #42
  • use numd parse-help in README by @maxim-uvarov in #43
  • Add the 'Styling outputs' chapter, remove obsolete cd in the intermid script by @maxim-uvarov in #44
  • add --print-block-results as they appear by @maxim-uvarov in #45
  • add printing markdown text into intermid-script by @maxim-uvarov in #46
  • add printing markdown text into intermid-script 2 #46 by @maxim-uvarov in #47
  • update examples by @maxim-uvarov in #48
  • Windows compatiblity: remove --diff, fix (crlf). Also moved examples to z_examples folder by @maxim-uvarov in #50
  • add --strip-markdown to tools.nu testing by @maxim-uvarov in #51
  • improve detection of where a command produces output, add docstring examples for internal commands

Full Changelog: 0.1.7...0.1.12

0.1.7

15 Jun 07:00

Choose a tag to compare

Previously, outputs of execution blocks without lines starting with the > symbol were placed into code blocks with the language identifier ```output-numd.

However, throughout the book, such outputs are usually placed after an empty line, the line with the Output: string, and another empty line following a code fence without a language identifier. ```

Now, numd supports this.

Also, there is a fix for reporting levenstein_distance stats (nushell/nushell#13155).

What's Changed

Full Changelog: 0.1.6...0.1.7