Skip to content

chore: add conformance tests, SimpleCov, version standardization, and README improvements#95

Merged
josecolella merged 2 commits intomainfrom
chore/remaining-repo-improvements
Mar 9, 2026
Merged

chore: add conformance tests, SimpleCov, version standardization, and README improvements#95
josecolella merged 2 commits intomainfrom
chore/remaining-repo-improvements

Conversation

@josecolella
Copy link
Copy Markdown
Collaborator

Summary

Continuation of #91 — implements the remaining recommendations from the repository maturity analysis.

  • Conformance test adoption: Added it_behaves_like "an OpenFeature provider" shared examples to flagd, flagsmith, flipt, go-feature-flag, and meta_provider specs (OFREP already had them)
  • SimpleCov coverage: Added SimpleCov to all 7 packages (was only in 3). All spec_helpers now call SimpleCov.start
  • Version constant standardization: Renamed GO_FEATURE_FLAG_PROVIDER_VERSION, META_PROVIDER_VERSION, and OFREP_PROVIDER_VERSION to VERSION nested in their respective modules (Ruby convention)
  • Provider README improvements: Expanded Flipt, Meta Provider, and OFREP READMEs from minimal to comprehensive (installation, usage, configuration options table, supported flag types, error handling, development)
  • Rubocop auto-corrections: Fixed pre-existing offenses in flagsmith and meta_provider

Test plan

  • meta_provider: 24 examples, 0 failures (98.92% coverage)
  • flipt: all passing (100% coverage)
  • ofrep: all passing (98.92% coverage)
  • go-feature-flag: 77 examples, 0 failures (96.93% coverage)
  • flagsmith: 82 examples, 0 failures
  • flagd: requires docker for integration tests (CI will validate)
  • Verify all CI jobs pass

🤖 Jose's AI agent

… README improvements

- Add conformance shared examples to flagd, flagsmith, flipt, go-feature-flag, meta_provider
- Add SimpleCov to all providers (flagd, flipt, meta_provider, ofrep, flagsmith, go-feature-flag)
- Standardize version constants to VERSION (go-feature-flag, meta_provider, ofrep)
- Improve Flipt, Meta Provider, and OFREP provider READMEs with full documentation
- Auto-correct pre-existing rubocop offenses in flagsmith and meta_provider

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jose Colella <jose.colella@gusto.com>
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the maturity and maintainability of the OpenFeature Ruby SDK providers. It focuses on improving code quality through standardized testing, comprehensive code coverage, consistent versioning practices, and detailed documentation. These changes aim to make the providers more robust, easier to understand, and more compliant with OpenFeature specifications, ultimately benefiting developers by providing a more reliable and well-documented toolkit.

Highlights

  • Conformance Test Adoption: Conformance tests (it_behaves_like "an OpenFeature provider") were added to the flagd, flagsmith, flipt, go-feature-flag, and meta_provider specifications to ensure compliance with OpenFeature standards.
  • SimpleCov Integration: SimpleCov was integrated across all seven packages to enhance code coverage reporting, with SimpleCov.start calls added to all spec_helpers.
  • Version Constant Standardization: Provider version constants (GO_FEATURE_FLAG_PROVIDER_VERSION, META_PROVIDER_VERSION, OFREP_PROVIDER_VERSION) were standardized to VERSION and nested within their respective modules, aligning with Ruby conventions.
  • README Improvements: The README files for Flipt, Meta Provider, and OFREP were significantly expanded from minimal to comprehensive, including installation, usage, configuration, supported flag types, error handling, and development guidelines.
  • Rubocop Auto-corrections: Pre-existing Rubocop offenses were automatically corrected in the flagsmith and meta_provider packages to improve code style and consistency.
Changelog
  • providers/openfeature-flagd-provider/Gemfile.lock
    • Added docile, simplecov, simplecov-html, and simplecov_json_formatter gems.
  • providers/openfeature-flagd-provider/openfeature-flagd-provider.gemspec
    • Added simplecov as a development dependency.
  • providers/openfeature-flagd-provider/spec/openfeature/flagd/provider_spec.rb
    • Required provider_shared_examples.
    • Included it_behaves_like "an OpenFeature provider" and it_behaves_like "an OpenFeature provider with integer and float support".
  • providers/openfeature-flagd-provider/spec/spec_helper.rb
    • Added simplecov and SimpleCov.start.
  • providers/openfeature-flagsmith-provider/spec/openfeature/flagsmith/provider_spec.rb
    • Required provider_shared_examples.
    • Included it_behaves_like "an OpenFeature provider" and it_behaves_like "an OpenFeature provider with integer and float support".
  • providers/openfeature-flagsmith-provider/spec/spec_helper.rb
    • Added simplecov and SimpleCov.start.
  • providers/openfeature-flipt-provider/Gemfile.lock
    • Added docile, simplecov, simplecov-html, and simplecov_json_formatter gems.
  • providers/openfeature-flipt-provider/README.md
    • Expanded the README with features, requirements, detailed usage, configuration options, evaluation context, error handling, development guidelines, contributing, license, links, and support sections.
  • providers/openfeature-flipt-provider/openfeature-flipt-provider.gemspec
    • Added simplecov as a development dependency.
  • providers/openfeature-flipt-provider/spec/openfeature/flipt/provider_spec.rb
    • Required provider_shared_examples.
    • Included it_behaves_like "an OpenFeature provider" and it_behaves_like "an OpenFeature provider with integer and float support".
  • providers/openfeature-flipt-provider/spec/spec_helper.rb
    • Added simplecov and SimpleCov.start.
  • providers/openfeature-go-feature-flag-provider/lib/openfeature/go-feature-flag/version.rb
    • Renamed GO_FEATURE_FLAG_PROVIDER_VERSION to VERSION.
  • providers/openfeature-go-feature-flag-provider/openfeature-go-feature-flag-provider.gemspec
    • Updated spec.version to use the new VERSION constant.
  • providers/openfeature-go-feature-flag-provider/spec/openfeature/gofeatureflag/provider_spec.rb
    • Required provider_shared_examples.
    • Included it_behaves_like "an OpenFeature provider".
  • providers/openfeature-go-feature-flag-provider/spec/spec_helper.rb
    • Added simplecov and SimpleCov.start.
  • providers/openfeature-meta_provider/Gemfile
    • Updated source URL string to use single quotes.
  • providers/openfeature-meta_provider/Gemfile.lock
    • Added docile, simplecov, simplecov-html, and simplecov_json_formatter gems.
  • providers/openfeature-meta_provider/README.md
    • Expanded the README with features, requirements, detailed usage, configuration options, strategies, development guidelines, contributing, license, links, and support sections.
  • providers/openfeature-meta_provider/Rakefile
    • Updated string literals to use single quotes.
  • providers/openfeature-meta_provider/bin/console
    • Updated string literals to use single quotes.
  • providers/openfeature-meta_provider/bin/rake
    • Updated string literals to use single quotes.
  • providers/openfeature-meta_provider/lib/openfeature/meta_provider.rb
    • Updated metadata name formatting.
    • Changed rescue to rescue StandardError.
    • Updated error message string literals to single quotes.
  • providers/openfeature-meta_provider/lib/openfeature/meta_provider_version.rb
    • Encapsulated VERSION constant within MetaProvider class.
    • Added frozen_string_literal.
  • providers/openfeature-meta_provider/openfeature-meta_provider.gemspec
    • Updated spec.version to use the new OpenFeature::MetaProvider::VERSION constant.
    • Updated string literals to use single quotes.
    • Added simplecov as a development dependency.
  • providers/openfeature-meta_provider/spec/openfeature/meta_provider_spec.rb
    • Updated string literals to use single quotes.
    • Required provider_shared_examples.
    • Included it_behaves_like 'an OpenFeature provider'.
  • providers/openfeature-meta_provider/spec/spec_helper.rb
    • Added simplecov and SimpleCov.start.
    • Updated string literals to use single quotes.
  • providers/openfeature-ofrep-provider/Gemfile.lock
    • Added docile, simplecov, simplecov-html, and simplecov_json_formatter gems.
  • providers/openfeature-ofrep-provider/README.md
    • Expanded the README with features, requirements, detailed usage, configuration options, evaluation context, error handling, development guidelines, contributing, license, links, and support sections.
  • providers/openfeature-ofrep-provider/lib/openfeature/ofrep/provider/version.rb
    • Renamed OFREP_PROVIDER_VERSION to VERSION.
  • providers/openfeature-ofrep-provider/openfeature-ofrep-provider.gemspec
    • Updated spec.version to use the new VERSION constant.
    • Added simplecov as a development dependency.
  • providers/openfeature-ofrep-provider/spec/spec_helper.rb
    • Added simplecov and SimpleCov.start.
Activity
  • This pull request is a continuation of work from chore: improve repository maturity and contributor experience #91, indicating ongoing efforts to improve the repository.
  • The author has provided a detailed test plan, with several items already checked off, demonstrating thorough testing of the changes.
  • The test plan includes verification for meta_provider, flipt, ofrep, go-feature-flag, and flagsmith with passing examples and coverage percentages.
  • Integration tests for flagd are noted as requiring Docker, with CI validation planned.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces several valuable improvements across multiple providers, including adding conformance tests, integrating SimpleCov for test coverage, standardizing version constants, and significantly enhancing the README files. The code changes are well-executed, with notable improvements like more specific error handling in the meta provider. My review focuses on a potential issue in the documentation regarding the required Ruby version, which appears to be a typo across several files.


## Requirements

- Ruby >= 3.4
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.

medium

The Ruby version requirement is listed as >= 3.4. As Ruby 3.4 is not yet released, this is likely a typo and could cause confusion for users. Please update this to the correct minimum supported Ruby version.

Suggested change
- Ruby >= 3.4
- Ruby >= 3.0


## Requirements

- Ruby >= 3.4
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.

medium

The Ruby version requirement is listed as >= 3.4. Since Ruby 3.4 has not been released, this appears to be a typo. To avoid user confusion, please correct this to the actual minimum supported Ruby version for this provider.

Suggested change
- Ruby >= 3.4
- Ruby >= 3.0


## Requirements

- Ruby >= 3.4
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.

medium

The Ruby version requirement is listed as >= 3.4, which is a future, unreleased version of Ruby. This is likely a typo. Please update it to reflect the actual minimum supported Ruby version to avoid confusion.

Suggested change
- Ruby >= 3.4
- Ruby >= 3.0

- Remove conformance shared examples from flagd (method_missing delegation
  pattern prevents parameter introspection)
- Add .rubocop.yml to meta_provider inheriting from shared config
- Re-run rubocop auto-correct with correct shared config (double quotes)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jose Colella <jose.colella@gusto.com>
@josecolella josecolella marked this pull request as ready for review March 9, 2026 04:56
@josecolella josecolella requested a review from a team as a code owner March 9, 2026 04:56
@josecolella josecolella merged commit 1c430a9 into main Mar 9, 2026
17 checks passed
@josecolella josecolella deleted the chore/remaining-repo-improvements branch March 9, 2026 04:56
josecolella pushed a commit that referenced this pull request Mar 9, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.1.11](openfeature-go-feature-flag-provider/v0.1.10...openfeature-go-feature-flag-provider/v0.1.11)
(2026-03-09)


### 🧹 Chore

