You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,12 +4,12 @@ All notable changes to the LaunchDarkly Ruby SDK will be documented in this file
4
4
5
5
## [5.5.5] - 2019-03-28
6
6
### Fixed:
7
-
- Setting user attributes to non-string values when a string was expected would cause analytics events not to be processed. Also, in the case of the `secondary` attribute, this could cause evaluations to fail for a flag with a percentage rollout. The SDK will now convert attribute values to strings as needed. ([#131](https://github.com/launchdarkly/ruby-client/issues/131))
7
+
- Setting user attributes to non-string values when a string was expected would cause analytics events not to be processed. Also, in the case of the `secondary` attribute, this could cause evaluations to fail for a flag with a percentage rollout. The SDK will now convert attribute values to strings as needed. ([#131](https://github.com/launchdarkly/ruby-server-sdk/issues/131))
8
8
9
9
## [5.5.4] - 2019-03-29
10
10
### Fixed:
11
-
- Fixed a missing `require` that could sometimes cause a `NameError` to be thrown when starting the client, depending on what other gems were installed. This bug was introduced in version 5.5.3. ([#129](https://github.com/launchdarkly/ruby-client/issues/129))
12
-
- When an analytics event was generated for a feature flag because it is a prerequisite for another flag that was evaluated, the user data was being omitted from the event. ([#128](https://github.com/launchdarkly/ruby-client/issues/128))
11
+
- Fixed a missing `require` that could sometimes cause a `NameError` to be thrown when starting the client, depending on what other gems were installed. This bug was introduced in version 5.5.3. ([#129](https://github.com/launchdarkly/ruby-server-sdk/issues/129))
12
+
- When an analytics event was generated for a feature flag because it is a prerequisite for another flag that was evaluated, the user data was being omitted from the event. ([#128](https://github.com/launchdarkly/ruby-server-sdk/issues/128))
13
13
- If `track` or `identify` is called without a user, the SDK now logs a warning, and does not send an analytics event to LaunchDarkly (since it would not be processed without a user).
14
14
- Added a link from the SDK readme to the guide regarding the client initialization.
15
15
@@ -44,24 +44,24 @@ All notable changes to the LaunchDarkly Ruby SDK will be documented in this file
44
44
### Fixed:
45
45
- Added or corrected a large number of documentation comments. All API classes and methods are now documented, and internal implementation details have been hidden from the documentation. You can view the latest documentation on [RubyDoc](https://www.rubydoc.info/gems/ldclient-rb).
46
46
- Fixed a problem in the Redis feature store that would only happen under unlikely circumstances: trying to evaluate a flag when the LaunchDarkly client had not yet been fully initialized and the store did not yet have data in it, and then trying again when the client was still not ready but the store _did_ have data (presumably put there by another process). Previously, the second attempt would fail.
47
-
- In polling mode, the SDK did not correctly handle non-ASCII Unicode characters in feature flag data. ([#90](https://github.com/launchdarkly/ruby-client/issues/90))
47
+
- In polling mode, the SDK did not correctly handle non-ASCII Unicode characters in feature flag data. ([#90](https://github.com/launchdarkly/ruby-server-sdk/issues/90))
48
48
49
49
### Deprecated:
50
50
-`RedisFeatureStore.new`. This implementation class may be changed or moved in the future; use `LaunchDarkly::Integrations::Redis::new_feature_store`.
51
51
-`Config.update_processor` and `Config.update_processor_factory`; use `Config.data_source`.
52
52
53
53
## [5.4.3] - 2019-01-11
54
54
### Changed:
55
-
- The SDK is now compatible with `net-http-persistent` 3.x. (Thanks, [CodingAnarchy](https://github.com/launchdarkly/ruby-client/pull/113)!)
55
+
- The SDK is now compatible with `net-http-persistent` 3.x. (Thanks, [CodingAnarchy](https://github.com/launchdarkly/ruby-server-sdk/pull/113)!)
56
56
57
57
## [5.4.2] - 2019-01-04
58
58
### Fixed:
59
-
- Fixed overly specific dependency versions of `concurrent-ruby` and `semantic`. ([#115](https://github.com/launchdarkly/ruby-client/issues/115))
59
+
- Fixed overly specific dependency versions of `concurrent-ruby` and `semantic`. ([#115](https://github.com/launchdarkly/ruby-server-sdk/issues/115))
60
60
- Removed obsolete dependencies on `hashdiff` and `thread_safe`.
61
61
62
62
## [5.4.1] - 2018-11-05
63
63
### Fixed:
64
-
- Fixed a `LoadError` in `file_data_source.rb`, which was added in 5.4.0. (Thanks, [kbarrette](https://github.com/launchdarkly/ruby-client/pull/110)!)
64
+
- Fixed a `LoadError` in `file_data_source.rb`, which was added in 5.4.0. (Thanks, [kbarrette](https://github.com/launchdarkly/ruby-server-sdk/pull/110)!)
65
65
66
66
67
67
## [5.4.0] - 2018-11-02
@@ -128,7 +128,7 @@ Fixed a regression in version 5.0.0 that could prevent the client from reconnect
128
128
129
129
## [3.0.2] - 2018-03-06
130
130
## Fixed
131
-
- Improved efficiency of logging by not constructing messages that won't be visible at the current log level. (Thanks, [julik](https://github.com/launchdarkly/ruby-client/pull/98)!)
131
+
- Improved efficiency of logging by not constructing messages that won't be visible at the current log level. (Thanks, [julik](https://github.com/launchdarkly/ruby-server-sdk/pull/98)!)
Contributing to the LaunchDarkly Server-side SDK for Ruby
2
+
================================================
3
3
4
-
We encourage pull-requests and other contributions from the community. We've also published an [SDK contributor's guide](http://docs.launchdarkly.com/docs/sdk-contributors-guide) that provides a detailed explanation of how our SDKs work.
4
+
LaunchDarkly has published an [SDK contributor's guide](https://docs.launchdarkly.com/docs/sdk-contributors-guide) that provides a detailed explanation of how our SDKs work. See below for additional information on how to contribute to this SDK.
5
+
6
+
Submitting bug reports and feature requests
7
+
------------------
8
+
9
+
The LaunchDarkly SDK team monitors the [issue tracker](https://github.com/launchdarkly/ruby-server-sdk/issues) in the SDK repository. Bug reports and feature requests specific to this SDK should be filed in this issue tracker. The SDK team will respond to all newly filed issues within two business days.
10
+
11
+
Submitting pull requests
12
+
------------------
13
+
14
+
We encourage pull requests and other contributions from the community. Before submitting pull requests, ensure that all temporary or unintended code is removed. Don't worry about adding reviewers to the pull request; the LaunchDarkly SDK team will add themselves. The SDK team will acknowledge all pull requests within two business days.
15
+
16
+
Build instructions
17
+
------------------
18
+
19
+
### Prerequisites
20
+
21
+
This SDK is built with [Bundler](https://bundler.io/). To install Bundler, run `gem install bundler -v 1.17.3`. You might need `sudo` to execute the command successfully. As of this writing, the SDK does not support being built with Bundler 2.0.
22
+
23
+
To install the runtime dependencies:
24
+
25
+
```
26
+
bundle install
27
+
```
28
+
29
+
### Testing
30
+
31
+
To run all unit tests:
32
+
33
+
```
34
+
bundle exec rspec spec
35
+
```
36
+
37
+
By default, the full unit test suite includes live tests of the integrations for Consul, DynamoDB, and Redis. Those tests expect you to have instances of all of those databases running locally. To skip them, set the environment variable `LD_SKIP_DATABASE_TESTS=1` before running the tests.
[LaunchDarkly](https://www.launchdarkly.com) is a feature management platform that serves over 100 billion feature flags daily to help teams build better software, faster. [Get started](https://docs.launchdarkly.com/docs/getting-started) using LaunchDarkly today!
*NOTE: Please refer to [our documentation](https://docs.launchdarkly.com/docs/ruby-sdk-reference#section-initializing-ldclient-using-spring-unicorn-or-puma) for additional instructions on how to use LaunchDarkly with [Spring](https://github.com/rails/spring), [Unicorn](https://bogomips.org/unicorn/), or [Puma](https://github.com/puma/puma).*
37
-
38
-
### Ruby on Rails
39
-
40
-
1. Add `gem 'ldclient-rb'` to your Gemfile and `bundle install`
41
-
42
-
2. Initialize the launchdarkly client in `config/initializers/launchdarkly.rb`:
Note that this gem will automatically switch to using the Rails logger it is detected.
84
-
85
-
86
-
Your first feature flag
87
-
-----------------------
88
-
89
-
1. Create a new feature flag on your [dashboard](https://app.launchdarkly.com).
90
-
2. In your application code, use the feature's key to check whether the flag is on for each user:
91
-
92
-
```ruby
93
-
if client.variation("your.flag.key", {key:"[email protected]"}, false)
94
-
# application code to show the feature
95
-
else
96
-
# the code to run if the feature is off
97
-
end
98
-
```
99
-
100
-
HTTPS proxy
101
-
-----------
102
-
103
-
The Ruby SDK uses Faraday and Socketry to handle its network traffic. Both of these provide built-in support for the use of an HTTPS proxy. If the HTTPS_PROXY environment variable is present then the SDK will proxy all network requests through the URL provided. (HTTP_PROXY is not used because all LaunchDarkly services require HTTPS.)
104
-
105
-
How to set the HTTPS_PROXY environment variable on Mac/Linux systems:
Feature flag data can be kept in a persistent store using Redis, DynamoDB, or Consul. These adapters are implemented in the `LaunchDarkly::Integrations::Redis`, `LaunchDarkly::Integrations::DynamoDB`, and `LaunchDarkly::Integrations::Consul` modules; to use them, call the `new_feature_store` method in the module, and put the returned object in the `feature_store` property of your client configuration. See the [API documentation](https://www.rubydoc.info/gems/ldclient-rb/LaunchDarkly/Integrations) and the [SDK reference guide](https://docs.launchdarkly.com/v2.0/docs/using-a-persistent-feature-store) for more information.
128
-
129
-
Using flag data from a file
130
-
---------------------------
131
-
132
-
For testing purposes, the SDK can be made to read feature flag state from a file or files instead of connecting to LaunchDarkly. See `LaunchDarkly::FileDataSource` or the [SDK reference guide](https://docs.launchdarkly.com/v2.0/docs/reading-flags-from-a-file) for more details.
23
+
Refer to the [SDK documentation](https://docs.launchdarkly.com/docs/ruby-sdk-reference#section-getting-started) for instructions on getting started with using the SDK.
133
24
134
25
Learn more
135
26
-----------
@@ -140,37 +31,26 @@ Generated API documentation is on [RubyDoc.info](https://www.rubydoc.info/gems/l
140
31
141
32
Testing
142
33
-------
143
-
34
+
144
35
We run integration tests for all our SDKs using a centralized test harness. This approach gives us the ability to test for consistency across SDKs, as well as test networking behavior in a long-running application. These tests cover each method in the SDK, and verify that event sending, flag evaluation, stream reconnection, and other aspects of the SDK all behave correctly.
145
-
36
+
146
37
Contributing
147
38
------------
148
-
149
-
See [Contributing](https://github.com/launchdarkly/ruby-client/blob/master/CONTRIBUTING.md).
150
-
39
+
40
+
We encourage pull requests and other contributions from the community. Check out our [contributing guidelines](CONTRIBUTING.md) for instructions on how to contribute to this SDK.
41
+
151
42
About LaunchDarkly
152
-
------------------
153
-
43
+
-----------
44
+
154
45
* LaunchDarkly is a continuous delivery platform that provides feature flags as a service and allows developers to iterate quickly and safely. We allow you to easily flag your features and manage them from the LaunchDarkly dashboard. With LaunchDarkly, you can:
155
46
* Roll out a new feature to a subset of your users (like a group of users who opt-in to a beta tester group), gathering feedback and bug reports from real-world use cases.
156
47
* Gradually roll out a feature to an increasing percentage of users, and track the effect that the feature has on key metrics (for instance, how likely is a user to complete a purchase if they have feature A versus feature B?).
157
48
* Turn off a feature that you realize is causing performance problems in production, without needing to re-deploy, or even restart the application with a changed configuration file.
158
49
* Grant access to certain features based on user attributes, like payment plan (eg: users on the ‘gold’ plan get access to more features than users in the ‘silver’ plan). Disable parts of your application to facilitate maintenance, without taking everything offline.
* LaunchDarkly provides feature flag SDKs for a wide variety of languages and technologies. Check out [our documentation](https://docs.launchdarkly.com/docs) for a complete list.
171
51
* Explore LaunchDarkly
172
-
*[launchdarkly.com](http://www.launchdarkly.com/"LaunchDarkly Main Website") for more information
173
-
*[docs.launchdarkly.com](http://docs.launchdarkly.com/"LaunchDarkly Documentation") for our documentation and SDKs
174
-
*[apidocs.launchdarkly.com](http://apidocs.launchdarkly.com/"LaunchDarkly API Documentation") for our API documentation
175
-
*[blog.launchdarkly.com](http://blog.launchdarkly.com/"LaunchDarkly Blog Documentation") for the latest product updates
176
-
*[Feature Flagging Guide](https://github.com/launchdarkly/featureflags/"Feature Flagging Guide") for best practices and strategies
52
+
*[launchdarkly.com](https://www.launchdarkly.com/"LaunchDarkly Main Website") for more information
53
+
*[docs.launchdarkly.com](https://docs.launchdarkly.com/"LaunchDarkly Documentation") for our documentation and SDK reference guides
54
+
*[apidocs.launchdarkly.com](https://apidocs.launchdarkly.com/"LaunchDarkly API Documentation") for our API documentation
55
+
*[blog.launchdarkly.com](https://blog.launchdarkly.com/"LaunchDarkly Blog Documentation") for the latest product updates
56
+
*[Feature Flagging Guide](https://github.com/launchdarkly/featureflags/"Feature Flagging Guide") for best practices and strategies
0 commit comments