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

Please support PicoCLI #781

Closed
aalmiray opened this issue Oct 26, 2021 · 7 comments
Closed

Please support PicoCLI #781

aalmiray opened this issue Oct 26, 2021 · 7 comments

Comments

@aalmiray
Copy link

Picocli aims to be the easiest way to create rich command line applications that can run on and off the JVM.

https://github.com/remkop/picocli/tree/master/picocli-spring-boot-starter

Requirements

To ensure the ongoing health of the Spring Boot community, a starter that is included on
start.spring.io must meet the following requirements.

Code of Conduct

This project adheres to the Contributor Covenant code of conduct. By participating, you
are expected to adhere to this code. If you have not already done so, we also encourage
you to adopt a code of conduct in your own project.

Well-established project with a vibrant community

To avoid overwhelming users with too much choice, we aim for each starter to be of
interest to a broad range of start.spring.io's users. One way to ensure this is for each
starter to represent a well-established project with a vibrant community.

Please provide some links that provide some evidence for this. We're looking for
things like GitHub stars, multiple contributors, ongoing maintenance, Stack Overflow
questions, etc.

Ongoing maintenance

To ensure that the Spring Boot community has a good experience with your starter,
it should be kept up-to-date with the latest Spring Boot releases and maintenance
releases should be shipped as needed. When a new release is made, a pull request
should be made to this project to ensure that the Spring Boot community are using the
latest version

Licence

Apache-2.0 License

Issue Tracker URL

https://github.com/remkop/picocli/issues

Continuous integration

https://travis-ci.org/remkop/picocli

Maven Central

Starters that are included on start.spring.io must be available on Maven Central.
https://mvnrepository.com/artifact/info.picocli/picocli-spring-boot-starter

[x] Starter and all of its dependencies are available on Maven Central.

Configuration metadata

If you starter provides @ConfigurationProperties it should provide metadata for those
properties to enable auto-completion in the IDE. Metadata can be provided by adding
field level documentation on each of the properties and adding the
spring-boot-configuration-processor to your build.

[ ] Starter provides metadata, including documentation, for all its configuration
properties.

Version mappings

Spring Initializr allows different versions of a starter to be used with different
versions of Spring Boot. For example, if a project is being generated with Spring
Boot version W you may want to use Starter version X and if a project is being
generated with Spring Boot version Y you may want to use Starter version Z.

Please provide the details of any mappings between particular version of Spring
Boot and particular versions of your starter.

Links to additional resources

Each entry can be associated with one or several links. Please provide at least a link to
a sample and the reference documentation:

@remkop is the author and current maintainer of the project

@bclozel
Copy link
Member

bclozel commented Oct 26, 2021

Thanks @aalmiray

Are you an active contributor of the project? Is this issue created at the request of the project maintainers?
We need to ensure that this proposal is blessed by the picocli team, as having an entry on start.spring.io requires a bit of initial work and a commitment to active maintenance (typically, submitting PRs to this project for new versions).

I'm not seeing any configuration property in the project and the auto-configuration looks pretty straightforward. On the other hand it's currently based on Spring Boot 2.4.x which might disappear from start.spring.io as soon as 2.6 is out.

What's your take on this @remkop?

@bclozel bclozel added the status: waiting-for-feedback We need additional information before we can continue label Oct 26, 2021
@remkop
Copy link

remkop commented Oct 26, 2021

I think this is a great proposal and thank @aalmiray for raising this.

The PRs on version updates should not be a problem (hoping that the process isn't too involved...) :-)

The initial work that is mentioned is something that I am less sure of: I am not very familiar with Spring 2.6 and would appreciate help on what this should look like.

@spring-projects-issues spring-projects-issues added status: feedback-provided Feedback has been provided and removed status: waiting-for-feedback We need additional information before we can continue labels Oct 26, 2021
@aalmiray
Copy link
Author

@bclozel no, I'm not an active contributor to the project, just a very happy user. This being said I've got plenty of experience managing Open source projects and wouldn't mind in helping PioCLI to get onboarded into Spring's Initialzr, as well as keeping it updated.

@bclozel
Copy link
Member

bclozel commented Oct 27, 2021

Thanks @aalmiray , that's great news.

To summarize, we're missing the following items right now:

Version mappings

Currently picocli is depending on Spring Boot 2.4.x. Looking at the starter code, it doesn't really depend on any exotic Spring Boot feature so achieving wide compatibility should be easy. Technically, the Spring Boot team cannot claim the compatibility range for you. It's really the picocli team's decision as it depends on how you're testing your integration with Spring Boot and the support efforts you're willing to put in. In your case, I think that a simple "PicoCLI 4.6.x supports Spring Boot 2.4-2.5-2.6" is a fair bet.

Configuration metadata

I haven't seen any configuration property defined in the PicoCLI starter. It's not mandatory at all, it should really be driven by a need. If you're unsure about a particular configuration feature we can help here. Otherwise, if you don't provide any configuration property, there's nothing to do.

Ongoing maintenance

Last but not least, we'd need some kind of commitment from the PicoCLI about the starter maintenance. It would be a shame to make the starter available and then have to hide it just because we don't know if it's compatible with the latest Spring Boot version.

What we're expecting is:

  • Testing against the latest Spring Boot GA versions in the PicoCLI build
  • Sending PRs to this project (like Upgrade to Camel 3.12.0 #768) to let us know when new versions are released

@snicoll snicoll added status: waiting-for-feedback We need additional information before we can continue and removed status: feedback-provided Feedback has been provided labels Oct 28, 2021
@spring-projects-issues
Copy link
Collaborator

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

@spring-projects-issues spring-projects-issues added the status: feedback-reminder We've sent a reminder that we need additional information before we can continue label Nov 4, 2021
@aalmiray
Copy link
Author

aalmiray commented Nov 4, 2021

Thank you for the reminder.

@spring-projects-issues spring-projects-issues added status: feedback-provided Feedback has been provided and removed status: waiting-for-feedback We need additional information before we can continue status: feedback-reminder We've sent a reminder that we need additional information before we can continue labels Nov 4, 2021
@bclozel bclozel added status: feedback-reminder We've sent a reminder that we need additional information before we can continue and removed status: feedback-provided Feedback has been provided labels Nov 4, 2021
@snicoll snicoll added the status: waiting-for-feedback We need additional information before we can continue label Nov 4, 2021
@remkop
Copy link

remkop commented Nov 4, 2021

Update:

Picocli 4.6.2 (to be released soon) now builds against Spring Boot 2.5.6 (the latest GA release).
I also tested against Spring Boot 2.6.0-SNAPSHOT without any issues.

The README for the picocli-spring-boot-starter module now mentions the tested dependency range.

Update: picocli 4.6.2 was released Nov 5.

@spring-projects-issues spring-projects-issues added status: feedback-provided Feedback has been provided and removed status: waiting-for-feedback We need additional information before we can continue status: feedback-reminder We've sent a reminder that we need additional information before we can continue labels Nov 4, 2021
@bclozel bclozel removed the status: feedback-provided Feedback has been provided label Nov 10, 2021
bclozel added a commit that referenced this issue Nov 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants