Repository navigation
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Comment |
Runs the conformance suite against the GO Feature Flag provider in both evaluation types, in-process (WASM) and remote (OFREP), against the aepfli/goff-tck-testbed 0.1.0 image. The first run declares every declarable capability; withholding and deviations follow from results. Part of open-feature/spec#417. Signed-off-by: Simon Schrottner <simon.schrottner@flagsmith.com>
aepfli
force-pushed
the
feat/provider-tck-go-feature-flag
branch
from
October 20, 2026 07:27
1f843ef to
3c81d92
Compare
In-process passes 64 of 65 with everything declarable; the skip is @large-integers, refused for Java. Remote is the OFREP provider underneath and withholds what it does not attempt (@Stale, @configuration-change, @unavailable, @numeric-coercion). It declares @disabled-flags and fails it, tracked as java-sdk-contrib#1850. Signed-off-by: Simon Schrottner <simon.schrottner@flagsmith.com>
This was referenced Oct 20, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Runs the OpenFeature Provider Conformance Suite against the GO Feature Flag provider, in both evaluation types. Builds on #1945 (merged), the root
tckprofile. Third backend after flagd (#1847) and Flagsmith (#1849). Go companion: go-sdk-contrib#1053, same testbed.Result (
64a35c59, per-mode declarations)The remote failures are the 5
@disabled-flagsscenarios, all recorded against #1850. The first run with everything declared had remote at 53 / 11 / 1.The in-process skip, and one of the remote ones, is
@large-integers, which the TCK refuses for Java: the integer accessor is 32-bit.What it is
tck/AbstractGoFeatureFlagTestholds the shared configuration.tck/InProcessTestandtck/RemoteTestset the evaluation type and their own declarations:OfrepProviderunderneath.src/test/resources/tck/docker-compose.yamlpins aepfli/goff-tck-testbed0.1.0: the unmodified relay proxy, plus a launchpad implementing the control API. The launchpad writes the flag file and forcesPOST /admin/v1/retriever/refresh. The rule is the same as for Flagsmith: fake the config source, never the evaluation.pom.xmladds thetcktest dependency. No Jackson pin is needed, unlike Flagsmith.What it declares
In-process: everything declarable, all of it passing. That includes
@numeric-coercion, against my prediction. The GO Feature Flag engine narrows any float tointon an integer call, but the Java provider type-checks what the WASM returns, sofloat-flagread as an integer reportsTYPE_MISMATCH. Whether the Go provider (native module, no such check) agrees is the next comparison.Remote follows the OFREP adoption, because it is the same client:
@staleand@configuration-change: nothing polls.@unavailable: init never contacts the backend, so a dead port reaches READY.@numeric-coercion: OFREP is untyped and the client does an exact-instance check, sointeger-flagread as a float returns the default. Strict typing is a legitimate choice, so no deviation is recorded.@disabled-flagsis declared and failing, tracked as [OFREP] Should the provider handle codeDefaultFlag responses? Disabled flags surface FLAG_NOT_FOUND #1850. The relay proxy answers a disabled flag withDISABLEDand no value (codeDefaultFlag), and the OFREP client reportsFLAG_NOT_FOUND. All 5 such scenarios fail on the code or reason, never on the value. The in-process mode of the same provider gets it right.So the
Provider TCKjob stays red on those 5 known failures (tck.testFailureIgnoreisfalse, as in #1847).Running it
mvn -Ptck -pl providers/go-feature-flag -am test🤖 Generated with Claude Code