github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/docs/changelog/v2.1.md (about) 1 # v2.1 2 3 This release comes with support for inlining SQL and some major bug fixes plus a breaking change for `config`. Please read for details. 4 5 This release sees new optional features plus major bug fixes to the existing 6 code base: 7 8 ### Breaking Changes: 9 10 Two `config` **shell** keys have changed names: 11 12 * recursive-soft-timeout -> `autocomplete-soft-timeout` 13 * recursive-hard-timeout -> `autocomplete-hard-timeout` 14 15 This is to better describe their functionality now that those values are 16 also used for `Dynamic` and `DynamicDesc` autocompletions as well as 17 recursive directory lookups. 18 19 **This change might break some of your existing profile config!** 20 21 ### User Facing Changes: 22 23 * `config` **shell** **max-suggestions** now defaults at `12` rather than 6 24 25 * New optional builtin, `select`, allows you to inline SQL queries against 26 any tabulated output (eg `ps -fe`, jsonlines arrays, CSV files, etc). This 27 works via importing output into an in memory sqlite3 database. However this 28 also breaks cross compiling due to the C includes with sqlite3. Thus this 29 builtin will remain optional for now. 30 31 * Rethink of how optionals are imported. Rather than modifying `// +build` 32 headers in `.go` files, optionals can be copied (or symlinked) from 33 `builtins/imports_src` -> `builtins/imports_build`. This enables us to 34 write a user friendly pre-compiling build script to enable users to easily 35 select which optional builtins to include. 36 37 * Stopping jobs via `^z` has been fixed in UNIX. This was a regression bug 38 introduced a while back however no tests were in place to catch it. 39 Unfortunately this kind of testing would fall outside of unit testing each 40 function so I'll need to add another layer of testing against the compiled 41 executable to verify any future regressions like these: [discussion](https://github.com/lmorg/murex/issues/318) 42 To use this feature, run a command and then press `^z` (ctrl+z) to pause 43 the process. You can check which jobs have been paused via `jobs` and/or 44 modify processes to run in the background/foreground via `bg` and `fg`. 45 46 * Added new API endpoints: `ReadArrayWithType()`. This solves some edge cases 47 in `foreach` where elements might not match the same data type as the parent 48 object (eg a `json` object might have `int` or `str` elements in an array) 49 50 * Rewritten how `Dynamic` autocompletions are executed to fall in line with 51 `DynamicDesc`. This should bring improvements to running autocompletions 52 in the background and thus improve the user experience with regards to the 53 shell's responsiveness. The next step would be to have a lower soft-timeout 54 55 * Improvements to the context completions 56 57 * Default lengths for autocompletions where all results are deferred to the 58 background have been tweaked slightly to give some extra length 59 60 * Minor website tweaks 61 62 ### Non-User Facing / Maintenance Changes: 63 64 * All dependencies have been updated, pinned and the `vendors` directory 65 rebuilt 66 67 * Fixed some issues flagged up in [goreportcard.com](https://goreportcard.com/report/github.com/lmorg/murex) 68 69 * Some internal API changes that have no UI/UX ramifications but makes the 70 code more maintainable 71 72 * Lots more unit tests added 73 74 <hr> 75 76 Published: 30.04.2021 at 10:00 77 78 ## See Also 79 80 * [`*` (generic)](../types/generic.md): 81 generic (primitive) 82 * [`ReadArrayWithType()` (type)](../apis/ReadArrayWithType.md): 83 Read from a data type one array element at a time and return the elements contents and data type 84 * [`bg`](../commands/bg.md): 85 Run processes in the background 86 * [`csv`](../types/csv.md): 87 CSV files (and other character delimited tables) 88 * [`fg`](../commands/fg.md): 89 Sends a background process into the foreground 90 * [`foreach`](../commands/foreach.md): 91 Iterate through an array 92 * [`jobs`](../commands/fid-list.md): 93 Lists all running functions within the current Murex session 94 * [`jsonl`](../types/jsonl.md): 95 JSON Lines 96 * [`select`](../optional/select.md): 97 Inlining SQL into shell pipelines 98 99 <hr/> 100 101 This document was generated from [gen/changelog/v2.1_doc.yaml](https://github.com/lmorg/murex/blob/master/gen/changelog/v2.1_doc.yaml).