Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v6.3 #849

Merged
merged 154 commits into from
Sep 18, 2024
Merged

v6.3 #849

merged 154 commits into from
Sep 18, 2024

Conversation

lmorg
Copy link
Owner

@lmorg lmorg commented Jul 30, 2024

v6.3

This is a massive release ahead of the v7.0. This brings notifications of new deprecations, new builtins, new flags, improved CI/CD flow, and changes to the website. Unfortunately it also carries 3 breaking changes.

Deprecation Warnings

Please read out compatibility commitment to understand how features are deprecated.

  • the ? pipe will be deprecated to make way for a the ternary operator. You can achieve the same result with <err> <!out>, eg command <err> <!out> parameters... | next-command ...

  • the = and let builtins are now officially deprecated. They've been marked as deprecated in the documentation for a couple of years but you'll now receive a deprecation warning when using them. This warning will not impact any functions that call them (they bypass the stdout and stderr pipes and write directly to your TTY) but it is still recommended that you update any existing code not to use it. The change is very simple, Murex supported expressions as first class primitives, so you can simply drop the = and let command names from your expressions

  • tread has been deprecated for a while due to read supporting all tread's use cases. tread will officially be removed in the next release

  • @[] syntax for ranging has been deprecated for a while. It will be officially removed in the next release in favour of []

  • backtick strings (````) has been an undocumented hack for several years. This release officially sees that hack as deprecated and will be removed in the next release

  • die has been deprecated because it just adds a feature for no purpose. It was original borrowed from Perl but realistically you can do the same with exit 1 so this removal is to bring the language complexity down.

Breaking Changes

  • for syntax change, switching from parenthesis to curly braces (discussion, documentation)

  • tilde ~ sigil for home directories will now fail if username is not found (issue #840)

  • support removed for string concatenation via =. This isn't really needed in a shell with infixing support. Removing this feature allows for more common code with other operators and thus fewer bugs

Features

  • variables: tilde ~ sigil for home directories will now fail if username is not found (issue #840)

  • new builtin operator: ~> to perform immutable merges (read more)

  • count: added support for --bytes and --runes (read more)

  • variables: Lots of new variables added for POSIX compatibility (issue #873)

  • expressions: added support for sub-expressions inside object and array builders (issue #834)

  • core: added support for pseudo-variable pointers via parenthesis (issue #830)

  • expressions: added support for and --

  • new builtin: mjoin created to join arrays into a string (read more)

  • new builtin: list.case created to alter the text capitalizations on arrays and strings (read more)

  • regexp: new flag, M, returns matches including first row. This is useful if first row is a headings (read more)

  • murex: new flag: setsid provides better POSIX support with SID / GPID management. This breaks some of Murex's features so this flag is provided for edge cases where commands capture job control signals

  • integrations: added wrapper for Helix editor to support job control

  • version: now includes git's branch name, build date and license. (read more)

  • core: go generate now builds and executes doc gen. As well as updates Murex's version number and build date

  • docgen: added support for sub-categories and Vue menu generation

  • murex: new environmental variable, MUREX_DEBUG, enables --debug flag without having to specify a parameter (eg when using Murex as a shell)

  • integrations: new integration: orbstack.

  • regexp: separator can now support separators which are characters larger than 1 byte, ie unicode characters (read more)

  • murex: new flag --execute -- this behaves like -c except that it takes @ARGV parameters instead of a pipeline as a single string

  • cicd: added support for Go v1.23

  • website: significant updates across all documents

  • readline: if terminal is small, the max completion rows is automatically reduced

Bug Fixes

  • core: better conversion of numbers from strings (issue #874)

  • config: errors generated via dynamic config are now better surfaced

  • alter: fixed nil pointer error in --merge (issue #850)

  • autocomplete: fixed unit file completions for systemctl

  • core: terminal no longer hangs if stdin is a term and <!out> defined in command

  • autocomplete: removed deprecated ? operator from git

  • expressions: sub-shell scalars inside object builders now return objects instead of strings (issue #853)

  • core: improved expression validator

  • core: statements are no longer forced to be parsed as expressions when the first parameter is = (issue #854)

  • readline: ignore panics in VIM keys. In the edge cases where panics are raised, we'd want to exit that function regardless. So handling panics as exceptions is the cleanest way to handle errors (issue #866)

  • integrations: removed deprecated builtin, =, from Linux profile

  • core: missing Release() after os.FindProcess()

  • readline: preview displays error if terminal too small (issue #868)

Special Thanks

Thank yous for this release goes to tiymat, atagen and orefalo for your testing and feedback. Also thank you to everyone in the discussions group and all who raise bug reports.

You rock!

Copy link

codecov bot commented Aug 4, 2024

Codecov Report

Attention: Patch coverage is 76.18070% with 232 lines in your changes missing coverage. Please review.

Project coverage is 42.62%. Comparing base (2208615) to head (1fc61e4).
Report is 71 commits behind head on master.

Files with missing lines Patch % Lines
builtins/core/lists/regexp_functions.go 50.00% 28 Missing and 13 partials ⚠️
builtins/core/lists/case.go 56.09% 31 Missing and 5 partials ⚠️
config/config.go 47.36% 20 Missing ⚠️
builtins/core/lists/match.go 44.82% 11 Missing and 5 partials ⚠️
builtins/core/datatools/alter.go 46.42% 10 Missing and 5 partials ⚠️
builtins/core/lists/regexp_params.go 68.18% 12 Missing and 2 partials ⚠️
builtins/core/processes/bgfg_unix.go 0.00% 13 Missing ⚠️
builtins/core/management/version.go 53.84% 12 Missing ⚠️
debug/debug.go 0.00% 12 Missing ⚠️
builtins/events/onSignalReceived/signal_posix.go 0.00% 10 Missing ⚠️
... and 13 more
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #849       /-   ##
==========================================
  Coverage   42.36%   42.62%    0.26%     
==========================================
  Files         543      553       10     
  Lines       36693    37481      788     
==========================================
  Hits        15545    15977      432     
- Misses      19837    20139      302     
- Partials     1311     1365       54     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@lmorg lmorg force-pushed the develop branch 2 times, most recently from 77f6aeb to 45e4d8c Compare September 15, 2024 15:42
@lmorg lmorg force-pushed the develop branch 4 times, most recently from f7830af to 9a5c58e Compare September 15, 2024 16:59
@lmorg lmorg linked an issue Sep 17, 2024 that may be closed by this pull request
@lmorg lmorg force-pushed the develop branch 3 times, most recently from 2144282 to d42c332 Compare September 17, 2024 21:02
@lmorg lmorg force-pushed the develop branch 4 times, most recently from 5625f22 to 4367127 Compare September 18, 2024 07:32
Copy link

sonarcloud bot commented Sep 18, 2024

@lmorg lmorg merged commit 62c8950 into master Sep 18, 2024
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment