From 2b5e6137193d9d8a179b4ad6063cec34a485b27d Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Fri, 7 Oct 2022 15:36:38 +0100 Subject: [PATCH 01/32] feat: Updated accessibility statement Updated accessibility statement to reflect the adjusted release dates for both the expected Qonsole update and preparation timestamp alongside the removal of the deadlines for test revisions. Also includes minor copy changes to resolve typos/punctuation issues. --- app/views/doc/_accessibility_en.html.haml | 37 +++++++++-------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/app/views/doc/_accessibility_en.html.haml b/app/views/doc/_accessibility_en.html.haml index 520eed1..b3db500 100644 --- a/app/views/doc/_accessibility_en.html.haml +++ b/app/views/doc/_accessibility_en.html.haml @@ -22,7 +22,7 @@ listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver) %p - We’ve also made the website text as simple as possible to understand. + We've also made the website text as simple as possible to understand. %p = link_to('AbilityNet', 'https://mcmw.abilitynet.org.uk/') @@ -45,35 +45,28 @@ Background and foreground colours do not have sufficient contrast ratio %br This fails WCAG 1.4.3 Contrast (Level AA) - %br - Compatibility work to be completed by end of calendar year 2020 %li Some input fields do not have associated labels in HTML %br This fails WCAG 3.3.2 Labels or Instructions (Level A) - %br - Compatibility work to be completed by end of calendar year 2020 %li Lists do not contain only `li` elements and script supporting elements - (`script and `template`) + (`script` and `template`) %br This fails WCAG 4.1.2 Name, Role, Value (Level A) - %br - Compatibility work to be completed by end of calendar year 2020 %li User cannot progress past main text area using tab key alone %br This fails WCAG 2.1.2 No Keyboard Trap - %br - Compatibility work to be completed by end of calendar year 2020 %p - We are working on an update to the SPARQL Qonsole to resolve - these issues and make the SPARQL Qonsole WCAG 2.1 compliant. - We expect this update to be completed by the end of December 2020. + The SPARQL Qonsole is a technical interface supporting visual query + development. We are working on an update to the SPARQL Qonsole to generally + improve accessibility. We expect this update to be completed by the end of + March 2023. %h2 - What to do if you can’t access parts of this website + What to do if you can't access parts of this website %p If you need information on this website in a different format like accessible PDF, @@ -82,22 +75,22 @@ = mail_to(Rails.application.config.contact_email_address) %p - We’ll consider your request and get back to you within five days. + We'll consider your request and get back to you within five days. %h2 Reporting accessibility problems with this website %p - We’re always looking to improve the accessibility of this website. If you - find any problems that aren’t listed on this page or think we’re not meeting + We're always looking to improve the accessibility of this website. If you + find any problems that aren't listed on this page or think we're not meeting the accessibility requirements, contact the Customer Services Centre by: %ul.list.list-bullet %li - telephone – + telephone - = link_to('0300 006 0411', 'tel:+443000060411') %li - post – HM Land Registry Citizen Centre, PO Box 74, Gloucester, GL14 9BB + post - HM Land Registry Citizen Centre, PO Box 74, Gloucester, GL14 9BB %li = link_to('online', 'https://www.gov.uk/guidance/contact-hm-land-registry') @@ -107,7 +100,7 @@ %p The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility - Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how + Regulations 2018 (the ‘accessibility regulations'). If you're not happy with how we respond to your complaint, contact the = succeed '.' do = link_to('Equality Advisory and Support Service (EASS)', 'https://www.equalityadvisoryservice.com/') @@ -128,7 +121,7 @@ = link_to('contact us', 'https://www.gov.uk/guidance/contact-hm-land-registry') %h2 - Technical information about this website’s accessibility + Technical information about this website's accessibility %p HM Land Registry is committed to making its website accessible, in accordance with @@ -149,4 +142,4 @@ = link_to('landregistry.data.gov.uk', 'https://landregistry.data.gov.uk') %p - This statement was prepared on 22 Sept 2020. + This statement was prepared on 7 October 2022. From 09941e296ff64cde5035f687a25a054eafb1f8cd Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Fri, 7 Oct 2022 15:39:00 +0100 Subject: [PATCH 02/32] style: Updated Welsh translation to improve punctuation While waiting for the approved translation for the latest update I've updated the copy to improve various characters to be safer to use online. --- app/views/doc/_accessibility_cy.html.haml | 60 ++++++++++------------- 1 file changed, 26 insertions(+), 34 deletions(-) diff --git a/app/views/doc/_accessibility_cy.html.haml b/app/views/doc/_accessibility_cy.html.haml index 13e49fb..7d9539a 100644 --- a/app/views/doc/_accessibility_cy.html.haml +++ b/app/views/doc/_accessibility_cy.html.haml @@ -4,76 +4,68 @@ Dalwyd, adeiladwr adroddiadau safonol a Mynegai Prisiau Tai y DU %p - Cofrestrfa Tir EM sy’n rhedeg y wefan hon. Rydym am i gynifer o bobl â - phosibl allu defnyddio’r wefan hon. Er enghraifft, mae hynny’n golygu y + Cofrestrfa Tir EM sy'n rhedeg y wefan hon. Rydym am i gynifer o bobl â + phosibl allu defnyddio'r wefan hon. Er enghraifft, mae hynny'n golygu y dylech chi allu: %ul.list.list-bullet %li newid lliwiau, lefelau cyferbyniad a ffontiau %li - chwyddo mewn hyd at 200% heb i’r testun lithro oddi ar y sgrin + chwyddo mewn hyd at 200% heb i'r testun lithro oddi ar y sgrin %li - llywio’r rhan fwyaf o’r wefan gan ddefnyddio bysellfwrdd yn unig + llywio'r rhan fwyaf o'r wefan gan ddefnyddio bysellfwrdd yn unig %li - llywio’r rhan fwyaf o’r wefan gan ddefnyddio meddalwedd adnabod llais + llywio'r rhan fwyaf o'r wefan gan ddefnyddio meddalwedd adnabod llais %li - gwrando ar y rhan fwyaf o’r wefan gan ddefnyddio darllenydd sgrin (gan + gwrando ar y rhan fwyaf o'r wefan gan ddefnyddio darllenydd sgrin (gan gynnwys y fersiynau diweddaraf o JAWS, NVDA a VoiceOver) %p - Rydym hefyd wedi gwneud testun y wefan mor syml â phosibl i’w ddeall. + Rydym hefyd wedi gwneud testun y wefan mor syml â phosibl i'w ddeall. %p Mae gan = link_to('AbilityNet', 'https://mcmw.abilitynet.org.uk/') - gyngor ar wneud eich dyfais yn haws i’w defnyddio os oes gennych anabledd. + gyngor ar wneud eich dyfais yn haws i'w defnyddio os oes gennych anabledd. %h2 - Pa mor hygyrch yw’r wefan hon + Pa mor hygyrch yw'r wefan hon %p - Rydym yn credu bod y rhan fwyaf o’r wefan hon yn cydymffurfio â gofynion - safon AA Canllawiau Hygyrchedd Cynnwys Gwe fersiwn 2.1. Ni ddylai’r + Rydym yn credu bod y rhan fwyaf o'r wefan hon yn cydymffurfio â gofynion + safon AA Canllawiau Hygyrchedd Cynnwys Gwe fersiwn 2.1. Ni ddylai'r archwiliwr Data Pris a Dalwyd, yr adeiladwr adroddiadau safonol, a Mynegai Prisiau Tai y DU achosi unrhyw rwystrau i ddefnyddwyr sydd ag anableddau. - Os ydych yn cael problemau yn cyrchu’r adrannau hyn, rhowch wybod inni. + Os ydych yn cael problemau yn cyrchu'r adrannau hyn, rhowch wybod inni. %p - Rydym yn gwybod nad yw’r SPARQL Qonsole ar y wefan hon yn hollol hygyrch. + Rydym yn gwybod nad yw'r SPARQL Qonsole ar y wefan hon yn hollol hygyrch. Yn arbennig, nodwn y problemau canlynol: %ul.list.list-bullet %li Nid oes cymhareb cyferbyniad ddigonol gan liwiau cefndir a blaendir %br Mae hyn yn methu WCAG 1.4.3 Cyferbyniad (Lefel AA) - %br - Gwaith cydweddu i’w gwblhau erbyn diwedd y flwyddyn galendr 2020 %li Nid oes gan rai meysydd mewnbwn labeli cysylltiedig mewn HTML %br Mae hyn yn methu WCAG 3.3.2 Labeli neu Gyfarwyddiadau (Lefel A) - %br - Gwaith cydweddu i’w gwblhau erbyn diwedd y flwyddyn galendr 2020 %li Nid yw rhestrau yn cynnwys elfennau `li` yn unig ac elfennau cynnal sgript (`sgript` a `thempled`) %br Mae hyn yn methu WCAG 4.1.2 Enw, Rôl, Gwerth (Lefel A) - %br - Gwaith cydweddu i’w gwblhau erbyn diwedd y flwyddyn galendr 2020 %li - Ni all defnyddwyr fynd ymhellach na’r ardal prif destun trwy ddefnyddio’r allwedd tab yn unig + Ni all defnyddwyr fynd ymhellach na'r ardal prif destun trwy ddefnyddio'r allwedd tab yn unig %br Mae hyn yn methu WCAG 2.1.2 Dim Trap Bysellfwrdd - %br - Gwaith cydweddu i’w gwblhau erbyn diwedd y flwyddyn galendr 2020 %p Rydym yn gweithio ar ddiweddariad i SPARQL Qonsole i ddatrys y problemau hyn a sicrhau bod y SPARQL Qonsole yn cydymffurfio â WCAG 2.1. Rydym yn - disgwyl i’r diweddariad hwn gael ei gwblhau erbyn diwedd Rhagfyr 2020. + disgwyl i'r diweddariad hwn gael ei gwblhau erbyn diwedd Rhagfyr 2020. %h2 - Yr hyn i’w wneud os na allwch gyrchu rhannau o’r wefan hon + Yr hyn i'w wneud os na allwch gyrchu rhannau o'r wefan hon %p Os oes angen gwybodaeth sydd ar y wefan hon arnoch ar ffurf wahanol fel PDF @@ -85,20 +77,20 @@ Byddwn yn ystyried eich cais ac yn dod yn ôl atoch o fewn 5 diwrnod. %h2 - Rhoi gwybod am broblemau hygyrchedd gyda’r wefan hon + Rhoi gwybod am broblemau hygyrchedd gyda'r wefan hon %p Rydym bob amser yn ceisio gwella hygyrchedd y wefan hon. Os ydych yn dod o - hyd i unrhyw broblemau nad ydynt wedi eu rhestru ar y dudalen hon neu’n - credu nad ydym yn bodloni’r gofynion hygyrchedd, cysylltwch â’r Ganolfan + hyd i unrhyw broblemau nad ydynt wedi eu rhestru ar y dudalen hon neu'n + credu nad ydym yn bodloni'r gofynion hygyrchedd, cysylltwch â'r Ganolfan Gwasanaethau Cwsmeriaid: %ul.list.list-bullet %li - trwy’r ffôn – + trwy'r ffôn - = link_to('0300 006 0422', 'tel:+443000060422') %li - trwy’r post – HM Land Registry Citizen Centre, PO Box 74, Gloucester, GL14 9BB + trwy'r post - HM Land Registry Citizen Centre, PO Box 74, Gloucester, GL14 9BB %li = link_to('ar-lein', 'https://www.gov.uk/guidance/contact-hm-land-registry.cy') @@ -106,15 +98,15 @@ Gweithdrefn orfodi %p - Mae’r Comisiwn Cydraddoldeb a Hawliau Dynol yn gyfrifol am orfodi + Mae'r Comisiwn Cydraddoldeb a Hawliau Dynol yn gyfrifol am orfodi Rheoliadau Hygyrchedd Cyrff Sector Cyhoeddus (Gwefannau a Chymwysiadau - Symudol) (Rhif 2) 2018 (y ‘rheoliadau hygyrchedd’). Os nad ydych yn hapus - â’r modd yr ydym yn ymateb i’ch cwyn, cysylltwch â’r + Symudol) (Rhif 2) 2018 (y 'rheoliadau hygyrchedd'). Os nad ydych yn hapus + â'r modd yr ydym yn ymateb i'ch cwyn, cysylltwch â'r = succeed '.' do = link_to('Gwasanaeth Cynghori a Chymorth Cydraddoldeb', 'http://eass-ws.custhelp.com/app/home') %h2 - Cysylltu â ni dros y ffôn neu ymweld â ni’n bersonol + Cysylltu â ni dros y ffôn neu ymweld â ni'n bersonol %p Rydym yn darparu gwasanaeth cyfnewid testun i bobl fyddar, sydd â nam ar y @@ -135,7 +127,7 @@ %p Mae Cofrestrfa Tir EM wedi ymrwymo i wneud ei gwefan yn hygyrch, yn unol â Rheoliadau Hygyrchedd Cyrff Sector Cyhoeddus (Gwefannau a Chymwysiadau - Symudol) (Rhif 2) 2018. Mae’r wefan hon yn cydymffurfio’n llwyr â safon AA + Symudol) (Rhif 2) 2018. Mae'r wefan hon yn cydymffurfio'n llwyr â safon AA Canllawiau Hygyrchedd Cynnwys Gwe fersiwn 2.1. %h3 From 05a49b13d84d0f841bdc9d083af4e9445bc6f002 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Fri, 7 Oct 2022 15:39:31 +0100 Subject: [PATCH 03/32] docs: Updated changelog and version cadence --- CHANGELOG.md | 32 +++++++++++++++++++------------- app/lib/version.rb | 2 +- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 04662cf..5a28f05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,14 @@ # Change log for HMLR landing page app -This app presents the landing page experience for -landregistry.data.gov.uk, including the SPARQL -Qonsole +This app presents the landing page experience for landregistry.data.gov.uk, +including the SPARQL Qonsole + +## 1.5.8 - 2022-10-07 + +- (Jon) Updated accessibility statement to reflect the adjusted release dates + for both the expected Qonsole update and preparation timestamp alongside the + removal of the deadlines for test revisions. Also includes minor copy changes + to resolve typos/punctuation issues. ## 1.5.7 - 2021-12-01 @@ -51,8 +57,8 @@ Qonsole - WCAG conformance updates, including updating to the upstream `lr_common_styles` -- removed UKHPI documentation, now that this is available from the - UKHPI app itself +- removed UKHPI documentation, now that this is available from the UKHPI app + itself ## 1.2.2 - 2020-07-06 @@ -68,23 +74,23 @@ Qonsole ## 1.1.0 - 2019-12-17 -- Changed minor version number as we've switched to using a - separate Sentry project for this app. +- Changed minor version number as we've switched to using a separate Sentry + project for this app. ## 1.0.7 - 2019-12-16 -- Update qonsole-rails to (hopefully) reduce Sentry noise due to - path issues with error pages. +- Update qonsole-rails to (hopefully) reduce Sentry noise due to path issues + with error pages. ## 1.0.6 - 2019-12-10 -- Remove a reference to an old, now obsolete, dev - server as a target endpoint for Qonsole +- Remove a reference to an old, now obsolete, dev server as a target endpoint + for Qonsole ## 1.0.5 - 2019-12-09 -- Pull in updated `qonsole-rails` to resolve Sentry warning - of unbound variable `e` +- Pull in updated `qonsole-rails` to resolve Sentry warning of unbound variable + `e` ## 2019-11-15 - 1.0.4 diff --git a/app/lib/version.rb b/app/lib/version.rb index 8cc7f1f..a35bece 100644 --- a/app/lib/version.rb +++ b/app/lib/version.rb @@ -3,6 +3,6 @@ module Version MAJOR = 1 MINOR = 5 - REVISION = 7 + REVISION = 8 VERSION = "#{MAJOR}.#{MINOR}.#{REVISION}" end From ed8f94969a940151888a28c77eab5a133c780447 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Fri, 7 Oct 2022 16:22:29 +0100 Subject: [PATCH 04/32] build: Updated Gemfile.lock --- Gemfile.lock | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6d2daf6..a78eb3b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -263,6 +263,7 @@ GEM PLATFORMS x86_64-darwin-17 + x86_64-darwin-21 x86_64-linux DEPENDENCIES @@ -283,4 +284,4 @@ DEPENDENCIES web-console BUNDLED WITH - 2.2.32 + 2.3.13 From 1bcb840dc51e8869419adba93fe8c61199008dfa Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Mon, 10 Oct 2022 14:15:08 +0100 Subject: [PATCH 05/32] feat: Updated Welsh Translation As provided by the client's translations as requested --- app/views/doc/_accessibility_cy.html.haml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/views/doc/_accessibility_cy.html.haml b/app/views/doc/_accessibility_cy.html.haml index 7d9539a..47dcaee 100644 --- a/app/views/doc/_accessibility_cy.html.haml +++ b/app/views/doc/_accessibility_cy.html.haml @@ -60,9 +60,10 @@ Mae hyn yn methu WCAG 2.1.2 Dim Trap Bysellfwrdd %p - Rydym yn gweithio ar ddiweddariad i SPARQL Qonsole i ddatrys y problemau - hyn a sicrhau bod y SPARQL Qonsole yn cydymffurfio â WCAG 2.1. Rydym yn - disgwyl i'r diweddariad hwn gael ei gwblhau erbyn diwedd Rhagfyr 2020. + Rhyngwyneb technegol sy’n cefnogi datblygiad ymholiad gweledol yw’r SPARQL + Qonsole. Rydym yn gweithio ar ddiweddariad i Qonsole SPARQL i wella hygyrchedd + yn gyffredinol. Disgwyliwn i’r diweddariad hwn gael ei gwblhau erbyn diwedd + Mawrth 2023. %h2 Yr hyn i'w wneud os na allwch gyrchu rhannau o'r wefan hon @@ -143,4 +144,4 @@ = link_to('landregistry.data.gov.uk', 'https://landregistry.data.gov.uk') %p - Paratowyd y datganiad hwn ar 30 Medi 2020. + Paratowyd y datganiad hwn ar 7 Hydref 2022. From 90159c41ff489a1cfe815e58cf83486a4d455fc2 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Mon, 10 Oct 2022 16:57:11 +0100 Subject: [PATCH 06/32] docs: Updated Changelog Updated to reflect date of latest changes --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a28f05..5b58599 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ This app presents the landing page experience for landregistry.data.gov.uk, including the SPARQL Qonsole -## 1.5.8 - 2022-10-07 +## 1.5.8 - 2022-10-10 - (Jon) Updated accessibility statement to reflect the adjusted release dates for both the expected Qonsole update and preparation timestamp alongside the From b8c0f03de5f49637432de8206cdfb71f82a2b626 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Tue, 11 Oct 2022 12:08:47 +0100 Subject: [PATCH 07/32] style: Updated special characters to use entity codes Refactored the single quotes, apostrophes, and em-dashes to use the appropriate html entity codes to ensure the presentation of the character was maintained due to differences in language use --- app/views/doc/_accessibility_cy.html.haml | 54 +++++++++++------------ app/views/doc/_accessibility_en.html.haml | 18 ++++---- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/app/views/doc/_accessibility_cy.html.haml b/app/views/doc/_accessibility_cy.html.haml index 47dcaee..2306b30 100644 --- a/app/views/doc/_accessibility_cy.html.haml +++ b/app/views/doc/_accessibility_cy.html.haml @@ -4,42 +4,42 @@ Dalwyd, adeiladwr adroddiadau safonol a Mynegai Prisiau Tai y DU %p - Cofrestrfa Tir EM sy'n rhedeg y wefan hon. Rydym am i gynifer o bobl â - phosibl allu defnyddio'r wefan hon. Er enghraifft, mae hynny'n golygu y + Cofrestrfa Tir EM sy’n rhedeg y wefan hon. Rydym am i gynifer o bobl â + phosibl allu defnyddio’r wefan hon. Er enghraifft, mae hynny’n golygu y dylech chi allu: %ul.list.list-bullet %li newid lliwiau, lefelau cyferbyniad a ffontiau %li - chwyddo mewn hyd at 200% heb i'r testun lithro oddi ar y sgrin + chwyddo mewn hyd at 200% heb i’r testun lithro oddi ar y sgrin %li - llywio'r rhan fwyaf o'r wefan gan ddefnyddio bysellfwrdd yn unig + llywio’r rhan fwyaf o’r wefan gan ddefnyddio bysellfwrdd yn unig %li - llywio'r rhan fwyaf o'r wefan gan ddefnyddio meddalwedd adnabod llais + llywio’r rhan fwyaf o’r wefan gan ddefnyddio meddalwedd adnabod llais %li - gwrando ar y rhan fwyaf o'r wefan gan ddefnyddio darllenydd sgrin (gan + gwrando ar y rhan fwyaf o’r wefan gan ddefnyddio darllenydd sgrin (gan gynnwys y fersiynau diweddaraf o JAWS, NVDA a VoiceOver) %p - Rydym hefyd wedi gwneud testun y wefan mor syml â phosibl i'w ddeall. + Rydym hefyd wedi gwneud testun y wefan mor syml â phosibl i’w ddeall. %p Mae gan = link_to('AbilityNet', 'https://mcmw.abilitynet.org.uk/') - gyngor ar wneud eich dyfais yn haws i'w defnyddio os oes gennych anabledd. + gyngor ar wneud eich dyfais yn haws i’w defnyddio os oes gennych anabledd. %h2 - Pa mor hygyrch yw'r wefan hon + Pa mor hygyrch yw’r wefan hon %p - Rydym yn credu bod y rhan fwyaf o'r wefan hon yn cydymffurfio â gofynion - safon AA Canllawiau Hygyrchedd Cynnwys Gwe fersiwn 2.1. Ni ddylai'r + Rydym yn credu bod y rhan fwyaf o’r wefan hon yn cydymffurfio â gofynion + safon AA Canllawiau Hygyrchedd Cynnwys Gwe fersiwn 2.1. Ni ddylai’r archwiliwr Data Pris a Dalwyd, yr adeiladwr adroddiadau safonol, a Mynegai Prisiau Tai y DU achosi unrhyw rwystrau i ddefnyddwyr sydd ag anableddau. - Os ydych yn cael problemau yn cyrchu'r adrannau hyn, rhowch wybod inni. + Os ydych yn cael problemau yn cyrchu’r adrannau hyn, rhowch wybod inni. %p - Rydym yn gwybod nad yw'r SPARQL Qonsole ar y wefan hon yn hollol hygyrch. + Rydym yn gwybod nad yw’r SPARQL Qonsole ar y wefan hon yn hollol hygyrch. Yn arbennig, nodwn y problemau canlynol: %ul.list.list-bullet %li @@ -55,18 +55,18 @@ %br Mae hyn yn methu WCAG 4.1.2 Enw, Rôl, Gwerth (Lefel A) %li - Ni all defnyddwyr fynd ymhellach na'r ardal prif destun trwy ddefnyddio'r allwedd tab yn unig + Ni all defnyddwyr fynd ymhellach na’r ardal prif destun trwy ddefnyddio’r allwedd tab yn unig %br Mae hyn yn methu WCAG 2.1.2 Dim Trap Bysellfwrdd %p - Rhyngwyneb technegol sy’n cefnogi datblygiad ymholiad gweledol yw’r SPARQL + Rhyngwyneb technegol sy’n cefnogi datblygiad ymholiad gweledol yw’r SPARQL Qonsole. Rydym yn gweithio ar ddiweddariad i Qonsole SPARQL i wella hygyrchedd - yn gyffredinol. Disgwyliwn i’r diweddariad hwn gael ei gwblhau erbyn diwedd + yn gyffredinol. Disgwyliwn i’r diweddariad hwn gael ei gwblhau erbyn diwedd Mawrth 2023. %h2 - Yr hyn i'w wneud os na allwch gyrchu rhannau o'r wefan hon + Yr hyn i’w wneud os na allwch gyrchu rhannau o’r wefan hon %p Os oes angen gwybodaeth sydd ar y wefan hon arnoch ar ffurf wahanol fel PDF @@ -78,20 +78,20 @@ Byddwn yn ystyried eich cais ac yn dod yn ôl atoch o fewn 5 diwrnod. %h2 - Rhoi gwybod am broblemau hygyrchedd gyda'r wefan hon + Rhoi gwybod am broblemau hygyrchedd gyda’r wefan hon %p Rydym bob amser yn ceisio gwella hygyrchedd y wefan hon. Os ydych yn dod o - hyd i unrhyw broblemau nad ydynt wedi eu rhestru ar y dudalen hon neu'n - credu nad ydym yn bodloni'r gofynion hygyrchedd, cysylltwch â'r Ganolfan + hyd i unrhyw broblemau nad ydynt wedi eu rhestru ar y dudalen hon neu’n + credu nad ydym yn bodloni’r gofynion hygyrchedd, cysylltwch â’r Ganolfan Gwasanaethau Cwsmeriaid: %ul.list.list-bullet %li - trwy'r ffôn - + trwy’r ffôn – = link_to('0300 006 0422', 'tel:+443000060422') %li - trwy'r post - HM Land Registry Citizen Centre, PO Box 74, Gloucester, GL14 9BB + trwy’r post – HM Land Registry Citizen Centre, PO Box 74, Gloucester, GL14 9BB %li = link_to('ar-lein', 'https://www.gov.uk/guidance/contact-hm-land-registry.cy') @@ -99,15 +99,15 @@ Gweithdrefn orfodi %p - Mae'r Comisiwn Cydraddoldeb a Hawliau Dynol yn gyfrifol am orfodi + Mae’r Comisiwn Cydraddoldeb a Hawliau Dynol yn gyfrifol am orfodi Rheoliadau Hygyrchedd Cyrff Sector Cyhoeddus (Gwefannau a Chymwysiadau - Symudol) (Rhif 2) 2018 (y 'rheoliadau hygyrchedd'). Os nad ydych yn hapus - â'r modd yr ydym yn ymateb i'ch cwyn, cysylltwch â'r + Symudol) (Rhif 2) 2018 (y ‘rheoliadau hygyrchedd’). Os nad ydych yn hapus + â’r modd yr ydym yn ymateb i’ch cwyn, cysylltwch â’r = succeed '.' do = link_to('Gwasanaeth Cynghori a Chymorth Cydraddoldeb', 'http://eass-ws.custhelp.com/app/home') %h2 - Cysylltu â ni dros y ffôn neu ymweld â ni'n bersonol + Cysylltu â ni dros y ffôn neu ymweld â ni’n bersonol %p Rydym yn darparu gwasanaeth cyfnewid testun i bobl fyddar, sydd â nam ar y @@ -128,7 +128,7 @@ %p Mae Cofrestrfa Tir EM wedi ymrwymo i wneud ei gwefan yn hygyrch, yn unol â Rheoliadau Hygyrchedd Cyrff Sector Cyhoeddus (Gwefannau a Chymwysiadau - Symudol) (Rhif 2) 2018. Mae'r wefan hon yn cydymffurfio'n llwyr â safon AA + Symudol) (Rhif 2) 2018. Mae’r wefan hon yn cydymffurfio’n llwyr â safon AA Canllawiau Hygyrchedd Cynnwys Gwe fersiwn 2.1. %h3 diff --git a/app/views/doc/_accessibility_en.html.haml b/app/views/doc/_accessibility_en.html.haml index b3db500..7272850 100644 --- a/app/views/doc/_accessibility_en.html.haml +++ b/app/views/doc/_accessibility_en.html.haml @@ -22,7 +22,7 @@ listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver) %p - We've also made the website text as simple as possible to understand. + We’ve also made the website text as simple as possible to understand. %p = link_to('AbilityNet', 'https://mcmw.abilitynet.org.uk/') @@ -66,7 +66,7 @@ March 2023. %h2 - What to do if you can't access parts of this website + What to do if you can’t access parts of this website %p If you need information on this website in a different format like accessible PDF, @@ -75,22 +75,22 @@ = mail_to(Rails.application.config.contact_email_address) %p - We'll consider your request and get back to you within five days. + We’ll consider your request and get back to you within five days. %h2 Reporting accessibility problems with this website %p - We're always looking to improve the accessibility of this website. If you - find any problems that aren't listed on this page or think we're not meeting + We’re always looking to improve the accessibility of this website. If you + find any problems that aren’t listed on this page or think we’re not meeting the accessibility requirements, contact the Customer Services Centre by: %ul.list.list-bullet %li - telephone - + telephone – = link_to('0300 006 0411', 'tel:+443000060411') %li - post - HM Land Registry Citizen Centre, PO Box 74, Gloucester, GL14 9BB + post – HM Land Registry Citizen Centre, PO Box 74, Gloucester, GL14 9BB %li = link_to('online', 'https://www.gov.uk/guidance/contact-hm-land-registry') @@ -100,7 +100,7 @@ %p The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility - Regulations 2018 (the ‘accessibility regulations'). If you're not happy with how + Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the = succeed '.' do = link_to('Equality Advisory and Support Service (EASS)', 'https://www.equalityadvisoryservice.com/') @@ -121,7 +121,7 @@ = link_to('contact us', 'https://www.gov.uk/guidance/contact-hm-land-registry') %h2 - Technical information about this website's accessibility + Technical information about this website’s accessibility %p HM Land Registry is committed to making its website accessible, in accordance with From ae2ee59fc1260c04e91054d1a235853f07c8e419 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Tue, 11 Oct 2022 13:09:31 +0100 Subject: [PATCH 08/32] feat: Refactored code snippets Wrapped the appropriate html examples within both a `` wrapper for screen-readability as well as removed erroneous back tick characters --- app/views/doc/_accessibility_cy.html.haml | 3 ++- app/views/doc/_accessibility_en.html.haml | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/views/doc/_accessibility_cy.html.haml b/app/views/doc/_accessibility_cy.html.haml index 2306b30..85cbd1e 100644 --- a/app/views/doc/_accessibility_cy.html.haml +++ b/app/views/doc/_accessibility_cy.html.haml @@ -51,7 +51,8 @@ %br Mae hyn yn methu WCAG 3.3.2 Labeli neu Gyfarwyddiadau (Lefel A) %li - Nid yw rhestrau yn cynnwys elfennau `li` yn unig ac elfennau cynnal sgript (`sgript` a `thempled`) + Nid yw rhestrau yn cynnwys elfennau <li> yn unig ac elfennau + cynnal sgript (<sgript> a <thempled>) %br Mae hyn yn methu WCAG 4.1.2 Enw, Rôl, Gwerth (Lefel A) %li diff --git a/app/views/doc/_accessibility_en.html.haml b/app/views/doc/_accessibility_en.html.haml index 7272850..ec62c04 100644 --- a/app/views/doc/_accessibility_en.html.haml +++ b/app/views/doc/_accessibility_en.html.haml @@ -50,8 +50,8 @@ %br This fails WCAG 3.3.2 Labels or Instructions (Level A) %li - Lists do not contain only `li` elements and script supporting elements - (`script` and `template`) + Lists do not contain only <li> elements and script supporting elements + (<script> and <template>) %br This fails WCAG 4.1.2 Name, Role, Value (Level A) %li From 6391fa9f256e5bc44bee06e24af5e9c076d0c161 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Tue, 11 Oct 2022 13:11:05 +0100 Subject: [PATCH 09/32] feat: Removed duplicated main element Refactored to contain information inside an `
` element instead of duplicating the `
` element and ID from the template --- app/views/doc/_accessibility_cy.html.haml | 2 +- app/views/doc/_accessibility_en.html.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/doc/_accessibility_cy.html.haml b/app/views/doc/_accessibility_cy.html.haml index 85cbd1e..41bbe2b 100644 --- a/app/views/doc/_accessibility_cy.html.haml +++ b/app/views/doc/_accessibility_cy.html.haml @@ -1,4 +1,4 @@ -%main#main-content +%article %h1.heading-large Datganiad hygyrchedd ar gyfer cymwysiadau data agored: archwiliwr Data Pris a Dalwyd, adeiladwr adroddiadau safonol a Mynegai Prisiau Tai y DU diff --git a/app/views/doc/_accessibility_en.html.haml b/app/views/doc/_accessibility_en.html.haml index ec62c04..707be84 100644 --- a/app/views/doc/_accessibility_en.html.haml +++ b/app/views/doc/_accessibility_en.html.haml @@ -1,4 +1,4 @@ -%main#main-content +%article %h1.heading-large Accessibility statement for open data applications: Price Paid Data (PPD) explorer, standard reports builder and UK House From 376965ab8195ba50752153d1cd7a48122b3a71f1 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Thu, 16 Mar 2023 12:58:52 +0000 Subject: [PATCH 10/32] build: Updated build process Resolved incorrect traps for missing env vars in `entrypoint.sh`, added updated commands for `Dockerfile`, as well as added new `SHORTNAME` variable to `Makefile`. --- Dockerfile | 7 ++++--- Makefile | 10 ++++++---- entrypoint.sh | 14 ++++++-------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4b67620..eb26cef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,9 +7,11 @@ ARG BUNDLER_VERSION RUN apk add --update \ - tzdata \ + bash \ + coreutils \ git \ nodejs \ + tzdata \ && rm -rf /var/cache/apk/* \ && gem install bundler:$BUNDLER_VERSION \ && bundle config --global frozen 1 @@ -22,7 +24,7 @@ WORKDIR /usr/src/app # Set default values to arguments to be used as environment variables ARG RAILS_ENV=production -ARG APPLICATION_ROOT=/app/root +ARG APPLICATION_ROOT=/ COPY config.ru Gemfile Gemfile.lock Rakefile ./ @@ -40,7 +42,6 @@ COPY app app COPY config config COPY lib lib COPY public public -COPY vendor vendor # Compile diff --git a/Makefile b/Makefile index f8d2a09..870c1f0 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,7 @@ BUNDLER_VERSION?=$(shell tail -1 Gemfile.lock | tr -d ' ') ECR?=${ACCOUNT}.dkr.ecr.eu-west-1.amazonaws.com GPR_OWNER?=epimorphics NAME?=$(shell awk -F: '$$1=="name" {print $$2}' deployment.yaml | sed -e 's/[[:blank:]]//g') +SHORTNAME?=$(shell echo ${NAME} | cut -f2 -d/) PAT?=$(shell read -p 'Github access token:' TOKEN; echo $$TOKEN) RUBY_VERSION?=$(shell cat .ruby-version) STAGE?=dev @@ -71,10 +72,10 @@ realclean: clean @rm -f ${GITHUB_TOKEN} ${BUNDLE_CFG} run: - @echo "Stopping lr_landing ..." - @-docker stop lr_landing && sleep 10 - @echo "Starting lr_landing ..." - @docker run -e APPLICATION_ROOT=${APPLICATION_ROOT} -e API_SERVICE_URL=${API_SERVICE_URL} --add-host host.docker.internal:host-gateway -p 3000:3000 --rm --name lr_landing ${REPO}:${TAG} + @echo "Stopping ${SHORTNAME} ..." + @-docker stop ${SHORTNAME} && sleep 10 + @echo "Starting ${SHORTNAME} ..." + @docker run -e APPLICATION_ROOT=${APPLICATION_ROOT} -e API_SERVICE_URL=${API_SERVICE_URL} --add-host host.docker.internal:host-gateway -p 3000:3000 --rm --name ${SHORTNAME} ${REPO}:${TAG} tag: @echo ${TAG} @@ -91,6 +92,7 @@ vars: @echo "ECR = ${ECR}" @echo "GPR_OWNER = ${GPR_OWNER}" @echo "NAME = ${NAME}" + @echo "SHORTNAME = ${SHORTNAME}" @echo "RUBY_VERSION = ${RUBY_VERSION}" @echo "STAGE = ${STAGE}" @echo "COMMIT = ${COMMIT}" diff --git a/entrypoint.sh b/entrypoint.sh index 85211ac..fefe0b3 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -11,14 +11,12 @@ then export RAILS_ENV=production fi -[ -z "$API_SERVICE_URL" ] && echo '{"ts": "'"$(date -u +%FT%T.%3NZ)"'", "level": "ERROR", "message": "You have not specified the env var API_SERVICE_URL"}' >&2 +# [ -z "$API_SERVICE_URL" ] && echo '{"ts": "'"$(date -u +%FT%T.%3NZ)"'", "level": "ERROR", "message": "You have not specified the env var API_SERVICE_URL"}' >&2 -[ -z "$APPLICATION_ROOT" ] && echo '{"ts": "'"$(date -u +%FT%T.%3NZ)"'", "level": "ERROR", "message": "You have not specified the env var APPLICATION_ROOT"}' >&2 - -if [ -z "$API_SERVICE_URL" ] || [ -z "$APPLICATION_ROOT" ] -then - exit 1 -fi +# if [ -z "$API_SERVICE_URL" ] ] +# then +# exit 1 +# fi # Handle secrets based on env if [ "$RAILS_ENV" == "production" ] && [ -z "$SECRET_KEY_BASE" ] @@ -28,7 +26,7 @@ then fi export RAILS_RELATIVE_URL_ROOT=${APPLICATION_ROOT:-'/app/root'} -export SCRIPT_NAME=${APPLICATION_ROOT} +export SCRIPT_NAME=${RAILS_RELATIVE_URL_ROOT} echo '{"ts": "'"$(date -u +%FT%T.%3NZ)"'", "level": "INFO", "message": "Starting LR Landing application with RAILS_ENV='"${RAILS_ENV}"'", "RAILS_RELATIVE_URL_ROOT"="'"${RAILS_RELATIVE_URL_ROOT}"'", "SCRIPT_NAME"="'"${SCRIPT_NAME}"'", "API_SERVICE_URL"="'"${API_SERVICE_URL}"'"}' From d9da57a1e826d3e3ba74544d31511d7eb162d8b7 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Thu, 16 Mar 2023 14:40:36 +0000 Subject: [PATCH 11/32] refactor: Removed erroneous comments --- entrypoint.sh | 7 ------- 1 file changed, 7 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index fefe0b3..6af52db 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -11,13 +11,6 @@ then export RAILS_ENV=production fi -# [ -z "$API_SERVICE_URL" ] && echo '{"ts": "'"$(date -u +%FT%T.%3NZ)"'", "level": "ERROR", "message": "You have not specified the env var API_SERVICE_URL"}' >&2 - -# if [ -z "$API_SERVICE_URL" ] ] -# then -# exit 1 -# fi - # Handle secrets based on env if [ "$RAILS_ENV" == "production" ] && [ -z "$SECRET_KEY_BASE" ] then From b32823dff547788fac247264eba79829d2211d5f Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Thu, 16 Mar 2023 14:41:06 +0000 Subject: [PATCH 12/32] docs: Updated CHANGELOG, README, and version cadence --- CHANGELOG.md | 8 ++++++++ README.md | 19 ++++++------------- app/lib/version.rb | 2 +- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b90204..8ddad69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,14 @@ This app presents the landing page experience for landregistry.data.gov.uk, including the SPARQL Qonsole +## 1.7.1 - 2023-03-16 + +- (Jon) Updated the README to improve the clarity of the instructions for + running the application locally. +- (Jon) Resolved incorrect traps for missing env vars in `entrypoint.sh`, added + updated commands for `Dockerfile`, as well as added new `SHORTNAME` variable + to `Makefile`. + ## 1.7.0 - 2023-03-15 - (Jon) Updated the README to improve the clarity of the instructions for diff --git a/README.md b/README.md index 0687289..ece214a 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ bundle install Start the app locally for development: ```sh -APPLICATION_ROOT=/ rails server +rails server ``` Visit [`localhost:3000`](http://localhost:3000/) to view the local instance. @@ -47,10 +47,7 @@ Visit [`localhost:3000`](http://localhost:3000/) to view the local instance. ### Running the app locally as a Docker image It can be useful to run the compiled Docker image, that will be run by the -production installation, locally yourself. While the Rails Framework requires -certain values to be set as a Global environment variable when starting, the -`API_SERVICE_URL` is only set in one place per application so we have added this -to the Makefile file for convenience. +production installation, locally yourself. To mimic running the application in a deployed state you can call: @@ -62,7 +59,7 @@ This will run through the assets precompilation, linting and testing before creating a Docker image, then you can run the image with the following command: ```sh -APPLICATION_ROOT=/ make run +make run ``` N.B In the production environment, the app will be accessed via the URL path `/app/root`. @@ -143,15 +140,11 @@ contained changes as well as the ability to diff agains the previous version. - There is a workaround to removing the PID lock of the Rails process in the event of the application crashing and not releasing the process. - The Rails secret is created here. -- We have to pass the `APPLICATION_ROOT` and, depending on the ivocation choice - also pass in the `API_SERVICE_URL`, so that they are available to the - `entrypoint.sh` otherwise the application will throw an error and exit before - starting. -#### Configuration environment variables +### Configuration environment variables -We use a number of environment variables to determine the runtime behaviour of -the application: +We can use a number of environment variables to determine the runtime behaviour of +the application while developing the codebase locally: | name | description | typical value | | -------------------------- | -------------------------------------------------------------------- | ----------------------- | diff --git a/app/lib/version.rb b/app/lib/version.rb index 78977d0..d9fede2 100644 --- a/app/lib/version.rb +++ b/app/lib/version.rb @@ -3,7 +3,7 @@ module Version MAJOR = 1 MINOR = 7 - REVISION = 0 + REVISION = 1 SUFFIX = nil VERSION = "#{MAJOR}.#{MINOR}.#{REVISION}#{SUFFIX && ".#{SUFFIX}"}" end From 29a58a831cb083d6ef9b8568896d623d1c4873c2 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Thu, 16 Mar 2023 14:53:23 +0000 Subject: [PATCH 13/32] build: removed lint and test from make image --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 870c1f0..12411c5 100644 --- a/Makefile +++ b/Makefile @@ -45,7 +45,7 @@ auth: ${GITHUB_TOKEN} ${BUNDLE_CFG} clean: @[ -d public/assets ] && ./bin/rails assets:clobber || : -image: auth lint test +image: auth @echo Building ${REPO}:${TAG} ... @docker build \ --build-arg ALPINE_VERSION=${ALPINE_VERSION} \ From cefc0f9feffb2c0fec8e05fdb32fc5d97cddf4fa Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Mon, 20 Mar 2023 22:12:38 +0000 Subject: [PATCH 14/32] build: cleanup of build files for LR apps Implements unification approach to Make, Docker and other associated build files to ensure the process completes for specific environments as expected --- Dockerfile | 19 +------------------ Makefile | 2 +- config/environments/development.rb | 16 +++++++++------- config/environments/production.rb | 22 ++++++++++------------ entrypoint.sh | 7 ++++++- 5 files changed, 27 insertions(+), 39 deletions(-) diff --git a/Dockerfile b/Dockerfile index eb26cef..004ea78 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,6 @@ ARG RUBY_VERSION FROM ruby:${RUBY_VERSION}-alpine${ALPINE_VERSION} as base ARG BUNDLER_VERSION - RUN apk add --update \ bash \ coreutils \ @@ -22,18 +21,8 @@ RUN apk add --update build-base WORKDIR /usr/src/app -# Set default values to arguments to be used as environment variables -ARG RAILS_ENV=production -ARG APPLICATION_ROOT=/ - COPY config.ru Gemfile Gemfile.lock Rakefile ./ - -# Copy the bundle config -# **Important** the destination for this copy **must not** be in WORKDIR, -# or there is a risk that the GitHub PAT could be part of the final image -# in a potentially leaky way COPY .bundle/config /root/.bundle/config - COPY bin bin RUN ./bin/bundle config set --local without 'development test' && ./bin/bundle install && mkdir log @@ -45,8 +34,7 @@ COPY public public # Compile -RUN RAILS_ENV=$RAILS_ENV RAILS_RELATIVE_URL_ROOT=$APPLICATION_ROOT \ - bundle exec rake assets:precompile \ +RUN RAILS_ENV=production bundle exec rake assets:precompile \ && mkdir -m 777 /usr/src/app/coverage # Start a new build stage to minimise the final image size @@ -74,11 +62,6 @@ COPY --from=builder --chown=app /usr/src/app . USER app -# Assign the appropriate ARG to the corresponding ENV so that it can be accessed -# by the subsequent calls within the container -ENV RAILS_ENV=$RAILS_ENV -ENV APPLICATION_ROOT=$APPLICATION_ROOT - # Add a script to be executed every time the container starts. COPY entrypoint.sh "/app/entrypoint.sh" ENTRYPOINT ["sh", "/app/entrypoint.sh"] diff --git a/Makefile b/Makefile index 12411c5..21086e4 100644 --- a/Makefile +++ b/Makefile @@ -75,7 +75,7 @@ run: @echo "Stopping ${SHORTNAME} ..." @-docker stop ${SHORTNAME} && sleep 10 @echo "Starting ${SHORTNAME} ..." - @docker run -e APPLICATION_ROOT=${APPLICATION_ROOT} -e API_SERVICE_URL=${API_SERVICE_URL} --add-host host.docker.internal:host-gateway -p 3000:3000 --rm --name ${SHORTNAME} ${REPO}:${TAG} + @docker run -e API_SERVICE_URL=${API_SERVICE_URL} --add-host host.docker.internal:host-gateway -p 3000:3000 --rm --name ${SHORTNAME} ${REPO}:${TAG} tag: @echo ${TAG} diff --git a/config/environments/development.rb b/config/environments/development.rb index c25ee18..3a9d68b 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -34,20 +34,22 @@ # Checks for improperly declared sprockets dependencies. # Raises helpful error messages. config.assets.raise_runtime_errors = true - + + # Don't print a log message every time an asset file is loaded config.assets.quiet = true config.log_tags = %i[subdomain request_id request_method] $stdout.sync = true config.logger = JsonRailsLogger::Logger.new($stdout) - # Raises error for missing translations - # config.action_view.raise_on_missing_translations = true - - # The application path can be specified in the entrypoint.sh script - # but falls back to a standard root value in development + # The RAILS_RELATIVE_URL_ROOT should be specified in the entrypoint.sh script + # but this passes in a standard root value in development if the app is run + # directly via rails s config.relative_url_root = ENV.fetch('RAILS_RELATIVE_URL_ROOT', '/') - # API location is not used on the landing page, but is required by all other apps + + # API_SERVICE_URL is not used on the landing page, but set in the Makefile as + # an env variable for the docker container when run as an image. + # API_SERVICE_URL is required by all other apps config.accessibility_document_path = '/doc/accessibility' config.privacy_document_path = '/doc/privacy' diff --git a/config/environments/production.rb b/config/environments/production.rb index 01ac9c1..5cddab4 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -24,7 +24,7 @@ # Disable serving static files from the `/public` folder by default since # Apache or NGINX already handles this. - config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'] || true + config.public_file_server.enabled = ENV.fetch('RAILS_SERVE_STATIC_FILES', true) # Compress JavaScripts and CSS. config.assets.js_compressor = :uglifier @@ -64,9 +64,6 @@ 'Expires' => 5.minutes.from_now.to_formatted_s(:rfc822) } - # Enable serving of images, stylesheets, and JavaScripts from an asset server. - # config.action_controller.asset_host = 'http://assets.example.com' - # Ignore bad email addresses and do not raise email delivery errors. # Set this to true and configure the email server for immediate delivery to raise delivery errors. # config.action_mailer.raise_delivery_errors = false @@ -78,16 +75,17 @@ # Send deprecation notices to registered listeners. config.active_support.deprecation = :notify - # Use default logging formatter so that PID and timestamp are not suppressed. - # config.log_formatter = ::Logger::Formatter.new + # The RAILS_RELATIVE_URL_ROOT env var should NOT be used in Production + # The default value is passed in as the compiled assets have no knowledge of + # the base path and utilise the config.relative_url_root value to prefix the + # compiled asset paths + config.relative_url_root = '/app/root' - # The application root should be specified in the entrypoint.sh file and therefore - # in Production no fall back values are passed on the basis that missing - # configuration options represent a category of bug, and in that case the - # deployment should fail fast and noisily. - config.relative_url_root = ENV['RAILS_RELATIVE_URL_ROOT'] - # API location is not used on the landing page, but is required by all other apps + # API_SERVICE_URL is not used on the landing page, but set in the Makefile as + # an env variable for the docker container when run as an image. + # API_SERVICE_URL is required by all other LR apps except Qonsole + # Use default paths for documentation. config.accessibility_document_path = '/accessibility' config.privacy_document_path = '/privacy' diff --git a/entrypoint.sh b/entrypoint.sh index 6af52db..ad84d37 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -5,12 +5,17 @@ set -e rm -f ./tmp/pids/server.pid mkdir -pm 1777 ./tmp +# This is set to the name of the application for logging purposes +PUBLIC_NAME="LR Landing" + # Set the environment if [ -z "$RAILS_ENV" ] then export RAILS_ENV=production fi +echo "{\"ts\": $(date -u +%FT%T.%3NZ), \"level\": \"INFO\", \"message\": \"Initiating ${PUBLIC_NAME} application using APPLICATION_ROOT=${APPLICATION_ROOT}, API_SERVICE_URL=${API_SERVICE_URL}}" + # Handle secrets based on env if [ "$RAILS_ENV" == "production" ] && [ -z "$SECRET_KEY_BASE" ] then @@ -21,6 +26,6 @@ fi export RAILS_RELATIVE_URL_ROOT=${APPLICATION_ROOT:-'/app/root'} export SCRIPT_NAME=${RAILS_RELATIVE_URL_ROOT} -echo '{"ts": "'"$(date -u +%FT%T.%3NZ)"'", "level": "INFO", "message": "Starting LR Landing application with RAILS_ENV='"${RAILS_ENV}"'", "RAILS_RELATIVE_URL_ROOT"="'"${RAILS_RELATIVE_URL_ROOT}"'", "SCRIPT_NAME"="'"${SCRIPT_NAME}"'", "API_SERVICE_URL"="'"${API_SERVICE_URL}"'"}' +echo "{\"ts\": $(date -u +%FT%T.%3NZ), \"level\": \"INFO\", \"message\": \"Starting ${PUBLIC_NAME} application with RAILS_ENV=\"${RAILS_ENV}\", \"RAILS_RELATIVE_URL_ROOT\"=\"${RAILS_RELATIVE_URL_ROOT}\", \"SCRIPT_NAME\"=\"${SCRIPT_NAME}\"}" exec ./bin/rails server -e "${RAILS_ENV}" -b 0.0.0.0 From 99f25952a3afe906066d941724879bed8758464a Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Tue, 21 Mar 2023 11:00:40 +0000 Subject: [PATCH 15/32] build: unified environment configurations across all apps Updated the matching configuration settings on each environment configuration file to uniify the settings for all apps --- config/environments/development.rb | 15 +++++++++------ config/environments/production.rb | 12 +++++++++--- config/environments/test.rb | 20 ++++++++++---------- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/config/environments/development.rb b/config/environments/development.rb index 3a9d68b..e03d63b 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -12,7 +12,7 @@ config.eager_load = false # Show full error reports and disable caching. - config.consider_all_requests_local = true + config.consider_all_requests_local = true config.action_controller.perform_caching = false # Don't care if the mailer can't send. @@ -34,28 +34,31 @@ # Checks for improperly declared sprockets dependencies. # Raises helpful error messages. config.assets.raise_runtime_errors = true - + # Don't print a log message every time an asset file is loaded config.assets.quiet = true + # Tag rails logs with useful information config.log_tags = %i[subdomain request_id request_method] + # When sync mode is true, all output is immediately flushed to the underlying + # operating system and is not buffered by Ruby internally. $stdout.sync = true + # Log the stdout output to the Epimorphics JSON logging gem config.logger = JsonRailsLogger::Logger.new($stdout) # The RAILS_RELATIVE_URL_ROOT should be specified in the entrypoint.sh script # but this passes in a standard root value in development if the app is run - # directly via rails s + # directly via `rails server` config.relative_url_root = ENV.fetch('RAILS_RELATIVE_URL_ROOT', '/') # API_SERVICE_URL is not used on the landing page, but set in the Makefile as # an env variable for the docker container when run as an image. # API_SERVICE_URL is required by all other apps + # Use default paths for documentation. config.accessibility_document_path = '/doc/accessibility' config.privacy_document_path = '/doc/privacy' - # feature flag for showing the Welsh language switch affordance - config.welsh_language_enabled = true - + # Set the contact email address to Land Registry supplied address config.contact_email_address = 'data.services@mail.landregistry.gov.uk' end diff --git a/config/environments/production.rb b/config/environments/production.rb index 5cddab4..05d1da7 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -37,7 +37,8 @@ # yet still be able to expire them through the digest params. config.assets.digest = true - # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb + # `config.assets.precompile` and `config.assets.version` have moved to + # config/initializers/assets.rb # Specifies the header that your server uses for sending files. # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache @@ -46,8 +47,12 @@ # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. # config.force_ssl = true + # Tag rails logs with useful information config.log_tags = %i[subdomain request_id request_method] + # When sync mode is true, all output is immediately flushed to the underlying + # operating system and is not buffered by Ruby internally. $stdout.sync = true + # Log the stdout output to the Epimorphics JSON logging gem config.logger = JsonRailsLogger::Logger.new($stdout) # Use a different cache store in production. @@ -69,8 +74,8 @@ # config.action_mailer.raise_delivery_errors = false # Enable locale fallbacks for I18n (makes lookups for any locale fall back to - # the I18n.default_locale when a translation cannot be found). - config.i18n.fallbacks = [I18n.default_locale] + # the I18n.default_locale when a translation can not be found). + config.i18n.fallbacks = true # Send deprecation notices to registered listeners. config.active_support.deprecation = :notify @@ -92,5 +97,6 @@ # feature flag for showing the Welsh language switch affordance config.welsh_language_enabled = true + # Set the contact email address to Land Registry supplied address config.contact_email_address = 'data.services@mail.landregistry.gov.uk' end diff --git a/config/environments/test.rb b/config/environments/test.rb index 6414548..5025e19 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -7,7 +7,7 @@ # test suite. You never need to work with it otherwise. Remember that # your test database is "scratch space" for the test suite and is wiped # and recreated between test runs. Don't rely on the data there! - config.cache_classes = true + config.cache_classes = false # Do not eager load code on boot. This avoids loading your whole application # just for the purpose of running a single test. If you are using a tool that @@ -15,11 +15,11 @@ config.eager_load = false # Configure static file server for tests with Cache-Control for performance. - config.serve_static_files = true - config.static_cache_control = 'public, max-age=3600' + config.public_file_server.enabled = true + config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' } # Show full error reports and disable caching. - config.consider_all_requests_local = true + config.consider_all_requests_local = true config.action_controller.perform_caching = false # Raise exceptions instead of rendering exception templates. @@ -33,24 +33,24 @@ # ActionMailer::Base.deliveries array. config.action_mailer.delivery_method = :test - # Randomize the order test cases are executed. - config.active_support.test_order = :random - # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr + # Tag rails logs with useful information config.log_tags = %i[subdomain request_id request_method] + # When sync mode is true, all output is immediately flushed to the underlying + # operating system and is not buffered by Ruby internally. $stdout.sync = true + # Log the stdout output to the Epimorphics JSON logging gem config.logger = JsonRailsLogger::Logger.new($stdout) - # Raises error for missing translations - # config.action_view.raise_on_missing_translations = true - + # Use default paths for documentation. config.accessibility_document_path = '/doc/accessibility' config.privacy_document_path = '/doc/privacy' # feature flag for showing the Welsh language switch affordance config.welsh_language_enabled = true + # Set the contact email address to Land Registry supplied address config.contact_email_address = 'data.services@mail.landregistry.gov.uk' end From 7d1854e25d66416c426efdf080c337d2564950df Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Tue, 21 Mar 2023 12:53:13 +0000 Subject: [PATCH 16/32] fix: restored merge conflict overwrite re-added `config.welsh_language_enabled = true`, the feature flag for showing the Welsh language switch affordance --- config/environments/development.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/environments/development.rb b/config/environments/development.rb index e03d63b..9b6394a 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -59,6 +59,9 @@ config.accessibility_document_path = '/doc/accessibility' config.privacy_document_path = '/doc/privacy' + # feature flag for showing the Welsh language switch affordance + config.welsh_language_enabled = true + # Set the contact email address to Land Registry supplied address config.contact_email_address = 'data.services@mail.landregistry.gov.uk' end From c376514cbd17b141ae2b676bd3d694d8cf2c0fe6 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Tue, 21 Mar 2023 12:54:11 +0000 Subject: [PATCH 17/32] docs: README update minor addition of live links for the different apps alongside primarily formatting changes for layout --- README.md | 55 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index ece214a..fc72605 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,16 @@ This repo provides the landing page experience for visitors to [landregistry.data.gov.uk](http://landregistry.data.gov.uk). The landing page -provides links to the various open data services (Price Paid Data Explorer, -Standard Reports and UK Housing Price Index), and hosts the qonsole app, which -allows users to run SPARQL queries against the linked-data dataset. +provides links to the various open data services ([Price Paid Data +Explorer](http://landregistry.data.gov.uk/app/ppd), [Standard +Reports](http://landregistry.data.gov.uk/app/standard-reports) and [UK Housing +Price Index](http://landregistry.data.gov.uk/app/ppukhpi)), and hosts the +qonsole app, which allows users to run SPARQL queries against the linked-data +dataset. -Please see the other repositories in the [HM Land Registry Open Data](https://github.com/epimorphics/hmlr-linked-data/) -project for more details: +Please see the other repositories in the [HM Land Registry Open +Data](https://github.com/epimorphics/hmlr-linked-data/) project for more +details: - [HMLR Common Styles](https://github.com/epimorphics/lr_common_styles) - [PPD Explorer](https://github.com/epimorphics/ppd-explorer) @@ -27,8 +31,8 @@ identifier in line with semver principles. ### Running the app locally in dev mode -Begin by cloning [the Github -repo](https://github.com/epimorphics/lr-landing) and installing the dependencies: +Begin by cloning [the Github repo](https://github.com/epimorphics/lr-landing) +and installing the dependencies: ```sh git clone git@github.com:epimorphics/lr-landing.git && @@ -62,17 +66,18 @@ creating a Docker image, then you can run the image with the following command: make run ``` -N.B In the production environment, the app will be accessed via the URL path `/app/root`. -When running the docker image locally for development, you may need to access the -application via a proxy, otherwise, the paths for JS, CSS and image assets might -not work. +N.B In the production environment, the app will be accessed via the URL path +`/app/root`. When running the docker image locally for development, you may need +to access the application via a proxy, otherwise, the paths for JS, CSS and +image assets might not work. -Please see the *[simple web proxy](https://github.com/epimorphics/simple-web-proxy)* -repository for one simple way of handling this on a local develpment machine. +Please see the *[simple web +proxy](https://github.com/epimorphics/simple-web-proxy)* repository for one +simple way of handling this on a local develpment machine. With the proxy and Docker container running you can access the application as -[`localhost:3001/app/root/`](http://localhost:3001/app/root/) -(note the trailing path). +[`localhost:3001/app/root/`](http://localhost:3001/app/root/) (note the trailing +path). ### Code standards @@ -97,19 +102,21 @@ rails -t ### Dependent gems -Most of the local (i.e. Epimorphics) gems that this project depends on are served -via GitHub Package Registry (GPR). Specifically, `lr_common_styles` and `json-rails-logger`. +Most of the local (i.e. Epimorphics) gems that this project depends on are +served via GitHub Package Registry (GPR). Specifically, `lr_common_styles` and +`json-rails-logger`. However, `qonsole-rails` is __not__ served via GPR at present, mostly because we are hoping to retire it in favour of a new implementation of Qonsole. Since `qonsole-rails` is a public repo, this dependency does not require us to lean on -the old pattern of using an ssh key to serve private gems directly from a -GitHub repo. +the old pattern of using an ssh key to serve private gems directly from a GitHub +repo. -Accessing gems from GPR will require a personal access token (PAT). To store this -locally, use `make auth` to set your GitHub Token using the PAT. +Accessing gems from GPR will require a personal access token (PAT). To store +this locally, use `make auth` to set your GitHub Token using the PAT. -To create a PAT, see [the Epimorphics wiki](https://github.com/epimorphics/internal/wiki/Ansible-CICD#creating-a-pat-for-gpr-access). +To create a PAT, see [the Epimorphics +wiki](https://github.com/epimorphics/internal/wiki/Ansible-CICD#creating-a-pat-for-gpr-access). ## Issues @@ -143,8 +150,8 @@ contained changes as well as the ability to diff agains the previous version. ### Configuration environment variables -We can use a number of environment variables to determine the runtime behaviour of -the application while developing the codebase locally: +We can use a number of environment variables to determine the runtime behaviour +of the application while developing the codebase locally: | name | description | typical value | | -------------------------- | -------------------------------------------------------------------- | ----------------------- | From fde56eef47aca2aabc5009c6646ec23ea90e9b26 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Wed, 22 Mar 2023 13:54:26 +0000 Subject: [PATCH 18/32] docs: README update Reorganised and adjusted content to be clearer for local development --- README.md | 61 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index fc72605..20e3fa3 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,33 @@ rails server Visit [`localhost:3000`](http://localhost:3000/) to view the local instance. +### Code standards + +Rubocop should return zero errors or warnings: + +```sh +$ rubocop + +Inspecting 30 files +.............................. + +30 files inspected, no offenses detected +``` + +### Running the tests + +While there aren't very many tests, as this is a very simple app, the tests should +be updated when required and always verified as still passing. + +```sh +rails -t + +[...] + +Finished in 1.607288s, 4.3552 runs/s, 5.5995 assertions/s. +7 runs, 9 assertions, 0 failures, 0 errors, 0 skips +``` + ### Running the app locally as a Docker image It can be useful to run the compiled Docker image, that will be run by the @@ -59,13 +86,20 @@ To mimic running the application in a deployed state you can call: make image ``` -This will run through the assets precompilation, linting and testing before -creating a Docker image, then you can run the image with the following command: +This will run through the assets precompilation before creating a Docker image, +then you can run the image with the following command: ```sh make run ``` +You can use the env variables [below](#configuration-environment-variables) to +set those values to work in your local environment if needed, for example: + +```sh +APPLICATION_ROOT=/ make image run +``` + N.B In the production environment, the app will be accessed via the URL path `/app/root`. When running the docker image locally for development, you may need to access the application via a proxy, otherwise, the paths for JS, CSS and @@ -76,30 +110,9 @@ proxy](https://github.com/epimorphics/simple-web-proxy)* repository for one simple way of handling this on a local develpment machine. With the proxy and Docker container running you can access the application as -[`localhost:3001/app/root/`](http://localhost:3001/app/root/) (note the trailing +[`localhost:3030/app/root`](http://localhost:3030/app/root) (note the trailing path). -### Code standards - -Rubocop should return zero errors or warnings: - -```sh -$ rubocop - -Inspecting 30 files -.............................. - -30 files inspected, no offenses detected -``` - -### Running the tests - -There aren't very many tests as this is a very simple app. - -```sh -rails -t -``` - ### Dependent gems Most of the local (i.e. Epimorphics) gems that this project depends on are From fdcde8e6c91e0a69e022ecdc6bc566e00de71e11 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Wed, 22 Mar 2023 14:40:04 +0000 Subject: [PATCH 19/32] docs: Updated CHANGELOG Brings the latest CHANGELOG changes from the dev branch in the correct order of release. --- CHANGELOG.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8428de1..c921c44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,13 +3,6 @@ This app presents the landing page experience for landregistry.data.gov.uk, including the SPARQL Qonsole -## 1.5.8 - 2022-10-10 - -- (Jon) Updated accessibility statement to reflect the adjusted release dates - for both the expected Qonsole update and preparation timestamp alongside the - removal of the deadlines for test revisions. Also includes minor copy changes - to resolve typos/punctuation issues. - ## 1.7.1 - 2023-03-16 - (Jon) Updated the README to improve the clarity of the instructions for @@ -41,6 +34,13 @@ including the SPARQL Qonsole monitoring, and updated version of Sentry. - (Ian) Updated the README as part of handover. +## 1.5.8 - 2022-10-10 + +- (Jon) Updated accessibility statement to reflect the adjusted release dates + for both the expected Qonsole update and preparation timestamp alongside the + removal of the deadlines for test revisions. Also includes minor copy changes + to resolve typos/punctuation issues. + ## 1.5.7 - 2021-12-01 - (Mairead) Added deployment sub repo and assisting deployment files From 4372f54f3959cf092556ed1e7c1ad3f1526b0f0e Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Wed, 22 Mar 2023 15:07:39 +0000 Subject: [PATCH 20/32] build: Clarified use of Run-time env var purpose --- config/environments/development.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/config/environments/development.rb b/config/environments/development.rb index 9b6394a..5036f20 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -46,8 +46,9 @@ # Log the stdout output to the Epimorphics JSON logging gem config.logger = JsonRailsLogger::Logger.new($stdout) - # The RAILS_RELATIVE_URL_ROOT should be specified in the entrypoint.sh script - # but this passes in a standard root value in development if the app is run + # The RAILS_RELATIVE_URL_ROOT should be set in the entrypoint.sh script via the + # build-time environment variable `APPLICATION_ROOT`; however, if this is not set + # the following fallback is passed in as a standard root value when the app is run # directly via `rails server` config.relative_url_root = ENV.fetch('RAILS_RELATIVE_URL_ROOT', '/') From fa7baee7fac2c2c0823598075f2e3d512c66f4bf Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Thu, 23 Mar 2023 17:02:24 +0000 Subject: [PATCH 21/32] build: resolving `config.relative_url_root` Updated to handle locking the root path for individual environments as well as removing unnecessary environment variables --- config/environments/development.rb | 16 +++++++--------- config/environments/production.rb | 8 ++++---- config/puma.rb | 2 +- entrypoint.sh | 9 ++++----- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/config/environments/development.rb b/config/environments/development.rb index 5036f20..4bafece 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -46,15 +46,13 @@ # Log the stdout output to the Epimorphics JSON logging gem config.logger = JsonRailsLogger::Logger.new($stdout) - # The RAILS_RELATIVE_URL_ROOT should be set in the entrypoint.sh script via the - # build-time environment variable `APPLICATION_ROOT`; however, if this is not set - # the following fallback is passed in as a standard root value when the app is run - # directly via `rails server` - config.relative_url_root = ENV.fetch('RAILS_RELATIVE_URL_ROOT', '/') - - # API_SERVICE_URL is not used on the landing page, but set in the Makefile as - # an env variable for the docker container when run as an image. - # API_SERVICE_URL is required by all other apps + # By default Rails expects that your application is running at the root (e.g. /). + # This configuration sets running your application inside a directory. + # Rails needs to know this directory to generate the appropriate routes. + # Alternatively you can set the RAILS_RELATIVE_URL_ROOT environment variable. + config.relative_url_root = '/' + + # API location is not used on the landing page, but is required by all other apps # Use default paths for documentation. config.accessibility_document_path = '/doc/accessibility' diff --git a/config/environments/production.rb b/config/environments/production.rb index 5b3b353..bae0c88 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -80,10 +80,10 @@ # Send deprecation notices to registered listeners. config.active_support.deprecation = :notify - # The RAILS_RELATIVE_URL_ROOT env var should NOT be used in Production - # The default value is passed in as the compiled assets have no knowledge of - # the base path and utilise the config.relative_url_root value to prefix the - # compiled asset paths + # By default Rails expects that your application is running at the root (e.g. /). + # This configuration sets running your application inside a directory. + # Rails needs to know this directory to generate the appropriate routes. + # Alternatively you can set the RAILS_RELATIVE_URL_ROOT environment variable. config.relative_url_root = '/app/root' # API location is not used on the landing page, but is required by all other apps diff --git a/config/puma.rb b/config/puma.rb index b53cc47..786fc03 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -12,7 +12,7 @@ # Specifies the `port` that Puma will listen on to receive requests; default is 3000. # -port ENV.fetch('PORT', 3000) +port ENV.fetch('PORT', 3000) # Specifies the `environment` that Puma will run in. # diff --git a/entrypoint.sh b/entrypoint.sh index 3737802..d6ef390 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -5,9 +5,6 @@ set -e rm -f ./tmp/pids/server.pid mkdir -pm 1777 ./tmp -# This is set to the name of the application for logging purposes -PUBLIC_NAME="LR Landing" - # Set the environment if [ -z "$RAILS_ENV" ] then @@ -17,11 +14,13 @@ fi # Handle secrets based on env if [ "$RAILS_ENV" == "production" ] && [ -z "$SECRET_KEY_BASE" ] then + # Secret key is set SECRET_KEY_BASE=$(./bin/rails secret) - echo '{"ts":"'"$(date -u +%FT%T.%3NZ)"'","level":"INFO","message":"SECRET_KEY_BASE set"}' + echo "{\"ts\": $(date -u +%FT%T.%3NZ), \"level\": \"INFO\", \"message\": \"SECRET_KEY_BASE is set\"}" + export SECRET_KEY_BASE fi -echo "{\"ts\":\"$(date -u +%FT%T.%3NZ)\",\"level\":\"INFO\",\"message\":\"exec ./bin/rails server -e \"${RAILS_ENV}\" -b 0.0.0.0\"}" +echo "{\"ts\": $(date -u +%FT%T.%3NZ), \"level\": \"INFO\", \"message\": \"exec ./bin/rails server -e ${RAILS_ENV} -b 0.0.0.0\"}" exec ./bin/rails server -e "${RAILS_ENV}" -b 0.0.0.0 From dee3da4d8d4f1315e8ecd9ed93d104e8b2c78c22 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Thu, 23 Mar 2023 17:03:09 +0000 Subject: [PATCH 22/32] build: better logging on start-up --- config/application.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/application.rb b/config/application.rb index 7fb1871..509d514 100644 --- a/config/application.rb +++ b/config/application.rb @@ -26,16 +26,16 @@ module Rails # :nodoc: class Server # :nodoc: - def print_boot_information - url = "on #{options[:SSLEnable] ? 'https' : 'http'}://#{options[:Host]}:#{options[:Port]}" + def print_boot_information # rubocop:disable Metrics/AbcSize + origin = "on #{options[:SSLEnable] ? 'https' : 'http'}://#{options[:Host]}:#{options[:Port]}" msg = { ts: DateTime.now.utc.strftime('%FT%T.%3NZ'), level: 'INFO', - message: "Starting #{server} Rails #{Rails.version} in #{Rails.env} #{url}" + message: "Starting #{server} Rails #{Rails.version} in #{Rails.env} #{origin}" } - puts(msg.to_json) # rubocop:disable Rails/Output + puts(msg.to_json) end end end From 24b3283e9978a5fe30af71357ce23bff1f6fe4d9 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Thu, 23 Mar 2023 17:06:35 +0000 Subject: [PATCH 23/32] docs: Updated CHANGELOG and README Rewritten to reflect the latest approach for both local and dockerised invocations of the application. Recorded summaries of changes for future reference. --- CHANGELOG.md | 4 +++- README.md | 20 ++++++-------------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c921c44..e0670fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,8 +3,10 @@ This app presents the landing page experience for landregistry.data.gov.uk, including the SPARQL Qonsole -## 1.7.1 - 2023-03-16 +## 1.7.1 - 2023-03-23 +- (Jon) Updated to handle locking the root path for individual environments as + well as removing unnecessary environment variables. - (Jon) Updated the README to improve the clarity of the instructions for running the application locally. - (Jon) Resolved incorrect traps for missing env vars in `entrypoint.sh`, added diff --git a/README.md b/README.md index edd7365..837a873 100644 --- a/README.md +++ b/README.md @@ -75,12 +75,12 @@ Finished in 1.607288s, 4.3552 runs/s, 5.5995 assertions/s. 7 runs, 9 assertions, 0 failures, 0 errors, 0 skips ``` -### Running the app locally as a Docker image +### Creating and running the app locally as a Docker image It can be useful to run the compiled Docker image, that will be run by the production installation, locally yourself. -To mimic running the application in a deployed state you can call: +To build a docker image locally, run the following command: ```sh make image @@ -93,24 +93,16 @@ then you can run the image with the following command: make run ``` -You can use the env variables [below](#configuration-environment-variables) to -set those values to work in your local environment if needed, for example: - -```sh -APPLICATION_ROOT=/ make image run -``` - -N.B In the production environment, the app will be accessed via the URL path -`/app/root`. When running the docker image locally for development, you may need -to access the application via a proxy, otherwise, the paths for JS, CSS and -image assets might not work. +N.B The docker image is built with a base path because the prodcution environment +utilises a proxy to ensure the correct application is accessed. You will need +to access the application via a local proxy to display the application correctly. Please see the *[simple web proxy](https://github.com/epimorphics/simple-web-proxy)* repository for one simple way of handling this on a local develpment machine. With the proxy and Docker container running you can access the application as -[`localhost:3030/app/root`](http://localhost:3030/app/root) (note the trailing +[`localhost:8080/app/root`](http://localhost:8080/app/root) (note the trailing path). ### Dependent gems From fe7c0637a84ab561ae3fd4f1fa97f4ac6110c733 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Thu, 23 Mar 2023 17:09:58 +0000 Subject: [PATCH 24/32] docs: Fixed typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 837a873..fa55650 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ then you can run the image with the following command: make run ``` -N.B The docker image is built with a base path because the prodcution environment +N.B The docker image is built with a base path because the production environment utilises a proxy to ensure the correct application is accessed. You will need to access the application via a local proxy to display the application correctly. From fbcaba53b49f378bb016d3935c131e45ff03a085 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Wed, 19 Apr 2023 23:54:48 +0100 Subject: [PATCH 25/32] refactor: updated robocop rules --- config/application.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/application.rb b/config/application.rb index 509d514..87174fe 100644 --- a/config/application.rb +++ b/config/application.rb @@ -26,7 +26,7 @@ module Rails # :nodoc: class Server # :nodoc: - def print_boot_information # rubocop:disable Metrics/AbcSize + def print_boot_information origin = "on #{options[:SSLEnable] ? 'https' : 'http'}://#{options[:Host]}:#{options[:Port]}" msg = { @@ -35,7 +35,7 @@ def print_boot_information # rubocop:disable Metrics/AbcSize message: "Starting #{server} Rails #{Rails.version} in #{Rails.env} #{origin}" } - puts(msg.to_json) + puts(msg.to_json) # rubocop:disable Rails/Output end end end From 07e93a8d08cc1d292ec4012b3df6ed8260eca021 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Wed, 19 Apr 2023 23:55:17 +0100 Subject: [PATCH 26/32] fix: adjusted error reporting environments --- config/initializers/sentry.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index a83edb1..623e854 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -4,7 +4,7 @@ Sentry.init do |config| config.dsn = ENV['SENTRY_API_KEY'] config.environment = ENV['DEPLOYMENT_ENVIRONMENT'] || Rails.env - config.enabled_environments = %w[production test] + config.enabled_environments = %w[production] config.release = Version::VERSION config.breadcrumbs_logger = %i[active_support_logger http_logger] end From de6f08c0b30efb9a3b6a82717a300a9dd827a53e Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Wed, 19 Apr 2023 23:55:45 +0100 Subject: [PATCH 27/32] build: environment specific configurations --- config/environments/development.rb | 6 ++++-- config/environments/production.rb | 14 ++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/config/environments/development.rb b/config/environments/development.rb index 4bafece..1141c3b 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -50,9 +50,11 @@ # This configuration sets running your application inside a directory. # Rails needs to know this directory to generate the appropriate routes. # Alternatively you can set the RAILS_RELATIVE_URL_ROOT environment variable. - config.relative_url_root = '/' + config.relative_url_root = ENV.fetch('RAILS_RELATIVE_URL_ROOT', '/') - # API location is not used on the landing page, but is required by all other apps + # API location can be specified in the environment but defaults to the dev service + # Here we are still providing the API_SERVICE_URL for qonsole + config.api_service_url = ENV.fetch('API_SERVICE_URL', 'http://localhost:8888') # Use default paths for documentation. config.accessibility_document_path = '/doc/accessibility' diff --git a/config/environments/production.rb b/config/environments/production.rb index bae0c88..b83fc2c 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -80,12 +80,14 @@ # Send deprecation notices to registered listeners. config.active_support.deprecation = :notify - # By default Rails expects that your application is running at the root (e.g. /). - # This configuration sets running your application inside a directory. - # Rails needs to know this directory to generate the appropriate routes. - # Alternatively you can set the RAILS_RELATIVE_URL_ROOT environment variable. - config.relative_url_root = '/app/root' - + # The RAILS_RELATIVE_URL_ROOT env var should ONLY be used in a local environment. + # Here, the default value is passed in as the compiled assets have no knowledge + # of the base path and utilise the config.relative_url_root value to prefix the + # compiled asset paths + config.relative_url_root = ENV.fetch('RAILS_RELATIVE_URL_ROOT', '/') + + # API location can be specified in the environment + # But defaults to the dev service # API location is not used on the landing page, but is required by all other apps # Use default paths for documentation. From f77740d6188f51a17dea79a254558b53c6d2bf1b Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Wed, 19 Apr 2023 23:56:40 +0100 Subject: [PATCH 28/32] build: streamlined entrypoint script also includes adjusted comment on Dockerfile --- Dockerfile | 2 +- entrypoint.sh | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 45355fe..4f67ef0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,7 +32,7 @@ COPY config config COPY lib lib COPY public public -# Compile +# Compile assets RUN RAILS_ENV=production \ bundle exec rake assets:precompile \ && mkdir -m 777 /usr/src/app/coverage diff --git a/entrypoint.sh b/entrypoint.sh index cee1da2..d90d6c4 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -8,11 +8,14 @@ mkdir -pm 1777 ./tmp # Set the environment [ -z "$RAILS_ENV" ] && RAILS_ENV=production +# Check for API Service URL env var +[ -n "$API_SERVICE_URL" ] && echo "{\"ts\":\"$(date -u +%FT%T.%3NZ)\",\"level\":\"INFO\",\"message\":\"API_SERVICE_URL=${API_SERVICE_URL}\"}" + # Handle secrets based on env -[ "$RAILS_ENV" == "production" ] && [ -z "$SECRET_KEY_BASE" ] && export SECRET_KEY_BASE=$(./bin/rails secret) +[ "$RAILS_ENV" == "production" ] && [ -z "$SECRET_KEY_BASE" ] && SECRET_KEY_BASE=$(./bin/rails secret) && export SECRET_KEY_BASE -[ -n "${RAILS_RELATIVE_URL_ROOT}" ] && echo "{\"ts\":\"$(date -u +%FT%T.%3NZ)\",\"level\":\"INFO\",\"message\":\"RAILS_RELATIVE_URL_ROOT=${RAILS_RELATIVE_URL_ROOT}\"}" +[ -n "$RAILS_RELATIVE_URL_ROOT" ] && echo "{\"ts\":\"$(date -u +%FT%T.%3NZ)\",\"level\":\"INFO\",\"message\":\"RAILS_RELATIVE_URL_ROOT=${RAILS_RELATIVE_URL_ROOT}\"}" echo "{\"ts\":\"$(date -u +%FT%T.%3NZ)\",\"level\":\"INFO\",\"message\":\"exec ./bin/rails server -e ${RAILS_ENV} -b 0.0.0.0\"}" -exec ./bin/rails server -e ${RAILS_ENV} -b 0.0.0.0 +exec ./bin/rails server -e "${RAILS_ENV}" -b 0.0.0.0 From cec28ee011e2966ba0163f556d6a9c7837d5926a Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Wed, 19 Apr 2023 23:57:34 +0100 Subject: [PATCH 29/32] build: Updated gems and lock file Specific to Epimorphics internal gems --- Gemfile | 8 +++++--- Gemfile.lock | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 147f7a2..9dc0701 100644 --- a/Gemfile +++ b/Gemfile @@ -33,14 +33,16 @@ group :development do end # rubocop:disable Layout/LineLength -gem 'qonsole-rails', git: 'https://github.com/epimorphics/qonsole-rails' +# TODO: While running the rails app locally for testing you can set gems to your local path +# ! These "local" paths do not work with a docker image - use the repo instead # gem 'qonsole-rails', path: '~/Epimorphics/clients/land-registry/projects/qonsole-rails' - -# TODO: For running the app locally for testing you can set this to your local path # gem 'json_rails_logger', '~> 0.3.5', path: '~/Epimorphics/shared/json-rails-logger/' # gem 'lr_common_styles', '~> 1.9.1', path: '~/Epimorphics/clients/land-registry/projects/lr_common_styles/' # rubocop:enable Layout/LineLength +# TODO: In production you want to set this to the gem from the epimorphics github repo +gem 'qonsole-rails', git: 'https://github.com/epimorphics/qonsole-rails' + # TODO: In production you want to set this to the gem from the epimorphics package repo source 'https://rubygems.pkg.github.com/epimorphics' do gem 'json_rails_logger', '~> 0.3.5' diff --git a/Gemfile.lock b/Gemfile.lock index aca61b3..8fee24d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -259,11 +259,11 @@ GEM GEM remote: https://rubygems.pkg.github.com/epimorphics/ specs: - json_rails_logger (0.3.5.3) + json_rails_logger (0.3.5.4) json lograge railties - lr_common_styles (1.9.1.1) + lr_common_styles (1.9.1.2) bootstrap-sass (~> 3.4.0) font-awesome-rails (~> 4.7.0.1) govuk_elements_rails (~> 2.0.0) From 880a019af3368bc2e578cef80a026547bb154f44 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Wed, 19 Apr 2023 23:57:48 +0100 Subject: [PATCH 30/32] docs: Improved README --- README.md | 180 +++++++++++++++++++++++++++++------------------------- 1 file changed, 97 insertions(+), 83 deletions(-) diff --git a/README.md b/README.md index 22bd361..a97c1fd 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,8 @@ This repo provides the landing page experience for visitors to provides links to the various open data services ([Price Paid Data Explorer](http://landregistry.data.gov.uk/app/ppd), [Standard Reports](http://landregistry.data.gov.uk/app/standard-reports) and [UK Housing -Price Index](http://landregistry.data.gov.uk/app/ppukhpi)), and hosts the -qonsole app, which allows users to run SPARQL queries against the linked-data -dataset. +Price Index](http://landregistry.data.gov.uk/app/ukhpi)), and hosts the qonsole +app, which allows users to run SPARQL queries against the linked-data dataset. Please see the other repositories in the [HM Land Registry Open Data](https://github.com/epimorphics/hmlr-linked-data/) project for more @@ -19,134 +18,150 @@ details: - [UKHPI](https://github.com/epimorphics/ukhpi) - [Qonsole (Rails)](https://github.com/epimorphics/qonsole-rails) -## Production Mode +## Developer notes + +### Updating the code -Unlike other HMLR applications, the Landing application does not run run from -a sub-diretory. As such Production and deveolpment mode run at teh same location. +This is a pretty standard, and quite small, Rails app. -If running more than one application locally ensure that each is listerning on a -separate port. In the case of running local docker images, the required -configuration is captured in the `Makefile` and an image can be run by using +Please keep the [changelog](CHANGELOG.md) up-to-date, and increment the +[`/app/lib/version.rb`](https://github.com/epimorphics/lr-landing/app/lib/version.rb) +identifier in line with semver principles. + +### Running the app locally in Development mode + +Begin by cloning [the Github repo](https://github.com/epimorphics/lr-landing) +and installing the dependencies: ```sh -make image run +git clone git@github.com:epimorphics/lr-landing.git && +cd lr-landing && +bundle install ``` -or, if the image is already built, simply +Start the app locally for development: ```sh -make run +rails server ``` -For rails applications you can start the server locally using the following command: +If you want to be able to test `Qonsole` locally, you will need to run the app +with the `API_SERVICE_URL` environment variable set to the URL of the Data API: ```sh -rails server -e production -p -b 0.0.0.0 +API_SERVICE_URL=http://localhost:8888 rails server ``` -To test the running application visit `localhost:`. +Visit to view the local instance. -For information on how to running a proxy to mimic production and run multple services -together see [simple-web-proxy](https://github.com/epimorphics/simple-web-proxy/edit/main/README.md) +## Running the app locally in Production Mode -## Runtime Configuration environment variables +Unlike other HMLR applications, the Landing application does not run run from a +sub-directory. -We use a number of environment variables to determine the runtime behaviour -of the application: +As such **Production** *and* **Development** modes run at the same path. -| name | description | default value | -| -------------------------- | ----------------------------------------------------------------------- | -------------------------- | -| `SENTRY_API_KEY` | The DSN for sending reports to the PPD Sentry account | None | +If running more than one application locally you need to ensure that each is +listening on a separate port. In the case of running local docker images, the +required configuration is captured in the application's `Makefile` and an image +can be run by using: -## Deployment +```sh +make image run +``` -The detailed deployment mapping is decscribed in `deployment.yml`. At the time -of writing, using the new infrastructure, the deployment process is as follows: +or, if the image is already built, simply -- commits to the `dev-infrastructure` branch will deploy the dev server -- commits to the `preprod` branch will deploy the pre-production server -- any commit on the `prod` branch will deploy the production server as a new - release +```sh +make run +``` -If the commit is a "new" release, the deployment should be tagged with the same -version number, e.g. `1.2.3`. as set in the `/app/lib/version.rb` and a short -annotation summarising the updates should be included in the tag. +You can start a production mode rails server locally using the following +command: -Once the production deployment has been completed and verified, please create a -release on the repository using the same latest version number. Utilise the -`Generate release notes from commit log` option to create specific notes on the -contained changes as well as the ability to diff agains the previous version. +```sh +rails server -e production +``` -### `entrypoint.sh` +N.B Ommitting the `-e` flag will default to `development` mode. -- There is a workaround to removing the PID lock of the Rails process in the - event of the application crashing and not releasing the process. -- The Rails secret is created here. +To test the running application visit in your browser. -### Runtime Configuration environment variables +For more information on how to running a proxy to mimic production and run +multple services together see +[simple-web-proxy](https://github.com/epimorphics/simple-web-proxy/) -We can use a number of environment variables to determine the runtime behaviour of -the application while developing the codebase locally: +With the proxy and Docker container running you can access the application as +[`localhost:8080`](http://localhost:8080) (note the lack of trailing path). -| name | description | -| -------------------------- | -------------------------------------------------------------------- | -| `SENTRY_API_KEY` | The Sentry DSN client key for the `lr-dgu-landing` Sentry app | +### Coding standards -## Developer notes +#### Running code linting -### Updating the code +```sh +rubocop +``` -This is a pretty standard, and quite small, Rails app. +Rubocop should always return no errors or warnings. -Please keep the [changelog](CHANGELOG.md) up-to-date, and increment the -[`/app/lib/version.rb`](https://github.com/epimorphics/lr-landing/app/lib/version.rb) -identifier in line with semver principles. +```sh +Inspecting 30 files +.............................. -### Running the app locally in dev mode +30 files inspected, no offenses detected +``` -Begin by cloning [the Github repo](https://github.com/epimorphics/lr-landing) -and installing the dependencies: +#### Running integration tests ```sh -git clone git@github.com:epimorphics/lr-landing.git && -cd lr-landing && -bundle install +rails test ``` -Start the app locally for development: +Tests should always return as passing: ```sh -rails server +Run options: --seed ##### + +# Running: +[...] + +Finished in 1.050748s, 6.6619 runs/s, 8.5653 assertions/s. +7 runs, 9 assertions, 0 failures, 0 errors, 0 skips ``` -Visit [`localhost:3000`](http://localhost:3000/) to view the local instance. +## Deployment + +The detailed deployment mapping is described in `deployment.yml`. At the time of +writing, using the new infrastructure, the deployment process is as follows: -### Code standards +- commits to the `dev-infrastructure` branch will deploy the `dev` server +- commits to the `preprod` branch will deploy the `pre-production` server +- any commit on the `prod` branch will deploy the `production` server as a new + release -To build a docker image locally, run the following command: +If the commit is a "new" release, the deployment should be tagged with the same +version number, e.g. `1.2.3`. as set in the `/app/lib/version.rb` and a short +annotation summarising the updates should be included in the tag. -```sh -make image -``` +Once the production deployment has been completed and verified, please create a +release on the repository using the same latest version number. Utilise the +`Generate release notes from commit log` option to create specific notes on the +contained changes as well as the ability to diff agains the previous version. -This will run through the assets precompilation before creating a Docker image, -then you can run the image with the following command: +### `entrypoint.sh` -```sh -make run -``` +- There is a workaround to removing the PID lock of the Rails process in the + event of the application crashing and not releasing the process. +- The rails `SECRET_KEY_BASE` is created here. -N.B The docker image is built with a base path because the production environment -utilises a proxy to ensure the correct application is accessed. You will need -to access the application via a local proxy to display the application correctly. +### Runtime Configuration environment variables -Please see the *[simple web -proxy](https://github.com/epimorphics/simple-web-proxy)* repository for one -simple way of handling this on a local develpment machine. +We can use a number of environment variables to determine the runtime behaviour +of the application while developing the codebase locally: -With the proxy and Docker container running you can access the application as -[`localhost:8080/app/root`](http://localhost:8080/app/root) (note the trailing -path). +| name | description | +| -------------------------- | -------------------------------------------------------------------- | +| `SENTRY_API_KEY` | The Sentry DSN client key for the `lr-dgu-landing` Sentry app | ### Dependent gems @@ -154,7 +169,7 @@ Most of the local (i.e. Epimorphics) gems that this project depends on are served via GitHub Package Registry (GPR). Specifically, `lr_common_styles` and `json-rails-logger`. -However, `qonsole-rails` is __not__ served via GPR at present, mostly because we +However, `qonsole-rails` is **not** served via GPR at present, mostly because we are hoping to retire it in favour of a new implementation of Qonsole. Since `qonsole-rails` is a public repo, this dependency does not require us to lean on the old pattern of using an ssh key to serve private gems directly from a GitHub @@ -170,4 +185,3 @@ wiki](https://github.com/epimorphics/internal/wiki/Ansible-CICD#creating-a-pat-f Please add issues to the [shared issues list](https://github.com/epimorphics/hmlr-linked-data/issues) - From e49f2725ca37877bf1970d44c114a17d6e69215c Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Mon, 15 May 2023 18:09:18 +0100 Subject: [PATCH 31/32] build: cleaned BUNDLE_CONFIG Removed `${HOME}/` from path --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 8d22e05..803a385 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ IMAGE?=${NAME}/${STAGE} REPO?=${ECR}/${IMAGE} GITHUB_TOKEN=.github-token -BUNDLE_CFG=${HOME}/.bundle/config +BUNDLE_CFG=.bundle/config all: image From 01e4de06eb99ed75ba78ab17f731958ed60f7171 Mon Sep 17 00:00:00 2001 From: "Jon R. Humphrey" Date: Tue, 23 May 2023 09:13:39 +0100 Subject: [PATCH 32/32] docs: Updated README header --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a97c1fd..b63be26 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ details: - [UKHPI](https://github.com/epimorphics/ukhpi) - [Qonsole (Rails)](https://github.com/epimorphics/qonsole-rails) -## Developer notes +## Additional Information ### Updating the code