go-feature-flag

GO Feature Flag is a simple, complete and lightweight self-hosted feature flag solution 100% Open Source. 🎛️

MIT License

Downloads
1.2K
Stars
1.1K
Committers
17

Bot releases are hidden (Show)

go-feature-flag - v0.18.2

Published by thomaspoignant over 3 years ago

v0.18.2

  • #173 - Bump github.com/pelletier/go-toml from 1.9.1 to 1.9.3
  • #174 - Bump github.com/aws/aws-sdk-go from 1.38.51 to 1.38.70
go-feature-flag - v0.18.1

Published by thomaspoignant over 3 years ago

v0.18.1

Breaking changes

  • #140 - chore: rm PollInterval field
go-feature-flag - v0.18.0

Published by thomaspoignant over 3 years ago

v0.18.0

Features

  • #168 - introduce version field for the flags
  • #172 - Offline mode

Documentations

  • #170 - (doc) How to extend go-feature-flag
  • #171 - (doc) correcting minor grammar errors and sentences in README.md
go-feature-flag - v0.17.3

Published by thomaspoignant over 3 years ago

v0.17.3

Bugfix

  • #167 - Fix a problem in the exported data for the variation type.

Changes

  • #160 - Automatic Benchmarking when merging on main

Documentation

go-feature-flag - v0.17.2

Published by thomaspoignant over 3 years ago

v0.17.2

Bump Libraries

  • #163 - Bump github.com/pelletier/go-toml from 1.9.0 to 1.9.1
  • #164 - Bump github.com/google/go-cmp from 0.5.5 to 0.5.6
  • #165 - Bump github.com/aws/aws-sdk-go from 1.38.30 to 1.38.51
go-feature-flag - v0.17.1

Published by thomaspoignant over 3 years ago

v0.17.1

Bug fix

  • #159 - AllFlagsSet Don't crash when flag is not correctly initialized
go-feature-flag - v0.17.0

Published by thomaspoignant over 3 years ago

v0.17.0

Feature(s)

  • #145 - Enable custom retrievers
  • #148 - AllFlagsState to get all flag value for a specific user.

Bug fix(es)

  • #146 - JSON Variation are notified twice

Changes

  • #147 - Remove unused param flag
  • #153 - CI: Replace golint by revive
go-feature-flag - v0.16.0

Published by thomaspoignant over 3 years ago

v0.16.0

Breaking changes

  • #137 - Configure pollInterval with a time.Duration
    ⚠️ If you were using PollInterval you should migrate and use PollingInterval. We will continue to support PollInterval during the next versions but will remove it in 1.0.0.

Features

  • #139 - Add more rollout examples
go-feature-flag - v0.15.0

Published by thomaspoignant over 3 years ago

v0.15.0

Feature

  • #120 - Scheduled rollout strategy

Change

  • #126 - put test file in test package
go-feature-flag - v0.14.2

Published by thomaspoignant over 3 years ago

v0.14.2

Changes

  • #123 - Change internals of Flag
  • #125 - Add a test with a lot of flags (10000)
go-feature-flag - v0.14.1

Published by thomaspoignant over 3 years ago

v0.14.1

Changes

  • #121 - Bump github.com/aws/aws-sdk-go from 1.38.10 to 1.38.30
  • #122 - Bump github.com/pelletier/go-toml from 1.8.1 to 1.9.0
go-feature-flag - v0.14.0

Published by thomaspoignant over 3 years ago

v0.14.0

Features

  • #118 - Automatic progressive rollout

Changes

  • #99 - Remove deprecated Webhooks field
  • #117 - Use context when calling the exporter
go-feature-flag - v0.13.1

Published by thomaspoignant over 3 years ago

v0.13.1

Changes

  • #113 - Move experimentation property under the rollout key.
go-feature-flag - v0.13.0

Published by thomaspoignant over 3 years ago

v0.13.0

Breaking Changes

