-
Notifications
You must be signed in to change notification settings - Fork 30
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
Change naming for timeout settings #20
Comments
Thanks, I also planned to create a separate issue as I did with #19. Currently we have global We could - just an outline for further discussion:
It may look even feasible, but under the hood there is a need to override |
I'm afraid the meaning is not really clear from the name.
Those names are clear. However, having a common one might help as well (e.g.
Technically speaking, there are libraries to augment time behavior. So you don't need to rely on
Technically speaking, backoff should quickly climb to the sane maximum delays. I perfectly agree there might be |
That name isn't precise. It is only for transition operations, not all operation (currently just two of them).
Hmm, I'm not sure if I understood it correctly, but in the context of closing/releasing repositories in Nexus there is X tries which every can take Y seconds + some delay between them and I'm not sure if it the main use case for - as example - fluxcapacitor. Currently we use failsafe which is quite configurable. Nevertheless, I am not sure how the configuration of GNPP should look like to keep it both simple, powerful and fitting our needs :). Could you make any proposal? |
What do you mean by transition operations?
If you want to ensure that GNPP can publish artifacts even if Nexus takes 20 minutes, then you could use something like fluxcapacitor to emulate 20minutes without altering the timeout settings.
See #20 (comment) There should be end-to-end timeout configuration. |
e2e timeout could be useful in some cases, but some people (not to mention tests) would still like to be able to tweak e.g. delay between get requests to get know if transition has finished. And I am not sure to express it in the plugin configuration in a simple, yet flexible configuration. |
Would you please expose a total timeout first? Every use case needs to configure it.
Nobody really needs that. Really. Tweaking timeouts have no business value.
If you mean "progress indication" feature, then you should not abuse "timeout between retries" as "progress indicator".
Expose e2e timeouts to the end-user explicitly. |
There is a per task timeout available in Gradle itself. Could it be used? I haven't found a global timeout for Gradle execution (all the tasks). @marcphilipp do you know if it can be simply achieved?
Progress is important to get know that you usually release in the attempt 39/40 to increase it. The same you can observe (with
In e2e (or mocked, but with Gradle TestKit) to verify that the plugin tries more than one time to check the status of closing stating repository that value delay value to set to near-zero is quite important. |
@vlsi On Linux you can use
Wouldn't it be sufficient for you? |
This is relevant: gradle/gradle#3654 There's internal class ProgressLogger which is used to show unit test progress as the tests are executed.
Is 39/40 any different from 399/400?
Do you mean you are going to remove all the timeouts from the plugin? |
Some organizations cares if it means to have something releasing and "in production" in 10 minutes or in 20, since the commit has been made (vide my example with awaitility and senseless - too long - idle waiting).
Most of the people using CI servers - where the timeout seems to be more important - release from Linux. You can still have per timeout set timeout, in Gradle. I don't know if there is an easy way to achieve global timeout in Gradle itself. |
@vlsi To summarize the things.
I personally still would like to have an (optional) control over delay time. We could have "total" release execution time and (optional delay time, set to some value by default). Retries would happen until that time is not exceeded. However, it would be soft limit - total execution would be slightly longer - hard limit should be achieved with the aforementioned per task |
Just in case: I don't need GNPP to implement global timeouts across full Gradle execution. Sorry if that was not clear initially, but I thought it is obvious the plugin can't manage the timeout for the full Gradle build :-/ The operations here are like
plus
Hard limits are possible only in hard real-time systems.
WDYT of the following?
status checks (e.g. pass it to |
It is fine if you add the control as extra option. |
There is no retrying with init. It's just a call to Nexus. Once finished the repo should be created (or there was an error). Otherwise, it would be needed to just use
For me it is very long. 10 minutes waiting for connect? Probably even with Sonatype Nexus it would be too much. Read for init, on the other hand, can take some time (for Sonatype). |
Well, it could be |
Sorry for joining the discussion late.
Would these just set the Gradle's task timeout? |
I think I think we should keep the current |
To avoid confusion since publishing is not retried, only checking the repo's status when transitioning `RetryingConfig` is moved from `NexusRepository` to `NexusPublishExtension` and renamed to `TransitionCheckOptions`. The options specified in the extension are by default applied to all close and release tasks but can be overridden on each task, if need be. Resolves #20.
To avoid confusion since publishing is not retried, only checking the repo's status when transitioning `RetryingConfig` is moved from `NexusRepository` to `NexusPublishExtension` and renamed to `TransitionCheckOptions`. The options specified in the extension are by default applied to all close and release tasks but can be overridden on each task, if need be. Resolves #20.
Original comment from @vlsi in closed #18 .
I think that it's really nice idea and I don't want it forgot in closed PR.
My current timeout settings look like:
But really I just want to configure, that I'm ready to wait 1 hour for publishing staging repository.
Something like a configuration timeout for publishing artifacts to the staging repository in
nexusPublishing
block.The text was updated successfully, but these errors were encountered: