Skip to content

cliplugin: use caller contexts#1947

Merged
Hayden-IO merged 56 commits intosigstore:mainfrom
ramonpetgrave64:ramonpetgrave64-kms-plugin-cli-context
Feb 6, 2025
Merged

cliplugin: use caller contexts#1947
Hayden-IO merged 56 commits intosigstore:mainfrom
ramonpetgrave64:ramonpetgrave64-kms-plugin-cli-context

Conversation

@ramonpetgrave64
Copy link
Copy Markdown
Contributor

Summary

pending #1946. See branch diff: ramonpetgrave64/sigstore@ramonpetgrave64-kms-plugin-cli-cryptosigner-working...ramonpetgrave64:sigstore:ramonpetgrave64-kms-plugin-cli-context

Makes PluginClient methods use the contexts of the original caller when calling invokePlugin. The benefit is that the Cmd can be cancelled using the caller's cancel func.

Release Note

PluginClient methods can be cancelled with the caller's context cancel func.

Documentation

Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
…monpetgrave64-kms-plugin-cli-cryptosigner

Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
…monpetgrave64-kms-plugin-cli-cryptosigner

Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
This reverts commit 80f74bc.

Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
This reverts commit fb9bb93.

Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
This reverts commit 768bc6b.

Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
…working

Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
…to ramonpetgrave64-kms-plugin-cli-context

Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
@ramonpetgrave64 ramonpetgrave64 marked this pull request as ready for review February 5, 2025 18:05
@ramonpetgrave64 ramonpetgrave64 requested a review from a team as a code owner February 5, 2025 18:05
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Signed-off-by: Ramon Petgrave <ramon.petgrave64@gmail.com>
Comment on lines +210 to +212
if err := ctx.Err(); err != nil {
return nil, nil, err
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it feels off to check this at the time of object creation instead of object usage.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking of this context as having a deadline that's specific for object initialization. If the caller wants to reuse the same context in method calls, then that's okay.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what reason would this have an error at this point?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the context already expired, then no reason to continue trying to initialize the CrytpoSigner.

Also this article talks about using contexts in initializer functions, and that reusing it for methods leads to confusion.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, does it make sense to call the errFunc here?

@Hayden-IO
Copy link
Copy Markdown
Contributor

Just a meta comment: The commit history seems to be pulling in tons of old commits. It's not a big deal since we'll squash the commit before merge, but it's hard to follow the changes in this PR, so I'd suggest rebasing off main as we merge PRs.

@Hayden-IO Hayden-IO merged commit c5b7d21 into sigstore:main Feb 6, 2025
12 checks passed
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.

3 participants