Skip to content

Task: Release Candidate v2.3.1#212

Merged
jonrandahl merged 55 commits intopreprodfrom
dev
Feb 23, 2026
Merged

Task: Release Candidate v2.3.1#212
jonrandahl merged 55 commits intopreprodfrom
dev

Conversation

@jonrandahl
Copy link
Contributor

This is a release PR, so the code doesn't need review, only the approval of the following updates.

Use git merge --ff-only if possible
Step 1: Clone the repository or update your local repository with the the latest changes currently on the target branch
git pull origin [target]
Step 2: Switch to the target branch for the pull request
git checkout [target]
Step 3: Merge the primary branch into the target branch
git merge --ff-only [primary]
Step 4: Push the changes to the remote
git push -u origin [target]

What's changed for v2.3.1 - 2026-02

Added

  • Added test coverage reporting with SimpleCov and a coverage Makefile target.
    #207

Changed

  • Upgraded 'qonsole-rails' gem to include latest accessibility updates
    v2.4.2
  • Upgraded rubocop and updated linting configuration.
    #208
  • Bumped development tooling: byebug, solargraph, and ruby-lsp.
    #208
  • Bumped runtime libraries including jquery-rails, puma, and Rails for
    compatibility and stability.
    #201
  • Refactored Sentry initialisation and updated logger configuration.
  • Unified Makefile targets and modernised build behaviour.
  • Updated asset pipeline precompile messaging.
  • Reconciled divergent branches and consolidated dependency updates.
    #206

Fixed

  • Handled non-zero exit codes from bundle outdated during dependency checks.
  • Updated git hooks to improve pre-commit / pre-push workflow.
  • Corrected exception message wording and improved error logging.
  • Fixed hooks API SERVICE URL default value.

Security

  • Updated several third-party libraries to address security and compatibility
    issues.

bogdanadrianmarc and others added 30 commits October 1, 2024 12:41
Release v1.8.0 to Production
This PR significantly enhances the application by refining the
structured JSON logging, introduces test processes in git hooks,
updating dependencies, and improving the overall code quality. The
modifications are structured to improve observability, enforce testing
robustness before operations, and ensure alignment with the latest
versions of core libraries.

## Changes

- Integrated logging module for centralized logging functionality across
the application.
- Refines the structured JSON logging for improved logging clarity and
consistency.
- Refactored git hooks for better handling of test processes during
commits and pushes.
- Updated Rubocop configuration, including relaxing some style checks
and adding more exclusions.
- Modified the ApplicationController to include response logging and
error handling enhancements.
- Updated dependencies across the board, including Rails upgrade to
version 8.0.2.

## Impact

- Logging is now more structured and consistent, improving system
observability.
- Behavior of error logs and notifications is more robust and
informative, especially in error handling scenarios.
- Commits and pushes now better ensure that all relevant tests pass,
reducing the risk of integration issues.
- Rails and other dependencies have been brought up to their latest
stable versions, offering performance improvements and new features.
- Performance implications appear positive due to the streamlined
logging and updated dependencies.
This pull request introduces several enhancements and optimizations
across the codebase, focusing on Docker configuration, environment
handling, dependency updates, and logging improvements. The most
significant changes include refactoring the `Dockerfile` for better
build efficiency, introducing an `EnvironmentHelper` module to
dynamically display the current environment in the UI, updating Ruby and
Alpine versions, and improving logging in the `entrypoint.sh` script.

