-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
wallet-tool: add picocli-codegen annotationProcessor dependency #2284
wallet-tool: add picocli-codegen annotationProcessor dependency #2284
Conversation
@schildbach The test failure here also looks like one of the intermittent ones. |
Hmmm, the documentation at https://github.com/remkop/picocli/tree/main/picocli-codegen#213-gradle states that there are different paths to be used, depending on if Gradle is above or below version 4.6. Can we reflect that? |
There are (at least) three ways we can address this issue:
I think I have a slight preference for (1), but that would preclude building wallet-tool in the strict Debian-guidelines case until there's a newer Gradle in that environment. So if that's important (2) or (3) would also be fine with me. (I'll also need to resolve merge conflicts) |
I'd prefer 2️⃣ or 3️⃣, for the reason you mentioned. Not sure which of the two is less intrusive. In general, I don't really like conditionals (and code-ish constructs) in build.gradle files, so I'd prefer if it doesn't distract too much. |
In case you're wondering, I was trying to find an alternative way to reference from your points list, without inadvertently referencing GitHub issues/PRs. |
(1), (2), (3) is a pure ascii way of doing it. (Edited above.) But it's a cool use of emojis if you have them easily available. |
(2) has fewer conditionals, but will result in the benefits of annotation processing not being available in all cases. I'll make a stab at (3) and we'll see how it looks.
Well, one way to minimize conditionals is by requiring a recent minimum version of Gradle 😏, but given that we're in this mode of "progressively-enchanced" Gradle builds it means we're stuck with conditionals. (I'm collecting some thoughts on a new approach to this that I will bring up soon in the context of updating our unit tests.) |
4cd71df
to
e31f152
Compare
Use a conditional to use the `compileOnly` configuration, rather than `annotationProcessor` which is used in Gradle 4.6+. We are supporting Debian build guidelines using the current Debian-specific Gradle 4.4.x build.
@schildbach How does 77e2f10 look? |
ec12ad7 adds support for generating manpage documentation in both HTML and man format. To build the documentation use
|
Both commits look good to me. Is the |
I just tried it in action. Gradle 4.10.2 works fine. However the Debian Gradle 4.4.1 yields this error:
|
Guess I have to continue working on the command line opions metadata, as the generated manuals kind of expose the fact that the migration from the text file isn't really finished… |
Yes. It's the default provided by the Gradle Asciidoctor Plugin.
We could easily add an additional task with a name like |
I somewhat blindly copied the I just pushed d7996eb which should hopefully fix your issue. (It's not currently easy for me to test on Debian Gradle 4.4.1) |
Merged. |
@schildbach Have you thought about or looked into this at all? I'm about to take a quick look and see what can be done... |
I took a quick look into *picocli support for subcommands and think we should refactor |
This does not seem to be necessary for non-GraalVM builds, but does not hurt (and I suspect it improves startup speed) and is necessary for the GraalVM
nativeCompile
build which is coming in a separate PR.