Skip to content

Stoplight 6.0 release #894

Description

@bolshakov

What 6.0 includes

  • Registered, cached lights: Stoplight() now registers/reuses a light and Stoplight.light(name) is lookup-only.
  • Named systems: Stoplight.register_system provides isolated configuration/infrastructure per system.
  • In-process telemetry: Stoplight.telemetry / system.telemetry, with run, breach, recovery, lock, registration, and transition events. Not yet ready, we may not include this into release notes.
  • Per-run error matcher overrides: light.run(tracked_errors: …), the same for skipped_errors
  • Admin improvements: multi-system dashboard, persisted Redis light registry with light configuration, read-only mode, id-based (instead of name-based) routes, bundled assets.
  • Redis storage redesign: decomposed stores and a new stoplight:v6 keyspace.
  • Fixes: Memory windows now use monotonic time; clock-skew handling around yellow-state computation, clearer RedLight message.
  • Performance improvements - needs measurement.

Breaking changes that must be added to migration guide (UPGRADING.md):

  • Stoplight("payments", …) calls must have identical configuration or raise ConfigurationError.
  • Per-light infrastructure configuration is no longer allowed. Affected options are data_store, notifiers, and error_notifier -- must move to Stoplight.configure
  • Light cloning/builder API was removed: Light#with and the whole with_* family
  • Error matchers must be named Module/Class constants, not anonymous procs or class instances.
  • Redis state is reset after switching to a new key schema. No cleanup needed for old schema.
  • Clock skew notification removed Use Redis Time in State & Metrics to prevent time skew problem #921

Required documentation updates:

  • Update the README’s “currently browsing 5.x” banner.
  • Add a Systems guide: default system vs. named systems, boot-time registration, caching, and multi-system Admin configuration. Probably not everything should go to readme, but definitely should be documented in the code.
  • Add Admin documentation for read-only mode.
  • Document multi-system configuration for admin
  • Regenerate admin screenshot

Other tasks:

  • Benchmark performance and memory usge
  • Update the list of supported versions of dependencies and ruby
  • Release notes
  • Bump version, update supported versions in readme, security, etc.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions