Skip to content

chore(deps): update Rails dependencies - #17

Open
dex-the-ai wants to merge 1 commit into
mainfrom
chore/dependency-update-20260911-t_181a35ff
Open

chore(deps): update Rails dependencies#17
dex-the-ai wants to merge 1 commit into
mainfrom
chore/dependency-update-20260911-t_181a35ff

Conversation

@dex-the-ai

@dex-the-ai dex-the-ai commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Updates the Rails dependency constraint from ~> 7.1.3, >= 7.1.3.2 to ~> 8.1.3, >= 8.1.3.1.
  • Adds a conservative json < 3.0 compatibility pin because the current rswag/json-schema validation path still uses the json 2.x parse API.
  • Keeps the full request-suite validation stable on Rails 8 by making Swagger request specs use isolated test document IDs, align delete responses with the API's 202 Accepted, allow nullable airline callsigns from travel-sample, and return 400 Bad Request for invalid airport/route create payloads.

Dependency updates

Ecosystem Dependency Previous Updated Type Notes
Ruby/Bundler rails ~> 7.1.3, >= 7.1.3.2 ~> 8.1.3, >= 8.1.3.1 direct runtime Latest stable Rails resolved by Bundler under Ruby 3.4.1.
Ruby/Bundler json unconstrained transitive/default resolution < 3.0 compatibility pin Required until current rswag/json-schema stack supports json 3.x parse keywords/arity.

Validation

Commands run locally with Ruby 3.4.1 via the official Docker image, using a local Couchbase Server container with travel-sample loaded and redacted DB_CONN_STR/DB_USERNAME/DB_PASSWORD values mapped to the app's expected env vars:

bundle install
ruby -c app/controllers/api/v1/airports_controller.rb
ruby -c app/controllers/api/v1/routes_controller.rb
ruby -c spec/requests/swagger/airlines_spec.rb
ruby -c spec/requests/swagger/airports_spec.rb
ruby -c spec/requests/swagger/routes_spec.rb
bundle exec rails runner 'puts defined?(COUCHBASE_CLUSTER) && COUCHBASE_CLUSTER ? :connected : :not_connected'
bundle exec rspec spec/requests
bundle exec rspec spec/requests/api/v1
bundle exec rake rswag:specs:swaggerize

Results:

  • bundle exec rspec spec/requests: 64 examples, 0 failures.
  • bundle exec rspec spec/requests/api/v1: 27 examples, 0 failures.
  • bundle exec rake rswag:specs:swaggerize: generated swagger/v1/swagger.yaml, 64 examples, 0 failures in dry-run documentation generation.
  • Couchbase smoke check printed connected before the request-suite run.

Evidence

Reviewer media captured against the running Rails app at /api-docs plus an API smoke request to /api/v1/airports/airport_1262.

Swagger UI screenshot

Swagger API docs

API smoke screenshot

API smoke response

Walkthrough video

Open the UI/API walkthrough

Local trace copies:

  • /home/ubuntu/.hermes/kanban/boards/couchbase-examples/workspaces/t_181a35ff/repo/.hermes/evidence/screenshots/swagger-api-docs.png
  • /home/ubuntu/.hermes/kanban/boards/couchbase-examples/workspaces/t_181a35ff/repo/.hermes/evidence/screenshots/api-smoke-airport.png
  • /home/ubuntu/.hermes/kanban/boards/couchbase-examples/workspaces/t_181a35ff/repo/.hermes/evidence/video/ui-walkthrough.webm

Existing dependency PR context

Risk notes

  • Rails 8 is a major framework update; this PR includes only the minimum app/spec compatibility changes needed for the existing validation surface.
  • json < 3.0 is intentionally constraint-limited to preserve current rswag/json-schema compatibility. It can be revisited once that stack supports json 3.x.
  • Gemfile.lock is ignored by this repository and was not committed, preserving the repository's existing lockfile convention.

Rollback

Revert this PR to restore the previous Rails constraint, remove the json compatibility pin, and return the Swagger/API compatibility changes to their prior behavior.

Hermes task

Kanban task: t_181a35ff

Update the Rails dependency constraint to 8.1.3.1 and pin json below 3.0 for current rswag/json-schema compatibility. Adjust Swagger request specs and generated docs so the full request-suite validation remains stable on Rails 8.
@dex-the-ai
dex-the-ai requested a review from shyam-cb September 11, 2026 18:31
@ejscribner ejscribner closed this Sep 11, 2026
@ejscribner ejscribner reopened this Sep 11, 2026
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