Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .github/workflows/push_gem.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: Push gem

"on":
workflow_run:
workflows: ["Ruby"]
branches: [main]
types:
- completed

jobs:
push:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}

permissions:
contents: write
id-token: write

steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
submodules: recursive

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
ruby-version: ruby

- name: Release gem
uses: rubygems/release-gem@v1
with:
gem-name: reforge
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Changelog


## 1.9.0 - 2025-08-23

- Moved to reforge gem name `sdk-reforge`
- Add automated gem publishing via GitHub Actions trusted publishing
- Add support for `reforge.current-time` virtual context
- Dropped the previous implementation of dynamic logging support
- Removed local file loading based on prefab-envs

## 1.8.9 - 2025-04-15

- Fix support for virtual context `prefab.current-time` [#229]
Expand Down
35 changes: 31 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,20 @@ See full documentation https://docs.prefab.cloud/docs/sdks/ruby
- Live Config
- WebUI for tweaking config and feature flags

## Installation

Add the gem to your Gemfile:

```ruby
gem 'sdk-reforge'
```

Or install directly:

```bash
gem install sdk-reforge
```

## Important note about Forking and realtime updates

Many ruby web servers fork. When the process is forked, the current realtime update stream is disconnected. If you're using Puma or Unicorn, do the following.
Expand Down Expand Up @@ -64,12 +78,25 @@ end

## Release

Release is automated via GitHub Actions using RubyGems trusted publishing. When tests pass on the main branch, a new version is automatically published to RubyGems.

To release a new version:

```shell
update the changelog
update VERSION
# Update the version
echo "1.9.1" > VERSION

# Update the changelog with your changes
# Edit CHANGELOG.md

# Regenerate the gemspec
bundle exec rake gemspec:generate
git commit & push
REMOTE_BRANCH=main LOCAL_BRANCH=main bundle exec rake release

# Create PR with changes
git checkout -b release-1.9.1
git commit -am "Release 1.9.1"
git push origin release-1.9.1
# Then create and merge PR to main
```

## Copyright
Expand Down
10 changes: 5 additions & 5 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ unless ENV['CI']
require 'juwelier'
Juwelier::Tasks.new do |gem|
# gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
gem.name = 'prefab-cloud-ruby'
gem.homepage = 'http://github.com/prefab-cloud/prefab-cloud-ruby'
gem.name = 'sdk-reforge'
gem.homepage = 'http://github.com/ReforgeHQ/sdk-ruby'
gem.license = 'MIT'
gem.summary = %(Prefab Ruby Infrastructure)
gem.description = %(Feature Flags, Live Config, and Dynamic Log Levels as a service)
gem.email = 'jdwyer@prefab.cloud'
gem.summary = %(Reforge Launch Ruby Infrastructure)
gem.description = %(Feature Flags, Live Config as a service)
gem.email = 'jeff.dwyer@reforge.com.cloud'
gem.authors = ['Jeff Dwyer']

# dependencies defined in Gemfile
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.8.9
1.9.0
28 changes: 11 additions & 17 deletions prefab-cloud-ruby.gemspec → sdk-reforge.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,26 @@
# DO NOT EDIT THIS FILE DIRECTLY
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
# -*- encoding: utf-8 -*-
# stub: prefab-cloud-ruby 1.8.9 ruby lib
# stub: sdk-reforge 1.9.0 ruby lib

Gem::Specification.new do |s|
s.name = "reforge-sdk".freeze
s.version = "1.8.9"
s.name = "sdk-reforge".freeze
s.version = "1.9.0"

s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
s.require_paths = ["lib".freeze]
s.authors = ["Jeff Dwyer".freeze]
s.date = "2025-04-15"
s.description = "Feature Flags and Live Config as a service".freeze
s.email = "jeff.dwyer@reforge.com".freeze
s.date = "2025-09-23"
s.description = "Feature Flags, Live Config as a service".freeze
s.email = "jeff.dwyer@reforge.com.cloud".freeze
s.extra_rdoc_files = [
"CHANGELOG.md",
"LICENSE.txt",
"README.md"
]
s.files = [
".envrc.sample",
".github/CODEOWNERS",
".github/pull_request_template.md",
".github/workflows/ruby.yml",
".gitmodules",
Expand All @@ -39,6 +40,7 @@ Gem::Specification.new do |s|
"dev/benchmark",
"dev/console",
"dev/script_setup.rb",
"lib/prefab_pb.rb",
"lib/reforge-sdk.rb",
"lib/reforge/caching_http_connection.rb",
"lib/reforge/client.rb",
Expand All @@ -57,7 +59,7 @@ Gem::Specification.new do |s|
"lib/reforge/error.rb",
"lib/reforge/errors/env_var_parse_error.rb",
"lib/reforge/errors/initialization_timeout_error.rb",
"lib/reforge/errors/invalid_api_key_error.rb",
"lib/reforge/errors/invalid_sdk_key_error.rb",
"lib/reforge/errors/missing_default_error.rb",
"lib/reforge/errors/missing_env_var_error.rb",
"lib/reforge/errors/uninitialized_error.rb",
Expand All @@ -71,8 +73,6 @@ Gem::Specification.new do |s|
"lib/reforge/internal_logger.rb",
"lib/reforge/javascript_stub.rb",
"lib/reforge/local_config_parser.rb",
"lib/reforge/log_path_aggregator.rb",
"lib/reforge/logger_client.rb",
"lib/reforge/murmer3.rb",
"lib/reforge/options.rb",
"lib/reforge/periodic_sync.rb",
Expand All @@ -84,10 +84,6 @@ Gem::Specification.new do |s|
"lib/reforge/time_helpers.rb",
"lib/reforge/weighted_value_resolver.rb",
"lib/reforge/yaml_config_parser.rb",
"lib/prefab_pb.rb",
"prefab-cloud-ruby.gemspec",
"test/.prefab.default.config.yaml",
"test/.prefab.unit_tests.config.yaml",
"test/fixtures/datafile.json",
"test/integration_test.rb",
"test/integration_test_helpers.rb",
Expand Down Expand Up @@ -118,8 +114,6 @@ Gem::Specification.new do |s|
"test/test_internal_logger.rb",
"test/test_javascript_stub.rb",
"test/test_local_config_parser.rb",
"test/test_log_path_aggregator.rb",
"test/test_logger.rb",
"test/test_logger_initialization.rb",
"test/test_options.rb",
"test/test_prefab.rb",
Expand All @@ -128,10 +122,10 @@ Gem::Specification.new do |s|
"test/test_sse_config_client.rb",
"test/test_weighted_value_resolver.rb"
]
s.homepage = "https://github.com/ReforgeHQ/sdk-ruby".freeze
s.homepage = "http://github.com/ReforgeHQ/sdk-ruby".freeze
s.licenses = ["MIT".freeze]
s.rubygems_version = "3.4.19".freeze
s.summary = "Reforge SDK Ruby Infrastructure".freeze
s.summary = "Reforge Launch Ruby Infrastructure".freeze

s.specification_version = 4

Expand Down