Skip to content

Reconcile divergent branches#206

Merged
jonrandahl merged 61 commits intodevfrom
prod
Jan 14, 2026
Merged

Reconcile divergent branches#206
jonrandahl merged 61 commits intodevfrom
prod

Conversation

@jonrandahl
Copy link
Contributor

No description provided.

jonrandahl and others added 30 commits November 27, 2023 14:18
to reflect the updated date as well as the latest internal change
also includes permanent redirections for outdated variances of the ppd doc path value
first test verifies older link redirects permanently, second test verifies redirection also is permanent, third test ensures the link responds with success status (200), and fourth test ensures the page's opening content is what's expected
all redirections will now be handled by the proxy instead.
in order to maintain all proxy settings currently in place this no longer changes the route for the `ppd_doc_path` variable
Updates to both the english and welsh index files to set the links to an actual path instead of relying on a configuration variable.
Revised to reflect the latest approach for the ppd documentation link
rename `deve-infrasctructure` branch to `dev` following branch cleanup
to reflect the updated date as well as the latest internal change
Release v1.8.0 to Preprod
Release v1.8.0 to Production
Merge v2.0.1 into Preprod
This reverts commit 03efce4, reversing
changes made to 5975170.
Task: Release Candidate 2.0.4
jonrandahl and others added 26 commits June 5, 2025 08:30
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 updates to improve Docker
configuration, enhance logging, update dependencies, and provide better
visibility of the current environment in the UI. Key changes include
refactoring the `Dockerfile` for efficiency, adding environment-specific
UI elements, updating Ruby and Alpine versions, and refining logging for
operational clarity.

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 Configuration Updates:
* Refactored `Dockerfile` to optimize build efficiency by introducing
multi-stage builds, default environment variables, and refined network
settings. Added `RUN_VARS` for dynamic Docker run options.
[[1]](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L1-R57)
[[2]](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L59-R80)
[[3]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52L4-R4)
[[4]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R14)
[[5]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52L83-R84)
* Updated `.githooks/pre-push` to include `RUN_VARS` for Docker
commands.
[[1]](diffhunk://#diff-d98b367aa518731b4158dd028ca94d051dfe32fefe54c4affde19f591ebc5fb6R4)
[[2]](diffhunk://#diff-d98b367aa518731b4158dd028ca94d051dfe32fefe54c4affde19f591ebc5fb6L32-R33)

### Environment Visibility Enhancements:
* Added `EnvironmentHelper` module to dynamically display the current
environment in the UI, defaulting to "development" when not set.
Integrated environment-specific titles across multiple views.
[[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`, `Dockerfile`, and
`Makefile`. Updated Alpine version to `3.22`.
[[1]](diffhunk://#diff-1bdb3279c7718f7037156f83c80eb81c58d37b286e027219e055b76249082264L1-R1)
[[2]](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L1-R57)
[[3]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52L4-R4)

### Logging Enhancements:
* Improved logging in `entrypoint.sh` by adding checks for environment
variables (`SENTRY_API_KEY`, `RAILS_RELATIVE_URL_ROOT`) and logging
their statuses for better operational clarity.

### Miscellaneous Updates:
* Updated versioning in `app/lib/version.rb` to reflect a patch release
(`2.1.1`).
* Fixed links in Welsh and English landing pages to use named routes
instead of hardcoded paths for better maintainability.
[[1]](diffhunk://#diff-cb7ff03a7044630f3d2ef45c8d84cd816f2d9a26b34b8e87648e9f319a502253L96-R96)
[[2]](diffhunk://#diff-cb7ff03a7044630f3d2ef45c8d84cd816f2d9a26b34b8e87648e9f319a502253L117-R117)
[[3]](diffhunk://#diff-1cf2f02b0fcf12c0b8f0844d7ed44e0dcc1fdd59f6c4bc0f42ed54568bc373e8L95-R95)
[[4]](diffhunk://#diff-1cf2f02b0fcf12c0b8f0844d7ed44e0dcc1fdd59f6c4bc0f42ed54568bc373e8L116-R116)
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 focused on developer
workflow, automation, and project stability. The most notable changes
include enhanced git hook automation and documentation, improved Docker
and Makefile handling, updates to development dependencies, and minor
refactoring for consistency and maintainability.

**Developer workflow and automation:**

* Added a comprehensive `.githooks/README.md` documenting automated git
hooks, including pre-commit, post-commit, and pre-push hooks, with
instructions for setup and skip options.
* Updated `.githooks/pre-push` to automatically skip checks when only
markdown files are staged, streamlining pushes for documentation
changes.
* Refined Docker build and run logic in `.githooks/pre-push` to use
`make name` and `make stop`, improving reliability and consistency of
container management.

**Build and dependency management:**

* Overhauled the `Makefile` to simplify asset management, add new
targets (`forceclean`, `name`, `version`), and improve environment
variable handling for Docker and Rails, supporting easier local
development and CI.
[[1]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52L13-R66)
[[2]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R76-R114)
[[3]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R125-R134)
* Updated development dependencies in `Gemfile` by adding `ruby-lsp`,
`solargraph`, and a direct reference to `meta_request` for Rails
devtools, enhancing code intelligence and debugging.

**Versioning and configuration:**

* Incremented the version to `2.1.2` in `app/lib/version.rb` and
documented all major changes in `CHANGELOG.md`, including security and
compatibility updates.
[[1]](diffhunk://#diff-0518574840e0c8e03c05369a2f262cf286de4b57955e6408973a1b8bbf7c3effL5-R5)
[[2]](diffhunk://#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR8-R39)
* Fixed the plugin configuration syntax in `.rubocop.yml` for
compatibility with newer RuboCop releases.

**Testing and code quality:**

* Refactored integration tests to consistently include language
parameters in requests, improving test coverage and reliability.
[[1]](diffhunk://#diff-08b0145efb4f579d6a0a1335615c35efb1e9e522b842cdeed503ee940d173be5L18-R23)
[[2]](diffhunk://#diff-9a1f073cc20b371ce6406f129fe4578a24c6721195b735f1b55a28fb9c8a987fL20-R20)
This pull request fixes an incorrect link to the Price Paid Data (PPD)
Detailed Documentation throughout the application. The link now
correctly points to `/app/doc/ppd` in both the English and Welsh landing
pages, and the change is documented in the changelog.

Documentation link update:

* Updated the PPD Detailed Documentation link in the English landing
page partial (`app/views/landing/_index_en.html.haml`) to point directly
to `/app/doc/ppd`.
* Updated the PPD Detailed Documentation link in the Welsh landing page
partial (`app/views/landing/_index_cy.html.haml`) to point directly to
`/app/doc/ppd`.

Changelog update:

* Added a changelog entry noting the resolution of the incorrect PPD
documentation link. (`CHANGELOG.md`)
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)
#185)

This pull request updates the project to version 2.2.2 and includes
improvements related to the SPARQL Qonsole integration, style
consistency, and dependency management. The most important changes are
grouped below.

**Dependency and Version Updates**
* Updated the `Qonsole-rails` gem to v2.2.1 to resolve a JSON response
issue, and bumped the project version to 2.2.2 in `app/lib/version.rb`.
[[1]](diffhunk://#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR8-R12)
[[2]](diffhunk://#diff-0518574840e0c8e03c05369a2f262cf286de4b57955e6408973a1b8bbf7c3effL6-R6)

**Styling Enhancements**
* Introduced a CSS variable for the base font size and applied it to
Qonsole headers and labels for consistent sizing in
`app/assets/stylesheets/application.scss`.
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`)
Releases 2.2.3 to pre prod

- Updates accessibility statements in English and Welsh
[180](#180)
Fixes Accessibility statement
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.

## What's changed

### Added

- Benchmarking and profiling gems for performance analysis
- System tools and hooks for resource and memory usage introspection

### Changed

- Upgraded rack, Rails, and core dependencies to resolve vulnerabilities
and enhance stability
- Standardised logging configuration for development environment
- Clarified exception rescue and error reporting logic
- Updated text for [SPARQL query page
link](#163)

### Fixed

- Prevented exceptions in metrics emission by handling missing status in
metrics reporting subscriber

### Removed

- Removed outdated timezone preservation setting to ensure compatibility
with newer framework versions

### Docs

- Updated changelog to reflect removal and reasoning
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
## 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
@jonrandahl jonrandahl merged commit 3b5e347 into dev Jan 14, 2026
2 checks passed
jonrandahl added a commit that referenced this pull request Feb 2, 2026
- 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).
@jonrandahl jonrandahl mentioned this pull request Feb 2, 2026
4 tasks
jonrandahl added a commit that referenced this pull request Feb 4, 2026
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
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