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

Replace submit queue with Tide in docs #2701

Merged

Conversation

nikhita
Copy link
Member

@nikhita nikhita commented Sep 23, 2018

Ref: https://groups.google.com/d/topic/kubernetes-dev/sp0dOVt4WsA/discussion

The submit queue is also mentioned in many places in sig-scalability/ but I don't want to correct them in this PR since it touches their charters, etc.

/cc @spiffxp @cblecker @BenTheElder @guineveresaenger

@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. area/contributor-guide Issues or PRs related to the contributor guide sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. labels Sep 23, 2018
## Submit Queue

Submit Queue is deprecated. Kubernetes uses
Copy link
Member Author

Choose a reason for hiding this comment

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

Should this be removed completely or be marked as deprecated?

Copy link
Member

Choose a reason for hiding this comment

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

the submit queue doesn't even exist anymore (rm'ed) but people might have still heard of it.. I think we should probably keep this for a bit.

Copy link
Member

Choose a reason for hiding this comment

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

I would change the heading to Tide, and this text can say something like "This project formerly used a Submit Queue, it has since been replaced by Tide"

queue](http://submit-queue.k8s.io/) on a subset of those tests if they fail (the
subset is defined in the [munger config](https://git.k8s.io/test-infra/mungegithub/mungers/submit-queue.go)
via the `jenkins-jobs` flag; note we also block on `kubernetes-build` and
`kubernetes-test-go` jobs for build and unit and integration tests).
Copy link
Member Author

Choose a reason for hiding this comment

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

Where is this defined now?

Copy link
Member

Choose a reason for hiding this comment

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

I don't think it looked like this for quite some time. currently it depends on if a job is considered optional by prow, or for other repos if they've configured additional contexts (EG for additional CI statuses not from prow).. this block could use a thoroughy rewrite. IT also only addresses e2e tests, without mentioning build, unit, integration, ...

quota,) they should remain with the `[Feature:.+]` label, and the suites that
run them should be incorporated into the
[munger config](https://git.k8s.io/test-infra/mungegithub/mungers/submit-queue.go)
via the `jenkins-jobs` flag.
Copy link
Member Author

Choose a reason for hiding this comment

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

What is the equivalent alternative for this now?

Copy link
Member

Choose a reason for hiding this comment

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

ideally don't run this sort of thing in presubmit to begin with, we can have optionally requested tests with always_run: false set on them in prow config, and we can have periodic / postsubmit to cover features that aren't necessarily PR blocking.

there's also an entirely seperate concept of release blocking jobs not covered here I think. these docs are really stale

@BenTheElder
Copy link
Member

/assign @cjwagner

@@ -48,6 +51,10 @@ If these tests pass a second time, the PR will be merged when this PR finishes r

## Github Munger
Copy link
Member

Choose a reason for hiding this comment

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

this probably doesn't need to be kept

@@ -576,7 +576,7 @@ suite, it receives a `[Feature:.+]` label, e.g. `[Feature:Performance]` or
`[Feature:Ingress]`. `[Feature:.+]` tests are not run in our core suites,
instead running in custom suites. If a feature is experimental or alpha and is
not enabled by default due to being incomplete or potentially subject to
breaking changes, it does *not* block the merge-queue, and thus should run in
breaking changes, it does *not* block the merge pool, and thus should run in
Copy link
Member

Choose a reason for hiding this comment

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

this might be confusing without more background on pools

Copy link
Member

Choose a reason for hiding this comment

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

It does not block PR merges

Copy link
Member

@spiffxp spiffxp left a comment

Choose a reason for hiding this comment

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

Thank you for doing this, a few suggestions

## Submit Queue

Submit Queue is deprecated. Kubernetes uses
Copy link
Member

Choose a reason for hiding this comment

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

I would change the heading to Tide, and this text can say something like "This project formerly used a Submit Queue, it has since been replaced by Tide"

@@ -576,7 +576,7 @@ suite, it receives a `[Feature:.+]` label, e.g. `[Feature:Performance]` or
`[Feature:Ingress]`. `[Feature:.+]` tests are not run in our core suites,
instead running in custom suites. If a feature is experimental or alpha and is
not enabled by default due to being incomplete or potentially subject to
breaking changes, it does *not* block the merge-queue, and thus should run in
breaking changes, it does *not* block the merge pool, and thus should run in
Copy link
Member

Choose a reason for hiding this comment

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

It does not block PR merges

@@ -684,14 +681,11 @@ contend for resources; see above about [kinds of tests](#kinds_of_tests).

Generally, a feature starts as `experimental`, and will be run in some suite
owned by the team developing the feature. If a feature is in beta or GA, it
*should* block the merge-queue. In moving from experimental to beta or GA, tests
*should* block the merge pool. In moving from experimental to beta or GA, tests
Copy link
Member

Choose a reason for hiding this comment

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

block PR merges and releases

via the `jenkins-jobs` flag; note we also block on `kubernetes-build` and
`kubernetes-test-go` jobs for build and unit and integration tests).
continuous basis, and block merges via [Tide](https://git.k8s.io/test-infra/prow/cmd/tide)
on a subset of those tests if they fail.
Copy link
Member

Choose a reason for hiding this comment

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

This whole section reads like it's left over from the old days of post-submits blocking the submit queue. In that spirit, I would rewrite this to talk about release-blocking jobs, and reference https://testgrid.k8s.io/sig-release-master-blocking

@@ -10,7 +10,7 @@ designing, writing and debugging your end-to-end tests. In
particular, "flaky" tests, which pass most of the time but fail
intermittently for difficult-to-diagnose reasons are extremely costly
in terms of blurring our regression signals and slowing down our
automated merge queue. Up-front time and effort designing your test
automated merge pool. Up-front time and effort designing your test
Copy link
Member

Choose a reason for hiding this comment

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

s/automated merge pool/merge velocity

@@ -72,7 +72,7 @@ Here's the process the pull request goes through on its way from submission to m

1. If you're **not** a member of the Kubernetes organization, a Reviewer/Kubernetes Member checks that the pull request is safe to test. If so, they comment `/ok-to-test`. Pull requests by Kubernetes organization [members](/community-membership.md) do not need this step. Now the pull request is considered to be trusted, and the pre-submit tests will run:

1. Automatic tests run. See the current list of tests on the [MERGE REQUIREMENTS tab, at this link](https://submit-queue.k8s.io/#/info)
1. Automatic tests run. See the current list of tests on the [MERGE REQUIREMENTS tab, at this link](https://prow.k8s.io/tide#/info)
Copy link
Member

Choose a reason for hiding this comment

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

This link doesn't actually show tests that are run for every PR. We're sort of lacking a clear list:

I guess the last link is my vote. But none of these clearly answer "how can I find out what these jobs do"

1. Author has signed the CLA (`cncf-cla: yes` label added to pull request)
1. No changes made since last `lgtm` label applied
1. The pull request enters the [merge pool](https://prow.k8s.io/tide)
if the merge criteria is met. The [PR dashboard](https://prow.k8s.io/pr) shows
Copy link
Member

Choose a reason for hiding this comment

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

s/criteria is/criteria are/


That's the last step. Your pull request is now merged.

## Marking Unfinished Pull Requests

If you want to solicit reviews before the implementation of your pull request is complete, you should hold your pull request to ensure that the merge queue does not pick it up and attempt to merge it. There are two methods to achieve this:
If you want to solicit reviews before the implementation of your pull request is complete, you should hold your pull request to ensure that the merge pool does not pick it up and attempt to merge it. There are two methods to achieve this:
Copy link
Member

Choose a reason for hiding this comment

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

s/the merge pool/tide/

@nikhita nikhita force-pushed the replace-submit-queue-with-tide branch from 6508dcc to d00356a Compare September 25, 2018 07:29
@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Sep 25, 2018
@nikhita
Copy link
Member Author

nikhita commented Sep 25, 2018

@BenTheElder @spiffxp Addressed comments. Ptal

Is it ok to do the re-write of https://github.com/kubernetes/community/blob/master/contributors/devel/e2e-tests.md as a follow up?

This project formerly used a Submit Queue, it has since been replaced by
[Tide](https://git.k8s.io/test-infra/prow/cmd/tide).

### Submit Queue
Copy link
Member

Choose a reason for hiding this comment

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

We don't need this section anymore since the SQ is gone now and the links are dead.

batch as it can (“tide comes in”), and merges them (“tide goes out”).

- [Blunderbuss plugin](https://git.k8s.io/test-infra/prow/plugins/blunderbuss):
- responsible for determining **reviewers** and assigning to them
Copy link
Member

Choose a reason for hiding this comment

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

Blunderbuss requests reviews. It does not assign.

- [Blunderbuss plugin](https://git.k8s.io/test-infra/prow/plugins/blunderbuss):
- responsible for determining **reviewers** and assigning to them
- [Tide](https://git.k8s.io/test-infra/prow/cmd/tide):
- responsible for merging PRs
- responsible for updating a GitHub status check explaining why a PR can't be merged (eg: a
Copy link
Member

Choose a reason for hiding this comment

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

The other important thing that Tide does is trigger batch tests and retrigger stale PR tests.

Copy link
Member Author

Choose a reason for hiding this comment

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

Added.

@@ -72,7 +72,7 @@ Here's the process the pull request goes through on its way from submission to m

1. If you're **not** a member of the Kubernetes organization, a Reviewer/Kubernetes Member checks that the pull request is safe to test. If so, they comment `/ok-to-test`. Pull requests by Kubernetes organization [members](/community-membership.md) do not need this step. Now the pull request is considered to be trusted, and the pre-submit tests will run:

1. Automatic tests run. See the current list of tests on the [MERGE REQUIREMENTS tab, at this link](https://submit-queue.k8s.io/#/info)
1. Automatic tests run. See the current list of tests on the [MERGE REQUIREMENTS tab, at this link](https://prow.k8s.io/?repo=kubernetes%2Fkubernetes&type=presubmit)
Copy link
Member

Choose a reason for hiding this comment

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

There is no MERGE REQUIREMENTS tab at this link.

@@ -82,24 +82,26 @@ Here's the process the pull request goes through on its way from submission to m
1. (Optional) Some reviewers prefer that you squash commits at this step
1. Follow the bot suggestions to assign an OWNER who will add the `/approve` label to the pull request

Once the tests pass, all failures are commented as flakes, or the reviewer adds the labels `/lgtm` and `/approved`, the pull request enters the final merge queue. The merge queue is needed to make sure no incompatible changes have been introduced by other pull requests since the tests were last run on your pull request.
Once the tests pass, all failures are commented as flakes, or the reviewer adds the labels `/lgtm` and `/approved`, the pull request enters the final merge pool. The merge pool is needed to make sure no incompatible changes have been introduced by other pull requests since the tests were last run on your pull request.
Copy link
Member

Choose a reason for hiding this comment

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

all failures are commented as flakes

What does this mean?

Copy link
Member Author

Choose a reason for hiding this comment

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

What does this mean?

Not sure, it was part of the old docs. I've updated it. Ptal.

@nikhita nikhita force-pushed the replace-submit-queue-with-tide branch from d00356a to 30a07da Compare September 27, 2018 14:54
Copy link
Member

@cjwagner cjwagner left a comment

Choose a reason for hiding this comment

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

Thanks for making the changes. I missed a couple things on my last review though.

The status of the submit-queue is [online.](http://submit-queue.k8s.io/)

### Ready to merge status
#### Ready to merge status

A PR is considered "ready for merging" by the submit queue if it matches the set
of conditions listed in the [merge requirements tab](http://submit-queue.k8s.io/#/info)
Copy link
Member

Choose a reason for hiding this comment

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

Update this link to point to the tide dashboard. https://prow.k8s.io/tide

Copy link
Member Author

Choose a reason for hiding this comment

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

Done.

@@ -15,7 +15,7 @@ A list of common resources when contributing to Kubernetes.
## Workflow

- [Gubernator Dashboard - k8s.reviews](https://k8s-gubernator.appspot.com/pr)
- [Submit Queue](https://submit-queue.k8s.io)
- [Tide](https://prow.k8s.io/tide)
Copy link
Member

Choose a reason for hiding this comment

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

Please also remove reference to the cherrypick queue below.

Copy link
Member Author

Choose a reason for hiding this comment

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

Done.

@nikhita nikhita force-pushed the replace-submit-queue-with-tide branch from 30a07da to c2bd5cb Compare October 6, 2018 17:38
@nikhita
Copy link
Member Author

nikhita commented Oct 6, 2018

I've created an issue #2759 for a follow-up update to the e2e tests doc.

@spiffxp
Copy link
Member

spiffxp commented Oct 8, 2018

/approve
agree with the followup, will leave /lgtm for @cjwagner

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: spiffxp

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

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 8, 2018
Copy link
Member

@cjwagner cjwagner left a comment

Choose a reason for hiding this comment

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

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Oct 8, 2018
@k8s-ci-robot k8s-ci-robot merged commit f1e2ffa into kubernetes:master Oct 8, 2018
@nikhita nikhita deleted the replace-submit-queue-with-tide branch October 9, 2018 05:31
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. area/contributor-guide Issues or PRs related to the contributor guide cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. sig/contributor-experience Categorizes an issue or PR as relevant to SIG Contributor Experience. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants