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

Update dependency org.springframework.shell:spring-shell-starter to v2.1.15 #15

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 5, 2023

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
org.springframework.shell:spring-shell-starter (source) 2.0.1.RELEASE -> 2.1.15 age adoption passing confidence

Release Notes

spring-projects/spring-shell (org.springframework.shell:spring-shell-starter)

v2.1.15: 2.1.15

Compare Source

Generic Notes

Fixes

This release contains some notable changes:

  • Builds on spring-boot 2.7.18
  • 2.7.x line goes EOL together with spring-boot 2.7.x

Issues

#​931 Upgrade spring-boot 2.7.18

v2.1.14: 2.1.14

Compare Source

Generic Notes

Fixes

This release contains some notable changes:

  • Builds on spring-boot 2.7.17
  • Jline upgrade to 3.24.1 fixes issues in stdin/stderr redirection
  • Some issues backported

Issues

#​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.13

Compare Source

Generic Notes

Fixes

This release contains some notable changes:

  • Builds on spring-boot 2.7.16

Issues

#​868 Upgrade spring-boot 2.7.16
#​857 Upgrade spring-boot 2.7.15

v2.1.12: 2.1.12

Compare Source

Generic Notes

Fixes

This release contains some notable changes:

  • Builds on spring-boot 2.7.14
  • Some backports

Issues

#​834 backport(512): CompletionProposal with complete
#​817 Upgrade spring-boot 2.7.14

v2.1.11: 2.1.11

Compare Source

Generic Notes

Fixes

This release contains some notable changes:

  • Builds on spring-boot 2.7.13

Issues

#​784 Upgrade spring-boot 2.7.13

v2.1.10: 2.1.10

Compare Source

Generic Notes

Fixes

This Milestone contains some notable changes:

  • Builds on Spring Boot 2.7.12
  • Some bug fixes backported

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

Compare Source

Generic Notes

Fixes

This Milestone contains some notable changes:

  • Builds on Spring Boot 2.7.11
  • Upgrade to jline 3.23.0
  • Some bug fixes backported

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

Compare Source

Generic Notes

Fixes

This GA contains some notable changes:

  • Builds on Spring Boot 2.7.10
  • Some bug fixes backported
  • Big fix for custom type handling with positional arguments

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

Compare Source

Generic Notes

Fixes

This GA contains some notable changes:

  • Builds on Spring Boot 2.7.9
  • Some bug fixes backported

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

Compare Source

Generic Notes

Fixes

This GA contains some notable changes:

  • Builds on Spring Boot 2.7.8
  • Some bug fixes backported

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

Compare Source

Generic Notes

Fixes

This GA contains some notable changes:

  • Builds on Spring Boot 2.7.7
  • Some bug fixes backported

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

Compare Source

Generic Notes

Fixes

This GA contains some notable changes:

  • Builds on Spring Boot 2.7.6
  • Some bug fixes backported

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

Compare Source

Generic Notes

Fixes

This GA contains some notable changes:

  • Builds on Spring Boot 2.7.5
  • Some bug fixes backported

Issues

#​549 backport(548) Parser should process types
#​547 Upgrade spring-boot 2.7.5

v2.1.2: 2.1.2

Compare Source

Generic Notes

Fixes

This GA contains some notable changes:

  • Builds on Spring Boot 2.7.4
  • Some bug fixes backported

Issues

#​538 Upgrade spring-boot 2.7.4
#​513 backport(510) next does not work as expected in ComponentFlow

v2.1.1: 2.1.1

Compare Source

Generic Notes

Fixes

This GA contains some notable changes:

  • Builds on Spring Boot 2.7.3
  • Some bug fixes backported

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

Compare Source

Generic Notes

Fixes

This GA contains some notable changes:

  • Builds on Spring Boot 2.7.2
  • Some styling changes
  • Help commands now knows about aliases
  • MultiItemSelector component can now have items selected on default
  • Some fixes on @​ShellOption

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 and Spring Framework versions as it was difficult to use existing Spring 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 old Spring 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 and Spring Framework 6 which Spring 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 with CommandRegistration.

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 via JLine 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.

sample-style-list

sample-figure-list

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.

component-flow-showcase-1

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.

sample-version-linux

sample-version-win

sample-version-macos

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 from Spring Shell are now based on templates based on ST4 from the ANTRL 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/spring-shell branch from 22a20e0 to ed594cc Compare May 8, 2023 13:27
@renovate renovate bot changed the title Update dependency org.springframework.shell:spring-shell-starter to v2.1.8 Update dependency org.springframework.shell:spring-shell-starter to v2.1.9 May 8, 2023
@renovate renovate bot force-pushed the renovate/spring-shell branch from ed594cc to f3b0ef9 Compare May 25, 2023 17:08
@renovate renovate bot changed the title Update dependency org.springframework.shell:spring-shell-starter to v2.1.9 Update dependency org.springframework.shell:spring-shell-starter to v2.1.10 May 25, 2023
@renovate renovate bot changed the title Update dependency org.springframework.shell:spring-shell-starter to v2.1.10 Update dependency org.springframework.shell:spring-shell-starter to v2.1.11 Jun 28, 2023
@renovate renovate bot changed the title Update dependency org.springframework.shell:spring-shell-starter to v2.1.11 Update dependency org.springframework.shell:spring-shell-starter to v2.1.12 Jul 26, 2023
@renovate renovate bot force-pushed the renovate/spring-shell branch from f5499aa to 1457252 Compare July 26, 2023 13:20
@renovate renovate bot force-pushed the renovate/spring-shell branch from 1457252 to cbd303b Compare October 3, 2023 12:19
@renovate renovate bot changed the title Update dependency org.springframework.shell:spring-shell-starter to v2.1.12 Update dependency org.springframework.shell:spring-shell-starter to v2.1.13 Oct 3, 2023
@renovate renovate bot force-pushed the renovate/spring-shell branch from cbd303b to 1d9fbfd Compare November 8, 2023 10:09
@renovate renovate bot changed the title Update dependency org.springframework.shell:spring-shell-starter to v2.1.13 Update dependency org.springframework.shell:spring-shell-starter to v2.1.14 Nov 8, 2023
@renovate renovate bot force-pushed the renovate/spring-shell branch from 1d9fbfd to ae45087 Compare November 28, 2023 17:13
@renovate renovate bot changed the title Update dependency org.springframework.shell:spring-shell-starter to v2.1.14 Update dependency org.springframework.shell:spring-shell-starter to v2.1.15 Nov 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants