Changelog History
Page 1
-
v4.0.3 Changes
June 11, 2026🛠 🐞 Bug Fixes
- Tab completion broken on JDK 25 after upgading jline to 3.30.9 #1343
- 📦 ShellInputProvider not usable outside its package #1342
- Incorrect candidate search scope #1351
- 👍 DevTools AutoReload Support #1224
- Autocompletion does not work correctly for arguments #1346
- Custom "Converters" not working with @Command-Annotations #1352
- Missing runtime hints for stg resources in JLineRuntimeHints when using native compilation #1358
- Missing space between non required options in help synopsis #1357
- Missing argument information in the output of the help command #1344
🛠️ Tasks
- 🛠 Fix build errors and warnings #1183
⚡️ 🆙 Dependency updates
- Reactor 3.8.6
- Spring Framework 7.0.8
- Spring Boot: 4.0.7
- JLine: 3.30.13
❤️ Contributors
🚀 Thank you to all the contributors who worked on this release:
Full Changelog : v4.0.2...v4.0.3
-
v4.0.2 Changes
April 24, 2026⭐ New Features
- ➕ Add support to group commands at class level as in v3 #1266
- ➕ Add support to test commands which ask for input with Spring Shell 4 #1292
- ➕ Add support to specify argument arity for multi-valued input #1263
- Sort command names in help output #1279
🛠 🐞 Bug Fixes
- Exit code is always 0 for non-interactive runner #1339
- Missing help for built-in commands #1335
- Boolean flags not working without value in sub-commands #1331
- Declaring an ApplicationRunner causes Spring Shell application to close immediately #1330
- Spring profiles not honoured when registering commands #1328
- ✅ Command registration differs with
@ActiveProfilesin tests vs jar spring.profiles.active= (4.0.1) #1327 - Command not registered if
@Profile(..) is used and activated #1325 - 🛠 Fix possible NPE in InteractiveShellRunner #1320
- Script execution stops on line with comment (in 4.x) #1316
- 🖨 Empty line in script prints all available commands (in 4.0.1) #1315
- 0️⃣ Default option int value is ignored (in 4.0.1) #1314
- NonInteractiveShellRunner v3 -> v4 Migration Issue #1312
- Boolean option without value does not properly work with argument #1309
- Annotated commands are not registered in GraalVM native binary #1229
- Table Rendering Issue with CJK Characters #1223
📚 📔 Documentation
- 📚 End-to-end testing documentation can be improved #1338
- 👻 Exception handling changes in 4.0 are not documented in migration guide #1265
⚡️ 🆙 Dependency updates
- Reactor 3.8.5
- Spring Framework 7.0.7
- Spring Boot: 4.0.6
- jLine: 3.30.9
❤️ Contributors
🚀 Thank you to all the contributors who worked on this release:
-
v4.0.1 Changes
January 31, 2026🚀 Enhancements
- 👌 Improve default parser to accept boolean options without values #1304
- ➕ Add alias for description attribute in Command annotation #1300
- 👌 Improve argument parsing syntax for commands without options #1287
- Provide completion from enumeration values if an option is of enum type #1282
- ✅ How to run a shell in an integration test in spring shell 4.x? #1274
🛠 🐞 Bug Fixes
- ⏪ Revert script command to accept the script file as an option rather than an argument #1301
- Quoting of option values is broken #1291
- Quit builtin command is not autocompleted #1290
- ✂ Remove Spring Boot specific documentation from Spring Shell documentation #1289
- ⏪ Restore version command result as in v3 #1286
- 👻 Exception handling in interactive mode does not report cause #1285
- Mixup of Option short and long name #1284
- 🔧 Missing Spring Boot configuration for debug mode #1280
- ⚡️ Alias commands are not coloured correctly after update to version 4.0.0 #1277
- java.lang.ClassNotFoundException: org.jline.reader.History in SB 4 and Shell 4.0 #1276
- 0️⃣ String option is empty string by default and not null #1273
- Built in help for single commands is not working anymore #1271
- 🖨 Output is not printed to the shell when executing commands from a script #1270
- Command output not available in non-interactive mode in 4.0 #1268
- Options with primitive types fail in 4.0 without explicit value #1262
- Commands fail in 4.0 if no short name or long name are specified #1261
- NullPointerException is thrown when a script file contains empty lines at the end of file #1257
- Completion does not work correctly in some cases, and display text is not used in candidates #1255
📚 📔 Documentation
- ➕ Add breaking change to 4.0 migration guide: Non-interactive mode is not the default anymore #1264
- ➕ Add breaking change to 4.0 migration guide: GraalVM not supported for annotated commands #1260
⚡️ 🆙 Dependency updates
- Reactor 3.8.2
- Spring Framework 7.0.3
- Spring Boot 4.0.2
❤️ Contributors
🚀 Many thanks to all contributors who worked on this release! @czpilar @piotrooo @ThomasVitale
Full Changelog : v4.0.0...v4.0.1
-
v4.0.0 Changes
December 30, 2025⭐ New features
- ⬆️ Upgrade baseline to Spring Framework 7 and Spring Boot 4
- ⚡️ Update test infrastructure to JUnit 6
- ➕ Add support for jSpecify annotations #1184
- Redesign command programming model #1206#1158
- ✅ Redesign test utilities and APIs
- ➕ Add number input type #849
- ➕ Add mandatory flag to string input #844
- 🏗 Introduce new command builder DSL #1211
- ➕ Add support to print annotated method result to the standard output
- ➕ Add debug mode
🚀 Enhancements
- 👌 Improve command error message by including offending group name #291
- 👌 Improve error reporting in
InteractiveShellRunnerimplementations - 🔧 Simplify availability provider configuration by using a new attribute in the Command annotation instead of a separate annotation
⚡️ 🆙 Dependency updates
- Reactor 3.8.1
- Spring Framework 7.0.2
- Spring Boot 4.0.1
- jLine: 3.30.6
- st4: 4.3.4
📚 📘 Documentation updates
- 📚 Update documentation with new annotations #1172
- ⚡️ Update getting started guide with new annotations #1171
- ➕ Add sample Shell application for Spring Petclinic
- ⚡️ Update Antora resources
- 📚 Refine reference documentation: e3cb937
- Attach Javadocs to Antora
🛠️ Tasks
- ✂ Remove Spring Boot dependencies from
coremodule #200 - ✂ Remove JLine dependency from
coremodule - ✂ Remove compile time dependency to slf4j #1214
- ✂ Remove dependency to commons-io #1215
- 📦 Move core APIs under a dedicated named package
- 🚚 Move core commands from spring-shell-standard to the core module #1212
- ➕ Add spring code formatting plugin to the build #1185
- ⚡️ Update build tool to Maven
- 🚀 Update release process to use Spring IO GitHub Actions
- 📦 Move built-in commands to the main command package
- ✂ Remove unused APIs
- ✂ Remove unused Spring Boot properties
❤️ Contributors
🚀 Many thanks to all contributors who worked on this release! @piotrooo @czpilar @PabloMartinez01 @jphughes88 @nhomble @Nico-DF
Full Changelog : v3.4.1...v4.0.0
-
v4.0.0-RC1 Changes
December 19, 2025⭐ New features
- ➕ Add support to print annotated method result to the standard output
- ➕ Add debug mode
- ➕ Add support for command completion
- ➕ Add support for custom completion providers
- ➕ Add support for hidden commands
- ➕ Add support for command option validation with the Bean Validation API
- ➕ Add new exit status for unavailable commands
- ➕ Add support for command aliases
- ➕ Add support for exception mapping
🚀 Enhancements
- 👌 Improve test utilities
- 👌 Improve error reporting in
InteractiveShellRunnerimplementations - 🔧 Simplify availability provider configuration by using a new attribute in the Command annotation instead of a separate annotation
⚡️ 🆙 Dependency updates
- Reactor 3.8.1
- Spring Framework 7.0.2
- Spring Boot 4.0.1
🛠️ Tasks
- 📦 Move built-in commands to the main command package
- ✂ Remove unused APIs
- ✂ Remove unused Spring Boot properties
Contributors
🚀 Many thanks to all contributors who worked on this release!
Full Changelog : v4.0.0-M2...v4.0.0-RC1
-
v4.0.0-M2 Changes
December 09, 2025⭐ New features
- ➕ Add support for jSpecify annotations #1184
- Redesign command programming model #1206#1158
- ➕ Add number input type #849
- ➕ Add mandatory flag to string input #844
- 🏗 Introduce new command builder DSL #1211
🚀 Enhancements
- 👌 Improve command error message by including offending group name #291
⚡️ 🆙 Dependency updates
- Spring Framework 7.0.1
- Spring Boot 4.0.0
📚 📘 Documentation updates
- 📚 Update documentation with new annotations #1172
- ⚡️ Update getting started guide with new annotations #1171
- ➕ Add sample Shell application for Spring Petclinic
🛠️ Tasks
- ✂ Remove Spring Boot dependencies from
coremodule #200 - ✂ Remove JLine dependency from
coremodule - ✂ Remove compile time dependency to slf4j #1214
- ✂ Remove dependency to commons-io #1215
- 📦 Move core APIs under a dedicated named package
- 🚚 Move core commands from spring-shell-standard to the core module #1212
- ➕ Add spring code formatting plugin to the build #1185
Contributors
🚀 Many thanks to all contributors who worked on this release! @piotrooo @PabloMartinez01 @jphughes88 @nhomble @Nico-DF
Full Changelog : v4.0.0-M1...v4.0.0-M2
-
v4.0.0-M1 Changes
October 24, 2025⭐ New features
- ⚡️ Update baseline to Spring Framework 7 and Spring Boot 4
- ⚡️ Update test infrastructure to JUnit 6
⚡️ 🆙 Dependency updates
- Commons IO: 2.20.0
- jLine: 3.30.6
- st4: 4.3.4
📚 📘 Documentation updates
- ⚡️ Update Antora resources
- 📚 Refine reference documentation: e3cb937
- Attach Javadocs to Antora
🛠️ Tasks
- ⚡️ Update build tool to Maven
- 🚀 Update release process to use Spring IO GitHub Actions
-
v3.4.3 Changes
June 11, 2026⚡️ 🆙 Dependency updates
- Spring Boot: 3.5.15
📚 📔 Documentation
- 📚 Reference documentation URL mismatch for 3.4 #1336
Full Changelog : v3.4.2...v3.4.3
-
v3.4.2 Changes
March 23, 2026🛠 🐞 Bug fixes
- 🛠 Fix incorrect method name in
ShellTestClient
⚡️ 🆙 Dependency updates
- Spring Boot: 3.5.12
- jLine: 3.30.6
📚 📘 Documentation updates
- 🛠 Fix hidden command documentation #1178
- 📄 Incorrect reference to spring-shell-starter-ffm in docs #1176
🛠️ Tasks
- ⚡️ Update Gradle to version 8.14.4
Full Changelog : v3.4.1...v3.4.2
- 🛠 Fix incorrect method name in
-
v3.4.1 Changes
August 04, 2025🛠 🐞 Bug fixes
- Parameter Constraint messages are not properly formatted #1100
- Quotes Should Not Be Recognized In Comments #277
⚡️ 🆙 Dependency updates
- Spring Boot: 3.5.4
- Commons IO: 2.20.0
- jLine: 3.30.4
- st4: 4.3.4
📚 📘 Documentation updates
🛠️ Tasks
- ⚡️ Update Gradle to version 8.14.3
- Replace Pivotal CLA with DCO
Full Changelog : v3.4.0...v3.4.1