From dae87a6febf4902344c9048a8f2041303dbd8fa2 Mon Sep 17 00:00:00 2001 From: Thomas Date: Thu, 5 Sep 2024 09:57:25 +0200 Subject: [PATCH 1/4] fix generic assay plugin issues (#1982, #1984) --- docs_manual/source/metadata_advanced.rst | 2 +- samplesheets/assayapps/generic/plugins.py | 23 ++++++++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/docs_manual/source/metadata_advanced.rst b/docs_manual/source/metadata_advanced.rst index 5b70a885..1f5eac6e 100644 --- a/docs_manual/source/metadata_advanced.rst +++ b/docs_manual/source/metadata_advanced.rst @@ -179,7 +179,7 @@ investigation file. - Inline links * Comments define semicolon-separated lists of columns to be linked to collections. - * *SODAR Assay Link Results* |rarr| ``ResultsReports`` + * *SODAR Assay Link ResultsReports* |rarr| ``ResultsReports`` * *SODAR Assay Link MiscFiles* |rarr| ``MiscFiles`` * *SODAR Assay Link Row* |rarr| ``RowPath`` * For example: diff --git a/samplesheets/assayapps/generic/plugins.py b/samplesheets/assayapps/generic/plugins.py index 1eec422c..8f517ac6 100644 --- a/samplesheets/assayapps/generic/plugins.py +++ b/samplesheets/assayapps/generic/plugins.py @@ -12,7 +12,7 @@ # Local constants APP_NAME = 'samplesheets.assayapps.generic' -RESULTS_COMMENT = 'SODAR Assay Link Results' +RESULTS_COMMENT = 'SODAR Assay Link ResultsReports' MISC_FILES_COMMENT = 'SODAR Assay Link MiscFiles' DATA_COMMENT_PREFIX = 'SODAR Assay Row Path' DATA_LINK_COMMENT = 'SODAR Assay Link Row' @@ -65,9 +65,13 @@ def _link_from_comment(cell, header, top_header, target_cols, url): return True # Special case for Material Names if ( - top_header['value'] - in th.DATA_FILE_HEADERS + th.MATERIAL_NAME_HEADERS - ) and (header['value'] == 'Name'): + ( + top_header['value'] + in th.DATA_FILE_HEADERS + th.MATERIAL_NAME_HEADERS + ) + and top_header['value'].lower() in target_cols + and (header['value'] == 'Name') + ): cell['link'] = f"{url}/{cell['value']}" return True # Handle everything else @@ -83,11 +87,11 @@ def _get_col_value(cls, target_col, row, table): """ Return value of last matched column. - :param target_col: Column name to look for + :param target_col: Column name string to look for. :param row: List of dicts (a row returned by SampleSheetTableBuilder) :param table: Full table with headers (dict returned by SampleSheetTableBuilder) - :return: String with cell value of last matched column + :return: String with cell value of last matched column. """ # Returns last match of row value = None @@ -96,7 +100,12 @@ def _get_col_value(cls, target_col, row, table): header = table['field_header'][i] if header['value'].lower() == target_col.lower(): value = row[i]['value'] - return value + + if isinstance(value, str): + return value + elif isinstance(value, list) and len(value) == 1: # OntologyTermRefs + return value[0]['name'] + return None def get_row_path(self, row, table, assay, assay_path): """ From 972ee4cf68f4f074d6b92b3e9128bed247b17033 Mon Sep 17 00:00:00 2001 From: Mikko Nieminen Date: Thu, 5 Sep 2024 10:18:22 +0200 Subject: [PATCH 2/4] upgrade vue app dependencies (#1986) --- CHANGELOG.rst | 17 +++++++++++++ docs_manual/source/conf.py | 2 +- docs_manual/source/sodar_release_notes.rst | 10 ++++++++ samplesheets/vueapp/package-lock.json | 29 +++++++--------------- samplesheets/vueapp/package.json | 2 +- 5 files changed, 38 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 86e33b82..abbd3658 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,23 @@ Changelog for the SODAR project. Loosely follows the `Keep a Changelog `_ guidelines. +Unreleased +========== + +Changed +------- + +- **Samplesheets** + - Upgrade Vue app dependencies (#1986) + +Fixed +----- + +- **Samplesheets** + - ``generic`` assay plugin inline links pointing to ``ResultsReports`` (#1982) + - ``generic`` assay plugin cache update crash with row path built from ontology column (#1984) + + v0.15.0 (2024-08-08) ==================== diff --git a/docs_manual/source/conf.py b/docs_manual/source/conf.py index 07530672..be389ec6 100644 --- a/docs_manual/source/conf.py +++ b/docs_manual/source/conf.py @@ -26,7 +26,7 @@ author = 'BIH Core Unit Bioinformatics' # The full version, including alpha/beta/rc tags -release = '0.15.0' +release = '0.15.1-WIP' # -- General configuration --------------------------------------------------- diff --git a/docs_manual/source/sodar_release_notes.rst b/docs_manual/source/sodar_release_notes.rst index 5229d2c8..4a090c85 100644 --- a/docs_manual/source/sodar_release_notes.rst +++ b/docs_manual/source/sodar_release_notes.rst @@ -8,6 +8,16 @@ list of changes in current and previous releases, see the :ref:`full changelog`. +v0.15.1 (WIP) +============= + +Release for minor updates, maintenance and bug fixes. + +- Fix generic assay plugin issues +- Upgrade critical dependencies +- Minor updates and bug fixes + + v0.15.0 (2024-08-08) ==================== diff --git a/samplesheets/vueapp/package-lock.json b/samplesheets/vueapp/package-lock.json index c451069b..5d6100a1 100644 --- a/samplesheets/vueapp/package-lock.json +++ b/samplesheets/vueapp/package-lock.json @@ -1,12 +1,12 @@ { "name": "samplesheets", - "version": "0.15.0", + "version": "0.15.1-WIP", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "samplesheets", - "version": "0.15.0", + "version": "0.15.1-WIP", "dependencies": { "bootstrap-vue": "^2.22.0", "core-js": "^3.23.5", @@ -3128,16 +3128,6 @@ "@types/json-schema": "*" } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -13179,9 +13169,9 @@ } }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "dependencies": { "braces": "^3.0.3", @@ -17341,12 +17331,11 @@ } }, "node_modules/webpack": { - "version": "5.93.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz", - "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "dev": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", @@ -17355,7 +17344,7 @@ "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", diff --git a/samplesheets/vueapp/package.json b/samplesheets/vueapp/package.json index f0eeff6a..c069a6bf 100644 --- a/samplesheets/vueapp/package.json +++ b/samplesheets/vueapp/package.json @@ -1,6 +1,6 @@ { "name": "samplesheets", - "version": "0.15.0", + "version": "0.15.1-WIP", "private": true, "scripts": { "serve": "vue-cli-service serve", From 052ac0c2229c63443c2f3a9d898a87d62f66a8a4 Mon Sep 17 00:00:00 2001 From: Mikko Nieminen Date: Wed, 11 Sep 2024 17:08:53 +0200 Subject: [PATCH 3/4] fix attempt for test_stats_deleted_superuser() (#1995) --- landingzones/tests/test_ui.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/landingzones/tests/test_ui.py b/landingzones/tests/test_ui.py index 9925feb2..a1bbb719 100644 --- a/landingzones/tests/test_ui.py +++ b/landingzones/tests/test_ui.py @@ -378,6 +378,12 @@ def test_stats_deleted_superuser(self): ) self.login_and_redirect(self.superuser, self.url) + # NOTE: Attempt to fix #1995 + WebDriverWait(self.selenium, self.wait_time).until( + ec.presence_of_element_located( + (By.CLASS_NAME, 'sodar-lz-zone-status') + ) + ) zone_status = self.selenium.find_element( By.CLASS_NAME, 'sodar-lz-zone-status' ) From 5a03b4a9a40ec5d21bf5773a1ee4d686880bce80 Mon Sep 17 00:00:00 2001 From: Mikko Nieminen Date: Thu, 12 Sep 2024 09:05:09 +0200 Subject: [PATCH 4/4] cleanup and prepare v0.15.1 release (#1985, #1995) --- CHANGELOG.rst | 6 ++++-- config/settings/base.py | 3 ++- docs_manual/source/api_documentation.rst | 2 +- docs_manual/source/api_examples.rst | 2 +- docs_manual/source/api_irodsinfo.rst | 2 +- docs_manual/source/api_landingzones.rst | 2 +- docs_manual/source/api_samplesheets.rst | 2 +- docs_manual/source/conf.py | 2 +- docs_manual/source/sodar_release_notes.rst | 4 ++-- landingzones/static/landingzones/js/landingzones.js | 3 ++- landingzones/tests/test_ui.py | 6 ------ samplesheets/vueapp/package-lock.json | 10 +++++----- samplesheets/vueapp/package.json | 2 +- 13 files changed, 22 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index abbd3658..e671b553 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,8 +5,8 @@ Changelog for the SODAR project. Loosely follows the `Keep a Changelog `_ guidelines. -Unreleased -========== +v0.15.1 (2024-09-12) +==================== Changed ------- @@ -17,6 +17,8 @@ Changed Fixed ----- +- **Landingzones** + - Invalid CSS classes set by zone status update (#1995) - **Samplesheets** - ``generic`` assay plugin inline links pointing to ``ResultsReports`` (#1982) - ``generic`` assay plugin cache update crash with row path built from ontology column (#1984) diff --git a/config/settings/base.py b/config/settings/base.py index 940142d9..02694f2b 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -611,7 +611,7 @@ def set_logging(level=None): # General API settings -SODAR_API_DEFAULT_VERSION = '0.15.0' +SODAR_API_DEFAULT_VERSION = '0.15.1' SODAR_API_ALLOWED_VERSIONS = [ '0.7.0', '0.7.1', @@ -634,6 +634,7 @@ def set_logging(level=None): '0.14.1', '0.14.2', '0.15.0', + '0.15.1', ] SODAR_API_MEDIA_TYPE = 'application/vnd.bihealth.sodar+json' SODAR_API_DEFAULT_HOST = env.url( diff --git a/docs_manual/source/api_documentation.rst b/docs_manual/source/api_documentation.rst index d3a24676..958920d9 100644 --- a/docs_manual/source/api_documentation.rst +++ b/docs_manual/source/api_documentation.rst @@ -45,7 +45,7 @@ expected version. .. code-block:: console - Accept: application/vnd.bihealth.sodar+json; version=0.15.0 + Accept: application/vnd.bihealth.sodar+json; version=0.15.1 Specific sections of the SODAR API may require their own accept header. See the exact header requirement in the respective documentation on each section of the diff --git a/docs_manual/source/api_examples.rst b/docs_manual/source/api_examples.rst index 54417255..15b32fc6 100644 --- a/docs_manual/source/api_examples.rst +++ b/docs_manual/source/api_examples.rst @@ -43,7 +43,7 @@ the SODAR API: # Use core_headers for project management API endpoints core_headers = {**auth_header, 'Accept': 'application/vnd.bihealth.sodar-core+json; version=0.13.4'} # Use sodar_headers for sample sheet and landing zone API endpoints - sodar_headers = {**auth_header, 'Accept': 'application/vnd.bihealth.sodar+json; version=0.15.0'} + sodar_headers = {**auth_header, 'Accept': 'application/vnd.bihealth.sodar+json; version=0.15.1'} .. note:: diff --git a/docs_manual/source/api_irodsinfo.rst b/docs_manual/source/api_irodsinfo.rst index 19148d43..355c6f82 100644 --- a/docs_manual/source/api_irodsinfo.rst +++ b/docs_manual/source/api_irodsinfo.rst @@ -22,4 +22,4 @@ SODAR version: .. code-block:: console - Accept: application/vnd.bihealth.sodar+json; version=0.15.0 + Accept: application/vnd.bihealth.sodar+json; version=0.15.1 diff --git a/docs_manual/source/api_landingzones.rst b/docs_manual/source/api_landingzones.rst index de1f53eb..0167fdd8 100644 --- a/docs_manual/source/api_landingzones.rst +++ b/docs_manual/source/api_landingzones.rst @@ -32,4 +32,4 @@ SODAR version: .. code-block:: console - Accept: application/vnd.bihealth.sodar+json; version=0.15.0 + Accept: application/vnd.bihealth.sodar+json; version=0.15.1 diff --git a/docs_manual/source/api_samplesheets.rst b/docs_manual/source/api_samplesheets.rst index b97d8cbf..bbcceb8d 100644 --- a/docs_manual/source/api_samplesheets.rst +++ b/docs_manual/source/api_samplesheets.rst @@ -68,4 +68,4 @@ SODAR version: .. code-block:: console - Accept: application/vnd.bihealth.sodar+json; version=0.15.0 + Accept: application/vnd.bihealth.sodar+json; version=0.15.1 diff --git a/docs_manual/source/conf.py b/docs_manual/source/conf.py index be389ec6..8559785a 100644 --- a/docs_manual/source/conf.py +++ b/docs_manual/source/conf.py @@ -26,7 +26,7 @@ author = 'BIH Core Unit Bioinformatics' # The full version, including alpha/beta/rc tags -release = '0.15.1-WIP' +release = '0.15.1' # -- General configuration --------------------------------------------------- diff --git a/docs_manual/source/sodar_release_notes.rst b/docs_manual/source/sodar_release_notes.rst index 4a090c85..e7fe6994 100644 --- a/docs_manual/source/sodar_release_notes.rst +++ b/docs_manual/source/sodar_release_notes.rst @@ -8,8 +8,8 @@ list of changes in current and previous releases, see the :ref:`full changelog`. -v0.15.1 (WIP) -============= +v0.15.1 (2024-09-12) +==================== Release for minor updates, maintenance and bug fixes. diff --git a/landingzones/static/landingzones/js/landingzones.js b/landingzones/static/landingzones/js/landingzones.js index 371c5f8c..6a3a1e52 100644 --- a/landingzones/static/landingzones/js/landingzones.js +++ b/landingzones/static/landingzones/js/landingzones.js @@ -51,7 +51,8 @@ var updateZoneStatus = function() { ) { statusTd.text(zoneStatus); statusTd.removeClass(); - statusTd.addClass(statusStyles[zoneStatus] + ' text-white'); + statusTd.addClass( + 'sodar-lz-zone-status ' + statusStyles[zoneStatus] + ' text-white'); statusInfoSpan.text(zoneStatusInfo); if (['PREPARING', 'VALIDATING', 'MOVING', 'DELETING'].includes(zoneStatus)) { statusTd.append( diff --git a/landingzones/tests/test_ui.py b/landingzones/tests/test_ui.py index a1bbb719..9925feb2 100644 --- a/landingzones/tests/test_ui.py +++ b/landingzones/tests/test_ui.py @@ -378,12 +378,6 @@ def test_stats_deleted_superuser(self): ) self.login_and_redirect(self.superuser, self.url) - # NOTE: Attempt to fix #1995 - WebDriverWait(self.selenium, self.wait_time).until( - ec.presence_of_element_located( - (By.CLASS_NAME, 'sodar-lz-zone-status') - ) - ) zone_status = self.selenium.find_element( By.CLASS_NAME, 'sodar-lz-zone-status' ) diff --git a/samplesheets/vueapp/package-lock.json b/samplesheets/vueapp/package-lock.json index 5d6100a1..da69140a 100644 --- a/samplesheets/vueapp/package-lock.json +++ b/samplesheets/vueapp/package-lock.json @@ -1,12 +1,12 @@ { "name": "samplesheets", - "version": "0.15.1-WIP", + "version": "0.15.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "samplesheets", - "version": "0.15.1-WIP", + "version": "0.15.1", "dependencies": { "bootstrap-vue": "^2.22.0", "core-js": "^3.23.5", @@ -5506,9 +5506,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001651", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", - "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "version": "1.0.30001660", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz", + "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==", "dev": true, "funding": [ { diff --git a/samplesheets/vueapp/package.json b/samplesheets/vueapp/package.json index c069a6bf..1acb3387 100644 --- a/samplesheets/vueapp/package.json +++ b/samplesheets/vueapp/package.json @@ -1,6 +1,6 @@ { "name": "samplesheets", - "version": "0.15.1-WIP", + "version": "0.15.1", "private": true, "scripts": { "serve": "vue-cli-service serve",