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

Don't rely on condition ordering. #4209

Merged
merged 1 commit into from
Sep 2, 2021

Conversation

mattmoor
Copy link
Member

@mattmoor mattmoor commented Sep 1, 2021

I noticed a few places in the metrics code that was relying on Conditions[0] to access the Succeeded condition. Generally we try to sort the conditions to ensure determinism across reconciles, and our sorting generally puts the summary condition (Ready, Succeeded) first, but this is mostly for UX and not something the consuming code should rely upon.

While I think it's extremely unlikely that this behavior will change, I believe that the code is much more readable this way because it no longer assumes the reader knows about the sorting or has the expectation that the Succeeded condition is always first.

/kind cleanup

Submitter Checklist

As the author of this PR, please check off the items in this checklist:

  • Docs included if any changes are user facing
  • Tests included if any functionality added or changed
  • Follows the commit message standard
  • Meets the Tekton contributor standards (including
    functionality, content, code)
  • Release notes block below has been filled in or deleted (only if no user facing changes)

Release Notes

NONE

I noticed a few places in the metrics code that was relying on `Conditions[0]` to access the `Succeeded` condition.  Generally we try to sort the conditions to ensure determinism across reconciles, and our sorting generally puts the summary condition (Ready, Succeeded) first, but this is mostly for UX and not something the consuming code should rely upon.

While I think it's extremely unlikely that this behavior will change, I believe that the code is much more readable this way because it no longer assumes the reader knows about the sorting or has the expectation that the `Succeeded` condition is always first.
@tekton-robot tekton-robot added release-note-none Denotes a PR that doesnt merit a release note. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. labels Sep 1, 2021
@tekton-robot tekton-robot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Sep 1, 2021
@mattmoor mattmoor changed the title Don't rely on condition sorting. Don't rely on condition ordering. Sep 1, 2021
@mattmoor
Copy link
Member Author

mattmoor commented Sep 2, 2021

/easycla

@mattmoor mattmoor closed this Sep 2, 2021
@mattmoor mattmoor reopened this Sep 2, 2021
@mattmoor
Copy link
Member Author

mattmoor commented Sep 2, 2021

Yay, at least closing/reopening fixes EasyCLA 😁

@tekton-robot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: vdemeester

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@tekton-robot tekton-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 2, 2021
@dlorenc
Copy link
Contributor

dlorenc commented Sep 2, 2021

/lgtm

@tekton-robot tekton-robot added the lgtm Indicates that a PR is ready to be merged. label Sep 2, 2021
@tekton-robot tekton-robot merged commit 9e200a2 into tektoncd:main Sep 2, 2021
@mattmoor mattmoor deleted the use-get-conditions branch September 2, 2021 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. lgtm Indicates that a PR is ready to be merged. release-note-none Denotes a PR that doesnt merit a release note. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants