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

Feature-versioning via flagd schema #1312

Closed
7 tasks
toddbaert opened this issue May 17, 2024 · 0 comments
Closed
7 tasks

Feature-versioning via flagd schema #1312

toddbaert opened this issue May 17, 2024 · 0 comments

Comments

@toddbaert
Copy link
Member

toddbaert commented May 17, 2024

Now that we have multiple components implementing flagd's JSON evaluator, we need a way to track and communicate the compliance of various implementations. Doing this by versioning the artifacts themselves isn't practical, since implementations will have their own fixes and breaking changes. I propose we rigorously version the flagd-schema, and then each implementation can note what version they support, and log warnings or throw (we should decide on these specifics). We already version the schema release itself, so some of this work is already done.

Work required for this:

  • add a full version path to https://flagd.dev/schema/v0/flags.json (ie: https://flagd.dev/schema/v1.2.3/flags.json)
    • enhance the Makefile

      flagd/Makefile

      Line 128 in 34756fe

      update-public-schema: pull-schemas-submodule
      to pull the latest version and create the corresponding folder to serve it from
  • add a version to the flagd-schema itself, in its $id property, currently it's "$id": "https://flagd.dev/schema/v0/flags.json", this should be made something like "$id": "https://flagd.dev/schema/v1.2.3/flags.json""
    • this should be automated with release please
  • update flagd specification to mention this versioning
  • update all the providers to leverage this and denote their support
    • Java
    • .NET
    • JS
    • Python
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

No branches or pull requests

1 participant