Skip to content

Conversation

cwperks
Copy link
Member

@cwperks cwperks commented Oct 20, 2025

Description

This change replaces JOpt Simple with picocli for command-line parsing in our application. The goals are:

  • Modernise our CLI handling with a library that provides more advanced features, better maintenance, and a stronger ecosystem.
  • Reduce risk associated with depending on a library that has seen very little activity in recent years.
  • Align with current community practice and capabilities for parsing arguments (subcommands, annotation-based API, better help formatting, etc.).

jopt-simple was last released in 2017 and I think its time we move onto a dependency with more support.

Related Issues

Will open an issue to discuss the tradeoffs of these 2 CLI offerings. I see picocli as modernizing the application.

Check List

  • Functionality includes testing.
  • API changes companion pull request created, if applicable.
  • Public documentation issue/PR created, if applicable.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Signed-off-by: Craig Perkins <[email protected]>
Signed-off-by: Craig Perkins <[email protected]>
Signed-off-by: Craig Perkins <[email protected]>
Signed-off-by: Craig Perkins <[email protected]>
Signed-off-by: Craig Perkins <[email protected]>
Copy link
Contributor

❌ Gradle check result for 77df622:

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Copy link
Contributor

❌ Gradle check result for 77df622: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

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.

1 participant