Update dependency org.springframework.shell:spring-shell-starter to v2.1.15 #15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.0.1.RELEASE
->2.1.15
Release Notes
spring-projects/spring-shell (org.springframework.shell:spring-shell-starter)
v2.1.15
: 2.1.15Compare Source
Generic Notes
Fixes
This release contains some notable changes:
2.7.x
line goes EOL together with spring-boot2.7.x
Issues
#931 Upgrade spring-boot 2.7.18
v2.1.14
: 2.1.14Compare Source
Generic Notes
Fixes
This release contains some notable changes:
3.24.1
fixes issues in stdin/stderr redirectionIssues
#919 backport(902): Tab completion may fail with lazy initialization
#915 backport(891): StandardOut goes to StandardError in non-interactive mode
#912 backport(901): Upgrade jline 3.24.1
#892 Upgrade spring-boot 2.7.17
#887 backport(886): Upgrade stringtemplate4 4.3.3
v2.1.13
: 2.1.13Compare Source
Generic Notes
Fixes
This release contains some notable changes:
Issues
#868 Upgrade spring-boot 2.7.16
#857 Upgrade spring-boot 2.7.15
v2.1.12
: 2.1.12Compare Source
Generic Notes
Fixes
This release contains some notable changes:
Issues
#834 backport(512): CompletionProposal with complete
#817 Upgrade spring-boot 2.7.14
v2.1.11
: 2.1.11Compare Source
Generic Notes
Fixes
This release contains some notable changes:
Issues
#784 Upgrade spring-boot 2.7.13
v2.1.10
: 2.1.10Compare Source
Generic Notes
Fixes
This Milestone contains some notable changes:
Issues
#745 backport(740): ConfirmationInput does not show the option selected when typing
#741 Upgrade spring-boot 2.7.12
v2.1.9
: 2.1.9Compare Source
Generic Notes
Fixes
This Milestone contains some notable changes:
Issues
#726 backport(725): Upgrade jline 3.23.0
#723 backport(722): Migrate docs to spring-asciidoctor-backends
#719 Upgrade spring-boot 2.7.11
v2.1.8
: 2.1.8Compare Source
Generic Notes
Fixes
This GA contains some notable changes:
Issues
#703 backport(702): ShellContext not passed to CommandCatalog
#696 Upgrade spring-boot 2.7.10
#694 Converter not called as expected / difference in call by name vs position
#692 backport(690): ConfirmationInput template message broken
#689 backport(686): Rename setMaskCharater to setMaskCharacter
v2.1.7
: 2.1.7Compare Source
Generic Notes
Fixes
This GA contains some notable changes:
Issues
#677 backport(675): Wrong arity for default boolean type
#669 backport(667): Converters are not called
#660 Upgrade spring-boot 2.7.9
#653 backport(651): Cannot pass negative number as option
#649 backport(648): CommandRegistration should return same options
v2.1.6
: 2.1.6Compare Source
Generic Notes
Fixes
This GA contains some notable changes:
Issues
#631 backport(630): Collection option type only takes first item
#629 backport(628): Document String array option type
#623 backport(622): Positional args mapped differently vs given option
#620 Upgrade spring-boot 2.7.8
#618 Sample broken
#617 backport(616): Positional arguments should have conversion
#615 backport(614): CommandParser should enforce arity settings
v2.1.5
: 2.1.5Compare Source
Generic Notes
Fixes
This GA contains some notable changes:
Issues
#604 backport(602) CommandParser unrecognised option support
#603 backport(601) Option position may break required error
#598 backport(593) BaseSingleItemSelector.preHandler returns null instead of this
#595 Upgrade spring-boot 2.7.7
#594 backport(526) Prevent ExtendedDefaultParser warning
v2.1.4
: 2.1.4Compare Source
Generic Notes
Fixes
This GA contains some notable changes:
Issues
#577 backport(575) ShellOption not registered without hyphens
#573 backport(572) Method execution should not error without value
#571 Upgrade spring-boot 2.7.6
#570 backport(567) Handle whitespace in option value
v2.1.3
: 2.1.3Compare Source
Generic Notes
Fixes
This GA contains some notable changes:
Issues
#549 backport(548) Parser should process types
#547 Upgrade spring-boot 2.7.5
v2.1.2
: 2.1.2Compare Source
Generic Notes
Fixes
This GA contains some notable changes:
Issues
#538 Upgrade spring-boot 2.7.4
#513 backport(510) next does not work as expected in ComponentFlow
v2.1.1
: 2.1.1Compare Source
Generic Notes
Fixes
This GA contains some notable changes:
Issues
#505 backport(504) Split builtin command docs
#500 Upgrade spring-boot 2.7.3
#498 backport(495) Incorrect completion for options
#496 backport(493) Spring shell is defaulting to the base Jakarta validator
v2.1.0
: 2.1.0Compare Source
Generic Notes
Fixes
This GA contains some notable changes:
Issues
#480 Add commands as list in help templating
#477 Upgrade to Spring Boot 2.7.2
#476 Component styling bad for black on white
#461 ShellOption booleans are now mandatory in 2.1.0-RC1
#458 Help should group commands with aliases
#454 Create GA release workflow
#446 Missing option error without ShellOption
#426 Add aliases info to help
PRs
#468 Add the possibility of default selection to MultiItemSelector
#455 Fix typos in using-shell-options-optional.adoc
Additional Notes
Recap
Earlier this year we started an effort align the project with latest
Spring Boot
andSpring Framework
versions as it was difficult to use existingSpring Shell
release of a spring family.Originally the main issue we wanted to address was a removal of a bean cycles which
Spring Boot
is now enforcing by default. While this feature can be turned off it is not something Spring Shell should require. This required a lot of changes and we chose to handle it with rework of a shell internals. One big challenge was how the oldSpring Shell
worked by essentially keeping command info methods backed by@ShellMethod
annotations and then calling those methods via reflection using not so well defined ways.Now that it was clear that we needed to do a bigger overhaul it made sense to do further development now rather than waiting for
Spring Boot 3
andSpring Framework 6
whichSpring Shell
eventually would have needed to support.Here is a recap of the changes that were done:
Command Registration
CommandRegistration
is a new programmatic way to define commands. The existing annotation model of commands translates to these registration behind a scene. This new registration model now allows to us control commands dynamically which wasn't the case in the old shell implementation.Existing Annotations
What comes for
@ShellMethod
and@ShellOption
We've tried to keep those compatible and future development will most likely introduce new annotations more aligned withCommandRegistration
.Theming
Modern terminal implementations are not bound to just show a simple text, but allow for different types of font styles and can be used with colors. In the old
Spring Shell
these were mostly hard coded while it was possible to use ANSI sequences viaJLine
to write anything into a console. It made sense to introduce a theming system where text written can be styled and figures chosen per style. Figures are just unicode characters supported by modern terminals which is the basis for creating pretty shell UI's.UI Components
You've mostly likely used various CLI tools which go beyond just asking some text from a user and then doing something based on that. For example GitHub CLI is a good example as some of its commands enter interactive mode and ask users for input using various tricks like selector lists and other sort of shell style forms.
What we wanted to accomplish in
Spring Shell
was to create these components which can be use independently or combine those into a flow.Graal
A big topic in a future Spring Framework release is native compilation with GraalVM. This obviously makes a big impact on the CLI side as that little jvm bootstrap timeout goes away when your existing code is translated into native binary.
With
2.1.x
it was shown using our experimental Spring Native project that it is possible to create a Spring Shell application which works the same way in Linux, MacOS and Windows.Official support for GraalVM in Spring Shell comes with
3.x
.Templating
Writing a command into a terminal is easy as you essentially just write something. However what we've done in some of the built-in commands like
help
is not always something a user wants to have or they may have other reasons to modify how it looks. Some default outputs fromSpring Shell
are now based on templates based on ST4 from theANTRL
project.This allows a user to replace templates used in
Spring Shell
and modify default behaviour. These templates also integrate into the theme framework so that it's possible to define templates per active theme.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.