⚠️ feature #105 is a breaking change, the repartition will work as expected BUT you may have some changes for specific users. A user who was affected by a flag is not guaranteed to still be affected.

This breaking change is needed to unblock future features like #101.

We accept this breaking change only because we are still in version v0.X, as soon as we hit the v1.X this kind of change will not be possible.

Features

  • #106 - Add webhook data exporter
  • #109 - Add experimentation capability with the possibility to configure a startDate and an endDate for the flag.
  • #105 - Accept a more fine-grained percentage, the hash is now compute with a 100000 range when it was 100 before.

Changes

  • #108 - PayloadURL is deprecated and you should use EndpointURL instead.
go-feature-flag - v0.12.0

Published by thomaspoignant over 3 years ago

v0.12.0

Features

  • #98 - S3 Data Exporter - You can now export your data directly into a S3 bucket
  • #103 - Add trackEvents field + refactor slack notifier to use reflect

Changes

  • #97 - Refactor fflog to always add the date
  • #100 - Add what is go-feature-flag section
go-feature-flag - v0.11.0

Published by thomaspoignant over 3 years ago

v0.11.0

Features

  • #95 - Add an option to start even when retriever is unreachable
  • #94 - Add a log data exporter to replace automatic variation logging
    ⚠️ Breaking changes
    If you were using these logs, you need to add the log data exporter to your configuration.
err := Init(Config{
	// ...
	DataExporter: DataExporter{
		Exporter: &ffexporter.Log{},
	},
})

Fixes

  • #92 - Wait longer to avoid flaky test

Changes

  • #93 - CI: Upgrade CI to go 1.16 + Scope coveralls
go-feature-flag - v0.10.0

Published by thomaspoignant over 3 years ago

v0.10.0

This new version includes a way to export your data to a file 💥 📈 📊 💹
Ok maybe you don't care to collect data on the fly and to put them locally, but this version includes a simple way to add more exporters in the future.

This version will allow developing #89 #88 #87 ...


Features

  • #82 - Introducing the concept of feature events to export data

Changes

  • #84 - Better summary in the readme
go-feature-flag - v0.9.1

Published by thomaspoignant over 3 years ago

v0.9.1

Fixes

  • #78 - Fix a race condition that can be rarely detected while running tests

Changes

  • #80 - Use testify everywhere
go-feature-flag - v0.9.0

Published by thomaspoignant over 3 years ago

v0.9.0

Features

  • #75 - Send a Slack message when a flag has changed.

⚠️ Breaking changes

  • #74 - Deprecate the Webhooks field in the configuration to have the field Notifiers instead

Migration

If you were using Webhooks before, you should have a configuration like this:

ffclient.Init(ffclient.Config{ 
    Retriever:      &ffclient.FileRetriever{Path: "testdata/flag-config.yaml"},
    FileFormat:     "yaml",
    Webhooks:       []ffclient.WebhookConfig{
        {
            PayloadURL: " https://example.com/hook",
            Secret:     "Secret",
            Meta: map[string]string{
                "app.name": "my app",
            },
        },
    },
}

With Notifiers, your configuration should looks like this now:

ffclient.Init(ffclient.Config{ 
    Retriever:      &ffclient.FileRetriever{Path: "testdata/flag-config.yaml"},
    FileFormat:     "yaml",
    Notifiers: []ffclient.NotifierConfig{
        &ffclient.WebhookConfig{
            PayloadURL: " https://example.com/hook",
            Secret:     "Secret",
            Meta: map[string]string{
                "app.name": "my app",
            },
        },
    },
}

Changes

  • #76 - Bump github.com/google/go-cmp from 0.5.4 to 0.5.5
  • #77 - Bump github.com/aws/aws-sdk-go from 1.37.20 to 1.38.10
go-feature-flag - v0.8.1

Published by thomaspoignant over 3 years ago

v0.8.1

Fixes

  • #72 - Handle error even if the logger is nil
  • #73 - Don't panic when defer a cache that has failed to init