Skip to content

Release passenger-datadog 2.0.0 - #1

Merged
arukaen merged 7 commits into
mainfrom
upgrade-2.0.0
Aug 15, 2026
Merged

Release passenger-datadog 2.0.0#1
arukaen merged 7 commits into
mainfrom
upgrade-2.0.0

Conversation

@arukaen

@arukaen arukaen commented Aug 14, 2026

Copy link
Copy Markdown
Member

Publish the gem under the passenger-datadog name as a continuation of the abandoned passenger_datadog gem, maintained by IronCloud.

  • Require Ruby >= 3.3 and Passenger >= 6.0
  • Upgrade dogstatsd-ruby to 5.x (single-threaded client)
  • Replace daemons with a foreground process + systemd unit
  • Replace Travis CI with GitHub Actions
  • Upgrade RuboCop to 1.x
  • Add Passenger 6.1 fixture and matching spec
  • Rebrand to IronCloud; LICENSE.txt -> LICENSE

Publish the gem under the passenger-datadog name as a continuation of the
abandoned passenger_datadog gem, maintained by IronCloud.

- Require Ruby >= 3.3 and Passenger >= 6.0
- Upgrade dogstatsd-ruby to 5.x (single-threaded client, no sender threads)
- Replace daemons daemonization with a foreground process and a systemd unit
- Replace Travis CI with GitHub Actions
- Upgrade RuboCop to 1.x
- Move development dependencies from the gemspec into the Gemfile
- Add a Passenger 6.1 fixture and matching spec
- Rebrand authorship and license to IronCloud; rename LICENSE.txt to LICENSE
Replace the static packaging/passenger-datadog.service with an
install-service subcommand that generates the unit from the live
environment, and add the repository documentation.

- Add lib/service_installer.rb: absolute RbConfig.ruby in ExecStart, with
  PATH/GEM_HOME/GEM_PATH baked in since systemd inherits none of them;
  passenger-status resolved beside the executable so it survives sudo
- Add install-service / uninstall-service subcommands with --dry-run,
  --force, --enable-now, --user/--group, and --passenger-status options
- Fix sd_notify: NOTIFY_SOCKET is SOCK_DGRAM, so Type=notify now works
- Warn instead of returning silently on empty passenger-status output
- Drop packaging/ from the repo and the gemspec files list; constrain
  passenger to ~> 6.0 so gem build emits no warnings
- Add docs/ (systemd guide, passenger-status XML reference) and CLAUDE.md;
  keep local-only files ignored
- Specs for unit rendering, dry-run, root check, and overwrite guard
The suite covered the happy path per Passenger version and nothing else,
which is where both defects found on a live host came from. Reviewing
against that pattern surfaced a third: the Passenger 4 header strip drops
a fixed three lines, so any shorter non-XML output — such as the one-line
error passenger-status prints when it cannot run — made [3..] nil and
raised out of the collection loop, which Restart=on-failure turns into a
restart loop.

- Locate the XML declaration instead of dropping three lines; warn and
  skip when there is no XML at all
- Close the Datadog client from an ensure so a send failure part way
  through a run cannot leak a socket per run
- Skip whitespace-only elements rather than sending a bogus zero
- Add spec/cli_spec.rb: bin/passenger-datadog run as a subprocess for
  argument dispatch, --dry-run, the root check, and a real sd_notify
  handshake over filesystem and abstract-namespace sockets
- Add spec/parsers/base_spec.rb for the defensive-lookup contract, and
  pin supergroup normalization including the digit-stripping collision
- Add spec/packaging_spec.rb so an un-git-added runtime file fails CI
- Add fixtures captured from live Passenger 6.1.8: a group with no
  processes, and the instance list passenger-status prints when more
  than one instance is running
- Extend the installer specs: gem environment, service_path ordering and
  dedup, which() guards, uninstall disable/reload/root paths
- Add a gem build job to CI and drop the uninitialized $RS from the
  gemspec files split, which that job now catches
@arukaen
arukaen merged commit 71d93c0 into main Aug 15, 2026
3 checks passed
@arukaen
arukaen deleted the upgrade-2.0.0 branch August 15, 2026 01:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant