From 786cf3f21248963faf013ceba6a7cbff41c0fe62 Mon Sep 17 00:00:00 2001 From: Renato Arruda Date: Wed, 24 May 2023 01:12:08 +0200 Subject: [PATCH] chore: docs: Add Changelog and update docs sections on releasing and contributing (#79) (#94) --- CHANGELOG.md | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 15 +++++++- 2 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..e4fd7a89 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,103 @@ + +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +Note: These changes are not considered notable: +- build +- documentation +- dependencies + +## [Unreleased] + +## [4.4.3] - 2023-05-23 +### Added +- Add Context#to_h method (#136) + +### Fixed +- Bootstrapped variants now work when client is disabled (#138) + +### Changed +- Automatically disable metrics/MetricsReporter when client is disabled (#139) (#140) + +## [4.4.2] - 2023-01-05 +### Added +- Add Client#disabled? method (#130) + +## [4.4.1] - 2022-12-07 +### Fixed +- exception no longer bubbles up in constraints when context is nil (#127) +- variants metrics did count toggles correctly (#126) +- prevent race condition when manipulating metrics data (#122) +- allow passing user_id as integer (#119) + +## [4.4.0] - 2022-09-19 +### Added +- Allow custom strategies (#96) +- Global segments (#114) + +### Fixed +- Initializing client configuration from constructor (#117) +- Support int context in set comparison (#115) + +## [4.3.0] - 2023-07-14 +### Added +- dynamic http headers via Proc or Lambda (#107) + +### Fixed +- Fixed ToggleFetcher#save! to close opened files on failure. (#97) + +### Changed +- Refactored ToggleFetcher#read! (#106) + +## [4.2.1] - 2022-03-29 +### Fixed +- correct logic for default values on feature toggles so toggle value respected when toggle exists and default is true (#93 + +## [4.2.0] - 2022-03-18 +### Added +- Advanced constraints operators (#92) + +### Changed +- Default to the client never giving up trying to reach the server even after repeated failures (#91) + +## [4.1.0] - 2022-02-11 +### Added +- feat: Implement custom bootstrapping on startup (#88) +- feat: add support for cidr in `RemoteAddress` strategy (#77) + +### Changed +- default values for `metrics_interval` to `60s` and `retry_limit` to `5` + +## [4.0.0] - 2021-12-16 +### Added +- Support for projects query (requires unleash 4.x) (#38) +- Allow passing blocks to is_enabled? to determine default_result (#33) +- Implement custom stickiness (#69) +- Allow using custom_http_headers from the CLI utility + +### Fixed +- Allow context to correctly resolve camelCase property values (#74) +- Avoid unlikely situation of config changing under the read operation +- backup path file being incorrectly set + +### Changed +- change how we handle the server api url (avoid double slashes in urls used for API calls.) +- default values: refresh_interval => 10, metrics_interval=> 30 +- changed metrics reporting behavior +- only send metrics if there is data to send. (#58) +- in Client#get_variant() allow context and fallback_variant as nil + +[unreleased]: https://git1hub.com/unleash/unleash-client-ruby/compare/v4.4.3...HEAD +[4.4.3]: https://github.com/unleash/unleash-client-ruby/compare/v4.4.2...v4.4.3 +[4.4.2]: https://github.com/unleash/unleash-client-ruby/compare/v4.4.1...v4.4.2 +[4.4.1]: https://github.com/unleash/unleash-client-ruby/compare/v4.4.0...v4.4.1 +[4.4.0]: https://github.com/unleash/unleash-client-ruby/compare/v4.3.0...v4.4.0 +[4.3.0]: https://github.com/unleash/unleash-client-ruby/compare/v4.2.1...v4.3.0 +[4.2.1]: https://github.com/unleash/unleash-client-ruby/compare/v4.2.0...v4.2.1 +[4.2.0]: https://github.com/unleash/unleash-client-ruby/compare/v4.1.0...v4.2.0 +[4.1.0]: https://github.com/unleash/unleash-client-ruby/compare/v4.0.0...v4.1.0 +[4.0.0]: https://github.com/unleash/unleash-client-ruby/compare/v3.2.5...v4.0.0 diff --git a/README.md b/README.md index 3573fa7b..4b424a89 100644 --- a/README.md +++ b/README.md @@ -533,11 +533,24 @@ To run the Ruby SDK against this test suite, you'll need to have a copy on your After doing this, `rake spec` will also run the client specification tests. To install this gem onto your local machine, run `bundle exec rake install`. -To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). + +## Releasing + +- Choose a new version number following [Semantic Versioning](https://semver.org/spec/v2.0.0.html) semantics and then: +- update the version number in [./lib/unleash/version.rb](), +- if a major or minor version bump, update the [Installation section](#Installation) of [README.md]() +- update [CHANGELOG.md]() following the format on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) +- commit with message `chore: bump version to x.y.z` +- and then run `bundle exec rake release` + - This will create a git tag for the version on the current commit, + - push git commits and tags to origin and + - push the `.gem` file to [rubygems.org](https://rubygems.org) ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/unleash/unleash-client-ruby. +Be sure to run both `bundle exec rspec` and `bundle exec rubocop` in your branch before creating a pull request. + Please include tests with any pull requests, to avoid regressions.