-
Notifications
You must be signed in to change notification settings - Fork 9
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
prepare 1.0.3 release #12
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* adding .gitignore * re-ordering items * fix typos
[ch58083] add close [ch58076] make connection timeout configuration [ch58072] add offline mode [ch58435] make event sending configurable
Linting and some refactoring of streaming code.
gwhelanLD
approved these changes
Mar 31, 2020
LaunchDarklyReleaseBot
added a commit
that referenced
this pull request
Jun 27, 2022
* initial implementation * [ch57654] add circleci config (#3) * [ch57656] cleanup dependencies (#2) * [ch57662] Add repo templates (#5) * [ch57657] Add setters for User and Config (#4) * [ch57663] Only expose public modules in package * [ch57666] Add Haddock (#7) * log on authentication failure (#8) * [ch57685] cleanup package (#9) * [ch57695] metric event logic (#10) * [ch58006] Hide typeclass instances with newtype public API (#11) * fix contributor guide wrong link (#12) * fix minor title-casing inconsistencies (#13) * git ignore + re-ordering lists (#14) * adding .gitignore * re-ordering items * fix typos * [ch58315] Add OSX CI (#15) * updated build instructions (#16) * [tickets listed in body] Add misc configuration and close. (#17) [ch58083] add close [ch58076] make connection timeout configuration [ch58072] add offline mode [ch58435] make event sending configurable * set version string to 0.1.0 (#18) * add beta warning * [ch58816] Fix user agent format, prepare release * [ch59631] add haskell sdk to releaser (#20) * [ch63561] Store V2 Interface (#21) * [ch63772] Mock store interface tests (#22) * [ch58074] Redis store implementation (#23) * Linting and some refactoring of streaming code. * [ch64438] dont send empty event payloads * [ch43307] use last bucket as fallback * Increased test coverage (#28) * Custom serialization instances when using custom deserialization (#29) * [ch64640] Add support for Ldd (#30) * [ch65827] payload uuid and event send retry (#32) * [ch66643] strict fields * [ch67127] minimal version constraints (#34) * [ch67145] update master export list * [ch67148] Some doc typos (#36) * [ch67154] Remove beta warning * [ch67570] actually use store initialization status (#38) * [ch69091] Add SSE timeout, fix streaming CPU burn (#39) * [ch70425] standardize streaming behavior (#41) * [ch73995] remove null user key support (#42) * [ch76243] update sdk range for redis * [ch92127] remove sel field from flag model * Removed the guides link * [ch99749] add alias and update event logic (#45) * merge traffic allocation changes * Updates docs URLs (#47) * Use non-deprecated CircleCI Xcode image. (#48) * Path is optional; should default to / (#53) * Create index event when calling track (#51) * Conditionally index users when processing eval events (#56) * Trim trailing slashes from URIs (#52) * Add event summary regardless of capacity (#55) * Do not emit identify event if key is empty; notice user otherwise (#50) If the provided user key is empty, we do not want to emit an identify event. We will log a warning message to the customer instead. If a valid user has been provided though, not only should we emit the event, but also we should add that user to the LRU cache so that we don't unnecessarily generate future index events. * Support for both aeson < 2 and aeson > 2 * Unknown flags should return provided default value (#57) * Exclude various fields from JSON payload if not required (#54) * Adds links to Relay Proxy docs * Add support for client side availability (#61) * Add new all flags state method (#62) * Add initial structure for SDK test harness (#63) * Fix test if user attribute is null (#65) * Fix negative index evaluation (#66) * Track last known server time (#67) * Introduce File and Test Data Sources (#68) Co-authored-by: hroederld <hroeder@launchdarkly.com> Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com> Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com> Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com> Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com> Co-authored-by: Matthew M. Keeler <keelerm84@gmail.com> Co-authored-by: Alex Biehl <alex@scarf.sh> Co-authored-by: Matthew M. Keeler <mkeeler@launchdarkly.com> Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com> Co-authored-by: Louis Chan <lchan@launchdarkly.com>
LaunchDarklyReleaseBot
added a commit
that referenced
this pull request
Jul 1, 2022
* initial implementation * [ch57654] add circleci config (#3) * [ch57656] cleanup dependencies (#2) * [ch57662] Add repo templates (#5) * [ch57657] Add setters for User and Config (#4) * [ch57663] Only expose public modules in package * [ch57666] Add Haddock (#7) * log on authentication failure (#8) * [ch57685] cleanup package (#9) * [ch57695] metric event logic (#10) * [ch58006] Hide typeclass instances with newtype public API (#11) * fix contributor guide wrong link (#12) * fix minor title-casing inconsistencies (#13) * git ignore + re-ordering lists (#14) * adding .gitignore * re-ordering items * fix typos * [ch58315] Add OSX CI (#15) * updated build instructions (#16) * [tickets listed in body] Add misc configuration and close. (#17) [ch58083] add close [ch58076] make connection timeout configuration [ch58072] add offline mode [ch58435] make event sending configurable * set version string to 0.1.0 (#18) * add beta warning * [ch58816] Fix user agent format, prepare release * [ch59631] add haskell sdk to releaser (#20) * [ch63561] Store V2 Interface (#21) * [ch63772] Mock store interface tests (#22) * [ch58074] Redis store implementation (#23) * Linting and some refactoring of streaming code. * [ch64438] dont send empty event payloads * [ch43307] use last bucket as fallback * Increased test coverage (#28) * Custom serialization instances when using custom deserialization (#29) * [ch64640] Add support for Ldd (#30) * [ch65827] payload uuid and event send retry (#32) * [ch66643] strict fields * [ch67127] minimal version constraints (#34) * [ch67145] update master export list * [ch67148] Some doc typos (#36) * [ch67154] Remove beta warning * [ch67570] actually use store initialization status (#38) * [ch69091] Add SSE timeout, fix streaming CPU burn (#39) * [ch70425] standardize streaming behavior (#41) * [ch73995] remove null user key support (#42) * [ch76243] update sdk range for redis * [ch92127] remove sel field from flag model * Removed the guides link * [ch99749] add alias and update event logic (#45) * merge traffic allocation changes * Updates docs URLs (#47) * Use non-deprecated CircleCI Xcode image. (#48) * Path is optional; should default to / (#53) * Create index event when calling track (#51) * Conditionally index users when processing eval events (#56) * Trim trailing slashes from URIs (#52) * Add event summary regardless of capacity (#55) * Do not emit identify event if key is empty; notice user otherwise (#50) If the provided user key is empty, we do not want to emit an identify event. We will log a warning message to the customer instead. If a valid user has been provided though, not only should we emit the event, but also we should add that user to the LRU cache so that we don't unnecessarily generate future index events. * Support for both aeson < 2 and aeson > 2 * Unknown flags should return provided default value (#57) * Exclude various fields from JSON payload if not required (#54) * Adds links to Relay Proxy docs * Add support for client side availability (#61) * Add new all flags state method (#62) * Add initial structure for SDK test harness (#63) * Fix test if user attribute is null (#65) * Fix negative index evaluation (#66) * Track last known server time (#67) * Introduce File and Test Data Sources (#68) * Fix aeson 2.0 compatibility (#69) A user submitted contribution was merged to support Aeson 2.0. While all of our tests were passing, this was because we lacked a test environment that actually used 2.0 This commit addresses the remaining compatibility changes and introduces a later test environment to ensure we are actually building with Aeson 2.0 support. Co-authored-by: hroederld <hroeder@launchdarkly.com> Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com> Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com> Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com> Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com> Co-authored-by: Matthew M. Keeler <keelerm84@gmail.com> Co-authored-by: Alex Biehl <alex@scarf.sh> Co-authored-by: Matthew M. Keeler <mkeeler@launchdarkly.com> Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com> Co-authored-by: Louis Chan <lchan@launchdarkly.com>
LaunchDarklyReleaseBot
added a commit
that referenced
this pull request
Sep 20, 2022
* initial implementation * [ch57654] add circleci config (#3) * [ch57656] cleanup dependencies (#2) * [ch57662] Add repo templates (#5) * [ch57657] Add setters for User and Config (#4) * [ch57663] Only expose public modules in package * [ch57666] Add Haddock (#7) * log on authentication failure (#8) * [ch57685] cleanup package (#9) * [ch57695] metric event logic (#10) * [ch58006] Hide typeclass instances with newtype public API (#11) * fix contributor guide wrong link (#12) * fix minor title-casing inconsistencies (#13) * git ignore + re-ordering lists (#14) * adding .gitignore * re-ordering items * fix typos * [ch58315] Add OSX CI (#15) * updated build instructions (#16) * [tickets listed in body] Add misc configuration and close. (#17) [ch58083] add close [ch58076] make connection timeout configuration [ch58072] add offline mode [ch58435] make event sending configurable * set version string to 0.1.0 (#18) * add beta warning * [ch58816] Fix user agent format, prepare release * [ch59631] add haskell sdk to releaser (#20) * [ch63561] Store V2 Interface (#21) * [ch63772] Mock store interface tests (#22) * [ch58074] Redis store implementation (#23) * Linting and some refactoring of streaming code. * [ch64438] dont send empty event payloads * [ch43307] use last bucket as fallback * Increased test coverage (#28) * Custom serialization instances when using custom deserialization (#29) * [ch64640] Add support for Ldd (#30) * [ch65827] payload uuid and event send retry (#32) * [ch66643] strict fields * [ch67127] minimal version constraints (#34) * [ch67145] update master export list * [ch67148] Some doc typos (#36) * [ch67154] Remove beta warning * [ch67570] actually use store initialization status (#38) * [ch69091] Add SSE timeout, fix streaming CPU burn (#39) * [ch70425] standardize streaming behavior (#41) * [ch73995] remove null user key support (#42) * [ch76243] update sdk range for redis * [ch92127] remove sel field from flag model * Removed the guides link * [ch99749] add alias and update event logic (#45) * merge traffic allocation changes * Updates docs URLs (#47) * Use non-deprecated CircleCI Xcode image. (#48) * Path is optional; should default to / (#53) * Create index event when calling track (#51) * Conditionally index users when processing eval events (#56) * Trim trailing slashes from URIs (#52) * Add event summary regardless of capacity (#55) * Do not emit identify event if key is empty; notice user otherwise (#50) If the provided user key is empty, we do not want to emit an identify event. We will log a warning message to the customer instead. If a valid user has been provided though, not only should we emit the event, but also we should add that user to the LRU cache so that we don't unnecessarily generate future index events. * Support for both aeson < 2 and aeson > 2 * Unknown flags should return provided default value (#57) * Exclude various fields from JSON payload if not required (#54) * Adds links to Relay Proxy docs * Add support for client side availability (#61) * Add new all flags state method (#62) * Add initial structure for SDK test harness (#63) * Fix test if user attribute is null (#65) * Fix negative index evaluation (#66) * Track last known server time (#67) * Introduce File and Test Data Sources (#68) * Fix aeson 2.0 compatibility (#69) A user submitted contribution was merged to support Aeson 2.0. While all of our tests were passing, this was because we lacked a test environment that actually used 2.0 This commit addresses the remaining compatibility changes and introduces a later test environment to ensure we are actually building with Aeson 2.0 support. * Bump resource class for linux builds (#70) Co-authored-by: hroederld <hroeder@launchdarkly.com> Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com> Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com> Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com> Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com> Co-authored-by: Matthew M. Keeler <keelerm84@gmail.com> Co-authored-by: Alex Biehl <alex@scarf.sh> Co-authored-by: Matthew M. Keeler <mkeeler@launchdarkly.com> Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com> Co-authored-by: Louis Chan <lchan@launchdarkly.com> Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com>
LaunchDarklyReleaseBot
added a commit
that referenced
this pull request
Nov 8, 2022
* initial implementation * [ch57654] add circleci config (#3) * [ch57656] cleanup dependencies (#2) * [ch57662] Add repo templates (#5) * [ch57657] Add setters for User and Config (#4) * [ch57663] Only expose public modules in package * [ch57666] Add Haddock (#7) * log on authentication failure (#8) * [ch57685] cleanup package (#9) * [ch57695] metric event logic (#10) * [ch58006] Hide typeclass instances with newtype public API (#11) * fix contributor guide wrong link (#12) * fix minor title-casing inconsistencies (#13) * git ignore + re-ordering lists (#14) * adding .gitignore * re-ordering items * fix typos * [ch58315] Add OSX CI (#15) * updated build instructions (#16) * [tickets listed in body] Add misc configuration and close. (#17) [ch58083] add close [ch58076] make connection timeout configuration [ch58072] add offline mode [ch58435] make event sending configurable * set version string to 0.1.0 (#18) * add beta warning * [ch58816] Fix user agent format, prepare release * [ch59631] add haskell sdk to releaser (#20) * [ch63561] Store V2 Interface (#21) * [ch63772] Mock store interface tests (#22) * [ch58074] Redis store implementation (#23) * Linting and some refactoring of streaming code. * [ch64438] dont send empty event payloads * [ch43307] use last bucket as fallback * Increased test coverage (#28) * Custom serialization instances when using custom deserialization (#29) * [ch64640] Add support for Ldd (#30) * [ch65827] payload uuid and event send retry (#32) * [ch66643] strict fields * [ch67127] minimal version constraints (#34) * [ch67145] update master export list * [ch67148] Some doc typos (#36) * [ch67154] Remove beta warning * [ch67570] actually use store initialization status (#38) * [ch69091] Add SSE timeout, fix streaming CPU burn (#39) * [ch70425] standardize streaming behavior (#41) * [ch73995] remove null user key support (#42) * [ch76243] update sdk range for redis * [ch92127] remove sel field from flag model * Removed the guides link * [ch99749] add alias and update event logic (#45) * merge traffic allocation changes * Updates docs URLs (#47) * Use non-deprecated CircleCI Xcode image. (#48) * Path is optional; should default to / (#53) * Create index event when calling track (#51) * Conditionally index users when processing eval events (#56) * Trim trailing slashes from URIs (#52) * Add event summary regardless of capacity (#55) * Do not emit identify event if key is empty; notice user otherwise (#50) If the provided user key is empty, we do not want to emit an identify event. We will log a warning message to the customer instead. If a valid user has been provided though, not only should we emit the event, but also we should add that user to the LRU cache so that we don't unnecessarily generate future index events. * Support for both aeson < 2 and aeson > 2 * Unknown flags should return provided default value (#57) * Exclude various fields from JSON payload if not required (#54) * Adds links to Relay Proxy docs * Add support for client side availability (#61) * Add new all flags state method (#62) * Add initial structure for SDK test harness (#63) * Fix test if user attribute is null (#65) * Fix negative index evaluation (#66) * Track last known server time (#67) * Introduce File and Test Data Sources (#68) * Fix aeson 2.0 compatibility (#69) A user submitted contribution was merged to support Aeson 2.0. While all of our tests were passing, this was because we lacked a test environment that actually used 2.0 This commit addresses the remaining compatibility changes and introduces a later test environment to ensure we are actually building with Aeson 2.0 support. * Bump resource class for linux builds (#70) * Add cabal file and ignore dist-newstyle. (#44) * Add CI support for cabal and hlint (#71) A customer recently provided two pull requests -- one to add the generated cabal file to our repository and the second to update our hlint configuration file. While great, these change aren't sufficient because - We have no way to enforce the generated cabal file is up to date - We aren't running hlint during the CI process This commit introduces CI behaviors to resolve both of these issues. * Update releaser config to use docker instead of circleci (#72) * Update releaser configuration (#73) In a previous commit I updated the releaser config. However, I failed to adjust two additional bits of configuration. - The repository now includes a cabal file which contains version information. We will now update that. - docs need to be copied into the appropriate releaser directory for the GH pages branch to be updated correctly. Co-authored-by: hroederld <hroeder@launchdarkly.com> Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com> Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com> Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com> Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com> Co-authored-by: Matthew M. Keeler <keelerm84@gmail.com> Co-authored-by: Alex Biehl <alex@scarf.sh> Co-authored-by: Matthew M. Keeler <mkeeler@launchdarkly.com> Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com> Co-authored-by: Louis Chan <lchan@launchdarkly.com> Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com> Co-authored-by: Phil de Joux <philderbeast@gmail.com>
LaunchDarklyReleaseBot
added a commit
that referenced
this pull request
Jan 9, 2023
* initial implementation * [ch57654] add circleci config (#3) * [ch57656] cleanup dependencies (#2) * [ch57662] Add repo templates (#5) * [ch57657] Add setters for User and Config (#4) * [ch57663] Only expose public modules in package * [ch57666] Add Haddock (#7) * log on authentication failure (#8) * [ch57685] cleanup package (#9) * [ch57695] metric event logic (#10) * [ch58006] Hide typeclass instances with newtype public API (#11) * fix contributor guide wrong link (#12) * fix minor title-casing inconsistencies (#13) * git ignore + re-ordering lists (#14) * adding .gitignore * re-ordering items * fix typos * [ch58315] Add OSX CI (#15) * updated build instructions (#16) * [tickets listed in body] Add misc configuration and close. (#17) [ch58083] add close [ch58076] make connection timeout configuration [ch58072] add offline mode [ch58435] make event sending configurable * set version string to 0.1.0 (#18) * add beta warning * [ch58816] Fix user agent format, prepare release * [ch59631] add haskell sdk to releaser (#20) * [ch63561] Store V2 Interface (#21) * [ch63772] Mock store interface tests (#22) * [ch58074] Redis store implementation (#23) * Linting and some refactoring of streaming code. * [ch64438] dont send empty event payloads * [ch43307] use last bucket as fallback * Increased test coverage (#28) * Custom serialization instances when using custom deserialization (#29) * [ch64640] Add support for Ldd (#30) * [ch65827] payload uuid and event send retry (#32) * [ch66643] strict fields * [ch67127] minimal version constraints (#34) * [ch67145] update master export list * [ch67148] Some doc typos (#36) * [ch67154] Remove beta warning * [ch67570] actually use store initialization status (#38) * [ch69091] Add SSE timeout, fix streaming CPU burn (#39) * [ch70425] standardize streaming behavior (#41) * [ch73995] remove null user key support (#42) * [ch76243] update sdk range for redis * [ch92127] remove sel field from flag model * Removed the guides link * [ch99749] add alias and update event logic (#45) * merge traffic allocation changes * Updates docs URLs (#47) * Use non-deprecated CircleCI Xcode image. (#48) * Path is optional; should default to / (#53) * Create index event when calling track (#51) * Conditionally index users when processing eval events (#56) * Trim trailing slashes from URIs (#52) * Add event summary regardless of capacity (#55) * Do not emit identify event if key is empty; notice user otherwise (#50) If the provided user key is empty, we do not want to emit an identify event. We will log a warning message to the customer instead. If a valid user has been provided though, not only should we emit the event, but also we should add that user to the LRU cache so that we don't unnecessarily generate future index events. * Support for both aeson < 2 and aeson > 2 * Unknown flags should return provided default value (#57) * Exclude various fields from JSON payload if not required (#54) * Adds links to Relay Proxy docs * Add support for client side availability (#61) * Add new all flags state method (#62) * Add initial structure for SDK test harness (#63) * Fix test if user attribute is null (#65) * Fix negative index evaluation (#66) * Track last known server time (#67) * Introduce File and Test Data Sources (#68) * Fix aeson 2.0 compatibility (#69) A user submitted contribution was merged to support Aeson 2.0. While all of our tests were passing, this was because we lacked a test environment that actually used 2.0 This commit addresses the remaining compatibility changes and introduces a later test environment to ensure we are actually building with Aeson 2.0 support. * Bump resource class for linux builds (#70) * Add cabal file and ignore dist-newstyle. (#44) * Add CI support for cabal and hlint (#71) A customer recently provided two pull requests -- one to add the generated cabal file to our repository and the second to update our hlint configuration file. While great, these change aren't sufficient because - We have no way to enforce the generated cabal file is up to date - We aren't running hlint during the CI process This commit introduces CI behaviors to resolve both of these issues. * Update releaser config to use docker instead of circleci (#72) * Update releaser configuration (#73) In a previous commit I updated the releaser config. However, I failed to adjust two additional bits of configuration. - The repository now includes a cabal file which contains version information. We will now update that. - docs need to be copied into the appropriate releaser directory for the GH pages branch to be updated correctly. * Speed up Haskell builds for OSX (#74) The OSX builds have been taking a very long time, despite doing less work than the Linux equivalents. A little digging has uncovered incorrect CI caching for the OSX builds. This small change has taken the build from approximately 45m to 9m per OSX run. * Expand upper versions on select packages (#77) A customer contributed this fix. I made some minor tweaks, but testing seems to indicate everything works as expected. Co-authored-by: Veronika Romashkina <vrom911@gmail.com> * Fix releaser build Co-authored-by: hroederld <hroeder@launchdarkly.com> Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com> Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com> Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com> Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com> Co-authored-by: Matthew M. Keeler <keelerm84@gmail.com> Co-authored-by: Alex Biehl <alex@scarf.sh> Co-authored-by: Matthew M. Keeler <mkeeler@launchdarkly.com> Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com> Co-authored-by: Louis Chan <lchan@launchdarkly.com> Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com> Co-authored-by: Phil de Joux <philderbeast@gmail.com> Co-authored-by: Veronika Romashkina <vrom911@gmail.com>
LaunchDarklyReleaseBot
added a commit
that referenced
this pull request
Jan 27, 2023
* initial implementation * [ch57654] add circleci config (#3) * [ch57656] cleanup dependencies (#2) * [ch57662] Add repo templates (#5) * [ch57657] Add setters for User and Config (#4) * [ch57663] Only expose public modules in package * [ch57666] Add Haddock (#7) * log on authentication failure (#8) * [ch57685] cleanup package (#9) * [ch57695] metric event logic (#10) * [ch58006] Hide typeclass instances with newtype public API (#11) * fix contributor guide wrong link (#12) * fix minor title-casing inconsistencies (#13) * git ignore + re-ordering lists (#14) * adding .gitignore * re-ordering items * fix typos * [ch58315] Add OSX CI (#15) * updated build instructions (#16) * [tickets listed in body] Add misc configuration and close. (#17) [ch58083] add close [ch58076] make connection timeout configuration [ch58072] add offline mode [ch58435] make event sending configurable * set version string to 0.1.0 (#18) * add beta warning * [ch58816] Fix user agent format, prepare release * [ch59631] add haskell sdk to releaser (#20) * [ch63561] Store V2 Interface (#21) * [ch63772] Mock store interface tests (#22) * [ch58074] Redis store implementation (#23) * Linting and some refactoring of streaming code. * [ch64438] dont send empty event payloads * [ch43307] use last bucket as fallback * Increased test coverage (#28) * Custom serialization instances when using custom deserialization (#29) * [ch64640] Add support for Ldd (#30) * [ch65827] payload uuid and event send retry (#32) * [ch66643] strict fields * [ch67127] minimal version constraints (#34) * [ch67145] update master export list * [ch67148] Some doc typos (#36) * [ch67154] Remove beta warning * [ch67570] actually use store initialization status (#38) * [ch69091] Add SSE timeout, fix streaming CPU burn (#39) * [ch70425] standardize streaming behavior (#41) * [ch73995] remove null user key support (#42) * [ch76243] update sdk range for redis * [ch92127] remove sel field from flag model * Removed the guides link * [ch99749] add alias and update event logic (#45) * merge traffic allocation changes * Updates docs URLs (#47) * Use non-deprecated CircleCI Xcode image. (#48) * Path is optional; should default to / (#53) * Create index event when calling track (#51) * Conditionally index users when processing eval events (#56) * Trim trailing slashes from URIs (#52) * Add event summary regardless of capacity (#55) * Do not emit identify event if key is empty; notice user otherwise (#50) If the provided user key is empty, we do not want to emit an identify event. We will log a warning message to the customer instead. If a valid user has been provided though, not only should we emit the event, but also we should add that user to the LRU cache so that we don't unnecessarily generate future index events. * Support for both aeson < 2 and aeson > 2 * Unknown flags should return provided default value (#57) * Exclude various fields from JSON payload if not required (#54) * Adds links to Relay Proxy docs * Add support for client side availability (#61) * Add new all flags state method (#62) * Add initial structure for SDK test harness (#63) * Fix test if user attribute is null (#65) * Fix negative index evaluation (#66) * Track last known server time (#67) * Introduce File and Test Data Sources (#68) * Fix aeson 2.0 compatibility (#69) A user submitted contribution was merged to support Aeson 2.0. While all of our tests were passing, this was because we lacked a test environment that actually used 2.0 This commit addresses the remaining compatibility changes and introduces a later test environment to ensure we are actually building with Aeson 2.0 support. * Bump resource class for linux builds (#70) * Add cabal file and ignore dist-newstyle. (#44) * Add CI support for cabal and hlint (#71) A customer recently provided two pull requests -- one to add the generated cabal file to our repository and the second to update our hlint configuration file. While great, these change aren't sufficient because - We have no way to enforce the generated cabal file is up to date - We aren't running hlint during the CI process This commit introduces CI behaviors to resolve both of these issues. * Update releaser config to use docker instead of circleci (#72) * Update releaser configuration (#73) In a previous commit I updated the releaser config. However, I failed to adjust two additional bits of configuration. - The repository now includes a cabal file which contains version information. We will now update that. - docs need to be copied into the appropriate releaser directory for the GH pages branch to be updated correctly. * Speed up Haskell builds for OSX (#74) The OSX builds have been taking a very long time, despite doing less work than the Linux equivalents. A little digging has uncovered incorrect CI caching for the OSX builds. This small change has taken the build from approximately 45m to 9m per OSX run. * Expand upper versions on select packages (#77) A customer contributed this fix. I made some minor tweaks, but testing seems to indicate everything works as expected. Co-authored-by: Veronika Romashkina <vrom911@gmail.com> * Add application info support (#89) --------- Co-authored-by: hroederld <hroeder@launchdarkly.com> Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com> Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com> Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com> Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com> Co-authored-by: Matthew M. Keeler <keelerm84@gmail.com> Co-authored-by: Alex Biehl <alex@scarf.sh> Co-authored-by: Matthew M. Keeler <mkeeler@launchdarkly.com> Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com> Co-authored-by: Louis Chan <lchan@launchdarkly.com> Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com> Co-authored-by: Phil de Joux <philderbeast@gmail.com> Co-authored-by: Veronika Romashkina <vrom911@gmail.com>
LaunchDarklyReleaseBot
added a commit
that referenced
this pull request
Feb 17, 2023
* initial implementation * [ch57654] add circleci config (#3) * [ch57656] cleanup dependencies (#2) * [ch57662] Add repo templates (#5) * [ch57657] Add setters for User and Config (#4) * [ch57663] Only expose public modules in package * [ch57666] Add Haddock (#7) * log on authentication failure (#8) * [ch57685] cleanup package (#9) * [ch57695] metric event logic (#10) * [ch58006] Hide typeclass instances with newtype public API (#11) * fix contributor guide wrong link (#12) * fix minor title-casing inconsistencies (#13) * git ignore + re-ordering lists (#14) * adding .gitignore * re-ordering items * fix typos * [ch58315] Add OSX CI (#15) * updated build instructions (#16) * [tickets listed in body] Add misc configuration and close. (#17) [ch58083] add close [ch58076] make connection timeout configuration [ch58072] add offline mode [ch58435] make event sending configurable * set version string to 0.1.0 (#18) * add beta warning * [ch58816] Fix user agent format, prepare release * [ch59631] add haskell sdk to releaser (#20) * [ch63561] Store V2 Interface (#21) * [ch63772] Mock store interface tests (#22) * [ch58074] Redis store implementation (#23) * Linting and some refactoring of streaming code. * [ch64438] dont send empty event payloads * [ch43307] use last bucket as fallback * Increased test coverage (#28) * Custom serialization instances when using custom deserialization (#29) * [ch64640] Add support for Ldd (#30) * [ch65827] payload uuid and event send retry (#32) * [ch66643] strict fields * [ch67127] minimal version constraints (#34) * [ch67145] update master export list * [ch67148] Some doc typos (#36) * [ch67154] Remove beta warning * [ch67570] actually use store initialization status (#38) * [ch69091] Add SSE timeout, fix streaming CPU burn (#39) * [ch70425] standardize streaming behavior (#41) * [ch73995] remove null user key support (#42) * [ch76243] update sdk range for redis * [ch92127] remove sel field from flag model * Removed the guides link * [ch99749] add alias and update event logic (#45) * merge traffic allocation changes * Updates docs URLs (#47) * Use non-deprecated CircleCI Xcode image. (#48) * Path is optional; should default to / (#53) * Create index event when calling track (#51) * Conditionally index users when processing eval events (#56) * Trim trailing slashes from URIs (#52) * Add event summary regardless of capacity (#55) * Do not emit identify event if key is empty; notice user otherwise (#50) If the provided user key is empty, we do not want to emit an identify event. We will log a warning message to the customer instead. If a valid user has been provided though, not only should we emit the event, but also we should add that user to the LRU cache so that we don't unnecessarily generate future index events. * Support for both aeson < 2 and aeson > 2 * Unknown flags should return provided default value (#57) * Exclude various fields from JSON payload if not required (#54) * Adds links to Relay Proxy docs * Add support for client side availability (#61) * Add new all flags state method (#62) * Add initial structure for SDK test harness (#63) * Fix test if user attribute is null (#65) * Fix negative index evaluation (#66) * Track last known server time (#67) * Introduce File and Test Data Sources (#68) * Fix aeson 2.0 compatibility (#69) A user submitted contribution was merged to support Aeson 2.0. While all of our tests were passing, this was because we lacked a test environment that actually used 2.0 This commit addresses the remaining compatibility changes and introduces a later test environment to ensure we are actually building with Aeson 2.0 support. * Bump resource class for linux builds (#70) * Add cabal file and ignore dist-newstyle. (#44) * Add CI support for cabal and hlint (#71) A customer recently provided two pull requests -- one to add the generated cabal file to our repository and the second to update our hlint configuration file. While great, these change aren't sufficient because - We have no way to enforce the generated cabal file is up to date - We aren't running hlint during the CI process This commit introduces CI behaviors to resolve both of these issues. * Update releaser config to use docker instead of circleci (#72) * Update releaser configuration (#73) In a previous commit I updated the releaser config. However, I failed to adjust two additional bits of configuration. - The repository now includes a cabal file which contains version information. We will now update that. - docs need to be copied into the appropriate releaser directory for the GH pages branch to be updated correctly. * Speed up Haskell builds for OSX (#74) The OSX builds have been taking a very long time, despite doing less work than the Linux equivalents. A little digging has uncovered incorrect CI caching for the OSX builds. This small change has taken the build from approximately 45m to 9m per OSX run. * Expand upper versions on select packages (#77) A customer contributed this fix. I made some minor tweaks, but testing seems to indicate everything works as expected. Co-authored-by: Veronika Romashkina <vrom911@gmail.com> * Add application info support (#89) * Match package requirements to SDK (#105) When we bumped the version numbers for the v3 release, we didn't bump the corresponding versions in the redis store. We didn't catch this because we don't try to build the redis package in CI, and we certainly don't try to build it against every supported Stackage resolver. For now, I've taken the simplest solution to get some tests confirming the behavior. Once I merge this forward in the v4 branch, I will look at simplifying a lot of the redundancy that exists in our unit tests. * Stop polling when unrecoverable (#107) * Add branch configuration in preparation of v4 release (#113) --------- Co-authored-by: hroederld <hroeder@launchdarkly.com> Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com> Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com> Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com> Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com> Co-authored-by: Matthew M. Keeler <keelerm84@gmail.com> Co-authored-by: Alex Biehl <alex@scarf.sh> Co-authored-by: Matthew M. Keeler <mkeeler@launchdarkly.com> Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com> Co-authored-by: Louis Chan <lchan@launchdarkly.com> Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com> Co-authored-by: Phil de Joux <philderbeast@gmail.com> Co-authored-by: Veronika Romashkina <vrom911@gmail.com>
LaunchDarklyReleaseBot
added a commit
that referenced
this pull request
Feb 21, 2023
* initial implementation * [ch57654] add circleci config (#3) * [ch57656] cleanup dependencies (#2) * [ch57662] Add repo templates (#5) * [ch57657] Add setters for User and Config (#4) * [ch57663] Only expose public modules in package * [ch57666] Add Haddock (#7) * log on authentication failure (#8) * [ch57685] cleanup package (#9) * [ch57695] metric event logic (#10) * [ch58006] Hide typeclass instances with newtype public API (#11) * fix contributor guide wrong link (#12) * fix minor title-casing inconsistencies (#13) * git ignore + re-ordering lists (#14) * adding .gitignore * re-ordering items * fix typos * [ch58315] Add OSX CI (#15) * updated build instructions (#16) * [tickets listed in body] Add misc configuration and close. (#17) [ch58083] add close [ch58076] make connection timeout configuration [ch58072] add offline mode [ch58435] make event sending configurable * set version string to 0.1.0 (#18) * add beta warning * [ch58816] Fix user agent format, prepare release * [ch59631] add haskell sdk to releaser (#20) * [ch63561] Store V2 Interface (#21) * [ch63772] Mock store interface tests (#22) * [ch58074] Redis store implementation (#23) * Linting and some refactoring of streaming code. * [ch64438] dont send empty event payloads * [ch43307] use last bucket as fallback * Increased test coverage (#28) * Custom serialization instances when using custom deserialization (#29) * [ch64640] Add support for Ldd (#30) * [ch65827] payload uuid and event send retry (#32) * [ch66643] strict fields * [ch67127] minimal version constraints (#34) * [ch67145] update master export list * [ch67148] Some doc typos (#36) * [ch67154] Remove beta warning * [ch67570] actually use store initialization status (#38) * [ch69091] Add SSE timeout, fix streaming CPU burn (#39) * [ch70425] standardize streaming behavior (#41) * [ch73995] remove null user key support (#42) * [ch76243] update sdk range for redis * [ch92127] remove sel field from flag model * Removed the guides link * [ch99749] add alias and update event logic (#45) * merge traffic allocation changes * Updates docs URLs (#47) * Use non-deprecated CircleCI Xcode image. (#48) * Path is optional; should default to / (#53) * Create index event when calling track (#51) * Conditionally index users when processing eval events (#56) * Trim trailing slashes from URIs (#52) * Add event summary regardless of capacity (#55) * Do not emit identify event if key is empty; notice user otherwise (#50) If the provided user key is empty, we do not want to emit an identify event. We will log a warning message to the customer instead. If a valid user has been provided though, not only should we emit the event, but also we should add that user to the LRU cache so that we don't unnecessarily generate future index events. * Support for both aeson < 2 and aeson > 2 * Unknown flags should return provided default value (#57) * Exclude various fields from JSON payload if not required (#54) * Adds links to Relay Proxy docs * Add support for client side availability (#61) * Add new all flags state method (#62) * Add initial structure for SDK test harness (#63) * Fix test if user attribute is null (#65) * Fix negative index evaluation (#66) * Track last known server time (#67) * Introduce File and Test Data Sources (#68) * Fix aeson 2.0 compatibility (#69) A user submitted contribution was merged to support Aeson 2.0. While all of our tests were passing, this was because we lacked a test environment that actually used 2.0 This commit addresses the remaining compatibility changes and introduces a later test environment to ensure we are actually building with Aeson 2.0 support. * Bump resource class for linux builds (#70) * Add cabal file and ignore dist-newstyle. (#44) * Add CI support for cabal and hlint (#71) A customer recently provided two pull requests -- one to add the generated cabal file to our repository and the second to update our hlint configuration file. While great, these change aren't sufficient because - We have no way to enforce the generated cabal file is up to date - We aren't running hlint during the CI process This commit introduces CI behaviors to resolve both of these issues. * Update releaser config to use docker instead of circleci (#72) * Update releaser configuration (#73) In a previous commit I updated the releaser config. However, I failed to adjust two additional bits of configuration. - The repository now includes a cabal file which contains version information. We will now update that. - docs need to be copied into the appropriate releaser directory for the GH pages branch to be updated correctly. * Speed up Haskell builds for OSX (#74) The OSX builds have been taking a very long time, despite doing less work than the Linux equivalents. A little digging has uncovered incorrect CI caching for the OSX builds. This small change has taken the build from approximately 45m to 9m per OSX run. * Remove alias support (#75) Supporting multi-kind contexts has negated the need for the alias functionality. * Expand upper versions on select packages (#77) A customer contributed this fix. I made some minor tweaks, but testing seems to indicate everything works as expected. Co-authored-by: Veronika Romashkina <vrom911@gmail.com> * Initial context constructs (#76) * Introduce reference type (#78) * Flatten context structure and improve naming convention (#79) * Add context JSON encoding / decoding support (#80) * Use contexts in all top level client functions (#81) This commit updates all top level client functions -- identify, track, variation -- to use the new Context type instead of the user type. Additionally, it makes the minimum necessary adjustments to allow evaluations to keep working as before as long as the context kind is "user". None of the new behavior defined in the U2C spec is implemented yet. I have continued generating evaluation events by temporarily adding a method to convert a single-kind context back into a valid User type. This should allow a more gradual conversion of downstream functionality while still keeping the SDK (mostly) functional. U2C contract tests for evaluations are partially enabled; a lot of functionality is still missing, but all the tests that only cover previously-existing evaluation behavior are passing. * Remove secondary attribute support (#83) The u2c spec no longer treats secondary as a special attribute. Users of the SDK can still set this value, but it will no longer affect bucketing calculations or treated specially in terms of required Value type. * Add support for contextKind in Clause (#84) Rule clauses now include a context kind which enables them to target specific contexts within a multi-kind context environment (in addition to the standard single-kind). * Remove deprecated allFlags function (#82) In the 3.x branch, we replaced this function with the more modern allFlagsState function. Now that we are going to a 4.x release, we can remove allFlags. * Add included/excluded context support to segments (#85) In addition to included and excluded, segments now contain includedContexts and excludedContexts fields. This can be used to target inclusion or exclusively by key, limiting to a specific context kind. * Add context kind in rollouts and experiments (#86) * Add application info support (#89) * Add prerequisite cycle detection While the UI and backend services do not allow users of the service to explicitly specific cyclic prerequisites, out of order event processing may still cause an SDK to temporarily see cycles in practice. To prevent this, we introduce some simple cycle detection mitigation, resulting in an error condition and the evaluation methods returning their default values. * Support attribute reference lookups (#88) Prior to this change, rule clauses could only target literal attribute references. This commit expands that to include full reference support (including our partial JSON pointer syntax). The biggest change in this commit is the reliance on the `Either Text Bool` type. This type is used as a way to short-circuit folding operations within the rule evaluation engine. - `Left Text` :: This is used to signal a failure condition which should halt further processing. The included `Text` value is an error describing the cause of the failure (e.g. invalid attribute reference). - `Right Bool` :: This is used to signal that rule / clause / etc. processing as completed as normal and the related object either did or did not match. * Implement segment recursion and cycle detection (#90) Clauses in segment rules are now allowed to reference segments. To prevent an infinite recursion edge case, we implement a similar cycle detection mechanism as used on prerequisites. * Update event handling to support contexts (#91) Prior to this change, contexts were being converted to legacy users and then handed off to the event processing pipeline. Adding support for contexts is largely an exercise in implementing attribute redaction, so that is the main focus of this PR. * Remove inline configuration option (#92) * Update config and method names to reflect u2c change (#93) The one user specific configuration option has been deprecated and a new context specific version has been introduced. Multiple smaller renames have also been performed across the SDK, updating user to context as appropriate. There are still changes to be made in the TestData and FileData modules, but those will be addressed in an upcoming commit. * Add support for secure mode hash (#94) * Add support for context targets on Flag (#95) As part of this commit, I have temporarily disabled parts of the file and test data integrations. A subsequent commit will be re-enabling these features and filling them out with fuller support for contexts. * Update TestData and FileData integrations to support contexts (#96) Each of our alternative data source integrations need updating to support the users to context switch. FileData is essentially a small change to verify serialization still works as expected. The TestData change involves deprecating some existing methods to ease the transition period, as well as introducing some new methods to work specifically with contexts. * Support bucketing by non-key attribute (#97) * Ensure CI fails if unit tests fail (#98) * Fix prereqOf designation in feature events (#99) * Apply and enforce code style across SDK (#100) A consistent format is better than any one particular preference. We have opted to use `fourmolu` as it provides sensible defaults with the option to provide some overrides. * Improve retry logic (#101) The retry logic, as originally written, was not taking into account several situations, as evidenced by the large number of suppression entries we had for the SDK test harness. This commit re-writes the retry logic to bring the behavior more inline with other SDKs and eliminate those suppress lines. In order to fully support the retry logic, this commit also introduces support for the initialRetryDelay configuration option, which allows customers to specify the base value used when determining how long to wait before retrying. * Apply manual formatting across comments (#102) While there isn't a formatter rule to enforce a specific structure on the comments, I did want to try and get them at least consistent to some degree. This commit updates the comments in two ways: 1. Wrap the comments at 79 characters 2. If a haddock doc requires more than one line, start the `-- |` marker on its own line. * Flatten types and clean up module exports (#103) This commit introduces multiple changes: - It removes the wrapper types we historically had around Config and Client. AFAICT, these are redundant and pointless. - It moves from context functions into an internal module. This allows me to remove 5 functions from the main Context module export since we don't actually want this to be a part of the public API. - Updates the main Server module to take advantage of full module re-exports since that is all we are doing. This prevents us from having to update export lists in two places. - Removes the now defunct user module. * Update Target values to use HashSet (#106) When checking if a value is contained within the target values, it is faster to consult a hashset than a simple list. Since this is an operation that could occur quite frequently over a potentially long list, this minor change may have much larger affects on performance overall. * Update SDK polling URL (#104) * Match package requirements to SDK (#105) When we bumped the version numbers for the v3 release, we didn't bump the corresponding versions in the redis store. We didn't catch this because we don't try to build the redis package in CI, and we certainly don't try to build it against every supported Stackage resolver. For now, I've taken the simplest solution to get some tests confirming the behavior. Once I merge this forward in the v4 branch, I will look at simplifying a lot of the redundancy that exists in our unit tests. * Prepare store for extraction into separate package (#108) Persistent store implementations are supposed to be external to the SDK. Our persistent store spec provides a mechanism for handling this via ItemDescriptors and SerializedItemDescriptors. Where possible, I have attempted to mimic this setup. Once this has been merged in, I will be removing the entire redis implementation into a separate package, removing all of the code from this SDK. * Stop polling when unrecoverable (#107) * feat: Remove redis implementation from this repo (#109) * Merge main forward (#110) This merge pulls in the changes to stop the polling thread on an unrecoverable error. It also uses that functionality to remove some redundancy in the other networking modules. * Fix persistent store namespace for flags (#111) The Haskell SDK has been calling the namespace for flags "flags", which makes sense. However, the other SDKs are looking for a namespace of "features", so we need to be consistent. * Improve CI build process (#112) * Add branch configuration in preparation of v4 release (#113) * Drop support for LTS-14 and LTS-15 (#114) We are no longer going to support the stack-lts-14 and stack-lts-15 resolvers. The new minimum is LTS-16.33, which targets the GHC v8.8.4. Most packages only see a patch update, a few have some feature updates. generic-lens is the biggest change, jumping a full major version. However, this will allow us to drop support for lens in a future commit, as requested [in a previous pr][1]. [1]: #34 * Remove unused imports (#115) * Add HUP support to Releaser configuration (#116) Publication of our SDK to Hackage has been a manual process for quite some time. This commit introduces support for HUP, a tool that will upload the final package and documentation directly to Hackage as part of our release process. * Add a few missing deprecation warnings (#117) * Enable polling capability in contract tests (#118) While working on this, I also noticed I failed to align the contract test dependencies with the main SDKs. That has been fixed. I also renamed the STACKOPS parameter to STACKOPTS, which I feel makes more sense. * Apply hint --------- Co-authored-by: hroederld <hroeder@launchdarkly.com> Co-authored-by: Ben Woskow <48036130+bwoskow-ld@users.noreply.github.com> Co-authored-by: Gavin Whelan <gwhelan@launchdarkly.com> Co-authored-by: LaunchDarklyCI <dev@launchdarkly.com> Co-authored-by: ember-stevens <79482775+ember-stevens@users.noreply.github.com> Co-authored-by: Matthew M. Keeler <keelerm84@gmail.com> Co-authored-by: Alex Biehl <alex@scarf.sh> Co-authored-by: Matthew M. Keeler <mkeeler@launchdarkly.com> Co-authored-by: Ember Stevens <ember.stevens@launchdarkly.com> Co-authored-by: Louis Chan <lchan@launchdarkly.com> Co-authored-by: LaunchDarklyReleaseBot <launchdarklyreleasebot@launchdarkly.com> Co-authored-by: Phil de Joux <philderbeast@gmail.com> Co-authored-by: Veronika Romashkina <vrom911@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[1.0.3] - 2020-03-31
Fixed: