From 405f261f56cdd22c3d8d4a42ee128b2ed1e4ed0d Mon Sep 17 00:00:00 2001 From: "depfu[bot]" <23717796+depfu[bot]@users.noreply.github.com> Date: Thu, 23 Apr 2026 00:00:16 +0000 Subject: [PATCH 01/12] Update Node.js to version 24.15.0 --- .nvmrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nvmrc b/.nvmrc index 8e35034890..5bf4400f22 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -24.14.1 +24.15.0 From 863eadb5666f4892d3834c622cd23ba8a392e6c5 Mon Sep 17 00:00:00 2001 From: sabrine33 Date: Wed, 29 Apr 2026 14:05:55 +0100 Subject: [PATCH 02/12] deprecate LRC Bank input tube purpose --- .../sample_manifest/sample_tube_behaviour.rb | 2 +- .../sample_manifest/tube_rack_behaviour.rb | 2 +- ...add_deprecated_fields_to_plate_purposes.rb | 7 +++++++ db/schema.rb | 4 +++- .../deprecate_lrc_bank_input_purpose.rake | 20 +++++++++++++++++++ 5 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20260429114103_add_deprecated_fields_to_plate_purposes.rb create mode 100644 lib/tasks/deprecate_lrc_bank_input_purpose.rake diff --git a/app/models/sample_manifest/sample_tube_behaviour.rb b/app/models/sample_manifest/sample_tube_behaviour.rb index 1ab84b0a9e..6b8f625bde 100644 --- a/app/models/sample_manifest/sample_tube_behaviour.rb +++ b/app/models/sample_manifest/sample_tube_behaviour.rb @@ -20,7 +20,7 @@ def io_samples end def acceptable_purposes - Tube::Purpose.where(target_type: SampleTube) + Tube::Purpose.where(target_type: SampleTube, deprecated: false) end def default_purpose diff --git a/app/models/sample_manifest/tube_rack_behaviour.rb b/app/models/sample_manifest/tube_rack_behaviour.rb index 16bcb1786a..f891f840b8 100644 --- a/app/models/sample_manifest/tube_rack_behaviour.rb +++ b/app/models/sample_manifest/tube_rack_behaviour.rb @@ -20,7 +20,7 @@ def generate end def acceptable_purposes - Tube::Purpose.where(target_type: SampleTube) + Tube::Purpose.where(target_type: SampleTube, deprecated: false) end def acceptable_rack_purposes diff --git a/db/migrate/20260429114103_add_deprecated_fields_to_plate_purposes.rb b/db/migrate/20260429114103_add_deprecated_fields_to_plate_purposes.rb new file mode 100644 index 0000000000..a004ffe4d4 --- /dev/null +++ b/db/migrate/20260429114103_add_deprecated_fields_to_plate_purposes.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true +class AddDeprecatedFieldsToPlatePurposes < ActiveRecord::Migration[8.0] + def change + add_column :plate_purposes, :deprecated, :boolean, default: false, null: false + add_column :plate_purposes, :deprecated_at, :datetime + end +end diff --git a/db/schema.rb b/db/schema.rb index 43fff10f6a..cd96dd237f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.0].define(version: 2026_04_24_000000) do +ActiveRecord::Schema[8.0].define(version: 2026_04_29_114103) do create_table "accession_sample_statuses", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.integer "sample_id", null: false t.string "status", null: false @@ -857,6 +857,8 @@ t.integer "source_purpose_id" t.integer "lifespan" t.integer "barcode_prefix_id" + t.boolean "deprecated", default: false, null: false + t.datetime "deprecated_at" t.index ["barcode_prefix_id"], name: "fk_rails_763bed2756" t.index ["target_type"], name: "index_plate_purposes_on_target_type" t.index ["type"], name: "index_plate_purposes_on_type" diff --git a/lib/tasks/deprecate_lrc_bank_input_purpose.rake b/lib/tasks/deprecate_lrc_bank_input_purpose.rake new file mode 100644 index 0000000000..d33f79a19c --- /dev/null +++ b/lib/tasks/deprecate_lrc_bank_input_purpose.rake @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +# # One-time task run to deprecate the LRC Bank Input tube purpose. +# # For reference: Y26-075 + +namespace :LRC_BANK_INPUT do + desc 'Deprecate LRC Bank Input tube purpose' + task deprecate_lrc_bank_input_purpose: :environment do + lrc_bank_input_purpose = Tube::Purpose.find_by(name: 'LRC Bank Input') + + unless lrc_bank_input_purpose + puts "Tube Purpose 'LRC Bank Input' not found. No action taken." + next + end + + lrc_bank_input_purpose.update!(deprecated: true, deprecated_at: DateTime.now) + + puts 'Done: LRC Bank Input tube purpose is been deprecated.' + end +end From 031722f9f964516ba86562dbdb78157a058af4f6 Mon Sep 17 00:00:00 2001 From: Stephen Hulme Date: Fri, 1 May 2026 08:00:54 +0100 Subject: [PATCH 03/12] build: pin record_loader to v0.3.0 --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index b7a7b80445..2c7017c5a1 100644 --- a/Gemfile +++ b/Gemfile @@ -34,7 +34,7 @@ group :default do # Provides bulk insert capabilities gem 'activerecord-import' - gem 'record_loader', git: 'https://github.com/sanger/record_loader' + gem 'record_loader', git: 'https://github.com/sanger/record_loader', tag: 'v0.3.0' gem 'mysql2', platforms: :mri gem 'will_paginate' From a957e0050631d11ea93708b2416def9b546ab207 Mon Sep 17 00:00:00 2001 From: "depfu[bot]" <23717796+depfu[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 19:10:13 +0000 Subject: [PATCH 04/12] Update datatables.net-bs4 to version 2.3.8 --- package.json | 2 +- yarn.lock | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 55ecab2974..f3127c1f9d 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "bootstrap": "^4.6.2", "codemirror": "^5.65.18", "css-loader": "^6.0.0", - "datatables.net-bs4": "^2.3.6", + "datatables.net-bs4": "^2.3.8", "datatables.net-buttons-bs4": "^3.2.6", "datatables.net-fixedcolumns-bs4": "^5.0.5", "datatables.net-fixedheader-bs4": "^4.0.5", diff --git a/yarn.lock b/yarn.lock index 2317815f9b..444336d89b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1855,7 +1855,7 @@ data-urls@^5.0.0: whatwg-mimetype "^4.0.0" whatwg-url "^14.0.0" -datatables.net-bs4@>=1.11.0, datatables.net-bs4@^2, datatables.net-bs4@^2.3.6: +datatables.net-bs4@>=1.11.0, datatables.net-bs4@^2: version "2.3.7" resolved "https://registry.yarnpkg.com/datatables.net-bs4/-/datatables.net-bs4-2.3.7.tgz#c361ff8f439bf63e1ec4862085ec667fb96bfd7f" integrity sha512-ZyofK/3Unj0lQdAIsI9gT5oGCwTnx8y2UF6muYkbdO/Rw9h+x2kQwFkuCX5J0j6N2B+YCwzHk2OPu9yU8nk1Kw== @@ -1863,6 +1863,14 @@ datatables.net-bs4@>=1.11.0, datatables.net-bs4@^2, datatables.net-bs4@^2.3.6: datatables.net "2.3.7" jquery ">=1.7" +datatables.net-bs4@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/datatables.net-bs4/-/datatables.net-bs4-2.3.8.tgz#da3660b5981ba062aa59dda1c81c524201111742" + integrity sha512-i65jbIw6DPG6KyUXRacCFzbawRYA2UjPg68tPkOns/r9YXQngSMQ/+izdmJk1xnPDRXh3cuTqV8cqOIy1NXH1A== + dependencies: + datatables.net "2.3.8" + jquery ">=1.7" + datatables.net-buttons-bs4@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/datatables.net-buttons-bs4/-/datatables.net-buttons-bs4-3.2.6.tgz#a2b11cf21c685b1389ac4d7d9fa362f156732952" @@ -1972,6 +1980,13 @@ datatables.net@2.3.7, datatables.net@>=1.11.0, datatables.net@^2: dependencies: jquery ">=1.7" +datatables.net@2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-2.3.8.tgz#55a8dbe3bd2196951c498ab79bf44602a2bf3229" + integrity sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg== + dependencies: + jquery ">=1.7" + debug@4, debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.3: version "4.4.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" From e650e3ecb21b0f0a7df997697ca6a0515d48310d Mon Sep 17 00:00:00 2001 From: "depfu[bot]" <23717796+depfu[bot]@users.noreply.github.com> Date: Tue, 5 May 2026 00:10:49 +0000 Subject: [PATCH 05/12] Update net-imap to version 0.6.4 --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index b521df22ed..a66ecd128b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -338,7 +338,7 @@ GEM bigdecimal net-http (0.9.1) uri (>= 0.11.1) - net-imap (0.6.3) + net-imap (0.6.4) date net-protocol net-ldap (0.20.0) From c3fa3e6447be27893abe8e1d0554b108737c6ae0 Mon Sep 17 00:00:00 2001 From: yoldas Date: Tue, 5 May 2026 18:01:12 +0100 Subject: [PATCH 06/12] fix(ci): use stable Chrome and skip apt deps to prevent apt-get hang --- .github/workflows/cucumber_tests.yml | 4 ++-- .github/workflows/rspec_feature_tests.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cucumber_tests.yml b/.github/workflows/cucumber_tests.yml index 9484fbca19..614adf3501 100644 --- a/.github/workflows/cucumber_tests.yml +++ b/.github/workflows/cucumber_tests.yml @@ -67,9 +67,9 @@ jobs: - name: Setup stable Chrome uses: sanger/.github/.github/actions/tests/setup-chrome@master with: - chrome-version: 128 + chrome-version: stable install-chromedriver: true - install-dependencies: true + install-dependencies: false - name: Setup environment env: diff --git a/.github/workflows/rspec_feature_tests.yml b/.github/workflows/rspec_feature_tests.yml index bc71e576e6..89d8799e14 100644 --- a/.github/workflows/rspec_feature_tests.yml +++ b/.github/workflows/rspec_feature_tests.yml @@ -67,9 +67,9 @@ jobs: - name: Setup stable Chrome uses: sanger/.github/.github/actions/tests/setup-chrome@master with: - chrome-version: 128 + chrome-version: stable install-chromedriver: true - install-dependencies: true + install-dependencies: false # Establish a cache of js modules to improve performance - name: Cache JS From 0bf73b59dc4d2c86e329399ff200776df78788c6 Mon Sep 17 00:00:00 2001 From: yoldas Date: Tue, 5 May 2026 18:07:16 +0100 Subject: [PATCH 07/12] fix(ci): disable chromedriver install to fix version mismatch --- .github/workflows/cucumber_tests.yml | 2 +- .github/workflows/rspec_feature_tests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cucumber_tests.yml b/.github/workflows/cucumber_tests.yml index 614adf3501..d4dd28a61c 100644 --- a/.github/workflows/cucumber_tests.yml +++ b/.github/workflows/cucumber_tests.yml @@ -68,7 +68,7 @@ jobs: uses: sanger/.github/.github/actions/tests/setup-chrome@master with: chrome-version: stable - install-chromedriver: true + install-chromedriver: false install-dependencies: false - name: Setup environment diff --git a/.github/workflows/rspec_feature_tests.yml b/.github/workflows/rspec_feature_tests.yml index 89d8799e14..b672e1764b 100644 --- a/.github/workflows/rspec_feature_tests.yml +++ b/.github/workflows/rspec_feature_tests.yml @@ -68,7 +68,7 @@ jobs: uses: sanger/.github/.github/actions/tests/setup-chrome@master with: chrome-version: stable - install-chromedriver: true + install-chromedriver: false install-dependencies: false # Establish a cache of js modules to improve performance From e28650f1ee790cfae8ce1cee1edc4e43c2fe1aa6 Mon Sep 17 00:00:00 2001 From: yoldas Date: Tue, 5 May 2026 18:14:31 +0100 Subject: [PATCH 08/12] fix(ci): replace Azure apt mirror to prevent apt-get hang on push --- .github/workflows/cucumber_tests.yml | 3 +++ .github/workflows/rspec_feature_tests.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/cucumber_tests.yml b/.github/workflows/cucumber_tests.yml index d4dd28a61c..65a52e18a4 100644 --- a/.github/workflows/cucumber_tests.yml +++ b/.github/workflows/cucumber_tests.yml @@ -64,6 +64,9 @@ jobs: - name: Setup Node uses: sanger/.github/.github/actions/setup/node@master + - name: Fix apt mirrors (avoid Azure mirror timeouts) + run: sudo sed -i 's|http://azure.archive.ubuntu.com|http://archive.ubuntu.com|g' /etc/apt/apt-mirrors.txt + - name: Setup stable Chrome uses: sanger/.github/.github/actions/tests/setup-chrome@master with: diff --git a/.github/workflows/rspec_feature_tests.yml b/.github/workflows/rspec_feature_tests.yml index b672e1764b..dc43067b04 100644 --- a/.github/workflows/rspec_feature_tests.yml +++ b/.github/workflows/rspec_feature_tests.yml @@ -64,6 +64,9 @@ jobs: - name: Setup Node uses: sanger/.github/.github/actions/setup/node@master + - name: Fix apt mirrors (avoid Azure mirror timeouts) + run: sudo sed -i 's|http://azure.archive.ubuntu.com|http://archive.ubuntu.com|g' /etc/apt/apt-mirrors.txt + - name: Setup stable Chrome uses: sanger/.github/.github/actions/tests/setup-chrome@master with: From 69f4f07a0169139def021e0fb2d65bec57baa858 Mon Sep 17 00:00:00 2001 From: yoldas Date: Tue, 5 May 2026 18:20:33 +0100 Subject: [PATCH 09/12] restore chrome version --- .github/workflows/cucumber_tests.yml | 6 +++--- .github/workflows/rspec_feature_tests.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cucumber_tests.yml b/.github/workflows/cucumber_tests.yml index 65a52e18a4..2b32a2e5f9 100644 --- a/.github/workflows/cucumber_tests.yml +++ b/.github/workflows/cucumber_tests.yml @@ -70,9 +70,9 @@ jobs: - name: Setup stable Chrome uses: sanger/.github/.github/actions/tests/setup-chrome@master with: - chrome-version: stable - install-chromedriver: false - install-dependencies: false + chrome-version: 128 + install-chromedriver: true + install-dependencies: true - name: Setup environment env: diff --git a/.github/workflows/rspec_feature_tests.yml b/.github/workflows/rspec_feature_tests.yml index dc43067b04..743279c555 100644 --- a/.github/workflows/rspec_feature_tests.yml +++ b/.github/workflows/rspec_feature_tests.yml @@ -70,9 +70,9 @@ jobs: - name: Setup stable Chrome uses: sanger/.github/.github/actions/tests/setup-chrome@master with: - chrome-version: stable - install-chromedriver: false - install-dependencies: false + chrome-version: 128 + install-chromedriver: true + install-dependencies: true # Establish a cache of js modules to improve performance - name: Cache JS From 4d054d1e7023e78174eba3fef41df3f5c54ca999 Mon Sep 17 00:00:00 2001 From: yoldas Date: Tue, 5 May 2026 18:28:57 +0100 Subject: [PATCH 10/12] Fix apt mirrors + networking --- .github/workflows/cucumber_tests.yml | 7 +++++-- .github/workflows/rspec_feature_tests.yml | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cucumber_tests.yml b/.github/workflows/cucumber_tests.yml index 2b32a2e5f9..0f34c1a757 100644 --- a/.github/workflows/cucumber_tests.yml +++ b/.github/workflows/cucumber_tests.yml @@ -64,8 +64,11 @@ jobs: - name: Setup Node uses: sanger/.github/.github/actions/setup/node@master - - name: Fix apt mirrors (avoid Azure mirror timeouts) - run: sudo sed -i 's|http://azure.archive.ubuntu.com|http://archive.ubuntu.com|g' /etc/apt/apt-mirrors.txt + - name: Fix apt mirrors + networking + run: | + sudo sed -i 's|http://azure.archive.ubuntu.com|http://archive.ubuntu.com|g' /etc/apt/apt-mirrors.txt + echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4 + echo 'Acquire::Retries "1";' | sudo tee /etc/apt/apt.conf.d/80-retries - name: Setup stable Chrome uses: sanger/.github/.github/actions/tests/setup-chrome@master diff --git a/.github/workflows/rspec_feature_tests.yml b/.github/workflows/rspec_feature_tests.yml index 743279c555..781da98e49 100644 --- a/.github/workflows/rspec_feature_tests.yml +++ b/.github/workflows/rspec_feature_tests.yml @@ -64,8 +64,11 @@ jobs: - name: Setup Node uses: sanger/.github/.github/actions/setup/node@master - - name: Fix apt mirrors (avoid Azure mirror timeouts) - run: sudo sed -i 's|http://azure.archive.ubuntu.com|http://archive.ubuntu.com|g' /etc/apt/apt-mirrors.txt + - name: Fix apt mirrors + networking + run: | + sudo sed -i 's|http://azure.archive.ubuntu.com|http://archive.ubuntu.com|g' /etc/apt/apt-mirrors.txt + echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4 + echo 'Acquire::Retries "1";' | sudo tee /etc/apt/apt.conf.d/80-retries - name: Setup stable Chrome uses: sanger/.github/.github/actions/tests/setup-chrome@master From 9b41d8398bb382f7c86f421d624d20436ffb2aea Mon Sep 17 00:00:00 2001 From: Ben Topping Date: Wed, 6 May 2026 10:03:41 +0100 Subject: [PATCH 11/12] feat(aviti): adds additional option for quant_method_used --- .../descriptors/002_element_aviti_descriptors.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/default_records/descriptors/002_element_aviti_descriptors.yml b/config/default_records/descriptors/002_element_aviti_descriptors.yml index 91335a9e02..ec39b26ec9 100644 --- a/config/default_records/descriptors/002_element_aviti_descriptors.yml +++ b/config/default_records/descriptors/002_element_aviti_descriptors.yml @@ -7,6 +7,7 @@ Quant method used: selection: Tapestation: Tapestation Tapestation & qPCR: Tapestation & qPCR + Not applicable: Not applicable required: true sorter: 0 Pipette Carousel: From 3ac75e310eeead03da85f31db151ca8e6403727e Mon Sep 17 00:00:00 2001 From: Stephen Hulme Date: Thu, 7 May 2026 15:38:11 +0100 Subject: [PATCH 12/12] build: rebuild lockfile --- Gemfile.lock | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index b521df22ed..0e4dd204f5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -16,7 +16,8 @@ GIT GIT remote: https://github.com/sanger/record_loader - revision: 9e7481f4d2342f042ab13465962e5d6689863198 + revision: 238db7fa24fffee5ad413bd9cd4c6b857d1626c9 + tag: v0.3.0 specs: record_loader (0.3.0)