Skip to content

Releases: configcat/go-sdk

v9.0.7

08 Aug 09:03
ad7f93e
Compare
Choose a tag to compare
  • Updated dependencies due to 2024-08 security check.

v9.0.6

11 Apr 17:06
Compare
Choose a tag to compare

Fixed

  • Generate variation IDs for percentage options in the configcattest package,

v9.0.5

11 Apr 16:12
Compare
Choose a tag to compare

Fixed

  • There were cases when a user-based evaluation reported errors even when no user object was passed. This prevented the usage of the flag's To unidentified users value in case of invalid config JSONs.

v9.0.4

11 Apr 13:18
6467281
Compare
Choose a tag to compare

Added

  • More evaluation tests to ensure consistent functioning with other SDKs.
  • Ability to set a PercentageOption collection on the Flag struct of the configcattest package.
  • Uploading the coverage report to SonarCloud.

v9.0.3

30 Dec 11:59
Compare
Choose a tag to compare
  • Only increased the version to fixup the latest commit hash on pkg.go.dev

v9.0.2

30 Dec 03:04
Compare
Choose a tag to compare

Fixed

  • Reported SDK version.

v9.0.1

21 Dec 14:02
Compare
Choose a tag to compare

Fixed

  • Cache key generation.

v9.0.0

20 Dec 22:13
Compare
Choose a tag to compare

Added

  • Support for the new Config JSON v6 format: update the config model and implement new features in setting evaluation logic.
  • Consistent evaluation-related logging across SDKs.

Changed

  • The config JSON v5 format is no longer accepted by flag overrides. If you use this feature, you must convert your override JSON file(s) to the v6 format. You can do this using the config-json convert v5-to-v6 command of the ConfigCat CLI tool.
  • Rename the MatchedEvaluationRule field to MatchedTargetingRule and the MatchedEvaluationPercentageRule field to MatchedPercentageOption in EvaluationDetailsData.
  • User object related changes:
    • Signature of UserAttributes interface: GetAttribute(attr string) string -> GetAttribute(attr string) interface{}
    • Type of Custom field of UserData: map[string]string -> map[string]interface{}
    • Support for using map[string]interface{} as the User in evaluation functions was added.
  • Signature of the Logger interface:
    • Before:
      type Logger interface {
          GetLevel() LogLevel
      
          Debugf(format string, args ...interface{})
          Infof(format string, args ...interface{})
          Warnf(format string, args ...interface{})
          Errorf(format string, args ...interface{})
      }
    • After:
      type Logger interface {
          Debugf(format string, args ...interface{})
          Infof(format string, args ...interface{})
          Warnf(format string, args ...interface{})
          Errorf(format string, args ...interface{})
      }
    • Option to define the LogLevel is moved to the Client initialization config:
      config := configcat.Config{
           LogLevel: LogLevelInfo,
           // PollingMode: configcat.AutoPoll,
           // etc.
      }
    • The constant values related to the LogLevel type alias were changed:
       LogLevelDebug LogLevel = -2
       LogLevelInfo  LogLevel = -1
       LogLevelWarn  LogLevel = 0 // default level
       LogLevelError LogLevel = 1
       LogLevelNone  LogLevel = 2

Removed

  • Dependency on logrus. It was replaced by a simple logger built upon the log package.

v8.0.1

10 Aug 10:54
fa5f870
Compare
Choose a tag to compare
  • Increased version of gopkg.in/yaml.v3 to v3.0.1 due to vulnerability report.

v8.0.0

26 Jul 08:54
Compare
Choose a tag to compare

Added

  • Ready() function. It returns a channel that closes when the SDK reaches the ready state.
    • When the polling mode is Manual or Lazy, the SDK is considered ready right after instantiation.
    • When the polling mode is AutoPoll, the SDK is considered ready when the first initial HTTP request is finished.

Changed

  • Standardized config cache key generation algorithm and cache payload format to allow shared caches to be used by SDKs of different platforms.

Removed

  • GetVariationID() / GetVariationIDs() methods. Alternative: Get[Type]ValueDetails() / GetAllValueDetails().
  • ChangeNotify callback function. Alternative: Hooks.OnConfigChanged.