This update will also pull in the latest version of the Common Styles
gem which contains the updated Google Tag ID changes specific to [ticket
154](epimorphics/hmlr-linked-data#154)

### Docker and Build Configuration:
* Refactored `Dockerfile` to optimize build efficiency by introducing
multi-stage builds, defaulting environment variables
(`RUBY_VERSION=3.4.4`, `ALPINE_VERSION=3.22`, `BUNDLER_VERSION=2.6.9`),
and refining network settings. Added caching improvements with `apk add
--no-cache`.
[[1]](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L1-R57)
[[2]](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L59-R80)
* Updated `Makefile` to align with new Docker defaults, including
`RUN_VARS` for container execution options.
[[1]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52L4-R4)
[[2]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R14)
[[3]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52L83-R84)

### Environment Handling:
* Introduced `EnvironmentHelper` module to dynamically display the
current environment in the UI, defaulting to "development" if not set.
Integrated this helper into multiple views (`app/views/doc`,
`app/views/landing`, and `app/views/exceptions`).
[[1]](diffhunk://#diff-78ca57c006755fb71c083c7dd3f78c6edacb06d2cf21c28d1cf4955b804d7cd7R1-R29)
[[2]](diffhunk://#diff-41c5a9a1004b81a734ac1449bcde79539f9b2b54a5dede1e3f1d025508de27ceR1-R2)
[[3]](diffhunk://#diff-a07e1491b7bc80bf2a86a3505063c640f2104f15f234f056b3b9969b59fb7a4fR2)
[[4]](diffhunk://#diff-765ffe3e11c070073fb5ab0bc40853d8bea9cbecc0d107e2e95aa62adc5b32e2R2-R3)
[[5]](diffhunk://#diff-b0ffc1ea36abc27eee7aa8703acced64e4c70427f60189eddff4fa98b7e6c730R1-R2)
[[6]](diffhunk://#diff-b7b0908ecea9d210cac475cb692d898d4690e6ff895693fbebd4b674dc3e517dR3)
[[7]](diffhunk://#diff-ee216474375428c9d1109f0149e3119b6f237fe1feedcd336e9080942d8c8fe9R2-R3)
[[8]](diffhunk://#diff-7132550ef9e811884a567f8df98047375c6967e02e21696964e03317480f1d80R1-R2)

### Dependency Updates:
* Updated Ruby version to `3.4.4` in `.ruby-version` and `Dockerfile` to
ensure compatibility and performance.
[[1]](diffhunk://#diff-1bdb3279c7718f7037156f83c80eb81c58d37b286e027219e055b76249082264L1-R1)
[[2]](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L1-R57)
* Updated Alpine version to `3.22` in `Makefile` and `Dockerfile`.
(F6b869d0L1,
[DockerfileL1-R57](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L1-R57))

### Logging Improvements:
* Enhanced logging in `entrypoint.sh` by adding checks for
`SENTRY_API_KEY`, `API_SERVICE_URL`, and `RAILS_RELATIVE_URL_ROOT`
environment variables, providing better operational clarity.

### Codebase Enhancements:
* Introduced helper methods in `EnvironmentHelper` to display
environment-specific labels and titles in the UI.
* Updated `CHANGELOG.md` to reflect new features and optimizations in
version `2.1.1`.
This pull request introduces several improvements across documentation,
development tooling, automation scripts, and configuration files. The
most notable changes include enhanced documentation for git hooks,
improved automation logic to skip checks for markdown-only commits,
updates to the Makefile for better asset and Docker management, and
dependency upgrades for development tools and gems.

**Automation and Developer Tooling Improvements:**

* Added a comprehensive `.githooks/README.md` to document the setup and
usage of git hooks, including instructions for skipping hooks and
branch-specific exclusions.
* Updated `.githooks/pre-push` to automatically skip checks when only
markdown files are staged, reducing unnecessary build and test runs for
documentation-only changes.
* Refined Docker build and run logic in `.githooks/pre-push` to use
Makefile targets for container management and improved wait logic,
replacing manual sleep and stop commands with `make run` and `make
stop`.

**Makefile and Build System Enhancements:**

* Major Makefile refactor: improved asset handling, streamlined clean
commands, added new targets (`forceclean`, `name`, `version`), and
updated environment variable management for Docker and Rails.
[[1]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52L13-R66)
[[2]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R76-R114)
[[3]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R125-R134)
[[4]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52L1-R1)
* Updated default API service URL and asset precompilation commands for
consistency and reliability.

**Dependency and Configuration Updates:**

* Added new development gems (`ruby-lsp`, `solargraph`, and
`meta_request`) to the `Gemfile` for enhanced editor integration and
Rails debugging.
* Corrected `.rubocop.yml` plugin configuration for compatibility with
the latest RuboCop releases.
* Upgraded Rails and related gems, synchronized dependency constraints,
and bumped project version to `2.2.1`.
[[1]](diffhunk://#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR8-R40)
[[2]](diffhunk://#diff-0518574840e0c8e03c05369a2f262cf286de4b57955e6408973a1b8bbf7c3effL5-R5)

**Documentation and Test Improvements:**

* Fixed links to the Price Paid Data detailed documentation in both
English and Welsh landing pages.
[[1]](diffhunk://#diff-cb7ff03a7044630f3d2ef45c8d84cd816f2d9a26b34b8e87648e9f319a502253L96-R96)
[[2]](diffhunk://#diff-1cf2f02b0fcf12c0b8f0844d7ed44e0dcc1fdd59f6c4bc0f42ed54568bc373e8L95-R95)
* Updated integration tests to include language parameters for
documentation and landing page routes, ensuring correct rendering and
version visibility.
[[1]](diffhunk://#diff-08b0145efb4f579d6a0a1335615c35efb1e9e522b842cdeed503ee940d173be5L18-R23)
[[2]](diffhunk://#diff-9a1f073cc20b371ce6406f129fe4578a24c6721195b735f1b55a28fb9c8a987fL20-R20)
Due to changes in the http client, faraday, the Qonsole data is not being parsed correctly and preventing the qonsole editor to return the expected JSON format response. 

This hotfix locks the Qonsole gem to a working version.

Further investigation will be conducted via ticket [85](epimorphics/qonsole-rails#85)
- Switches to an older version of a key HTTP client and its adapters
- Updates dependencies to maintain compatibility with previous major version
- Adjusts related dependencies for request middleware and connections
- Updates a dependent module to match new requirement constraints
- Adds and removes associated supporting gems as needed
- Updates patch number to reflect latest fixes
- Prepares for release with recent adjustments
Due to changes in the http client, faraday, the Qonsole data is not
being parsed correctly and preventing the qonsole editor to return the
expected JSON format response.

This hotfix locks the Qonsole gem to a working version.

Further investigation will be conducted via ticket
[85](epimorphics/qonsole-rails#85)
This pull request updates the application to version 2.2.2 and focuses
on resolving a JSON response issue by upgrading a dependency, as well as
improving the consistency of font sizing in the SPARQL Qonsole
interface. The most important changes are grouped below:

**Dependency and Version Updates**

* Updated to use the latest `Qonsole-rails` gem (v2.2.1) to fix a JSON
response issue in the SPARQL Qonsole. (`CHANGELOG.md`)
* Bumped the application version to 2.2.2 in `app/lib/version.rb`.

**UI Consistency Improvements**

* Added a CSS variable for the base font size and applied it to headings
and labels in the Qonsole interface for improved consistency.
(`app/assets/stylesheets/application.scss`)
This pull request prepares a new minor release (v2.2.4), with fixes for
the following tickets:

- #163 
- #194

This is a release PR, so just needs sign-off.

Use `git merge --ff-only` if possible.

All changes can be found in the
[CHANGELOG](https://github.com/epimorphics/lr-landing/blob/8327372bd1b6d4ac8380876b8dc093f8475e493a/CHANGELOG.md)
## What's Changed
- Migrated from `sass-rails` to `dartsass-sprockets` (Dart Sass) to keep
CSS compilation supported long term
[#158](#158)
- Replaced `bootstrap-sass` with Bootstrap framework dependencies;
refreshed asset loading order for better performance
- Enabled Autoprefixer source maps for clearer CSS debugging in
development
- Simplified Rails framework loading and Sass configuration for the new
build toolchain

**Full Changelog:**
v2.2.4...v2.3.0
- updates text in error pages for clarity.
- expands acronyms for even more clarity.
- implements common utilities for git hooks
- refactors pre-commit hook for code linting with rubocop
- refactors post-commit hook for running tests
- refactors pre-push hook for building and running docker images
- automates testing and build processes
- Uses `ENV.fetch` for `SENTRY_API_KEY` to handle potential nil values.
- Removes redundant conditional check for `SENTRY_API_KEY`.
- Ensures Sentry is always initialised as dependent on API Key (DSN)
- Enhances error logging for improved debugging.
- Adjusts resource usage logging for development environments.
- Standardises rendering of error pages by removing underscores.
- Uses file existence check for yarn instead of command availability.
- Adds flag to bundle outdated to check only explicit dependencies.
- Refines the message displayed during asset precompilation for clarity.
- updates gem dependencies to their latest compatible versions
- upgrades puma and puma-metrics gems.
jonrandahl and others added 25 commits January 22, 2026 14:16
- upgrades jquery-rails dependency to the latest patch version
- updates sentry-rails and sentry-ruby gems
- ensures compatibility with railties version greater than 5.2.0
- Updates to the new Sentry SDK logger configuration.
- upgrades development gems and dependencies to their new versions
- uses `||:` to ignore the exit code of the command.
- upgrades byebug gem to version 13.0.0
- ensures compatibility with reline gem
- updates the rubocop-rails gem to the latest minor version.
- adds `all` target to the list of .PHONY targets to ensure it always runs
- adds new make targets for coverage, local development, and versioning
- updates dependency checking to be informational
- enhances asset compilation and clean-up processes
- modifies the handling of outdated bundler dependencies to prevent errors during builds
- provides a means to view test coverage reports in a browser
- improves help message output with aws profile status
- corrects the API service URL to point to the data-api service
- ensures the pre-push hook uses the correct endpoint for data access
- removed targetRubyVersion as it's set from the .ruby-version file
- reordered rules to follow current alphanumeric sorting conventions
- adds specific enforced style to ensure rubocop adheres to default
- introduces simplecov for test coverage reporting
- configures simplecov to exclude certain directories
- adds coverage target to the makefile to allow ease of report view

Resolves #207
- Upgrades development and runtime dependencies for improved compatibility and stability.
- Refactors Sentry initialisation and updates logger configuration.
- Modernises the build process and unifies Makefile targets.
- Adds test coverage reporting with SimpleCov.
- Handles non-zero exit codes during dependency checks.
- Improves git hooks for pre-commit/pre-push workflow.
- Fixes hooks API service URL.
- Addresses security and compatibility issues in third-party libraries.
- Reconciles divergent branches and consolidates dependency updates (#206).
- Adds test coverage reporting (#207).
- updates ffi to v1.17.3 and haml to v7.2.0
- removes unused bootstrap and modernizr dependencies.
- updates temple to v0.10.4 and prism to v1.9.0
- Uses a forked version of jquery-datatables-rails.
- Includes a fix not yet merged into the main repo.
- Avoids potential issues related to unmerged changes.
- adds the jquery-datatables-rails gem fork at version 3.5.0.
- aligns dependency versions for lr_common_styles version 3.0.1 to ensure compatibility.
- upgrades qonsole_rails to version 2.4.1.
- Updates google-protobuf, rbs, rubocop, and sass-embedded dependencies
Small maintenance changes: dependency bumps (including internal gems),
test coverage, Makefile/build improvements, Sentry/logging tweaks, and
minor bug fixes. See `CHANGELOG.md` for full details.

What changed:
- Added SimpleCov-based test coverage and a `coverage` Makefile target.
  [#207](#207)
- Reconciled divergent branches and consolidated dependency updates.
  [#206](#206)
- Upgraded `rubocop` and adjusted lint configuration.
  [#208](#208)
- Bumped development tooling (`byebug`, `solargraph`, `ruby-lsp`) and
runtime libs (`jquery-rails`, `puma`, Rails).
  [#201](#201)
- Updated Epimorphics internal gem versions to consume recent
improvements.
- Refactored Sentry initialisation and updated logger configuration.
- Improved asset pipeline messaging and Makefile targets.
- Fixed `bundle outdated` non-zero exit handling, git hooks, and
exception message wording.

Testing / Checklist:
- [x] Ran test suite locally
- [x] Viewed coverage report via `make coverage`
- [x] Verified app boots locally and key pages render
- [x] Confirmed `bundle install` and asset precompile run without
regressions
- removed development gem due to conflicting dependencies
- Bump minor and patch versions for stability and security
- Align with latest Rack 3.2.x for better compatibility
- Remove unused middleware no longer compatible with Rack 3
- Make dependency-only updates; no app code changes
- Keep runtime behaviour unchanged and reduce audit noise
- Note upgrade of `qonsole-rails` gem to v2.4.2 for a11y fixes
- Surface accessibility improvements in dependency notes
- Support dependency status audit by documenting bump
Update Ruby dependencies to improve accessibility, stability, and
compatibility; removed an obsolete development dependency to reduce
maintenance overhead.

## What's changed:
- Upgraded the `qonsole_rails` dependency, bringing in the latest
accessibility fixes to improve usability
- Updated multiple libraries to their latest patch versions to maintain
compatibility and reduce security risk
- Removed an unmaintained development tool that relied on outdated
middleware, avoiding potential Rack conflicts
- Updated release notes to record the accessibility-focused upgrade
- Fix spacing typo in 400 error message
- Replace HPI/PPD acronyms with full names in 403 message
- Prepare 2.3.1 notes to support upcoming release
Prepared the 2.3.1 patch release by updating the version, adding release
notes, and fixing user-facing error page wording for clarity and
consistency.

## What's changed:
- Bumped application version to 2.3.1 for a patch release
- Corrected error page text and expanded product names in messages
- Documented the 2.3.1 release notes in the changelog
@jonrandahl jonrandahl self-assigned this Feb 23, 2026
Copy link
Contributor

@DanielCouzens DanielCouzens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@jonrandahl jonrandahl merged commit 3f4a6b1 into preprod Feb 23, 2026
2 checks passed
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.

3 participants