24.1 Galaxy Release (June 2024)
Highlights
Visualizing workflow runs with an invocation graph view. A graph view has been added to the workflow invocation summary. This feature uses the original workflow structure to display job states for each step on the workflow editor canvas.
Workflow editor undo/redo. Undo/redo functionality has been added to the workflow editor, enhancing the user experience and workflow management.
Select multiple items in workflow editor. New selection features have been added to the Workflow Editor that simplify the process of selecting and managing multiple elements.
All-vs-all collection analysis patterns. Galaxy now matches corresponding datasets when multiple collections are used to map over a tool, akin to a dot product pattern.
Pagination support added to files source plugins. To improve navigation of remote file sources potentially containing vast numbers of files, server-side pagination support has been added to file source plugins.
Zenodo integration. A new Zenodo file source plugin based on Invenio has been added.
Document Object Identifiers displayed in archived histories. Histories that have been archived and preserved in an external repository like Zenodo will now display their Document Object Identifier (DOI).
Activity bar is now enabled by default.
Also check out the 24.1 user release notes. Are you an admin? Check out some admin relevant PRs.
Get Galaxy
The code lives at GitHub and you should have Git to obtain it.
- To get a new Galaxy repository run:
$ git clone -b release_24.1 https://github.com/galaxyproject/galaxy.git
- To update an existing Galaxy repository run:
$ git fetch origin && git checkout release_24.1 && git pull --ff-only origin release_24.1
See the community hub for additional details on source code locations.
Administration Notes
fastapi
dependency has been replaced withfastapi-slim
[#18095]. To ensure a smooth upgrade, you should uninstallfastapi
before upgrading. If you have upgraded without uninstallingfastapi
, you should uninstallfastapi
, then installfastapi-slim
.Empowerinig users to bring their own storage and file sources [#18127]
Enabling storage management by object store [#17500]
Email notifications channel [#17914]
Urgent notifications are now mandatory [#17975]
Major update to Galaxy’s data access layer: SQLAlchemy 2.0 [#17778]
Script for deleting userless histories from the database [#18079]
New admin facing documentation on data tables [#17585]
Configuration Changes
Added
The following configuration options are new
config/user_preferences_extra_conf.yml.sample
preferences.zenodo
preferences.zenodo_sandbox
config/galaxy.yml.sample:galaxy
mapping.galaxy.mapping.celery_conf.default
mapping.galaxy.mapping.dispatch_notifications_interval
mapping.galaxy.mapping.file_source_templates
mapping.galaxy.mapping.file_source_templates_config_file
mapping.galaxy.mapping.object_store_templates
mapping.galaxy.mapping.object_store_templates_config_file
mapping.galaxy.mapping.user_config_templates_use_saved_configuration
Changed
The following configuration options have been changed
config/user_preferences_extra_conf.yml.sample
preferences.onedata.inputs has changed from
{'name': 'onezone_domain', 'label': 'Domain of the Onezone service (e.g. "demo.onedata.org")', 'type': 'text', 'required': False} {'name': 'access_token', 'label': 'Your access token, suitable for REST API access in a Oneprovider service', 'type': 'password', 'required': False}
to
{'name': 'onezone_domain', 'label': 'Domain of the Onezone service (e.g. datahub.egi.eu)', 'type': 'text', 'required': False} {'name': 'access_token', 'label': 'Your access token, suitable for REST API access in a Oneprovider service', 'type': 'password', 'required': False} {'name': 'disable_tls_certificate_validation', 'label': 'Allow connection to Onedata servers that do not present trusted SSL certificates. SHOULD NOT be used unless you really know what you are doing.', 'type': 'boolean', 'required': False, 'value': False}
config/file_sources_conf.yml.sample
has changed from
{'type': 'dropbox', 'id': 'dropbox1', 'label': 'Dropbox files (configure access in user preferences)', 'doc': 'Your Dropbox files - configure an access token via the user preferences', 'access_token': "${user.preferences['dropbox|access_token']}"} {'type': 'webdav', 'id': 'owncloud1', 'label': 'OwnCloud', 'doc': 'External OwnCloud files (configure access in user preferences)', 'url': "${user.preferences['owncloud|url']}", 'root': "${user.preferences['owncloud|root']}", 'login': "${user.preferences['owncloud|username']}", 'password': "${user.preferences['owncloud|password']}", 'temp_path': '/your/temp/path', 'writable': False} {'type': 'posix', 'root': '/data/5/galaxy_import/galaxy_user_data/covid-19/data/sequences/', 'id': 'covid19-raw-sequences', 'label': 'COVID-19 FASTQ', 'doc': 'COVID-19 RAW sequences in FASTQ format'} {'type': 'posix', 'root': '/data/db/databases/pdb/pdb/', 'id': 'pdb-gzip', 'doc': 'Protein Data Bank (PDB)', 'label': 'PDB'} {'type': 'ftp', 'id': 'ebi-ftp', 'label': 'EBI FTP server', 'doc': 'European Bioinformatic Institute FTP server', 'host': 'ftp.ebi.ac.uk', 'user': 'anonymous', 'passwd': '', 'timeout': 10, 'port': 21} {'type': 'ftp', 'id': 'ncbi-ftp', 'label': 'NCBI FTP server', 'doc': 'NCBI FTP server', 'host': 'ftp.ncbi.nlm.nih.gov', 'user': 'anonymous', 'passwd': '', 'timeout': 10, 'port': 21} {'type': 'ftp', 'id': 'ensembl-ftp', 'label': 'ENSEMBL FTP server', 'doc': 'ENSEMBL FTP server', 'host': 'ftp.ensemblgenomes.org/vol1/pub/', 'user': 'anonymous', 'passwd': '', 'timeout': 10, 'port': 21} {'type': 'ssh', 'id': 'writeable-ssh-dir', 'requires_roles': 'writeable-galaxy-role', 'writable': True, 'label': 'Push your files to me', 'doc': 'This is an example of a writeable SSH dir', 'host': 'coolhost', 'user': 'user', 'passwd': 'passwd', 'timeout': 10, 'path': '/home/cooluser/', 'config_path': '', 'port': 2222} {'type': 's3fs', 'label': 'My MinIO storage', 'endpoint_url': 'https://minio.usegalaxy.eu', 'id': 'galaxy-minio-storage', 'doc': 'Galaxy MinIO S3 storage', 'anon': False, 'secret': 'UHAJ6asd6asdhasd', 'key': 'MCJU76agdt98GGFAROIP7'} {'type': 's3fs', 'label': 'Genome Ark', 'id': 'genomeark', 'doc': 'Access to Genome Ark open data on AWS.', 'bucket': 'genomeark', 'anon': True} {'type': 's3fs', 'label': '1000 Genomes', 'id': '1000genomes', 'doc': 'Access to the 1000 Genomes Project with human genetic variation, including SNPs, structural variants, and their haplotype context.', 'bucket': '1000genomes', 'anon': True} {'type': 's3fs', 'label': 'The Cancer Genome Atlas', 'id': 'tcga-2-open', 'doc': 'Access to the Cancer Genome Atlas (TCGA)', 'bucket': 'tcga-2-open', 'anon': True} {'type': 's3fs', 'label': 'COVID-19 Data Lake', 'id': 'covid19-lake', 'doc': 'A centralized repository of up-to-date and curated datasets on or related to the spread and characteristics of the novel corona virus (SARS-CoV-2) and its associated illness, COVID-19', 'bucket': 'covid19-lake', 'anon': True} {'type': 's3fs', 'label': 'Encyclopedia of DNA Elements (ENCODE)', 'id': 'encode-public', 'doc': 'The Encyclopedia of DNA Elements (ENCODE) Consortium is an international collaboration of research groups funded by the National Human Genome Research Institute (NHGRI)', 'bucket': 'encode-public', 'anon': True} {'type': 's3fs', 'label': 'Sentinel-3', 'id': 'meeo-s3-nrt', 'doc': 'European Commission’s Copernicus Earth Observation Programme. Sentinel-3 is a polar orbiting satellite that completes 14 orbits of the Earth a day.', 'bucket': 'meeo-s3/NRT/', 'anon': True} {'type': 's3fs', 'label': 'Sentinel-5P Level 2', 'id': 'meeo-s5p-nrti', 'doc': 'Observations from the Sentinel-5 Precursor satellite of the Copernicus Earth Observation Programme. It contains a polar orbiting satellite that completes 14 orbits of the Earth a day.', 'bucket': 'meeo-s5p/RPRO/', 'anon': True} {'type': 's3fs', 'label': 'Coupled Model Intercomparison Project 6', 'id': 'esgf-world', 'doc': 'The sixth phase of global coupled ocean-atmosphere general circulation model ensemble', 'bucket': 'esgf-world', 'anon': True} {'type': 's3fs', 'label': 'CMIP6 GCMs downscaled using WRF', 'id': 'wrf-cmip6-noversioning', 'doc': 'High-resolution historical and future climate simulations from 1980-2100', 'bucket': 'wrf-cmip6-noversioning', 'anon': True} {'type': 's3fs', 'label': 'NOAA Global Forecast System (GFS)', 'id': 'noaa-gfs-bdp-pds', 'doc': 'The Global Forecast System (GFS) is a weather forecast model produced by the National Centers for Environmental Prediction (NCEP).', 'bucket': 'noaa-gfs-bdp-pds', 'anon': True} {'type': 's3fs', 'label': 'NOAA Unified Forecast System Subseasonal to Seasonal Prototype 5', 'id': 'noaa-ufs-prototype5-pds', 'doc': 'The Unified Forecast System Subseasonal to Seasonal prototype 5 (UFS S2Sp5) dataset is reforecast data from the UFS atmosphere-ocean.', 'bucket': 'noaa-ufs-prototype5-pds', 'anon': True} {'type': 's3fs', 'label': 'Copernicus Digital Elevation Model (DEM)', 'id': 'copernicus-dem-30m', 'doc': 'The Copernicus DEM is a Digital Surface Model (DSM) which represents the surface of the Earth including buildings, infrastructure and vegetation.', 'bucket': 'copernicus-dem-30m', 'anon': True} {'type': 'http', 'label': 'Custom http filesource', 'id': 'httpcustom', 'url_regex': '^https?://myprotectedsite.org/', 'http_headers': {'Authorization': '#import base64\nBasic ${base64.b64encode(str.encode(user.preferences[\'myprotectedsite|username\'] + ":" + user.preferences[\'myprotectedsite|password\'])).decode()}'}, 'doc': 'Only define this if you want custom control over http downloads. You should also define a stock http source (below) or only downloads from this site will be allowed.'} {'type': 'http', 'label': 'Stock http filesource', 'id': 'httpstock', 'doc': 'Make sure to define this generic http file source if you have defined any other http file sources, or stock http download capability will be disabled.'} {'type': 'drs', 'label': 'Custom DRS filesource', 'id': 'drscustom', 'url_regex': '^drs://mydrssite.org/', 'http_headers': {'Authorization': '#import base64\nBasic ${base64.b64encode(str.encode(user.preferences[\'mydrssite|username\'] + ":" + user.preferences[\'mydrssite|password\'])).decode()}'}, 'doc': 'Define this if you want custom control over drs downloads. You should also define a stock drs source (below) or only downloads from this drs server will be allowed.'} {'type': 'drs', 'label': 'Stock DRS filesource', 'id': 'drsstock', 'doc': 'Make sure to define this generic drs file source if you have defined any other drs file sources, or stock drs download capability will be disabled.'} {'type': 'inveniordm', 'id': 'invenio_sandbox', 'doc': 'This is the Sandbox instance of Invenio. It is used for testing purposes only, content is NOT preserved. DOIs created in this instance are not real and will not resolve.', 'label': 'Invenio RDM Sandbox Repository (TESTING ONLY)', 'url': 'https://inveniordm.web.cern.ch/', 'token': "${user.user_vault.read_secret('preferences/invenio_sandbox/token')}", 'public_name': "${user.preferences['invenio_sandbox|public_name']}", 'writable': True} {'type': 'onedata', 'id': 'onedata1', 'label': 'Onedata', 'doc': 'Your Onedata files - configure an access token via user preferences', 'accessToken': "${user.preferences['onedata|access_token']}", 'onezoneDomain': "${user.preferences['onedata|onezone_domain']}"}to
{'type': 'dropbox', 'id': 'dropbox1', 'label': 'Dropbox files (configure access in user preferences)', 'doc': 'Your Dropbox files - configure an access token via the user preferences', 'access_token': "${user.preferences['dropbox|access_token']}"} {'type': 'webdav', 'id': 'owncloud1', 'label': 'OwnCloud', 'doc': 'External OwnCloud files (configure access in user preferences)', 'url': "${user.preferences['owncloud|url']}", 'root': "${user.preferences['owncloud|root']}", 'login': "${user.preferences['owncloud|username']}", 'password': "${user.preferences['owncloud|password']}", 'temp_path': '/your/temp/path', 'writable': False} {'type': 'posix', 'root': '/data/5/galaxy_import/galaxy_user_data/covid-19/data/sequences/', 'id': 'covid19-raw-sequences', 'label': 'COVID-19 FASTQ', 'doc': 'COVID-19 RAW sequences in FASTQ format'} {'type': 'posix', 'root': '/data/db/databases/pdb/pdb/', 'id': 'pdb-gzip', 'doc': 'Protein Data Bank (PDB)', 'label': 'PDB'} {'type': 'ftp', 'id': 'ebi-ftp', 'label': 'EBI FTP server', 'doc': 'European Bioinformatic Institute FTP server', 'host': 'ftp.ebi.ac.uk', 'user': 'anonymous', 'passwd': '', 'timeout': 10, 'port': 21} {'type': 'ftp', 'id': 'ncbi-ftp', 'label': 'NCBI FTP server', 'doc': 'NCBI FTP server', 'host': 'ftp.ncbi.nlm.nih.gov', 'user': 'anonymous', 'passwd': '', 'timeout': 10, 'port': 21} {'type': 'ftp', 'id': 'ensembl-ftp', 'label': 'ENSEMBL FTP server', 'doc': 'ENSEMBL FTP server', 'host': 'ftp.ensemblgenomes.org/vol1/pub/', 'user': 'anonymous', 'passwd': '', 'timeout': 10, 'port': 21} {'type': 'ssh', 'id': 'writeable-ssh-dir', 'requires_roles': 'writeable-galaxy-role', 'writable': True, 'label': 'Push your files to me', 'doc': 'This is an example of a writeable SSH dir', 'host': 'coolhost', 'user': 'user', 'passwd': 'passwd', 'timeout': 10, 'path': '/home/cooluser/', 'config_path': '', 'port': 2222} {'type': 's3fs', 'label': 'My MinIO storage', 'endpoint_url': 'https://minio.usegalaxy.eu', 'id': 'galaxy-minio-storage', 'doc': 'Galaxy MinIO S3 storage', 'anon': False, 'secret': 'UHAJ6asd6asdhasd', 'key': 'MCJU76agdt98GGFAROIP7'} {'type': 's3fs', 'label': 'Genome Ark', 'id': 'genomeark', 'doc': 'Access to Genome Ark open data on AWS.', 'bucket': 'genomeark', 'anon': True} {'type': 's3fs', 'label': '1000 Genomes', 'id': '1000genomes', 'doc': 'Access to the 1000 Genomes Project with human genetic variation, including SNPs, structural variants, and their haplotype context.', 'bucket': '1000genomes', 'anon': True} {'type': 's3fs', 'label': 'The Cancer Genome Atlas', 'id': 'tcga-2-open', 'doc': 'Access to the Cancer Genome Atlas (TCGA)', 'bucket': 'tcga-2-open', 'anon': True} {'type': 's3fs', 'label': 'COVID-19 Data Lake', 'id': 'covid19-lake', 'doc': 'A centralized repository of up-to-date and curated datasets on or related to the spread and characteristics of the novel corona virus (SARS-CoV-2) and its associated illness, COVID-19', 'bucket': 'covid19-lake', 'anon': True} {'type': 's3fs', 'label': 'Encyclopedia of DNA Elements (ENCODE)', 'id': 'encode-public', 'doc': 'The Encyclopedia of DNA Elements (ENCODE) Consortium is an international collaboration of research groups funded by the National Human Genome Research Institute (NHGRI)', 'bucket': 'encode-public', 'anon': True} {'type': 's3fs', 'label': 'Sentinel-3', 'id': 'meeo-s3-nrt', 'doc': 'European Commission’s Copernicus Earth Observation Programme. Sentinel-3 is a polar orbiting satellite that completes 14 orbits of the Earth a day.', 'bucket': 'meeo-s3/NRT/', 'anon': True} {'type': 's3fs', 'label': 'Sentinel-5P Level 2', 'id': 'meeo-s5p-nrti', 'doc': 'Observations from the Sentinel-5 Precursor satellite of the Copernicus Earth Observation Programme. It contains a polar orbiting satellite that completes 14 orbits of the Earth a day.', 'bucket': 'meeo-s5p/RPRO/', 'anon': True} {'type': 's3fs', 'label': 'Coupled Model Intercomparison Project 6', 'id': 'esgf-world', 'doc': 'The sixth phase of global coupled ocean-atmosphere general circulation model ensemble', 'bucket': 'esgf-world', 'anon': True} {'type': 's3fs', 'label': 'CMIP6 GCMs downscaled using WRF', 'id': 'wrf-cmip6-noversioning', 'doc': 'High-resolution historical and future climate simulations from 1980-2100', 'bucket': 'wrf-cmip6-noversioning', 'anon': True} {'type': 's3fs', 'label': 'NOAA Global Forecast System (GFS)', 'id': 'noaa-gfs-bdp-pds', 'doc': 'The Global Forecast System (GFS) is a weather forecast model produced by the National Centers for Environmental Prediction (NCEP).', 'bucket': 'noaa-gfs-bdp-pds', 'anon': True} {'type': 's3fs', 'label': 'NOAA Unified Forecast System Subseasonal to Seasonal Prototype 5', 'id': 'noaa-ufs-prototype5-pds', 'doc': 'The Unified Forecast System Subseasonal to Seasonal prototype 5 (UFS S2Sp5) dataset is reforecast data from the UFS atmosphere-ocean.', 'bucket': 'noaa-ufs-prototype5-pds', 'anon': True} {'type': 's3fs', 'label': 'Copernicus Digital Elevation Model (DEM)', 'id': 'copernicus-dem-30m', 'doc': 'The Copernicus DEM is a Digital Surface Model (DSM) which represents the surface of the Earth including buildings, infrastructure and vegetation.', 'bucket': 'copernicus-dem-30m', 'anon': True} {'type': 'http', 'label': 'Custom http filesource', 'id': 'httpcustom', 'url_regex': '^https?://myprotectedsite.org/', 'http_headers': {'Authorization': '#import base64\nBasic ${base64.b64encode(str.encode(user.preferences[\'myprotectedsite|username\'] + ":" + user.preferences[\'myprotectedsite|password\'])).decode()}'}, 'doc': 'Only define this if you want custom control over http downloads. You should also define a stock http source (below) or only downloads from this site will be allowed.'} {'type': 'http', 'label': 'Stock http filesource', 'id': 'httpstock', 'doc': 'Make sure to define this generic http file source if you have defined any other http file sources, or stock http download capability will be disabled.'} {'type': 'drs', 'label': 'Custom DRS filesource', 'id': 'drscustom', 'url_regex': '^drs://mydrssite.org/', 'http_headers': {'Authorization': '#import base64\nBasic ${base64.b64encode(str.encode(user.preferences[\'mydrssite|username\'] + ":" + user.preferences[\'mydrssite|password\'])).decode()}'}, 'doc': 'Define this if you want custom control over drs downloads. You should also define a stock drs source (below) or only downloads from this drs server will be allowed.'} {'type': 'drs', 'label': 'Stock DRS filesource', 'id': 'drsstock', 'doc': 'Make sure to define this generic drs file source if you have defined any other drs file sources, or stock drs download capability will be disabled.'} {'type': 'inveniordm', 'id': 'invenio_sandbox', 'doc': 'This is the Sandbox instance of Invenio. It is used for testing purposes only, content is NOT preserved. DOIs created in this instance are not real and will not resolve.', 'label': 'Invenio RDM Sandbox Repository (TESTING ONLY)', 'url': 'https://inveniordm.web.cern.ch/', 'token': "${user.user_vault.read_secret('preferences/invenio_sandbox/token')}", 'public_name': "${user.preferences['invenio_sandbox|public_name']}", 'writable': True} {'type': 'zenodo', 'id': 'zenodo', 'doc': 'Zenodo is a general-purpose open-access repository developed under the European OpenAIRE program and operated by CERN. It allows researchers to deposit data sets, research software, reports, and any other research-related digital artifacts. For each submission, a persistent digital object identifier (DOI) is minted, which makes the stored items easily citeable.', 'label': 'Zenodo', 'url': 'https://zenodo.org', 'token': "${user.user_vault.read_secret('preferences/zenodo/token')}", 'public_name': "${user.preferences['zenodo|public_name']}", 'writable': True} {'type': 'zenodo', 'id': 'zenodo_sandbox', 'doc': 'This is the Sandbox instance of Zenodo. It is used for testing purposes only, content is NOT preserved. DOIs created in this instance are not real and will not resolve.', 'label': 'Zenodo Sandbox (TESTING ONLY)', 'url': 'https://sandbox.zenodo.org', 'token': "${user.user_vault.read_secret('preferences/zenodo_sandbox/token')}", 'public_name': "${user.preferences['zenodo_sandbox|public_name']}", 'writable': True} {'type': 'onedata', 'id': 'onedata1', 'label': 'Onedata', 'doc': 'Your Onedata files - configure an access token via user preferences', 'accessToken': "${user.preferences['onedata|access_token']}", 'onezoneDomain': "${user.preferences['onedata|onezone_domain']}", 'disableTlsCertificateValidation': "${user.preferences['onedata|disable_tls_certificate_validation']}"}
config/galaxy.yml.sample:galaxy
mapping.galaxy.mapping.celery_conf.desc has changed from
Configuration options passed to Celery. To refer to a task by name, use the template `galaxy.foo` where `foo` is the function name of the task defined in the galaxy.celery.tasks module. The `broker_url` option, if unset, defaults to the value of `amqp_internal_connection`. The `result_backend` option must be set if the `enable_celery_tasks` option is set. The galaxy.fetch_data task can be disabled by setting its route to "disabled": `galaxy.fetch_data: disabled`. (Other tasks cannot be disabled on a per-task basis at this time.) For details, see Celery documentation at https://docs.celeryq.dev/en/stable/userguide/configuration.html.
to
Configuration options passed to Celery. To refer to a task by name, use the template `galaxy.foo` where `foo` is the function name of the task defined in the galaxy.celery.tasks module. The `broker_url` option, if unset or null, defaults to the value of `amqp_internal_connection`. The `result_backend` option, if unset or null, defaults to an SQLite database at '<data_dir>/results.sqlite' for storing task results. Please use a more robust backend (e.g. Redis) for production setups. The galaxy.fetch_data task can be disabled by setting its route to "disabled": `galaxy.fetch_data: disabled`. (Other tasks cannot be disabled on a per-task basis at this time.) For details, see Celery documentation at https://docs.celeryq.dev/en/stable/userguide/configuration.html.
mapping.galaxy.mapping.enable_celery_tasks.desc has changed from
Offload long-running tasks to a Celery task queue. Activate this only if you have setup a Celery worker for Galaxy. For details, see https://docs.galaxyproject.org/en/master/admin/production.html
to
Offload long-running tasks to a Celery task queue. Activate this only if you have setup a Celery worker for Galaxy and you have configured the `celery_conf` option below. Specifically, you need to set the `result_backend` option in the `celery_conf` option to a valid Celery result backend URL. By default, Galaxy uses an SQLite database at '<data_dir>/results.sqlite' for storing task results. For details, see https://docs.galaxyproject.org/en/master/admin/production.html#use-celery-for-asynchronous-tasks
mapping.galaxy.mapping.trs_servers_config_file.desc has changed from
Allow import of workflows from the TRS servers configured in the specified YAML or JSON file. The file should be a list with 'id', 'label', and 'api_url' for each entry. Optionally, 'link_url' and 'doc' may be be specified as well for each entry. If this is null (the default), a simple configuration containing just Dockstore will be used.
to
Allow import of workflows from the TRS servers configured in the specified YAML or JSON file. The file should be a list with 'id', 'label', and 'api_url' for each entry. Optionally, 'link_url' and 'doc' may be specified as well for each entry. If this is null (the default), a simple configuration containing just Dockstore will be used.
Release Notes
Enhancements
Release notes (thanks to @jdavcs). Pull Request 18218
Implement a page object accessibility dialog (thanks to @jmchilton). Pull Request 17225
Enable all-vs-all collection analysis patterns (thanks to @jmchilton). Pull Request 17366
Visualizing workflow runs with an invocation graph view (thanks to @ahmedhamidawan). Pull Request 17413
Enables activity bar by default (thanks to @guerler). Pull Request 17531
Add onedata objectstore (thanks to @bwalkowi). Pull Request 17540
Add content assertion XML tags for test output verification using images (thanks to @kostrykin). Pull Request 17581
Workflow editor item selection (thanks to @ElectronicBlueberry). Pull Request 17615
Workflow editor undo/redo (thanks to @ElectronicBlueberry). Pull Request 17774
Enable managing object store usage within a history. (thanks to @jmchilton). Pull Request 17853
Add email notifications channel (thanks to @davelopez). Pull Request 17914
Script for deleting userless histories from database + testing + drop unused model testing code (thanks to @jdavcs). Pull Request 18079
Add Net datatype (thanks to @martenson). Pull Request 18080
Overhaul Azure storage infrastructure (thanks to @jmchilton). Pull Request 18087
Empower users to bring their own storage and file sources (thanks to @jmchilton). Pull Request 18127
More unit testing for object store stuff (thanks to @jmchilton). Pull Request 18136
Add an Invocations Panel for the Invocations activity (thanks to @ahmedhamidawan). Pull Request 18137
Update parcel-built visualizations to use parcel v2 (thanks to @dannon). Pull Request 18311
Tighten axt sniffer (thanks to @martenson). Pull Request 18204
Better display of estimated line numbers and add number of columns for tabular (thanks to @bernt-matthias). Pull Request 17492
Add colabfold tar file datatype (thanks to @astrovsky01). Pull Request 17567
Set minimal metadata also for empty bed datasets (thanks to @wm75). Pull Request 17586
Add support for additional media types (thanks to @arash77). Pull Request 18054
Backport Qiskit Jupyter Notebook update to 24.1 (thanks to @natefoo). Pull Request 18310
Rename JupyTool to something more searchable (i.e. JupyterLab which includes the substring Jupyter) (thanks to @hexylena). Pull Request 17849
Allow running and editing workflows for specific versions (thanks to @ahmedhamidawan). Pull Request 18378
Update labels in Markdown editor when workflow labels change (thanks to @jmchilton). Pull Request 17863
Add galaxy to user agent (thanks to @mvdbeek). Pull Request 18003
Add vue sentry integration (thanks to @mvdbeek). Pull Request 18120
Only include tool stdout/stderr in HDA info (thanks to @natefoo). Pull Request 16730
Fix boto3-stubs typecheck dependency (thanks to @nsoranzo). Pull Request 18173
Add some admin facing docs on data tables (thanks to @bernt-matthias). Pull Request 17585
Make urgent notifications mandatory (thanks to @davelopez). Pull Request 17975
Add middleware for logging start and end of request (thanks to @mvdbeek). Pull Request 18046
Backport #18197 (thanks to @nsoranzo). Pull Request 18212
Drop restriction to switch to immutable histories (thanks to @davelopez). Pull Request 18234
Allow bookmarking public workflows (thanks to @itisAliRH). Pull Request 18247
More structured indexing for user data objects (thanks to @jmchilton). Pull Request 18291
Display error message if not an image in reports (thanks to @davelopez). Pull Request 18309
Add copy link to published workflow in WorkflowCard (thanks to @itisAliRH). Pull Request 18370
Onedada object store and files source stability fixes (thanks to @bwalkowi). Pull Request 18372
Persistent toggle sections of job info (thanks to @dannon). Pull Request 16983
Enable storage management by object store (thanks to @jmchilton). Pull Request 17500
Automatically bind galaxy_data_manager_data_path in containers (thanks to @bernt-matthias). Pull Request 17596
Update Python dependencies (thanks to @galaxybot). Pull Request 17653
Tool linter: check for valid bio.tools entries (thanks to @bernt-matthias). Pull Request 17655
Tool linter: check for leaf nodes with unstripped text content (thanks to @bernt-matthias). Pull Request 17656
Addition of release process doc (thanks to @dannon). Pull Request 17680
Issue #17631: Make it possible to use custom invfile.lua if needed (thanks to @martin-g). Pull Request 17693
Add browser and operating system info to issue template (thanks to @ElectronicBlueberry). Pull Request 17696
Update Python dependencies (thanks to @galaxybot). Pull Request 17764
SQLAlchemy 2.0 (thanks to @jdavcs). Pull Request 17778
Add support for floating point TIFF files in verification of image-based tool outputs (thanks to @kostrykin). Pull Request 17797
Update Python dependencies (thanks to @galaxybot). Pull Request 17819
Add tool linting for valid EDAM terms (thanks to @bernt-matthias). Pull Request 17839
Add pin_labels attribute for image_diff comparison method (thanks to @kostrykin). Pull Request 17866
Update Python dependencies (thanks to @galaxybot). Pull Request 17870
Add admin activity to activity bar (thanks to @guerler). Pull Request 17877
Disable published item copy button when editing slug (thanks to @martenson). Pull Request 17888
Outline use of type_annotation_map to fix mypy issues (thanks to @jmchilton). Pull Request 17902
Do not save workflow on Run without user confirmation (thanks to @ahmedhamidawan). Pull Request 17907
Update config docs about Celery (thanks to @davelopez). Pull Request 17918
Update Python dependencies (thanks to @galaxybot). Pull Request 17923
Adds pages to the activity bar (thanks to @guerler). Pull Request 17925
Revises visualizations activity (thanks to @guerler). Pull Request 17931
Error reporting unit tests (thanks to @jmchilton). Pull Request 17968
Update _thanks.rst in the User Release Notes to include new socials and remove inactive ones (thanks to @natwhitaker). Pull Request 17971
Update Python dependencies (thanks to @galaxybot). Pull Request 17982
Add tags to data dialog display, restores update_time and extension columns (thanks to @guerler). Pull Request 17992
Reduce notifications polling frequency (thanks to @davelopez). Pull Request 18010
Consolidate Visualization container, avoid using default iframe (thanks to @guerler). Pull Request 18016
Document syntax for accessing nested parameters in change_format - when tags (thanks to @bernt-matthias). Pull Request 18018
Add Zenodo integration (thanks to @davelopez). Pull Request 18022
Add a button that filters out a tool section in the tool panel (thanks to @ahmedhamidawan). Pull Request 18034
Update Python dependencies (thanks to @galaxybot). Pull Request 18035
Add datasets/collections filter to history panel filters (thanks to @ahmedhamidawan). Pull Request 18039
Add pagination support to Files Source plugins (thanks to @davelopez). Pull Request 18059
Update Python dependencies (thanks to @galaxybot). Pull Request 18063
Add Attributes section to Edit Collection view as well (thanks to @ahmedhamidawan). Pull Request 18071
Enhance form drilldown (thanks to @hujambo-dunia). Pull Request 18074
Change InvocationsList into a grid using GridList (thanks to @ahmedhamidawan). Pull Request 18088
Update Python dependencies (thanks to @galaxybot). Pull Request 18095
Workflow preview improvements (thanks to @itisAliRH). Pull Request 18108
Drop “?” (Help) from DatasetActions list (thanks to @dannon). Pull Request 18124
Update Python dependencies (thanks to @galaxybot). Pull Request 18125
Revises handling of warnings in the workflow run form (thanks to @guerler). Pull Request 18126
Display DOIs in Archived Histories (thanks to @davelopez). Pull Request 18134
Update s3fs dependency (thanks to @jmchilton). Pull Request 18135
Harden User Object Store and File Source Creation (thanks to @jmchilton). Pull Request 18172
Move activity panel go to button to top (thanks to @ahmedhamidawan). Pull Request 18182
Update db revision 24.1 release tags (thanks to @jdavcs). Pull Request 18183
Play nice with password managers (thanks to @martenson). Pull Request 18206
Remove deprecated BCO export endpoint (thanks to @martenson). Pull Request 16645
Login components refactors (thanks to @itisAliRH). Pull Request 17564
Collections common refactors (thanks to @itisAliRH). Pull Request 17571
Modernization and cleanup of job state related client code (thanks to @jmchilton). Pull Request 17593
Type annotation improvements (thanks to @nsoranzo). Pull Request 17601
Type annotation and CWL-related improvements (thanks to @nsoranzo). Pull Request 17630
Collection components refactors (thanks to @itisAliRH). Pull Request 17647
Code cleanups from ruff and pyupgrade (thanks to @nsoranzo). Pull Request 17654
Activity bar preference handling fixes (thanks to @dannon). Pull Request 17701
Datasets refactors (thanks to @itisAliRH). Pull Request 17799
Consolidates data dialog components (thanks to @guerler). Pull Request 17802
Dataset information refactors (thanks to @itisAliRH). Pull Request 17804
Mailing list wording tweaks (thanks to @dannon). Pull Request 17867
Model edits and bug fixes (thanks to @jdavcs). Pull Request 17922
Fix client types around history items (thanks to @davelopez). Pull Request 17924
Model typing and SA2.0 follow-up (thanks to @jdavcs). Pull Request 17958
Use typed API client for reporting job errors (thanks to @jmchilton). Pull Request 17969
Drop unused workflow controller methods (thanks to @mvdbeek). Pull Request 17974
Enable
warn_unused_ignores
mypy option (thanks to @nsoranzo). Pull Request 17991Refactor convert HistoryExport component to Typescript (thanks to @davelopez). Pull Request 18028
More typing in galaxy.files (thanks to @jmchilton). Pull Request 18037
Refactor galaxy.files plugin loading + config handling (thanks to @jmchilton). Pull Request 18049
Add stronger type annotations in file sources + refactoring (thanks to @davelopez). Pull Request 18050
Enable flake8-implicit-str-concat ruff rules (thanks to @nsoranzo). Pull Request 18067
Ensure history update_time is set when exporting (thanks to @davelopez). Pull Request 18086
De-duplication of onedata objectstore code (thanks to @jmchilton). Pull Request 18174
Fixes
Check various preconditions in FeatureLocationIndexDataProvider (thanks to @davelopez). Pull Request 18283
Adds pinia to manually mounted vue components (thanks to @guerler). Pull Request 18299
Fix visualizations compatible dataset filtering (thanks to @davelopez). Pull Request 18343
Fix pca 3d rendering of tabular files and visualization error handling in general (thanks to @mvdbeek). Pull Request 18211
Don’t set dataset peek for errored jobs (thanks to @mvdbeek). Pull Request 18231
Npz sniffing: do not read the whole file (thanks to @bernt-matthias). Pull Request 17672
Never fail dataset serialization if display_peek fails (thanks to @mvdbeek). Pull Request 17937
Raise exception when extracting dataset from collection without datasets (thanks to @mvdbeek). Pull Request 18249
Fix null inputs in database operation tools (thanks to @mvdbeek). Pull Request 18385
Drop unnecessary escaping for workflow name and annotation (thanks to @mvdbeek). Pull Request 18376
Fix invocation step_job_summary for new collections (thanks to @mvdbeek). Pull Request 18402
Fix input_step_parameters missing values that don’t have a label (thanks to @ahmedhamidawan). Pull Request 18405
Fixes for mapping workflow labels to markdown dialogs (thanks to @jmchilton). Pull Request 17424
Fix workflow run form failing on certain histories (thanks to @mvdbeek). Pull Request 17869
Make sure step removal also resets mapOver state (thanks to @mvdbeek). Pull Request 17915
Fix workflow run form for workflows with null rename PJA (thanks to @mvdbeek). Pull Request 17929
Fix missing implicit conversion for mapped over jobs (thanks to @mvdbeek). Pull Request 17952
Fix LengthValidator if no value passed (thanks to @mvdbeek). Pull Request 17983
Use or copy StoredWorkflow when copying step (thanks to @mvdbeek). Pull Request 17988
Don’t commit in
DeleteIntermediatesAction
(thanks to @mvdbeek). Pull Request 18131Fix submitted value in workflow run form if data is constrained by tag filter (thanks to @mvdbeek). Pull Request 18193
Bump es5-ext from 0.10.62 to 0.10.63 in /client (thanks to @dependabot[bot]). Pull Request 17555
Bump webpack-dev-middleware from 5.3.3 to 5.3.4 in /client (thanks to @dependabot[bot]). Pull Request 17820
Bump express from 4.18.1 to 4.19.2 in /client (thanks to @dependabot[bot]). Pull Request 17840
Bump undici from 5.28.3 to 5.28.4 in /client (thanks to @dependabot[bot]). Pull Request 17905
Update prebuilt client (thanks to @dannon). Pull Request 18000
Fix tag regex pattern (thanks to @jdavcs). Pull Request 18025
Restrict job_files access to jobs that are not terminal (thanks to @mvdbeek). Pull Request 18217
Raise appropriate exception if accessing deleted input file (thanks to @mvdbeek). Pull Request 18223
Fix seek in slurm memory check (thanks to @mvdbeek). Pull Request 18338
Do not copy purged outputs to object store (thanks to @mvdbeek). Pull Request 18342
Kill pulsar job if job stopped on galaxy side (thanks to @mvdbeek). Pull Request 18348
Always discard session after __handle_waiting_jobs is done (thanks to @mvdbeek). Pull Request 17913
Fix tool form building if select filters from unavailable dataset metadata (thanks to @mvdbeek). Pull Request 17930
Fix
InvalidRequestError: Can't operate on closed transaction inside context manager. Please complete the context manager before emitting further commands.
(thanks to @mvdbeek). Pull Request 17932Downgrade missing output file in working directory to warning for failed jobs (thanks to @mvdbeek). Pull Request 18123
Drop redundant error message (thanks to @mvdbeek). Pull Request 18156
Don’t fail metadata if we only have an extra output files dir (thanks to @mvdbeek). Pull Request 18179
Avoid object store path lookup when constructing JobState object (thanks to @mvdbeek). Pull Request 18190
Only log error if deleting directory really failed (thanks to @mvdbeek). Pull Request 18236
Rebuild Galaxy config (thanks to @bgruening). Pull Request 18325
Downgrade doi fetch error to debug (thanks to @mvdbeek). Pull Request 18330
Include exception info when something goes wrong while refreshing tokens (thanks to @mvdbeek). Pull Request 18008
Don’t log exception if cancelled slurm job doesn’t have stderr file (thanks to @mvdbeek). Pull Request 18121
Downgrade count lines error to warning (thanks to @mvdbeek). Pull Request 18175
Emit warning when user-cancelled job already complete (thanks to @mvdbeek). Pull Request 18178
Include stack when reporting delete error (thanks to @mvdbeek). Pull Request 18208
Pin pydantic to >=2.7.4 (thanks to @nsoranzo). Pull Request 18423
do not expand datasets that are known to be inaccessible (thanks to @martenson). Pull Request 17818
Prevent anonymous and inactive users from running workflows (thanks to @ahmedhamidawan). Pull Request 18192
Revert some requests import changes (thanks to @nsoranzo). Pull Request 18199
Check dataset state when attempting to acces dataset contents (thanks to @mvdbeek). Pull Request 18214
Raise
RequestParameterInvalidException
if url can’t be verified (thanks to @mvdbeek). Pull Request 18230Reset content-length for unhandled exceptions (thanks to @mvdbeek). Pull Request 18233
Fix element serialization for collections that aren’t populated yet (thanks to @mvdbeek). Pull Request 18235
Fix userOwnsHistory conditions (thanks to @davelopez). Pull Request 18243
Small bug fixes for user data plugins (thanks to @jmchilton). Pull Request 18246
Transparently open compressed files in DatasetDataProvider (thanks to @mvdbeek). Pull Request 18248
Skip tests if toolshed, dx.doi not responding (thanks to @mvdbeek). Pull Request 18250
Fix history export error handling (thanks to @davelopez). Pull Request 18251
Remove linter for unstripped text content for tool xml leaves (thanks to @bernt-matthias). Pull Request 18252
Fix Invenio credentials handling (thanks to @davelopez). Pull Request 18255
Set page importable to false when serializing (thanks to @mvdbeek). Pull Request 18263
Add missing TS migration (thanks to @jdavcs). Pull Request 18267
Format with black (thanks to @nsoranzo). Pull Request 18273
Fix handler: access to result row items changed in SA2.0 (thanks to @jdavcs). Pull Request 18274
Don’t attempt to download purged datasets (thanks to @mvdbeek). Pull Request 18278
Fix first_dataset_element type hint (thanks to @mvdbeek). Pull Request 18284
Redirect anonymous users to home when importing public histories (thanks to @davelopez). Pull Request 18286
Use correct link for log in or register in Copy Modal (thanks to @davelopez). Pull Request 18289
Add TS db revision tags for 24.0 (thanks to @jdavcs). Pull Request 18294
Move tool shed specific driver function to tool_shed.test (thanks to @mvdbeek). Pull Request 18296
Fix various packages’ issues (thanks to @nsoranzo). Pull Request 18301
Fix “label updated” popup triggers too often (thanks to @ElectronicBlueberry). Pull Request 18303
Adapt Tool prediction API to Transformer-based deep learning architecture (thanks to @anuprulez). Pull Request 18305
Fix word bleeding in modals, sharing page and history rename (thanks to @itisAliRH). Pull Request 18306
Don’t serialize display application links for deleted datasets (thanks to @mvdbeek). Pull Request 18307
Fix non-history items drag&drop into histories (thanks to @davelopez). Pull Request 18308
Filter data dialog entries by dataset state, only display ok state (thanks to @guerler). Pull Request 18313
Fix pinia in manually mounted components (thanks to @davelopez). Pull Request 18315
Disable state filter for collections in HistoryFilters (thanks to @ahmedhamidawan). Pull Request 18324
Fix users API serialization when listing users (thanks to @davelopez). Pull Request 18329
Fix authentication error for anonymous users querying jobs (thanks to @davelopez). Pull Request 18333
Make sure that all Linter subclasses are imported for listing them (thanks to @bernt-matthias). Pull Request 18339
Fix anonymous user job retrieval logic (thanks to @davelopez). Pull Request 18358
Fix check for anonymous (thanks to @jdavcs). Pull Request 18364
Fix update group API payload model (thanks to @davelopez). Pull Request 18374
Sanitize FormElement error messages (thanks to @mvdbeek). Pull Request 18377
Fix empty usernames in database + bug in username generation (thanks to @jdavcs). Pull Request 18379
Fix user’s private role can be missing (thanks to @davelopez). Pull Request 18381
Fix duplicated requests when browsing files sources with pagination (thanks to @davelopez). Pull Request 18387
Fix dataset details polling re-render (thanks to @itisAliRH). Pull Request 18388
Assign default
data
extension on discovered collection output (thanks to @mvdbeek). Pull Request 18389Fix workflow editor tool form scroll memory (thanks to @ElectronicBlueberry). Pull Request 18390
Reset current page when browsing sub-folders in FilesSources (thanks to @davelopez). Pull Request 18395
Fix workflow tags initialisation in workflow editor (thanks to @itisAliRH). Pull Request 18396
Fix
get_accessible_job
if called without session (thanks to @mvdbeek). Pull Request 18400Allow in_range validator for selects (thanks to @bernt-matthias). Pull Request 18403
Ensure datatypes match on dragging elements into FormData (thanks to @mvdbeek). Pull Request 18410
Really allow in-range validator for txt (thanks to @bernt-matthias). Pull Request 18411
Fix collection map over status for dragged collections (thanks to @mvdbeek). Pull Request 18416
Add TypedDict for JobsSummary (thanks to @mvdbeek). Pull Request 18418
Serialize purged flag for datasets in collections (thanks to @davelopez). Pull Request 18420
Unpin social-auth-core dependency (thanks to @nsoranzo). Pull Request 17607
remove reference to a non-existent component (thanks to @martenson). Pull Request 17686
Add carbon_intensity.csv to package (thanks to @nuwang). Pull Request 17748
Fix bug in image_util.py (thanks to @kostrykin). Pull Request 17749
Fix bug in galaxy.xsd (thanks to @kostrykin). Pull Request 17752
Fix bug in assert_has_image_n_labels (thanks to @kostrykin). Pull Request 17754
Fix odd object store exception (thanks to @jmchilton). Pull Request 17810
Fix permissions for temporary upload file for API uploads (thanks to @bernt-matthias). Pull Request 17850
Fix tool version switch in editor (thanks to @mvdbeek). Pull Request 17858
Remove duplicate tool panel insertion, rely on activity bar (thanks to @guerler). Pull Request 17872
Fix hasOwner function for histories in client (thanks to @ahmedhamidawan). Pull Request 17886
Always serialize element_count and populated when listing contents (thanks to @mvdbeek). Pull Request 17890
Make wait_for_history_jobs look at jobs, not datasets (thanks to @mvdbeek). Pull Request 17892
Fix release notes (thanks to @jdavcs). Pull Request 17894
Fix deadlock that can occur when changing job state (thanks to @mvdbeek). Pull Request 17896
Fix search and version menu in docs (thanks to @nsoranzo). Pull Request 17898
Fix conditional Image imports (thanks to @mvdbeek). Pull Request 17899
Fix lost reports when switching workflow versions (thanks to @mvdbeek). Pull Request 17904
Fix saving user preferences crashes tab (thanks to @ElectronicBlueberry). Pull Request 17917
Ensures that the activity bar is not shown when use_panels is set to false (thanks to @guerler). Pull Request 17926
Replace sample Celery result_backend in config (thanks to @davelopez). Pull Request 17949
Show dataset image in workflow_outputs display listing (thanks to @dannon). Pull Request 17964
Fix get_content_as_text for compressed text datatypes (thanks to @mvdbeek). Pull Request 17976
History import - show user feedback on completion (thanks to @dannon). Pull Request 17980
Backport: Fix bug: call unique() on result, not select stmt (thanks to @jdavcs). Pull Request 17981
Raise
RequestParameterInvalidException
if collection element has unknown extension (thanks to @mvdbeek). Pull Request 17985Don’t attempt to commit in dry_run mode (thanks to @mvdbeek). Pull Request 17987
Don’t fail if reporting invalid parameter values (thanks to @mvdbeek). Pull Request 18002
Preserve surrounding whitespace when localizing complex nodes (thanks to @dannon). Pull Request 18005
Add section divider to activity bar, fix click handler (thanks to @guerler). Pull Request 18007
Raise
MessageException
when report references invalid workflow output (thanks to @mvdbeek). Pull Request 18009Avoid exception when opening apply rules tool and no collection in history (thanks to @mvdbeek). Pull Request 18011
Don’t commit without having set a hid (thanks to @mvdbeek). Pull Request 18014
Make celery fixture available in framework tests (thanks to @mvdbeek). Pull Request 18020
Add a link to histories list in history import message for situations… (thanks to @dannon). Pull Request 18021
Raise appropriate exception if user forces a collection that is not populated with elements as input (thanks to @mvdbeek). Pull Request 18023
Fix
test_get_tags_histories_content
test (thanks to @mvdbeek). Pull Request 18026Clarify the object store relocate functionality (thanks to @martenson). Pull Request 18033
Fix History Dataset Association creation so that hid is always set (thanks to @mvdbeek). Pull Request 18036
Change wrong quota_source value from KeyError to ValueError (thanks to @mvdbeek). Pull Request 18040
Ensure that offset and limit are never negative (thanks to @mvdbeek). Pull Request 18044
Fix comments lost on import (thanks to @ElectronicBlueberry). Pull Request 18060
Fix (I think) a transiently failing selenium error (thanks to @jmchilton). Pull Request 18065
Check database connection to issue a rollback if no connection (thanks to @jdavcs). Pull Request 18070
Fix toolbar header z-index (thanks to @itisAliRH). Pull Request 18084
Dynamic tool fixes (thanks to @dcore94). Pull Request 18085
Raise exception if collection elements missing during download (thanks to @jdavcs). Pull Request 18094
Tests and bugfixes for cloudbridge object store (thanks to @jmchilton). Pull Request 18099
Fix AWS object store for us-east-2 (thanks to @jmchilton). Pull Request 18100
Hide bookmark toggle on deleted workflows (thanks to @itisAliRH). Pull Request 18103
Fix for unexpected OIDC XML validation error (thanks to @Edmontosaurus). Pull Request 18106
Fix vanishing connections on workflow upgrade (thanks to @ElectronicBlueberry). Pull Request 18107
Fix activity bar touch events on iOS devices (thanks to @mvdbeek). Pull Request 18109
Fairly critical fix for #18087 (thanks to @jmchilton). Pull Request 18110
Fix and unify axios error handling (thanks to @mvdbeek). Pull Request 18112
Fix switching between nested collection elements (thanks to @mvdbeek). Pull Request 18115
Ignore AdminRequired and RegisteredUserRequired Sentry events (thanks to @mvdbeek). Pull Request 18118
Fix deprecated deprecated argument (thanks to @mvdbeek). Pull Request 18119
Include traceback when logging email PJA exception (thanks to @mvdbeek). Pull Request 18122
Fix listing possibly untitled records in Invenio Plugin (thanks to @davelopez). Pull Request 18130
Fix data default values not getting added to history (thanks to @mvdbeek). Pull Request 18132
Fix undefined reading ‘produces_entry_points’ TypeError (thanks to @ahmedhamidawan). Pull Request 18141
Fix config access in StorageManager (thanks to @dannon). Pull Request 18143
Fix Legacy HTML page view (thanks to @mvdbeek). Pull Request 18145
Delay tool form rendering until config is loaded (thanks to @mvdbeek). Pull Request 18151
Raise
RequestParameterInvalidException
when url is invalid (thanks to @mvdbeek). Pull Request 18155Fix error message when accessing restricted Zenodo records (thanks to @davelopez). Pull Request 18169
Small refinements and fixes to new release process doc (thanks to @nsoranzo). Pull Request 18170
Add message to Invocations panel for no invocations (thanks to @ahmedhamidawan). Pull Request 18180
Fix typos in create release documentation page (thanks to @jdavcs). Pull Request 18181
Change default milestone to target 24.2 (thanks to @jdavcs). Pull Request 18186
Fix Edit Dataset UI when there is an error retrieving the dataset (thanks to @davelopez). Pull Request 18188
Fix file source search query with empty string value (thanks to @davelopez). Pull Request 18191
Replace Multiselect selectLabel with icons in FormSelect (thanks to @ahmedhamidawan). Pull Request 18194
Fix make all histories private with immutable histories (thanks to @davelopez). Pull Request 18200
Fix selection highlight in Files Dialog when using items provider (thanks to @davelopez). Pull Request 18201
Remove legacy code, reference to sqlalchemy migrate (thanks to @jdavcs). Pull Request 18202
Add GenericItem error handling (thanks to @ahmedhamidawan). Pull Request 18203
Add string cast for dbkey / genome_build (thanks to @mvdbeek). Pull Request 18207
Use config_section to distinguish between galaxy and ts or other apps (thanks to @jdavcs). Pull Request 18215
To stay up to date with Galaxy’s progress, watch our screencasts; visit our community Hub; and follow us on Bluesky, Mastodon, and LinkedIn.
You can always chat with us on Matrix.
Thanks for using Galaxy!
Release Team
Release manager: John Davis
Release testing:
Communications:
A special thank you goes to everyone who helped test the new release after its deployment on usegalaxy.org.