Closed robscott closed 1 week ago
I think that it might be helpful, for this and other unforeseen problems with conformance reports, to have a spot in the conformance suite and the resultant output that allows the suite to say "There are issues with this report, that causes it to not be conformant for some reason that's not covered by the suite".
I think that, in general, we should encourage implementations to submit partial conformance results, or other results that say "Our implementation is working on conformance but it's not done yet". This allows for:
Using an override feature like this would require:
In terms of more concrete changes required we would need to add:
Again, just a quick proposal for discussion, not intended to be binding.
After discussing https://github.com/kubernetes-sigs/gateway-api/pull/3021 and https://github.com/kubernetes-sigs/gateway-api/pull/3025, I agree with you it makes sense to allow implementations to submit partial reports, for all the good reasons listed by @youngnick as well.
When it comes to the report API, we already have the partial
result automatically set by the suite in case some tests don't pass: https://github.com/kubernetes-sigs/gateway-api/blob/a416c2229860c14323fb3e41cc9195d75adb6a37/conformance/reports/v1.0.0/azure-application-gateway-for-containers/v1.0.0-report.yaml#L12-L18.
If we need to include some information on the profile to allow implementations to say "I am not supporting this or that because the suite lacks this functionality that I need", we have the summary
https://github.com/kubernetes-sigs/gateway-api/blob/735240969bcc228a72266665040a956e325e7444/conformance/apis/v1/profilereport.go#L26-L28 field that is currently filled in with an automatic message produced by the suite. That field could be leveraged by the implementation to state why the report is not complete and even add GH issues.
For what concerns us allowing implementations to submit partial results, what's currently missing is the explicit allowance to do so in our docs, as we are currently saying that partial reports are not allowed: https://github.com/kubernetes-sigs/gateway-api/blob/735240969bcc228a72266665040a956e325e7444/conformance/reports/README.md#L123-L127
One thing I think we should pay attention to is that we should require implementations to always write the current status of their support level in the README. If there are any workarounds the projects need to use because of implementation/suite limitations, they need to be listed here, along with the related issues.
What I meant was that, in the case that there's something that we don't catch in the suite that renders the result not complete (like the use of annotations in #3021 as part of their suite, which means that the reproduction instructions are not runnable), there needs to be a way in the conformance YAML for implementation maintainers to say "although we're passing conformance, something else is wrong, and the report doesn't count". I don't think this is the last time this will happen.
What I meant was that, in the case that there's something that we don't catch in the suite that renders the result not complete (like the use of annotations in #3021 as part of their suite, which means that the reproduction instructions are not runnable), there needs to be a way in the conformance YAML for implementation maintainers to say "although we're passing conformance, something else is wrong, and the report doesn't count". I don't think this is the last time this will happen.
Ok, I get your point. Since we have the "to reproduce" section of the reports README, where implementations are supposed to write down the steps to reproduce the report, we could use that section to clearly state in plain English why the report is not valid, what's the problem, links to GH issues, whatever, and introduce a simple boolean (something like a valid
field) in the report to allow implementations to flag valid/invalid reports. This way, we could easily exclude the invalid reports from the automatically generated implementation table we have in our documentation.
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle stale
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle rotten
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/reopen
/remove-lifecycle rotten
Please send feedback to sig-contributor-experience at kubernetes/community.
/close not-planned
@k8s-triage-robot: Closing this issue, marking it as "Not Planned".
What would you like to be added: A way to display "in progress" or "partial" conformance.
Why this is needed: In https://github.com/kubernetes-sigs/gateway-api/pull/3021 and https://github.com/kubernetes-sigs/gateway-api/pull/3025 we ran into situations where an implementation was not able to support a core feature in a conformance profile. Despite that meaning that the implementation is not conformant yet, it is likely still helpful for the broader ecosystem if they are able to report their current status, especially given the incoming work to display results in https://github.com/kubernetes-sigs/gateway-api/pull/2874. This could also be helpful for other implementations to report their current status even if they haven't reached 100% support of core features yet.
Note: This is meant to be the start of a discussion, this is not ready to be worked on yet.