Skip to content

Commit

Permalink
update readme, changelog & license year
Browse files Browse the repository at this point in the history
  • Loading branch information
pulak-opti committed Jan 18, 2024
1 parent c270819 commit f7a8ea1
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 12 deletions.
48 changes: 48 additions & 0 deletions CHANGELOG.MD
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,54 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
Changes that have landed but are not yet released.

## [2.0.0] - January 19th, 2024

### New Features

The 2.0.0 release introduces a new primary feature, [Advanced Audience Targeting]( https://docs.developers.optimizely.com/feature-experimentation/docs/optimizely-data-platform-advanced-audience-targeting) enabled through integration with [Optimizely Data Platform (ODP)](https://docs.developers.optimizely.com/optimizely-data-platform/docs) ([#350](https://github.com/optimizely/go-sdk/pull/350), [#353](https://github.com/optimizely/go-sdk/pull/353), [#354](https://github.com/optimizely/go-sdk/pull/354), [#355](https://github.com/optimizely/go-sdk/pull/355)).

You can use ODP, a high-performance [Customer Data Platform (CDP)]( https://www.optimizely.com/optimization-glossary/customer-data-platform/), to easily create complex real-time segments (RTS) using first-party and 50+ third-party data sources out of the box. You can create custom schemas that support the user attributes important for your business, and stitch together user behavior done on different devices to better understand and target your customers for personalized user experiences. ODP can be used as a single source of truth for these segments in any Optimizely or 3rd party tool.

With ODP accounts integrated into Optimizely projects, you can build audiences using segments pre-defined in ODP. The SDK will fetch the segments for given users and make decisions using the segments. For access to ODP audience targeting in your Feature Experimentation account, please contact your Optimizely Customer Success Manager.

This version includes the following changes:

* New API added to `OptimizelyUserContext`:

- `FetchQualifiedSegments()`: this API will retrieve user segments from the ODP server. The fetched segments will be used for audience evaluation. The fetched data will be stored in the local cache to avoid repeated network delays.

- When an `OptimizelyUserContext` is created, the SDK will automatically send an identify request to the ODP server to facilitate observing user activities.

* New APIs added to `OptimizelyClient`:

- `SendOdpEvent()`: customers can build/send arbitrary ODP events that will bind user identifiers and data to user profiles in ODP.

The release also introduces basic OpenTelemetry tracing on Client methods. ([#385](https://github.com/optimizely/go-sdk/pull/385))

* New ClientOptionFunc `WithTracer()` is added to initiate OptimizelyClient with OpenTelemetry tracer.

* New method `WithTraceContext()` is added to `OptimizelyClient` & `OptimizelyUserContext` to pass the trace context while calling APIs.

For details, refer to our documentation pages:

* [Advanced Audience Targeting](https://docs.developers.optimizely.com/feature-experimentation/docs/optimizely-data-platform-advanced-audience-targeting)

* [Server SDK Support](https://docs.developers.optimizely.com/feature-experimentation/v1.0/docs/advanced-audience-targeting-for-server-side-sdks)

* [Initialize Go SDK](https://docs.developers.optimizely.com/feature-experimentation/docs/initialize-sdk-go)

* [OptimizelyUserContext Go SDK](https://docs.developers.optimizely.com/feature-experimentation/docs/optimizelyusercontext-go)

* [Advanced Audience Targeting segment qualification methods](https://docs.developers.optimizely.com/feature-experimentation/v1.0/docs/advanced-audience-targeting-segment-qualification-methods-go)

* [Send Optimizely Data Platform data using Advanced Audience Targeting](https://docs.developers.optimizely.com/feature-experimentation/v1.0/docs/send-odp-data-using-advanced-audience-targeting-go)

### Breaking Changes

* ODPManager in the SDK is enabled by default. Unless an ODP account is integrated into the Optimizely projects, most ODPManager functions will be ignored. If needed, ODPManager can be disabled when `OptimizelyClient` is instantiated.
* Minimum golang version changed from 1.13 to 1.21.0. ([#369](https://github.com/optimizely/go-sdk/pull/369), [#380](https://github.com/optimizely/go-sdk/pull/380))


## [1.8.5] - October 5th, 2023

* Fixed a bug in the HTTP Requester logging. Now correct error message is logged. ([#374](https://github.com/optimizely/go-sdk/pull/374))
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2016-2017, Optimizely, Inc. and contributors
Copyright 2016-2024, Optimizely, Inc. and contributors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
28 changes: 17 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,23 @@ Refer to the [Go SDK's developer documentation](https://docs.developers.optimize

### Requirements

Requires Golang version 1.19 or higher.
Requires Golang version:

- For v2: 1.21.0 or higher
- For < v2: 1.12 or higher

### Install the SDK

#### Install from github:

```$sh
go get github.com/optimizely/go-sdk
go get github.com/optimizely/go-sdk/v2
```

#### Install from source:
```$sh
go get github.com/optimizely/go-sdk
cd $GOPATH/src/github.com/optimizely/go-sdk
go get github.com/optimizely/go-sdk/v2
cd $GOPATH/src/github.com/optimizely/go-sdk/v2
go install
```

Expand All @@ -44,23 +47,23 @@ module mymodule
go 1.21.0
require (
github.com/optimizely/go-sdk v2.0.0-beta
github.com/optimizely/go-sdk/v2 v2.0.0
)
```

If you are already using `go.mod` in your application you can run the following:

```
go mod edit -require github.com/optimizely/[email protected]-beta
go mod edit -require github.com/optimizely/go-sdk/v2@v2.0.0
```

NOTE:
```$sh
go get github.com/optimizely/go-sdk/...
go get github.com/optimizely/go-sdk/v2/...
```
or
```$sh
go get github.com/optimizely/go-sdk/pkg
go get github.com/optimizely/go-sdk/v2/pkg
```
will install it as a package to pkg directory, rather than src directory. It could be useful for future development and vendoring.

Expand All @@ -72,8 +75,8 @@ See the example file in examples/main.go.
### Initialization

```
import optly "github.com/optimizely/go-sdk"
import "github.com/optimizely/go-sdk/client"
import optly "github.com/optimizely/go-sdk/v2"
import "github.com/optimizely/go-sdk/v2/client"
// Simple one-line initialization with the SDK key   
optlyClient, err := optly.Client("SDK_KEY")   
Expand All @@ -87,7 +90,7 @@ optlyClient, err = optimizelyFactory.Client()
### Make Decisions
```
import (
optly "github.com/optimizely/go-sdk"
optly "github.com/optimizely/go-sdk/v2"
)
// instantiate a client
Expand Down Expand Up @@ -161,6 +164,9 @@ sync
Copyright (c) 2009 The Go Authors. All rights reserved.
https://github.com/golang/sync/blob/master/LICENSE

opentelemetry-go
License (Apache-2.0): https://github.com/open-telemetry/opentelemetry-go/blob/main/LICENSE

### Other Optimizely SDKs

- Agent - https://github.com/optimizely/agent
Expand Down

0 comments on commit f7a8ea1

Please sign in to comment.