Skip to content

Integrate steno logging library directly into cloud_controller_ng#4902

Merged
johha merged 1 commit intomainfrom
integrate-steno-into-ccng-squashed
Mar 3, 2026
Merged

Integrate steno logging library directly into cloud_controller_ng#4902
johha merged 1 commit intomainfrom
integrate-steno-into-ccng-squashed

Conversation

@johha
Copy link
Contributor

@johha johha commented Mar 3, 2026

A short explanation of the proposed change:

This PR integrates the steno logging library directly into the cloud_controller_ng codebase as an internal component, removing the external gem dependency.

An explanation of the use cases your change solves:

  • Enables faster iteration and debugging of logging functionality without gem release cycles
  • Provides better control over logging implementation for Cloud Controller's specific needs
  • Eliminates external dependency management for a critical component
  • Allows customization of steno for CCNG-specific requirements (e.g., custom RFC3339 codec, Oj instead of Yajl)

Links to any other associated PRs:

None


  • I have reviewed the contributing guide
  • I have viewed, signed, and submitted the Contributor License Agreement
  • I have made this pull request to the main branch
  • I have run all the unit tests using bundle exec rake
  • I have run CF Acceptance Tests

This integrates the steno logging library as an internal component rather
than an external gem dependency, allowing for better control, customization,
and maintainability within the Cloud Controller codebase.

Key Changes:
- Integrated steno library code from cloudfoundry/steno repository
- Removed steno gem dependency from Gemfile
- Flattened steno directory structure under lib/steno/
- Removed unused steno features (Windows support, context providers, tagged logging)
- Updated all require paths from 'steno' to 'steno/steno'
- Removed lib/steno.rb wrapper file

Steno Modifications:
- Replaced Yajl with Oj JSON parser for better performance
- Added syslog gem dependency for syslog sink functionality
- Removed unused yajl-ruby gem
- Applied RuboCop auto-corrections to integrated steno code
- Integrated custom RFC3339 codec (lib/steno/codec/codec_rfc3339.rb)
- Documented modification policy in README.md

Bug Fixes:
- Fixed race condition in syslog reset for parallel test execution
- Added reset! method to Syslog singleton for proper test cleanup
- Added nil guard to syslog sink add_record method
- Fixed syslog sink mock leakage between tests
- Fixed steno JSON codec timestamp test to accept Numeric types

Test Infrastructure:
- Moved steno tests to spec/isolated_specs/steno/ to prevent mock leakage
- Restored and updated all steno unit tests
- Fixed test isolation issues with syslog mocking
- Created isolated test helper (spec/isolated_specs/steno/spec_helper.rb)

Documentation:
- Added NOTICE file from original steno repository
- Added LICENSE file (Apache 2.0)
- Created comprehensive README.md with integration history
- Documented Rails/Delegate RuboCop change

This integration enables better debugging, faster iteration, and eliminates
external dependency management for a critical logging component.
@johha johha force-pushed the integrate-steno-into-ccng-squashed branch from 8bd5179 to 6a5de4f Compare March 3, 2026 11:29
@johha johha mentioned this pull request Mar 3, 2026
5 tasks
@johha johha merged commit c54fdfe into main Mar 3, 2026
11 checks passed
@johha johha deleted the integrate-steno-into-ccng-squashed branch March 3, 2026 12:43
ari-wg-gitbot added a commit to cloudfoundry/capi-release that referenced this pull request Mar 3, 2026
Changes in cloud_controller_ng:

- Integrate steno logging library directly into cloud_controller_ng
    PR: cloudfoundry/cloud_controller_ng#4902
    Author: Johannes Haass <johannes.haass@sap.com>
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.

2 participants