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).