Releases: phcdevworks/ruby_api_pack_active_campaign
Releases · phcdevworks/ruby_api_pack_active_campaign
Release list
Phase 0 - ruby_api_pack_core Alignment and CI Modernization
[0.2.0] - 2026-07-12
Release Title: Phase 0 - ruby_api_pack_core Alignment and CI Modernization
Contract change type: breaking (internal only)
Added
- Added a runtime dependency on
ruby_api_pack_core(~> 0.1), the new
shared HTTP client foundation gem for allruby_api_pack_*packs. All
RubyApiPackActiveCampaign::Api::AcContactsmethods now validate their
response shape (expected_type: :hash) via
RubyApiPackCore::Handlers::ResponseValidator, aligning this gem's
response-shape validation withruby_api_pack_wordpressand
ruby_api_pack_cloudways. - Added standardized PHCDevworks AI operating guides for shared agent behavior,
Codex, Claude Code, Copilot, and Jules. - Added roadmap and TODO planning documents for ActiveCampaign gem
stabilization. - Added Codex workspace notes and GitHub assistant instructions.
- Added a docs request issue template and standardized pull request template.
Changed
- Moved CI from GitHub Actions to CircleCI, running RSpec/RuboCop across Ruby
3.3.4 and 3.4, storing JUnit test results, and uploading coverage/test
reports to Codecov. Removed the now-redundant.github/workflows/test.yml
and.github/workflows/codecov.yml, switched off the local path dependency
forruby_api_pack_core, addedrspec_junit_formatterfor CI reporting,
updated the README CI badge, and raised the gem's required Ruby version to
>= 3.3.0. - Updated the RuboCop configuration's target Ruby version to 3.3 to match the
raised baseline. - Bumped
actions/checkoutfrom 4 to 7 in the RubyGems publish workflow
(dependabot, #2),
then updated that workflow's Ruby version to 3.3.4 (from 3.1) so release
jobs run on the project's current Ruby version. - Bumped development dependencies:
rubocopto~> 1.88,rubocop-performance
to~> 1.26,rubocop-raketo~> 0.7.1,rubocop-rspecto~> 3.10, and
raketo~> 13.4. Removedcapybara,dotenv,factory_bot,faker,
sqlite3,vcr, andwebmockas unused development dependencies,
superseding several open Dependabot PRs (#5-#16) that were closed as a
result. - Disabled the
RSpec/DescribeClasscop for the string-based README version
sync spec and switched its README row matcher to%r{}for cleaner
escaping. - Refreshed GitHub workflows with newer action versions and tighter
permissions/concurrency, simplified.github/dependabot.yml, and
normalizedFUNDING.ymlformat. Raised the gem's minimum Ruby version to
>= 3.1.0to match the CI/runtime baseline (later superseded by the
>= 3.3.0bump above). Added.claude/settings.jsonand expanded Codex
and Copilot agent guidance. - Breaking (internal only): Rewrote
RubyApiPackActiveCampaign::Connection::AcConnectto subclass
RubyApiPackCore::Connection::Base, inheriting shared URL building,
200..299status handling,Oj-based JSON parsing with a content-type
guard, andapi_get/api_post/api_put/api_deletemethod names
(renamed fromac_get_api_connection/ac_post_api_connection/
ac_put_api_connection/ac_delete_api_connection).AcConnectnow only
implements#auth_headers. PublicRubyApiPackActiveCampaign::Api::AcContacts
method names are unchanged. This supersedes an earlier unreleased pass that
added a gem-localhandlers/response_validator.rbandac_api_*-named
connection methods — both are now delegated toruby_api_pack_coreinstead. - Removed the gem-local
RubyApiPackActiveCampaign::Handlers::ResponseValidator
module and the directhttparty/ojgemspec dependencies — both now come
fromruby_api_pack_core. RubyApiPackActiveCampaign.configure/.configurationnow come from
RubyApiPackCore::Configurableinstead of a gem-local implementation;
behavior is unchanged.- Reworked README, contributing, security, and issue guidance around this gem's
ActiveCampaign client responsibilities. - Corrected the README project identity from a Cloudways label to
ruby_api_pack_active_campaign. - Enabled explicit RuboCop new-cop handling and removed duplicate RSpec cop
configuration. - Added RubyGems MFA metadata and removed ActiveCampaign environment-variable
output from the spec helper. - Added
bundlerandgithub-actionsecosystem entries to
.github/dependabot.yml(daily, 10 open-PR limit) to match the dependency
hygiene used inphcdevworks_accounts_stytchandspectre-tokens— only
devcontainerswas previously configured, so Ruby gem and Actions
dependencies never received automated update PRs. - Added
.coderabbit.yamlfor automated PR review (RuboCop, gitleaks,
markdownlint, actionlint, semgrep) with path instructions tailored to this
gem's connection/API helper layers, matching the CodeRabbit setup used in
phcdevworks_accounts_stytchandspectre-tokens. - Added a
denyblock to.claude/settings.jsonblocking destructive
commands (rm -rf, force-push,git reset --hard,git commit,
gem yank, etc.), matching the guardrail committed in
phcdevworks_accounts_stytchandspectre-tokens— this repo previously
only had an allow list with no deny-list safety net.
Fixed
- Removed a stale
Ojmention fromSECURITY.md's dependency guidance now
that theojgem dependency is gone.
Removed
- Removed the unused
ojruntime dependency and itsrequirefrom the gem
entry point; response parsing has always usedJSON.parsein the
connection wrapper. - Removed a stray
.github/workflows/main.ymlCI workflow left over from
bundler-gem scaffolding — it targeted a nonexistentmasterbranch and
duplicatedtest.yml.
Phase 0 - Initial ActiveCampaign Contacts API Client
[0.1.0] - 2024-10-28
Release Title: Phase 0 - Initial ActiveCampaign Contacts API Client
Contract change type: initial release
Added
- Initial release of
ruby_api_pack_active_campaign, a Ruby client gem for
the ActiveCampaign API. RubyApiPackActiveCampaign.configure/.configurationfor setting the
ActiveCampaign API URL and token.RubyApiPackActiveCampaign::Connection::AcConnect, an HTTParty-based
connection wrapper handling authenticated GET/POST/PUT/DELETE requests and
JSON response parsing.RubyApiPackActiveCampaign::Api::AcContacts, covering the full set of
ActiveCampaign contacts endpoints (create, read, update, delete, and list
operations).- Full RSpec test suite with 100% code coverage via Codecov, plus RuboCop
linting. - README, issue templates, and CI/config setup for the initial public
release.