* add conformance tests, SimpleCov, version standardization, and README
improvements
([#95](#95))
([1c430a9](1c430a9))
* improve repository maturity and contributor experience
([#91](#91))
([7e28025](7e28025))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
josecolella added a commit that referenced this pull request Mar 9, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.0.6](openfeature-meta_provider/v0.0.5...openfeature-meta_provider/v0.0.6)
(2026-03-09)


### 🧹 Chore

* add conformance tests, SimpleCov, version standardization, and README
improvements
([#95](#95))
([1c430a9](1c430a9))
* improve repository maturity and contributor experience
([#91](#91))
([7e28025](7e28025))
* update minimum Ruby version to &gt;= 3.4
([#83](#83))
([ccf689a](ccf689a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Jose Colella <jose.colella@gusto.com>
Co-authored-by: Jose Colella <jose.colella@gusto.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
josecolella added a commit that referenced this pull request Mar 9, 2026
Merge origin/main into pr/ofrep-provider. Resolved conflicts by
accepting main's versions which include improvements from PR #95
(conformance tests, SimpleCov, version standardization, README
improvements). The ofrep-provider entry is preserved in both
manifest and release-please config.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Jose Colella <jose.colella@gusto.com>
josecolella pushed a commit that referenced this pull request Mar 9, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.0.3](openfeature-flipt-provider/v0.0.2...openfeature-flipt-provider/v0.0.3)
(2026-03-09)


### ✨ New Features

* add OFREP provider
([#80](#80))
([e33e0ab](e33e0ab))


### 🧹 Chore

* add conformance tests, SimpleCov, version standardization, and README
improvements
([#95](#95))
([1c430a9](1c430a9))
* improve repository maturity and contributor experience
([#91](#91))
([7e28025](7e28025))
* update minimum Ruby version to &gt;= 3.4
([#83](#83))
([ccf689a](ccf689a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
josecolella added a commit that referenced this pull request Mar 9, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.1.1](openfeature-ofrep-provider-v0.1.0...openfeature-ofrep-provider/v0.1.1)
(2026-03-09)


### 🧹 Chore

* add conformance tests, SimpleCov, version standardization, and README
improvements
([#95](#95))
([1c430a9](1c430a9))
* improve repository maturity and contributor experience
([#91](#91))
([7e28025](7e28025))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Jose Colella <jose.colella@gusto.com>
Co-authored-by: Jose Colella <jose.colella@gusto.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
josecolella added a commit that referenced this pull request Mar 9, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.1.5](openfeature-flagd-provider/v0.1.4...openfeature-flagd-provider/v0.1.5)
(2026-03-09)


### ✨ New Features

* add OFREP provider
([#80](#80))
([e33e0ab](e33e0ab))


### 🧹 Chore

* add conformance tests, SimpleCov, version standardization, and README
improvements
([#95](#95))
([1c430a9](1c430a9))
* improve repository maturity and contributor experience
([#91](#91))
([7e28025](7e28025))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Jose Miguel Colella <josecolella@yahoo.com>
Co-authored-by: Jose Miguel Colella <josecolella@yahoo.com>
josecolella added a commit that referenced this pull request Mar 9, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.1.2](openfeature-flagsmith-provider/v0.1.1...openfeature-flagsmith-provider/v0.1.2)
(2026-03-09)


### ✨ New Features

* add OFREP provider
([#80](#80))
([e33e0ab](e33e0ab))


### 🧹 Chore

* add conformance tests, SimpleCov, version standardization, and README
improvements
([#95](#95))
([1c430a9](1c430a9))
* improve repository maturity and contributor experience
([#91](#91))
([7e28025](7e28025))
* update minimum Ruby version to &gt;= 3.4
([#83](#83))
([ccf689a](ccf689a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Jose Miguel Colella <josecolella@yahoo.com>
Co-authored-by: Jose Miguel Colella <josecolella@yahoo.com>
github-actions Bot pushed a commit that referenced this pull request Mar 18, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.1.1](openfeature-meta_provider-v0.1.0...openfeature-meta_provider/v0.1.1)
(2026-03-18)


### 🐛 Bug Fixes

* don't init if provider doesn't have an init method
([#49](#49))
([d2479ed](d2479ed))


### ✨ New Features

* add matched provider to flag metadata in MetaProvider
([#31](#31))
([d48b182](d48b182))
* add OFREP provider
([#80](#80))
([e33e0ab](e33e0ab))
* **meta_provider:** add multi-provider evaluation strategies
([#102](#102))
([9cce3f4](9cce3f4))


### 🧹 Chore

* add conformance tests, SimpleCov, version standardization, and README
improvements
([#95](#95))
([1c430a9](1c430a9))
* **deps:** update dependency ruby to v3.4.9
([#107](#107))
([e0d4314](e0d4314))
* improve repository maturity and contributor experience
([#91](#91))
([7e28025](7e28025))
* **main:** release openfeature-meta_provider 0.0.2
([#32](#32))
([6b63b49](6b63b49))
* **main:** release openfeature-meta_provider 0.0.3
([#35](#35))
([ca82b95](ca82b95))
* **main:** release openfeature-meta_provider 0.0.4
([#48](#48))
([456d35e](456d35e))
* **main:** release openfeature-meta_provider 0.0.5
([#50](#50))
([4015ba2](4015ba2))
* **main:** release openfeature-meta_provider 0.0.6
([#88](#88))
([f21b22f](f21b22f))
* **main:** release openfeature-meta_provider 0.0.7
([#97](#97))
([71a7c48](71a7c48))
* update minimum Ruby version to &gt;= 3.4
([#83](#83))
([ccf689a](ccf689a))
* update readme title
([#34](#34))
([06f1517](06f1517))


### 🛠️ Build

* **meta-provider:** Support non-breaking versions of openfeature-sdk
([#47](#47))
([5a98cf4](5a98cf4))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
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.

8 participants