The latest information about Galaxy can be found on the Galaxy Community Hub.
Community support is available at Galaxy Help.
Galaxy Quickstart
Galaxy requires Python 3.10 or higher. To check your Python version, run:
$ python -V
Python 3.10.12
Start Galaxy:
$ sh run.sh
Once Galaxy completes startup, you should be able to view Galaxy in your browser at: http://localhost:8080
For more installation details please see: https://getgalaxy.org/
Documentation is available at: https://docs.galaxyproject.org/
Tutorials on how to use Galaxy, perform scientific analyses with it, develop Galaxy and its tools, and admin a Galaxy server are at: https://training.galaxyproject.org/
Tools
Tools can be either installed from the Tool Shed or added manually. For details please see the tutorial. Note that not all dependencies for the tools provided in the tool_conf.xml.sample are included. To install them please visit “Manage dependencies” in the admin interface.
Issues and Galaxy Development
Please see CONTRIBUTING.md .
History
26.1.1 (2026-08-04)
Bug fixes
Other changes
26.1.0 (2026-08-02)
Bug fixes
Avoid missing field value failure in data tables by @guerler in #21008
Use focus/blur to prevent prop updates from changing `FormText` values while typing by @ahmedhamidawan in #21300
Improve history multiview UX with load more option by @dannon in #21687
Escape `$` in galaxy.xsd to fix output filter docs rendering by @gdefazio in #21731
Fix delete dataset storage overview by @davelopez in #21746
Restore visual hierarchy for ReStructuredText headers in tool form’s help section by @hujambo-dunia in #21780
Fix transient failure in test_delete_dataset_from_storage_view by @jmchilton in #21793
Stop uv from using the system Python to create the venv by @uwwint in #21807
Bump cryptography from 46.0.4 to 46.0.5 in /lib/galaxy/dependencies by @dependabot in #21815
Bump jsondiffpatch from 0.6.2 to 0.7.2 in /lib/tool_shed/webapp/frontend by @dependabot in #21817
Pin setuptools<82 for galaxy-files package by @jmchilton in #21824
Bump pillow from 12.1.0 to 12.1.1 in /lib/galaxy/dependencies by @dependabot in #21825
Bump markdown-it from 13.0.2 to 14.1.1 in /client by @dependabot in #21852
Bump glob from 10.3.10 to 12.0.0 in /client by @dependabot in #21864
Fix Selenium select_by_value: wait for element before find by @jmchilton in #21874
Bump minimatch from 10.2.0 to 10.2.2 in /client-api by @dependabot in #21910
Fix dbkey filter returning no options when dbkey unset by @jmchilton in #21916
Fix workflow implicit mapping of flat collections over paired_or_unpaired by @jmchilton in #21933
Bump underscore from 1.13.6 to 1.13.8 in /client by @dependabot in #21979
Fix silently ignored <idphint> in oidc_backends_config.xml so kc_idp_hint reaches Keycloak by @gkr0110 in #21992
Add request_checksum_calculation support for s3fs by @lldelisle in #21993
Fix broken log format string in validate_non_local by @jmchilton in #22004
Fix test that transiently fails if GitHub rejects a request by @jmchilton in #22005
Fix ToolExpressionOutput.to_model() for boolean type by @jmchilton in #22007
Remove unused enable_beta_workflow_modules config option by @jmchilton in #22050
Fix merge, tool shed metadata revision page uses new invalid_tools structure by @mvdbeek in #22072
Bump black from 26.3.0 to 26.3.1 in /lib/galaxy/dependencies by @dependabot in #22090
Disable undo/redo buttons in workflow editor when unavailable by @dannon in #22092
Skip X-Frame-Options header for published embed views by @dannon in #22107
Fix tag duplication when copying datasets/collections between histories by @dannon in #22109
Fix anonymous_user_concurrent_jobs to not allow jobs when 0 by @ccoulombe in #22110
Update pre-commit black pin from 24.1.1 to 26.1.0 by @dannon in #22111
Try to create Rucio temp directory before writing rucio.cfg by @evilkermit in #22112
Fix transient failure in test_workflow_with_deleted_dataset_step_parameter by @jmchilton in #22138
Prevent card images from overflowing container by @dannon in #22148
Convert math.inf to None in JSON-serialized tool dicts by @dannon in #22152
Use correct binary unit prefixes (KiB/MiB/GiB) by @dannon in #22153
Bump pyasn1 from 0.6.2 to 0.6.3 in /lib/galaxy/dependencies by @dependabot in #22160
Install playwright browsers for unit tests by @nsoranzo in #22161
Fix more paired_or_unpaired collection issues by @jmchilton in #22170
Prevent tag placeholder text wrapping in narrow columns by @dannon in #22176
Bump pydicom from 3.0.1 to 3.0.2 in /lib/galaxy/dependencies by @dependabot in #22199
Fix mapOver terminology typo and minor polish by @martenson in #22226
Set proxy_ssl_server_name for GTN proxy on CloudFlare due to SNI by @martenson in #22249
Bump requests from 2.32.5 to 2.33.0 in /lib/galaxy/dependencies by @dependabot in #22270
Bump cryptography from 46.0.5 to 46.0.6 in /lib/galaxy/dependencies by @dependabot in #22289
Fix flaky Selenium tests ``test_refresh_preserves_state`` and ``test_tool_discovery_landing`` by @mvdbeek in #22301
Bump pygments from 2.19.2 to 2.20.0 in /lib/galaxy/dependencies by @dependabot in #22308
Bump fastmcp from 3.1.0 to 3.2.0 in /lib/galaxy/dependencies by @dependabot in #22334
Fix S3 multipart upload to start all threads before waiting by @martenson in #22356
Bump aiohttp from 3.13.3 to 3.13.4 in /lib/galaxy/dependencies by @dependabot in #22363
Fix RST syntax and other small bugs in help Markdown term YAML by @jmchilton in #22374
Bump cryptography from 46.0.6 to 46.0.7 in /lib/galaxy/dependencies by @dependabot in #22424
Fix mypy and packaging issues; pin rocrate<0.15.0 by @nsoranzo in #22469
Bump mako from 1.3.10 to 1.3.11 in /lib/galaxy/dependencies by @dependabot in #22509
Bump authlib from 1.6.9 to 1.6.11 in /lib/galaxy/dependencies by @dependabot in #22510
Fix Hashicorp Vault 2.0 non-canonical path rejection by @mvdbeek in #22530
Bump lxml from 6.0.4 to 6.1.0 in /lib/galaxy/dependencies by @dependabot in #22540
Fix tool id handling for shed-installed tools by @guerler in #22553
Skip missing history item ids in job exports by @guerler in #22563
Restore WebDAV template v0; add v1 for url -> base_url rename by @mvdbeek in #22570
Patch bar_chart tool for the Python 3 Gnuplot module by @gsaudade99 in #22597
Share route_name_index with mounted MCP sub-app by @mvdbeek in #22622
Honor group-derived roles in unprivileged tool access check by @mvdbeek in #22623
Fix MCP get_dataset_details crash on display-apps serialization by @mvdbeek in #22635
Minor styling fixes for invocation view header and history list cards by @ahmedhamidawan in #22639
Update test workflows to respect gxformat2 0.26.0 syntax by @nsoranzo in #22642
Update test workflows to respect gxformat2 0.26.0 syntax (part 2) by @nsoranzo in #22645
Bump mistune from 3.2.0 to 3.2.1 in /lib/galaxy/dependencies by @dependabot in #22651
Bump axios from 1.15.0 to 1.15.2 in /client by @dependabot in #22652
Bump mako from 1.3.11 to 1.3.12 in /lib/galaxy/dependencies by @dependabot in #22653
Bump python-multipart from 0.0.26 to 0.0.27 in /lib/galaxy/dependencies by @dependabot in #22654
Fix SQL compatibility in kombu message pruning by @davelopez in #22655
Defer dynamic destination evaluation across resubmits by @nuwang in #22670
Don’t install data table entries for non-DM tool installs by @natefoo in #22679
Fix workflow extraction not including user-defined tool steps by @ahmedhamidawan in #22694
Drop unintended claude settings and extend gitignore by @mvdbeek in #22699
Harden access control for user-defined tools by @mvdbeek in #22704
Drop dead history_id kwarg from QueueJobs construction by @jmchilton in #22726
Fix galaxy_task DI injection on Python 3.14 by @mvdbeek in #22727
Fix shed install column mismatch from synthesized name alias by @mvdbeek in #22733
Bump pydantic-ai from 1.97.0 to 1.99.0 in /lib/galaxy/dependencies by @dependabot in #22736
Merge 26.0 into dev (CI-clean rebase of #22749) by @mvdbeek in #22753
Framework test for UDTs in Format 2 Workflows by @jmchilton in #22756
[26.1 (spiritually)] Fix UDT collection outputs being silently dropped in YAML tool parser by @jmchilton in #22761
Reconnect SSE live updates on wake, network restore, and click by @mvdbeek in #22767
Prevent vertical scrolling in invocation graph by @guerler in #22769
Drop full path from client_build_hash.txt exclusion by @dannon in #22772
Add fallback at read location in dynamic options by @guerler in #22779
Fix composite uploads ignoring substitute_name_with_metadata by @mvdbeek in #22788
Route ChatGXY on the current message, and ask when uncertain by @dannon in #22791
GalaxyAI minor chat history and interface display fixes and polish by @ahmedhamidawan in #22793
Relax legacy doi:-prefixed citation handling (#22795) by @mvdbeek in #22799
Fix on_string containing redundant datasets by @bernt-matthias in #22801
Fix BreadcrumbHeading imposing a minimum width on parent components by @ahmedhamidawan in #22804
Reuse the global, context-aware GalaxyAI for Galaxy Notebooks by @ahmedhamidawan in #22807
Add handler for URL source type in workflow card indicators by @itisAliRH in #22808
Stop workflow editor leaking UI metadata into Apply Rules tool_state by @jmchilton in #22823
Drop console scripts from packages’ ``setup.cfg`` files by @nsoranzo in #22832
Prevent crash on pgcleanup script when attempting to delete files in user-defined object stores by @davelopez in #22833
Move classifiers and keywords from setup.cfg to pyproject.toml by @jdavcs in #22834
Fix tag creation self-deadlock under SQLite by @mvdbeek in #22846
Fix galaxy-api-client npm publishing on release by @dannon in #22847
Fix WES workflow completion and add missing WES docs by @jmchilton in #22857
Allow workflows with optional credentials to run without credentials set by @arash77 in #22858
Remove duplicate clear call in remove_objects method by @bgruening in #22862
Fix syncServerAttributes clobbering conditional case options for shared param names by @mvdbeek in #22867
Add fixed color set from webcolors package by @guerler in #22869
Handle existing rows in tool_source during db migration by @mvdbeek in #22870
Use the correct default value for job_id_prefix by @ksuderman in #22871
Create notebooks from invocation reports instead of a new page/report by @ahmedhamidawan in #22872
Match tpv in conditional dependency requirement to pinned version by @mvdbeek in #22874
Pin galaxy-tool-util-models to current minor version in dependents by @jdavcs in #22877
Add missing `confirm` prop to `GModal` in `RefactorConfirmatio… by @ahmedhamidawan in #22879
Fix memory-unit conversion and polling_interval bugs in the GCP Batch runner by @ksuderman in #22880
Fix floating window drag/resize over iframes with pointer capture by @dannon in #22881
Fix New Chat button while a GalaxyAI conversation is in flight by @dannon in #22882
Address arch-review issues from #22807: move business logic out of chat controller by @mvdbeek in #22885
Cut GTN training agent token usage by capping its search loop by @dannon in #22890
Fix input mangling when conditional parameter name ends in `_N` by @mvdbeek in #22891
Fix table header column handling in plotly and tabulator by @guerler in #22893
Always attempt to build tool request for new API endpoint by @mvdbeek in #22894
Make GalaxyAI agent retry budget configurable (fix “Exceeded maximum output retries”) by @dannon in #22896
Remove GHCR container build job by @ksuderman in #22897
Fix sharing pages impossible due to incorrect `api/reports` fetches on the client by @ahmedhamidawan in #22901
Fix GalaxyAI router context loss and agent response attribution by @dannon in #22904
Fix upload_file_from_url passing decoded id to FetchDataPayload by @jmchilton in #22905
Make GalaxyAI route IWC workflow imports more reliably by @dannon in #22908
Make unowned but accessible pages uneditable by @ahmedhamidawan in #22911
Keep collection-operation outputs as workflow steps in extraction by @jmchilton in #22912
Fix GButton disabled-title not displaying by @dannon in #22920
Fix HTTP Range requests on dataset files (non-nginx deployments) by @jmchilton in #22924
Accept dce collection references in the tool request model by @mvdbeek in #22926
Speed up workflow Run form: memoize and skip redundant history scans (#22927) by @mvdbeek in #22932
Auto-grow the GalaxyAI chat input as you type by @dannon in #22933
Release request-scoped DB connection during streams via GalaxyStreamingResponse (alternative to #22939) by @mvdbeek in #22940
Fix legacy DatabaseVault secrets canonical key migration by @davelopez in #22942
Fix GModal content truncation and dev proxy cookie handling by @mvdbeek in #22943
Ground ChatGXY’s “what can you do” answer in enabled agents by @dannon in #22944
Hide generated headers for tabular previews by @qchiujunhao in #22947
Fix misaligned activity bar icons by @ahmedhamidawan in #22956
Keep the standalone SSE monitor out of the control-queue routing table by @mvdbeek in #22958
Fix view state logic for paste links upload by @davelopez in #22962
Fix tool shed state serving for stock tools by @jmchilton in #22963
Make the user-defined tool schema robust for LLM authoring (CustomToolAgent) by @mvdbeek in #22968
Include hidden intermediates in workflow extraction summary (#22967) by @jmchilton in #22970
Route ChatGXY follow-ups using the previous conversation turn by @dannon in #22975
Fix page published view sharing routes by @ahmedhamidawan in #22977
Rewrite proxy redirect headers to dev origin by @davelopez in #22980
Custom-tool agent: verified container resolution + authoring safeguards (with a reusable mulled-recommend CLI) by @mvdbeek in #22981
Fallback to default chunk size for file uploads by @davelopez in #22985
Resolve user-defined tools in by-ids workflow extraction by @mvdbeek in #22992
Log SSE dispatch task and addressed webapp workers by @mvdbeek in #22995
Fix storage operation column types (Database migration) by @davelopez in #23032
Default S3 request checksum to when_required for non-AWS endpoints by @mvdbeek in #23034
Fix SSE dispatch cache unit tests: give queue mocks a string .name by @mvdbeek in #23035
Fix My Tools favorite tag sections showing old tool versions by @itisAliRH in #23040
Fix tool panel discover counts and recent tool version duplicates by @itisAliRH in #23045
Fix celery worker cold-start thundering herd (build app once, scope tool-data walk to load pass) by @mvdbeek in #23048
Fix NameError, move assignation of days prior to get_failed_jobs call by @ccoulombe in #23053
Pin Ansible version by @ksuderman in #23057
Fix ToolPanelElements._section_by_tool being class-level shared state by @mvdbeek in #23062
Stop the ssh file source from using local keys or the SSH agent by @bernt-matthias in #23066
Skip RST help linting when help format is not restructuredtext by @mvdbeek in #23073
Fix recent tools for My Tools default panel by @itisAliRH in #23075
Bound memory use in h5grove structured content endpoint by @mvdbeek in #23089
Use requests rather than urllib for Invenio authenticated downloads by @martenson in #23096
Fix Markdown help rendering in tools list by @itisAliRH in #23106
Add configurable activation for OIDC accounts by @mvdbeek in #23109
Fix Workflow.copy() dropping readme, help, logo_url and doi by @mvdbeek in #23117
Support multipart upload for Invenio-based file sources by @martenson in #23118
Fix clean jwd task by @davelopez in #23121
Fix typo in irods object store cache size by @davelopez in #23124
Fix activation email lookup regression by @davelopez in #23130
Make verify_collection fail usefully on output-shape mismatches by @mvdbeek in #23134
Fix tool-form option pagination never updating the select (#23135) by @mvdbeek in #23136
Fix workflow preview layout spacing by @itisAliRH in #23143
Handle sample_sheet and paired_or_unpaired collections in output_to_cwl_json by @mvdbeek in #23152
Fix `set_history` committing None `galaxy_session` by @ahmedhamidawan in #23156
Fix fasta preview rendering for sequences larger than 100 KB by @mvdbeek in #23163
Prevent loss of unsaved changes on navigation by @davelopez in #23172
Fix webhooks broken by the Backbone/underscore removal by @itisAliRH in #23173
Fix AssertionError remapping malformed galaxy markdown blocks by @mvdbeek in #23176
Fix workflow graph css issues by @ahmedhamidawan in #23194
Use a thread-safe libmagic handle when sniffing datasets by @mvdbeek in #23200
Fix broken calls to ``InteractiveToolManager`` methods by @nsoranzo in #23216
fix(client): compile SCSS in collection wizard style blocks by @jmchilton in #23217
Fix TUS uploads when galaxy_url_prefix is set by @afgane in #23224
Build packages without syncing the workspace virtualenv by @mvdbeek in #23231
Drop unused _setup-dev-venv rule from package Makefiles by @mvdbeek in #23243
Enhancements
Audit pre-2021-04-27 contributors to check for relicensing by @mr-c in #16708
Allow etree.XMLParser to resolve external entities by @jancrichter in #17504
Show persistent best practice results in workflow editor by @mvdbeek in #19546
Use GModal in Selection Dialog by @ahmedhamidawan in #20375
Improve Chinese translation based on English locale.js by @djken2009 in #21044
Allow OIDC to update EMAIL and username (if mapped) by @uwwint in #21386
Improve the workflow import UI by @neoformit in #21516
Add a new “htcondor” job runner that uses the Python HTCondor version 2 bindings by @bgruening in #21528
Introduce a new favorite tool panel and most-recent tools by @bgruening in #21600
Introduce reusable GTable component by @itisAliRH in #21635
Add support for test credentials in tools by @arash77 in #21643
Always use context managers in py2filesystem file sources by @bernt-matthias in #21645
Improvements for ssh file sources by @bernt-matthias in #21646
Update locuszoom package version to 0.0.9 by @elmedjadjirayane in #21658
Return redirection instead of a JSON with the redirect URI by @enolfc in #21678
Break dereference_input into HDA and HDCA variants by @mvdbeek in #21694
Allow admin to override `$GALAXY_MEMORY_MB` by @natefoo in #21700
Move BootstrapSize type to shared module by @davelopez in #21702
Don’t persist credentials when checking out repositories by @nsoranzo in #21705
Update Python dependencies by @galaxybot in #21707
Add multi-language support for international users by @jianzuoyi in #21710
Skip test_abort_fetch_job if httpstat.us is down by @jmchilton in #21718
Update client-api dependencies and expand usage examples by @dannon in #21724
Use uv instead of pip cache in playwright CI workflow by @nsoranzo in #21725
Migrate ExportRecordTable from BTable to GTable by @itisAliRH in #21727
Migrate DatasetIndex from BTable to GTable and Add Local Sorting to GTable by @itisAliRH in #21728
Migrate CleanupResultDialog from BTable to GTable by @itisAliRH in #21729
Add documentation for Celery result expiration and short-term storage by @mvdbeek in #21733
Update locale.js MAJ french translation by @yvanlebras in #21736
Fix scratchbook window z-index stacking and improve styling by @dannon in #21738
Fix Chinese localization formatting in locale.js by @itisAliRH in #21745
Implement workflow extraction backend typing by @jmchilton in #21749
Create a history datasets store that caches compact dataset summaries by @ahmedhamidawan in #21754
Migrate OrganizationViewer and PersonViewer from BTable to GTable by @itisAliRH in #21761
Migrate Toolshed Components from Bootstrap Components to GComponents and add Local Filter to GTable by @itisAliRH in #21766
Convert FormDisplay to Composition API by @guerler in #21775
Add badges to upload methods with staged items count by @davelopez in #21779
Add Metadata Inspector UI and Enhanced reset_metadata API by @jmchilton in #21786
Update Python dependencies by @galaxybot in #21787
Clean up stale yarn references after pnpm migration by @dannon in #21792
Add tool_source endpoint to tool shed API by @mvdbeek in #21794
Migrate History Markdown Components to GComponents and GTable Enhancements by @itisAliRH in #21800
Add Selenium tests for workflow extraction UI by @jmchilton in #21805
Migrate Upload Components from BTable to GTable and Enhance Table Styling by @itisAliRH in #21820
Switch Storage Dashboard Bar Chart from D3 chart to Vega by @guerler in #21822
Various YAML Tool Hardening and Progress toward Tool State Goals by @jmchilton in #21828
Migrate admin components from BTable to GTable and Add stacked Style to GTable by @itisAliRH in #21836
Migrate more E2E tests to be Playwright compatible by @jmchilton in #21841
Migrate tool execution request from api/tools to api/jobs by @guerler in #21842
Update Python dependencies by @galaxybot in #21853
Beta upload: create dataset collections directly via HdcaDataItemsTarget by @mvdbeek in #21855
Use (also) case-insensitive comparison for user email by @nsoranzo in #21885
Support URL and TRS references for subworkflows in workflow import by @mvdbeek in #21887
Add support for file hash in Dataverse datasets by @davelopez in #21890
Enhance Playwright tests by @jmchilton in #21893
Migrate Library components from BTable to GTable and improve GTable by @itisAliRH in #21894
Prevent uploads to non-active histories in Beta Upload Activity by @davelopez in #21895
ChatGXY extraction: sub-components + vitest tests by @jmchilton in #21897
Add try Beta Upload button by @davelopez in #21898
Update Python dependencies by @galaxybot in #21899
Add format_xml to galaxy-tool-util for shared XML formatting by @dannon in #21903
Improve Type and Reference selectors in Upload Activity by @davelopez in #21906
Converge framework workflow test syntax toward Planemo syntax by @jmchilton in #21907
Render collections as images via the element picker in reports by @ahmedhamidawan in #21909
Fix infinite request loops in cached stores with retry-aware error handling by @dannon in #21920
Add a stop job button that allows users to stop jobs by @ahmedhamidawan in #21921
Make Shed 2 the Default - Drop Legacy Shed Tests in CI by @jmchilton in #21922
Handle missing `future` package in galaxy-util by @mr-c in #21924
Allow tools to specify time limits by @jmchilton in #21927
Allow per-job max_run_duration for GCP Batch runner by @ksuderman in #21928
Add `delete_completed_jobs` option to GCP Batch runner by @ksuderman in #21929
Add Workflow Report generator agent by @ahmedhamidawan in #21934
Convert workflow extraction interface to Vue by @ahmedhamidawan in #21935
Add ASCII Raster (.asc) datatype by @tStehling in #21937
First pass in unifying and clarifying collection operation interfaces and help sections by @nekrut in #21939
Update config sample files after `make config-rebuild` by @davelopez in #21940
Add composite dataset upload method to Upload Activity by @davelopez in #21944
ChatGXY UI improvements and exchange management by @dannon in #21950
Update Python dependencies by @galaxybot in #21951
Eliminate Twill from Tool Shed tests by @jmchilton in #21953
Use ``os.path.join()`` or ``pathlib.Path`` instead of f-strings for filesystem paths by @nsoranzo in #21954
Replace BOverlay with custom GOverlay component by @dannon in #21957
Replace BCollapse with custom GCollapse component by @dannon in #21958
Replace BTabs/BTab with custom GTabs/GTab components by @dannon in #21960
Replace v-b-tooltip directive with custom v-g-tooltip by @dannon in #21962
Add basic upload queue tests by @davelopez in #21965
Attempt to fix transient failure in selenium test test_advanced_search by @davelopez in #21967
Bump actions/upload-artifact from 6 to 7 by @dependabot in #21970
Migrate Python packages to `src` layout and pure namespace packages by @mr-c in #21977
More concise test logging by @jmchilton in #21983
Model subcollection mapping (map_over_type) and DCE in tool parameter schema by @jmchilton in #21991
Add admin docs for AI agent configuration by @jmchilton in #21997
Update Python dependencies by @galaxybot in #22003
Bug fix and refactor of ChatGXY chat history component by @jmchilton in #22010
Refactor Agent Registry Wiring and Fix Config Options by @jmchilton in #22011
Enrich tool parameter JSON Schema with Galaxy metadata via model methods by @mvdbeek in #22020
Bump docker/setup-buildx-action from 3 to 4 by @dependabot in #22021
Bump docker/build-push-action from 6 to 7 by @dependabot in #22022
Bump docker/metadata-action from 5 to 6 by @dependabot in #22023
Bump docker/login-action from 3 to 4 by @dependabot in #22024
Clean up more Tool Shed code (round 2) by @jmchilton in #22037
Migrate User CustomBuilds and ReviewCleanupDialog components from BTable to GTable by @itisAliRH in #22039
Migrate Some components from BTable to GTable and GTable header variant by @itisAliRH in #22048
Add `run_playwright_tests.html` to `.gitignore` by @ahmedhamidawan in #22049
Treat SVG datasets as images in dataset preview by @dannon in #22065
Replace mocked agent tests with static YAML backend for deterministic API/E2E testing by @jmchilton in #22070
Clean up more Tool Shed code (round 3) by @jmchilton in #22078
Persist scratchbook windows across page reloads by @dannon in #22088
Modernize the ConfirmDialog composable to use GModal by @ahmedhamidawan in #22091
Fix long history names pushing items off panel by @dannon in #22094
Replace WinBox with native Vue scratchbook component by @dannon in #22095
Add persistent docked ChatGXY panel with context awareness by @dannon in #22096
Cap invocation graph zoom-to-fit at 100% by @dannon in #22105
Replace BModal usage with GModal in several components by @ahmedhamidawan in #22114
Update Python dependencies by @galaxybot in #22118
Add API tests proving __current_case__ is redundant at execution time by @jmchilton in #22134
Bump slackapi/slack-github-action from 2.1.1 to 3.0.1 by @dependabot in #22139
Show change stack count on workflow editor changes activity by @ahmedhamidawan in #22141
Add an “Isolate” (focus) mode to workflow graph by @ahmedhamidawan in #22142
Show step/tool form for any step in invocation graph by @ahmedhamidawan in #22144
Upgrade client build to Vite 8 (Rolldown) by @dannon in #22145
More precise ``metric_prefix()`` implementation by @nsoranzo in #22155
Add test suite for running tool tests via Playwright using the tool form by @jmchilton in #22157
Add toggle to invocation graph for viewing step inputs/outputs like in the editor by @ahmedhamidawan in #22159
Expand E2E testing by @jmchilton in #22164
Add new Upload Modal Dialog by @davelopez in #22165
Update client-api dependencies, bump openapi-fetch to 0.17, add CI by @dannon in #22169
Add copy link button to published workflow page by @dannon in #22172
Improve celery rate limit and concurrency handling by @mvdbeek in #22189
Update Python dependencies by @galaxybot in #22206
Extend the favorite tool panel concept by @bgruening in #22212
Substantially expand tool form testing by @jmchilton in #22216
Restore the #22116 fixes that only apply to dev by @jmchilton in #22218
Add `pick_value` Workflow Module by @jmchilton in #22222
Migrate Workflow Components from BTable to GTable by @itisAliRH in #22228
Upgrade Sentry JS SDK to v10, add opt-in session replay by @dannon in #22233
Bump pnpm/action-setup from 4 to 5 by @dependabot in #22235
Support IEC units in ``size_to_bytes()``, add ``QuotaManager`` unit tests by @nsoranzo in #22237
Simplify gxformat2 contract - drop ImporterGalaxyInterface, convert_and_import_workflow by @jmchilton in #22241
Add configurable tooltip hover timing delay by @davelopez in #22264
Add egapx_local_cache datatype, a subclass of Directory by @richard-burhans in #22268
Show file size for CRAM datasets and in download tooltip by @dannon in #22273
Add Hashicorp Vault token renewal support by @mvdbeek in #22281
Bump codecov/codecov-action from 5 to 6 by @dependabot in #22306
Add bwa_index datatype by @Delphine-L in #22310
Search and paginate user and roles api by @mvdbeek in #22311
Add sheet_names metadata to XLSX datatype by @Anthony96pi in #22327
Use a help popover for TRS search field by @ahmedhamidawan in #22330
Show node state colors in workflow invocation graph minimap by @ahmedhamidawan in #22335
Unify path adaptation for remote file sources by @davelopez in #22336
Remove direct underscore dependency from client by @dannon in #22355
Galaxy Notebooks: Persistent Narrative for Human-AI Collaborative Science in Galaxy by @jmchilton in #22361
More Complete, Robust, and Tested JSON-Schema for Tool State Models by @jmchilton in #22362
Add twine check to package test script to lint RST long descriptions by @ahmedhamidawan in #22412
Update German history localization terms for consistency by @itisAliRH in #22417
Add IIIF File Source Support by @davelopez in #22420
Make invocation view header area collapsible by @ahmedhamidawan in #22425
Better Auth0 OIDC support by @marius-mather in #22426
Parameterize GCP Batch job naming for better tracking by @ksuderman in #22434
Require logging in again when OIDC tokens can’t be refreshed by @marius-mather in #22449
Update Python dependencies by @galaxybot in #22459
Clean up legacy SQLAlchemy patterns that emit deprecation warnings by @mvdbeek in #22462
Clean up Pydantic v2 deprecation warnings by @mvdbeek in #22463
Add Selenium/Playwright coverage to Beta Upload Activity by @davelopez in #22467
Bump actions/github-script from 8 to 9 by @dependabot in #22471
Clean up remaining deprecation warnings by @mvdbeek in #22473
Mark History.jobs relationship as viewonly by @mvdbeek in #22474
Add a Search to Invocation View by @ahmedhamidawan in #22476
Migrate WebDAV file source to fsspec/webdav4 by @PlushZ in #22477
Show revision creation date in Tool Shed revision dropdown by @mvdbeek in #22478
Allow attaching OIDC access token to DRS requests by @marius-mather in #22484
Replace v-b-tooltip in RemoteFilesUpload with v-g-tooltip by @itisAliRH in #22494
Enhance the workflow editor activity bar by @ahmedhamidawan in #22500
Narrow YAML schema by @jmchilton in #22507
Add Hugging Face shared data table schema by @arash77 in #22511
Use shared host_port_and_url helper in integration driver by @itisAliRH in #22512
Server-Sent Events for history + notification updates by @mvdbeek in #22513
Drop npm/pnpm from the prebuilt client install; use galaxy-web-client wheel by @dannon in #22514
Update Python dependencies by @galaxybot in #22517
Update label for invert parameter in grep.xml for clarity by @Sch-Da in #22550
Put the pnpm workspace at client/, with galaxy-api-client as the first member by @dannon in #22554
Update Python dependencies by @galaxybot in #22559
Overhaul and synchronize collection type algebra verbs by @jmchilton in #22565
Tighten the workflow test schema by @jmchilton in #22566
Add ``RetrySession`` to automatically retry idempotent HTTP requests by @nsoranzo in #22567
Bump conda-incubator/setup-miniconda from 3 to 4 by @dependabot in #22572
Add celery-beat-schedule to `gitignore` by @ahmedhamidawan in #22574
Use now() wrapper instead of datetime.now() by @bgruening in #22579
Add bulk dataset storage migration by @davelopez in #22606
Pass chat history to agents as structured messages by @dannon in #22607
Pass orchestration state between agents as a typed object by @dannon in #22608
Replace agent structured-output denylist with capability table by @dannon in #22609
Give the chat router fast-path tools for browsing and inventory by @dannon in #22610
Add producer/critic reflection loops to CustomToolAgent by @dannon in #22612
Push UserToolSource semantic validation onto the pydantic model by @mvdbeek in #22615
Update Python dependencies by @galaxybot in #22619
Lift legacy UserToolSource representations on read by @mvdbeek in #22624
Add user-defined-tool operations to the agent-operations layer by @dannon in #22625
Re-introduce IWC tools in agent-operations layer by @dannon in #22626
Beef up MCP tool docstrings with workflow guidance by @dannon in #22627
Manage SSE reconnect on transient 5xx/429 outages by @mvdbeek in #22629
Bump slackapi/slack-github-action from 3.0.2 to 3.0.3 by @dependabot in #22636
Improve type annotation of workflow management methods by @nsoranzo in #22637
Replace QuotaUsageProvider with Pinia store + enhancements by @davelopez in #22640
Paginate /api/tools/{tool_id}/build history options by @mvdbeek in #22643
Expose more metadata in ParsedTool abstraction by @jmchilton in #22667
Standardize on LoadingSpan, retire BSpinner usages by @dannon in #22669
Add GAlert component and replace BAlert in exemplar usages by @dannon in #22687
Add support for file checksums in Zenodo/Invenio by @davelopez in #22691
Add real-LLM evaluation harness for Galaxy agents by @dannon in #22692
Migrate the Google Drive file source to fsspec by @PlushZ in #22696
Remove leftover debug print statement by @davelopez in #22697
Update Python dependencies by @galaxybot in #22702
Enhance workflow extraction by IDs with deduplication and UI improvements by @jmchilton in #22706
Add auto decompress advanced option (Beta Upload) by @davelopez in #22711
Unify remove button icons across upload methods by @davelopez in #22716
More structured HistoryGraph API references by @jmchilton in #22732
Refresh agent-ops data (GTN database + IWC manifest) on a celery beat schedule by @dannon in #22783
Improve import workflow usability by @davelopez in #22813
Backport of iRODS file source by @davelopez in #22816
Optimize the purge_historyless_hdas case by @bgruening in #22831
Update tiffviewer to v0.0.5 by @davelopez in #22866
Further polish/bugfixes for notebooks created from invocations by @ahmedhamidawan in #22873
Add namespace stripping to ``CachedExplicitSingularityContainerResolver`` by @mvdbeek in #22878
Enforce color format in JSON schema tests via FormatChecker by @mvdbeek in #22909
Fix upload progress usability by @davelopez in #22919
Align remote file browser labels by @itisAliRH in #22922
Add new datatypes for the tool vg giraffe by @Maed0x in #22935
Emit SSE/queue metrics as gauges, sample SSE counts in web workers by @mvdbeek in #22960
Disable non anonymous upload methods by @davelopez in #22965
Enable CORS on ToolShed read-only metadata endpoints by @jmchilton in #22972
Add PAGE XML, AbbyyXML, hOCR, mlmodel and Apache Arrow IPC datatype support in datatypes_conf.xml.sample by @IvoLeist in #23088
Update pulsar-galaxy-client dependency to 0.15.15 by @mvdbeek in #23108
Other changes
Bump pydantic-ai from 1.44.0 to 1.56.0 in /lib/galaxy/dependencies by @dependabot in #21782
Bump slackapi/slack-github-action from 2.0.0 to 2.1.1 by @dependabot in #21803
Add a shared operations layer for internal and external AI agents by @dannon in #21942
Propagate `start()` to backends in `DistributedObjectStore` by @pauldg in #22220
Bump lodash from 4.17.21 to 4.18.1 in /client by @dependabot in #22365
Bump vite from 7.2.4 to 7.3.2 in /client by @dependabot in #22390
Bump axios from 1.12.0 to 1.15.0 in /client by @dependabot in #22458
Bump dompurify from 3.2.6 to 3.4.0 in /client by @dependabot in #22501
Add `enable_statsd_middleware` option to send backend execution timing to statsd without enabling web request timing by @natefoo in #22557
Bump slackapi/slack-github-action from 3.0.1 to 3.0.2 by @dependabot in #22573
SSE update enhancements for multi-history view and published histories by @mvdbeek in #22614
Fix session_duration check using local time instead of UTC by @gagayuan in #22957
Backport architecture-aware mulled builds by @paperbenni in #23070
Backport “Always install ``fastmcp``” by @nsoranzo in #23119
26.0.1 (2026-06-04)
Bug fixes
Add debug middleware and regression tests for blocked main event loop by @mvdbeek in #22207
Hide hidden tools in the tool form by @bgruening in #22215
Fix IndexError in SplitPairedAndUnpairedTool for unpaired elements by @ernestprovo23 in #22282
Respect workflow object store preference for mapped step outputs by @mvdbeek in #22409
Avoid premature commit when copying MetadataFile by @mvdbeek in #22422
Fix testing, publishing and dependencies of packages by @nsoranzo in #22445
Fix `get_structure` when it is passed a DCE with nested elements by @mvdbeek in #22453
Move job-level filters inside CTE in job cache query by @mvdbeek in #22454
Fix filtering of Data Source Tools in Upload Activity by @davelopez in #22465
Accept bare ftype as valid test output check by @jmchilton in #22483
Enforce file source access during dataset materialization by @mvdbeek in #22486
Fix sample sheet upload without sample-sheet-specific columns by @mvdbeek in #22488
Fix UI no longer auto-decompressing files. by @jmchilton in #22490
Strip whitespace from URIs in get_file_source_path by @mvdbeek in #22506
Drop –frozen-lockfile from prebuilt client install by @dannon in #22508
Truncate dataset name in export arcname to avoid OSError by @mvdbeek in #22518
Catch end of file error when reading corrupted tabular dataset by @guerler in #22523
Fix data manager URL for managers with ‘+’ version suffix by @mvdbeek in #22525
Fix UnicodeError on empty-label URLs in fetch validation by @mvdbeek in #22526
Treat paused inputs as not-ready in DatabaseOperationTool by @mvdbeek in #22529
Fix TypeError when generating tour for tool with boolean conditional case by @ahmedhamidawan in #22532
Fix `WorkflowAnnotation` wrapping inconsistencies by @ahmedhamidawan in #22539
Handle list-valued tool_id in ToolRunner.__get_tool by @mvdbeek in #22545
Fix crash merging structurally invalid nested collections by @mvdbeek in #22546
Fix silent OIDC failure when pkce is missing by @mvdbeek in #22547
Raise ToolInputsNotReady for unpopulated structured_like target by @mvdbeek in #22552
Fix notification channels not processed correctly by @davelopez in #22556
Cancel background traffic before login/register so session cookie isnt clobbered by @mvdbeek in #22564
Fix admin resend-activation email missing hostname by @mvdbeek in #22568
Fixes looks_like_flattened_repeat_key helper by @guerler in #22578
Raises error if decoding fails during relabeling from file by @guerler in #22595
Preserve falsy workflow parameter values on workflow rerun by @mvdbeek in #22601
Fix job access check for collection-only outputs by @mvdbeek in #22603
Fix error handling for Help Forum integration by @davelopez in #22604
Reject malformed dataset ids in data tool parameter by @mvdbeek in #22617
Exclude user defined tools from requiring galaxy env by @mvdbeek in #22628
Adds missing TLS support for FTP configurations in templates by @davelopez in #22657
Fix repository sort order to fix incremental tool shed search updates work by @mvdbeek in #22663
Fix workflow rerun for unset optional data inputs by @mvdbeek in #22664
Fixes GTN integration missing router by @davelopez in #22673
Fix webdav file download by @davelopez in #22683
Fix Zenodo/Invenio browsing of own records by @davelopez in #22690
Ensure workflow editor always inserts latest tool version by @ahmedhamidawan in #22693
Fix data source tool redirect back to Galaxy SPA by @mvdbeek in #22720
Fix HDA leak in tool form for data managers (#22674) by @mvdbeek in #22724
Backport FastAPI/Starlette upgrade for BadHost (CVE-2026-48710) by @mvdbeek in #22778
update the binary.py for spatialdata so it also works if the file has… by @nilchia in #22802
Fix `FlexPanel` drag handle gets stuck when dragging over iframe by @ahmedhamidawan in #22810
Fix ConnectedValue leak for omitted optional inputs inside groups by @mvdbeek in #22820
Enhancements
26.0.0 (2026-04-08)
Bug fixes
Attempt to fix transient API test failure for jobs search. by @jmchilton in #20898
Infer type from extension for mzml by @bgruening in #21033
Bump python-ldap from 3.4.0 to 3.4.5 in /lib/galaxy/dependencies by @dependabot[bot] in #21042
Update config samples from schema by @davelopez in #21053
Cross product tools: Fix typos in help section by @RZ9082 in #21061
Drop down revision for drop_job_params migration by @mvdbeek in #21122
Pin Ansible version during Docker image building by @ksuderman in #21131
Change invocation step state display selector to fix styling by @ahmedhamidawan in #21144
Simplify transiently failing test (#21224) see if this stabilizes it at all by @jmchilton in #21239
Plumbing for tracking potential fixes for transient failures (and a fix demonstrating it) by @jmchilton in #21243
Fix differentiation between single handler and handler tag by @natefoo in #21252
Fix quoting issue getting the Galaxy version by @ksuderman in #21316
Use uv also for the lint_openapi_schema GitHub workflow by @nsoranzo in #21319
Extend startup probe timeout by @ksuderman in #21326
remove a tool from sample that is no longer included in dist by @martenson in #21371
Attempt to fix transiently failing tests that click this tab. by @jmchilton in #21376
Attempt to fix transient failure in list_list_copy by @jmchilton in #21381
Use icon classes instead of strings for history content item states by @guerler in #21393
Bump urllib3 from 2.5.0 to 2.6.0 in /lib/galaxy/dependencies by @dependabot[bot] in #21399
Assorted tool shed fixes. by @jmchilton in #21424
Use Playwright from the Galaxy virtualenv by @nsoranzo in #21425
Fix tool shed repository last updated time by @mvdbeek in #21427
Don’t set OAUTHLIB_INSECURE_TRANSPORT setting in user_data by @nuwang in #21451
Bump filelock from 3.20.0 to 3.20.1 in /lib/galaxy/dependencies by @dependabot[bot] in #21476
Fixes select field clipping and filtering by @guerler in #21479
Add tool_shed_url config for explicit hostname setting by @jmchilton in #21499
Provide more accurate step hints for failing subworkflow steps by @mvdbeek in #21514
Restrict collection of dynamic working dir output to specified directory in pulsar by @mvdbeek in #21515
Accept 404 as valid intermediate state when waiting for dataset purge by @mvdbeek in #21521
Fix input tags not being copied when using copy_inputs_to_history by @mvdbeek in #21529
Bump aiohttp from 3.13.2 to 3.13.3 in /lib/galaxy/dependencies by @dependabot[bot] in #21538
Preserve assistant messages with tool calls by @guerler in #21545
Bump urllib3 from 2.6.2 to 2.6.3 in /lib/galaxy/dependencies by @dependabot[bot] in #21546
Bump werkzeug from 3.1.4 to 3.1.5 in /lib/galaxy/dependencies by @dependabot[bot] in #21549
Fix width and height assignment for image metadata using Pillow by @kostrykin in #21554
Better error message for unencoded/unresolvable filesource uri by @dannon in #21562
Fix loading spinner positioning in admin grid by @dannon in #21564
Fix Vite 5 upgrade compatibility issues for tool shed frontend by @mvdbeek in #21581
Remove dummy header from JupyterLite requests by @guerler in #21585
Bump pyasn1 from 0.6.1 to 0.6.2 in /lib/galaxy/dependencies by @dependabot[bot] in #21605
Fix Auto Layout crash with conditional (when) step inputs by @jmchilton in #21616
Fix package test using --index-strategy unsafe-best-match to match pip behavior by @mvdbeek in #21619
Fix ace import in cell-based markdown editor by @guerler in #21622
Bump python-multipart from 0.0.21 to 0.0.22 in /lib/galaxy/dependencies by @dependabot[bot] in #21663
Fix incorrect router tag in plugins API by @dannon in #21669
Add missing types to visualization model by @guerler in #21672
Fix storing origin for workflow landing requests by @mvdbeek in #21696
Hide interactivetools activity when disabled in config by @dannon in #21755
Hide ChatGXY activity when LLM API isn’t configured by @dannon in #21756
Handle TPV floating point memory values by @ksuderman in #21763
Deserialize json string for export_metadata from old records by @mvdbeek in #21772
Removes unnecessary overflow restriction in upload method panel by @davelopez in #21774
Fix upload local file drop zone when listing by @davelopez in #21776
Fixes navigation back to added URLs in upload panel by @davelopez in #21796
Fix passing invalid job_destination dict to JobState constructor by @mvdbeek in #21798
Avoid slash duplication in display application urls by @guerler in #21809
Update get_definitions() to FastAPI 0.128.8 by @nsoranzo in #21834
Fix selenium test test_rename_history by @davelopez in #21835
When getting tool by uuid, get that exact tool by @mvdbeek in #21844
Fix OMERO file source download multi channel TIFF by @davelopez in #21856
Fix infinite request loop on dataset preview fetch failure by @dannon in #21881
Fixes some more optional fields in templates by @davelopez in #21891
Fix missing sharable link URL in TS2.0 emails by @jmchilton in #21892
Parse input collections as well in markdown editor by @ahmedhamidawan in #21913
Fix collection step Job markdown elements not rendering by @ahmedhamidawan in #21917
Fix Pydantic UnsupportedFieldAttributeWarning for Field defaults in Annotated by @mvdbeek in #21923
Remove unused handle_tool_shed_url_protocol by @mvdbeek in #21925
Backport paired or unpaired mapping fix by @mvdbeek in #21936
Fix HTML dataset extra files 404 in preview by @dannon in #21981
Fix dict leaking to process_dataset() during workflow execution by @mvdbeek in #21982
Fix dataset collection tag duplication when copying a history by @mvdbeek in #21984
Use inference_services config for plugin chat proxy by @dannon in #21986
Restore file doesn’t match sniffed datatype message by @mvdbeek in #21988
Fix repo metadata persistence in fix_tool_config_paths.py by @mvdbeek in #22012
Fix uncaught ImplicitConversionRequired by @mvdbeek in #22027
Fix toolshed “copy page link” copying relative URL instead of absolute by @mvdbeek in #22028
Fix AttributeError when fetching citations for missing tools by @mvdbeek in #22029
Fix invalid function schema error for tools with None parameters by @mvdbeek in #22030
AttributeError when history is None during tool execution by @mvdbeek in #22031
Fix subworkflow editing navigation and enable e2e test by @mvdbeek in #22032
Fix AttributeError when export_metadata is a string instead of dict by @mvdbeek in #22033
Fix AttributeError serializing implicit output collections during job prep by @mvdbeek in #22034
Fix ToolExpressionOutput.to_model() for boolean type. by @jmchilton in #22038
Fix preferred_object_store_id not respected for discovered outputs with extended metadata by @mvdbeek in #22056
Fix TypeError when column_names metadata is None by @mvdbeek in #22057
Fail job gracefully when output name exceeds 255 character DB limit by @mvdbeek in #22059
Fix FileNotFoundError when workflow references purged HDA by @mvdbeek in #22060
Fix AttributeError when dataset in inheritance chain has no user by @mvdbeek in #22062
Add check_database_connection to workflow scheduling path by @mvdbeek in #22063
Use base64 URL instead of GitHub URL in test_stage_fetch_decompress_true by @mvdbeek in #22069
Store tool shed search index test data in repo by @mvdbeek in #22071
Move history panel expand button to top by @ahmedhamidawan in #22076
Fix subworkflow editing navigation and enable e2e test by @mvdbeek in #22082
Fix workflow search broken after auto layout by @dannon in #22093
Fix legacy_expose_api error callable returning str instead of bytes by @mvdbeek in #22106
Fix WSGI middlewares returning strings by @mvdbeek in #22108
Model hidden_data params as optional data in tool meta-models. by @jmchilton in #22116
Fix nested collection query performance by @mvdbeek in #22119
Fix CardinalityViolation in nested collection ARRAY walk scalar subqueries by @mvdbeek in #22123
Fix unhandled exceptions in tool form model population by @guerler in #22129
Use skip_locked also when updating collection by @mvdbeek in #22133
Backport transient CI fixes from #22102 to release_26.0 by @mvdbeek in #22135
Do not render hide button on non-optional activities in activity bar by @ahmedhamidawan in #22140
Fix redundant empty collection elements by @mvdbeek in #22154
Do not queue paused jobs by @martenson in #22156
Fix AmbiguousColumn error in job search for tools with long input names by @mvdbeek in #22167
Bump tiffviewer visualization to v0.0.4 by @davelopez in #22168
Fix make all histories private controller None id bug by @ahmedhamidawan in #22174
Fixes for gxformat2 by @jmchilton in #22179
Add batch celery task for history dataset purging by @mvdbeek in #22180
Include missing tools in stock_tool_paths. by @jmchilton in #22181
Throw ParameterValueError instead of generic error by @guerler in #22188
Back port collection fixes from #22170. by @jmchilton in #22193
Fix event loop blocking in async API routes by @mvdbeek in #22202
Fix race condition in history list when rapidly changing search filters by @mvdbeek in #22223
Use /api/tool_data endpoints in DataTables.vue & DataManagerTable.vue by @mvdbeek in #22229
Optimize dataset get_edit API by deferring expensive role queries by @mvdbeek in #22232
Fix TypeError in ExternalIdentities by always including provider_label in authnz response by @guerler in #22234
Add optional dataset collection mode to harmonize tool by @mvdbeek in #22236
Fix batch history purge not updating user’s update_time by @mvdbeek in #22238
Delete dummy error controller, fix type error on invalid requests by @mvdbeek in #22245
Fix file source removal by @davelopez in #22246
Make sure origins for data landings are persisted by @d-callan in #22248
Validate replacement_params values are strings before storing by @mvdbeek in #22250
Fix N+1 queries in fetch_job_states for jobs_summary endpoints by @mvdbeek in #22251
Fix oauth2 template validation by @davelopez in #22253
Drop stored workflow menu entries from user serialization by @mvdbeek in #22254
Replace BaseHTTPMiddleware with pure ASGI middleware for X-Frame-Options by @mvdbeek in #22255
Batch-prefetch HDCA job_state_summary in history contents listing by @mvdbeek in #22256
Fixes optional integer form handling in templates by @davelopez in #22257
Fix OMERO temp directory handling by @davelopez in #22262
Fix DOMPurify sanitize TypeError in Library components by @dannon in #22263
Sequence datatypes: only read first character per line for setting metadata by @bernt-matthias in #22276
Raise error when API client sends invalid parameter keys by @mvdbeek in #22277
Fix refresh time in object store caches by @bgruening in #22279
Fix validation of certain classes of text validators in tools. by @jmchilton in #22280
Fail early wehn no route match is found by @mvdbeek in #22284
Raise MessageException instead of generic Exception in rules_dsl by @mvdbeek in #22285
Fix toolshed static image url encoding by @mvdbeek in #22286
Fix nested DatasetCollectionElement in dynamic options by @mvdbeek in #22287
Fix flaky job search for HDCA inputs on PostgreSQL by @mvdbeek in #22290
Fix HDCA shown as unavailable on tool form rerun by @mvdbeek in #22291
Fix AttributeError when anonymous user searches workflows with is:bookmarked by @mvdbeek in #22296
Improve timeout and error handling in /api/proxy endpoint by @mvdbeek in #22297
Downgrade authnz OAuth callback errors from ERROR/EXCEPTION to WARNING by @mvdbeek in #22300
Skip WorkflowHub tests when workflowhub.eu is down by @mvdbeek in #22302
Delay workflow scheduling when collection has unresolved ‘auto’ extension by @mvdbeek in #22303
Fix atomicity issues when pulling files into object store cache by @mvdbeek in #22304
Fix slow get_private_role_user_emails_dict query by @mvdbeek in #22307
Pass tool_uuid as proper query parameter instead of reusing URL path id by @mvdbeek in #22309
Strip content-length and accept-ranges headers from proxied streaming responses by @mvdbeek in #22314
Mark dataset collections as deleted when purging a history by @mvdbeek in #22315
Wrap webhook scripts in IIFE to prevent redeclaration errors by @mvdbeek in #22320
Handle inaccessible history errors in route-level components by @mvdbeek in #22323
Ignore aborted requests in rethrowSimple by @mvdbeek in #22325
Fix AbortSignal being serialized as dataset view query parameter by @mvdbeek in #22326
Discard rest of line in chunks in iter_start_of_line by @mvdbeek in #22332
Fix tool “Copy Link” generating broken /root?tool_id= URLs by @mvdbeek in #22339
Backport: Fix tool discovery help data race condition and stale results by @mvdbeek in #22340
Throw RequestAbortedError instead of returning undefined by @mvdbeek in #22352
Remove broken serialize_urls from HDASerializer by @mvdbeek in #22358
Fix HideDatasetAction not applied for cached workflow jobs by @mvdbeek in #22360
Fix timestamp parsing in job import/export by @mvdbeek in #22372
Don’t retry JobNotReadyException in job destination mapping by @mvdbeek in #22377
Fix Content-Disposition header with trailing whitespace by @mvdbeek in #22379
Fix workflow extract NoneType on LDDA leaf in implicit collection by @jmchilton in #22381
Show error message when display action not ready by @mvdbeek in #22383
Ensure x-content-truncated header is string by @mvdbeek in #22386
Validate workflow invocation parameters values are dicts by @mvdbeek in #22388
Fix invalid request error for get_metadata_file endpoint by @mvdbeek in #22389
Offload AsyncClient construction to worker thread by @mvdbeek in #22392
Fix dataset preview rendering to preserve newlines by @mvdbeek in #22397
Serialize data provider errors as MessageException subclasses by @mvdbeek in #22398
Handle MaxDiscoveredFilesExceededError for dynamic collections by @mvdbeek in #22402
Silence social_core’s noisy handle_http_errors logging by @mvdbeek in #22403
Unwrap HDCAs/DCEs nested in multi data input lists by @mvdbeek in #22405
Reject HDCA submitted to single data parameter by @mvdbeek in #22406
Fix headings in selenium package readme by @guerler in #22411
Enhancements
Replace Copy Dataset Mako with Vue Component by @guerler in #17507
Blur input path instead of requiring explicit enter in FormDirectory input by @dannon in #20047
Fix output dataset collection visualizations by @mvdbeek in #20544
Improve docs for invalidjobexception_state and _retry of DRMAA runners by @bernt-matthias in #20612
Refactor/cleanup admin_cleanup_datasets.py script by @ccoulombe in #20819
Add Support for HTTP Headers in URL Fetch Requests with Secure Storage for Landing Requests by @davelopez in #20924
Tool Request API by @jmchilton in #20935
Move database revision tags to separate file by @guerler in #20998
Integrate ‘uv’ for enhanced package management by @arash77 in #21002
Add service account support for Google Cloud Storage client initialization by @dannon in #21027
Selenium test cases for IGV. by @jmchilton in #21034
Convert Modal to plain JavaScript and remove from Galaxy object by @guerler in #21038
Selenium test for the new storage delete confirm dialog. by @jmchilton in #21039
Selenium test for #20886 (sharing private histories) by @jmchilton in #21040
Update Python dependencies by @galaxybot in #21043
Bump github/codeql-action from 3 to 4 by @dependabot[bot] in #21048
Improve type annotation of job runners by @nsoranzo in #21050
Selenium test exercising workflow debug, failed jobs, etc… (20912) by @jmchilton in #21058
Selenium test case for basic tools list functionality. by @jmchilton in #21059
Remove jquery from legacy onload helpers and Rule Builder by @guerler in #21063
Add Playwright Backend Support to Galaxy Browser Automation Framework by @jmchilton in #21102
Update Python dependencies by @galaxybot in #21104
Remove tabular chunked, binary and large file mako by @guerler in #21106
Enhance Confirm Dialog Types and More by @itisAliRH in #21108
Bump actions/setup-node from 5 to 6 by @dependabot[bot] in #21116
Add select all, simple search and pagination to Zip file selector by @davelopez in #21120
Remove legacy Visualization Mako and Controllers by @guerler in #21133
Add Custom Validation for User-Configured Templates by @davelopez in #21155
Fix various bugs/hacks with tool_data_table handling. by @jmchilton in #21163
Add type annotations to job handling code by @nsoranzo in #21171
Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #21176
Refactor client imports for better ES module compatibility by @dannon in #21194
Add an easy to access/obvious button to hide history panel by @ahmedhamidawan in #21207
Richer tracking of transient failures. by @jmchilton in #21227
Update Python dependencies by @galaxybot in #21229
Reimplement keycloak/cilogon as PSA providers and remove custos by @nuwang in #21234
Bump actions/checkout from 4 to 5 by @dependabot[bot] in #21236
Allow filtering job searches by history ID by @nsoranzo in #21257
Slight improvement of mztab2 datatype by @nguilhot in #21258
Add “show in multiview” to mutiple history selection by @davelopez in #21260
Move js-client bootstrapping to FastAPI by @guerler in #21264
Smoke test and PR by @ksuderman in #21277
Update Python dependencies by @galaxybot in #21301
Add workflow dispatch to artifact building workflow by @mvdbeek in #21323
Implement GA4GH WES API by @jmchilton in #21335
Add Beta Upload Activity - User Interface Redesign by @davelopez in #21338
Annotates archive explorer tests as Selenium-only by @davelopez in #21341
Update Python dependencies by @galaxybot in #21345
Add citation reminder to job completion email by @Syrinx55 in #21347
Migrate client tests from Jest to Vitest by @dannon in #21348
Bump peter-evans/create-pull-request from 6 to 7 by @dependabot[bot] in #21352
Bump actions/checkout from 5 to 6 by @dependabot[bot] in #21353
Bump actions/setup-python from 4 to 6 by @dependabot[bot] in #21354
Bump jupyterhub/action-k3s-helm from 3 to 4 by @dependabot[bot] in #21355
Link to an external profile when user accounts are managed by a single OIDC provider by @marius-mather in #21356
Vitest followup: switch to happy-dom, cleanup/fixes to mocks by @dannon in #21359
Migrate rate limiter tests from Jest to Vitest by @davelopez in #21361
Add OMERO File Source Plugin by @davelopez in #21367
Update Python dependencies by @galaxybot in #21368
Replace Webpack with Vite for client build by @dannon in #21369
Replace gulp with native Node.js build script by @dannon in #21370
Fix: tool execution typing improvements/fixes by @jmchilton in #21374
More use of base64 to improve test stability. by @jmchilton in #21383
Update fastapi to 0.123.4 and get_openapi() fork by @nsoranzo in #21384
Add initial support for the DICOM format by @kostrykin in #21385
Add new Azure Flat object store file source by @guerler in #21398
Update Python dependencies by @galaxybot in #21400
Redesign TS landing page with prominent search box. by @jmchilton in #21430
A couple more tool shed fixes. by @jmchilton in #21433
Add Google Batch job runner by @ksuderman in #21443
Update Python dependencies by @galaxybot in #21449
Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #21460
Bump actions/cache from 4 to 5 by @dependabot[bot] in #21461
Bump peter-evans/create-pull-request from 7 to 8 by @dependabot[bot] in #21462
Add Jupyternaut adapter for JupyterLite integration by @guerler in #21463
Enable attaching sample sheet to landing requests by @mvdbeek in #21489
Modernize UrlTracker into a Typescript composable by @davelopez in #21490
Tool testing: add min/max attributes to test output collections by @bernt-matthias in #21495
Update Python dependencies by @galaxybot in #21500
Add functional test for filtering outputs by parameters in repeats by @bernt-matthias in #21501
Various test documentation updates. by @jmchilton in #21507
Raise ConfigurationError instead etree.ParseError by @mvdbeek in #21509
Include subworkflow jobs in invocation metrics by @mvdbeek in #21511
Implement subworkflow invocation export by @mvdbeek in #21512
Update Python dependencies by @galaxybot in #21513
Fix use of function, method and argument names deprecated in pyparsing 3.0.0 by @nsoranzo in #21517
Add workflow API test for use_cached_job with sample sheet collections by @mvdbeek in #21522
Add ruff –check to pre-commit sample config by @mvdbeek in #21523
Add support for workflow landing requests using simple URLs by @mvdbeek in #21525
Update Python dependencies by @galaxybot in #21526
Extend image_diff and image content assertions to handle boolean images by @kostrykin in #21527
Implement workflow completion monitoring with extensible hooks by @mvdbeek in #21532
Migrate client package manager from Yarn to pnpm by @dannon in #21539
Update dependencies for IGV and Plotly by @guerler in #21543
Update Python dependencies by @galaxybot in #21552
Add Claude Code slash commands for GitHub issue triage by @jmchilton in #21579
Add discarded_data option to model store import API by @mvdbeek in #21582
Sort data managers using case-insensitive order for display in admin UI by @jdavcs in #21587
Adds vue-eslint-parser as a dev dependency by @davelopez in #21588
Switch Google Cloud Storage file source from fs-gcsfs to gcsfs (fsspec) by @mvdbeek in #21590
Unify extensions of file source templates by @bernt-matthias in #21594
Use fail-on-cache-miss when restoring the client cache by @nsoranzo in #21597
Update Python dependencies by @galaxybot in #21606
Move legacy Visualization Plugins API to FastAPI by @guerler in #21612
Apply 2026 black style by @galaxybot in #21618
Migrate remaining vitest tests from axios-mock-adapter to useServerMock by @dannon in #21634
Fix slow startup regression by @ksuderman in #21637
Remove sanitization from built-in grep tool by @wm75 in #21648
Update Python dependencies by @galaxybot in #21653
Improve ruff configuration to mimic our isort settings by @nsoranzo in #21666
Check file source template config files for determining conditional dependencies + add constraint for zero-ice by @bernt-matthias in #21688
Standardize agent API schemas and response metadata by @dannon in #21692
Various fixes to file source template’s validation system by @davelopez in #21704
Revert startup probe timeout by @ksuderman in #21748
Send a Slack notification if the Docker image build or smoke test fails by @ksuderman in #21751
Adds indicator to show if upload target history is current by @davelopez in #21830
Replaced deprecated actions with modern equivalents by @ksuderman in #21849
Allow connecting sample sheet inputs to compatible collection inputs in editor by @mvdbeek in #21859
Adds ImageJ metadata support to TIFF export by @davelopez in #21882
Backports: Return redirection instead of a JSON with the redirect URI by @davelopez in #21902
Update qiskit interactive tool by @thepineapplepirate in #21948
Use ParameterValueError for dataset count validation to reduce Sentry noise by @mvdbeek in #22058
Add linter to validate required_files include paths exist by @mvdbeek in #22061
Use mock test server when tests don’t target external galaxy server by @mvdbeek in #22103
Add _F/_R auto-pairing filter for forward/reverse datasets by @jmchilton in #22267
Other changes
Version 26.0.dev by @ahmedhamidawan in #21020
Update client API schema by @davelopez in #21147
Merge 25.1 into dev, fix openapi schema generation for TypedDict by @mvdbeek in #21168
Remove unused javascript from toolshed test makos by @guerler in #21387
Fix tool request API for multiple select parameters with defaults. by @jmchilton in #21416
Merge 25.1 into dev and create alembic merge revision by @mvdbeek in #21440
Merge 25.1 into dev by @jmchilton in #21505
Add automated npm publishing for client-api package by @dannon in #21533
Don’t return 404 when file name can’t be serialized by @mvdbeek in #21577
Fix test_value_restriction_with_select_from_multiple_subworkflow_inputs formatting by @mvdbeek in #21723
Use 1-based step index in invocation metric UI by @mvdbeek in #21799
Backport: Fix dbkey filter returning no options when dbkey unset by @bernt-matthias in #21945
Show invalid tool error reasons in Tool Shed UI by @mvdbeek in #22040
25.1.2 (2026-03-09)
Bug fixes
Add missing enable_beta_tool_formats config option by @bernt-matthias in #21190
Properly parse build info from requirement info by @bernt-matthias in #21481
Fix private dataset sharing error handling by @davelopez in #21689
Add selenium test and fix inline images in workflow report tables by @mvdbeek in #21698
Fix route to workflow editor with version does not load expected version by @ahmedhamidawan in #21711
Fix database migration error from 25.0 > 25.1 by @jdavcs in #21737
Fix npm trusted publishing in 25.1 release workflow by @dannon in #21747
Make galaxy-web-apps package compatible with latest FastAPI by @nsoranzo in #21753
Fix disable_local_accounts displays register link by @davelopez in #21764
Fix help forum integration by @davelopez in #21773
Fix workflow rename modal is not reactive to prop changes by @ahmedhamidawan in #21785
Fix tag dropdown not closing on outside click, and not selecting in Safari by @mvdbeek in #21797
Make database heartbeat more robust (backport) by @mvdbeek in #21812
Allow workflow download with missing file source references by @mvdbeek in #21814
Fix AWS Batch monitor crash, delete copied monitor method by @mvdbeek in #21818
Fix form number negative handling by @davelopez in #21819
Fix tool credentials on containerized (Singularity/Docker) destinations by @arash77 in #21821
Pin setuptools<82 for galaxy-files package - Backport #21824 by @nsoranzo in #21826
Add builtin_converters section to integrated tool panel by @ahmedhamidawan in #21838
Fix Galaxy UI nesting in data manager job info view by @mvdbeek in #21840
Fix output dataset permission guessing by @mvdbeek in #21862
Fix loading non-tool files from watched tool directories by @mvdbeek in #21880
Fix credential validation logic in tool form component by @itisAliRH in #21889
Ensure markdown elements do not render if argument is undefined by @ahmedhamidawan in #21908
Fix “Create New” in workflow editor not resetting editor state by @ahmedhamidawan in #21918
Enforce storage quota for Celery-based data fetch jobs by @mvdbeek in #21941
Fix optional parameter persisting NO_REPLACEMENT sentinel when not provided by @mvdbeek in #21964
Fix recording duplicate workflow_request_input_step_parameter rows by @mvdbeek in #21980
Fix AttributeError when requesting invalid metadata file by @mvdbeek in #21985
Fix NoReplacement handling in workflow callback_helper by @mvdbeek in #21994
Fix pick_value output inheriting hidden state from input datasets by @mvdbeek in #21995
Enhancements
Add Deacon idx format by @SantaMcCloud in #21632
Add amnis cif flow cytometry data type by @bernt-matthias in #21829
Other changes
25.1.1 (2026-02-03)
Bug fixes
Record input parameter invocation inputs by @mvdbeek in #21452
Remove ref and polish release-drafter workflow by @ahmedhamidawan in #21467
Maintain column definitions on map over by @mvdbeek in #21468
Add missing test file for sig datatype by @SaimMomin12 in #21473
Remove release-drafter workflow and add a release config file to improve generated notes by @ahmedhamidawan in #21478
Do not update a user’s update_time when an admin archives (and purges) a history by @natefoo in #21484
Add missing ending newline to test.sig test data file by @nsoranzo in #21485
Fix subworkflow runs for disconnected required inputs with defaults by @mvdbeek in #21488
change locuszoom package version to 0.0.7 by @elmedjadjirayane in #21494
Pin release prebuilt client package exactly by @dannon in #21498
Usability fixes for sample sheet selection. by @jmchilton in #21503
Fix exception message to enable debugging of missing dataset issue. by @jmchilton in #21504
Fix type annotation for invocation report errors field by @mvdbeek in #21508
Add missing dependencies to galaxy-files package by @nsoranzo in #21518
Filter out failed_metadata HDAs from job cache by @mvdbeek in #21544
Fix pulsar with rewrite_parameters: false by @mvdbeek in #21557
Show “Expires today” instead of “Expires soon” in Expiration Warning by @mvdbeek in #21560
Use quotes for Galaxy citation bibtex by @bernt-matthias in #21563
Supports Dataverse file access via both persistent and database IDs by @davelopez in #21569
Fix Pulsar with default_file_action: none by @mvdbeek in #21578
Fix #21542 - allow workbook bootstrap generation for sample sheet collection types. by @jmchilton in #21584
Add belated deprecation of Python 3.9 support by @nsoranzo in #21598
Fix loading of credentials when associated tools are missing by @arash77 in #21599
Fix race condition in workflow collection populated state check by @mvdbeek in #21613
Harden Dataverse integration by @davelopez in #21624
Add split paired or unpaired tool to sample tool conf by @bernt-matthias in #21647
Fix secret credential editing and add clear button by @itisAliRH in #21650
Fix condor typo by @gsaudade99 in #21651
Fix HTCondor runner unwatching jobs when stopping containers by @kysrpex in #21656
Fix data manager .loc file selection logic by @jdavcs in #21664
Fixes storage management check for anonymous users by @davelopez in #21680
Resets selection filter when loading dialog by @davelopez in #21681
Fixes duplicated entries in “share with individual users” component by @davelopez in #21683
Simplify docker build, use node as specified in requirements by @mvdbeek in #21695
Remove Discover Tools button in the workflow tool panel by @ahmedhamidawan in #21697
Fix option propagation for workflow inputs connected to multiple subworkflows by @mvdbeek in #21712
Fix collection job state not preserved during history export/import by @mvdbeek in #21716
Add missing filter_failed_collection_1.1.0.xml tool by @mvdbeek in #21719
Strip inline comments in conditional requirements by @mvdbeek in #21720
Exclude node_modules at all depths in Docker builds by @mvdbeek in #21721
Enhancements
Add sample sheet support to many database operation tools by @mvdbeek in #21465
Add Sourmash sig new datatype by @SaimMomin12 in #21469
Add new jupyter version by @bgruening in #21531
Adds object_expires_after_days example usage to sample config by @davelopez in #21547
Add tool credentials system documentation and schema updates by @arash77 in #21561
Add a few datatypes from the digital humanities domain by @bgruening in #21596
Add new datatype pg and hg for pangenomics by @SaimMomin12 in #21620
Add database operation tool to convert sample sheets to list collections by @mvdbeek in #21625
Add new datatypes required for VG tool by @SaimMomin12 in #21644
Document security considerations for using secrets by @bernt-matthias in #21654
Other changes
Update 25.1 release notes with config changes by @ahmedhamidawan in #21444
Fix 25.1 release month on user facing notes by @ahmedhamidawan in #21450
Merge 25.1 into master by @ahmedhamidawan in #21482
Improve tempdir cleanup in integration tests by @mvdbeek in #21520
25.1.0 (2025-12-12)
Bug fixes
Workaround to numeric sorting in the local portion of tool versions if they are galaxy “build” numbers by @natefoo in #13570
Change wording of the client side storage handling by @bgruening in #19815
Check for format="input" as well as format="auto" in datatype linter by @bernt-matthias in #20177
Add missing galaxy slots and memory tool by @mvdbeek in #20262
Fix a transiently failing API test. by @jmchilton in #20278
Fix test timeout in k8s test_slots_and_memory test by @mvdbeek in #20284
Add built visualizations path to .gitignore by @guerler in #20355
Remove 8 year old note that points at a non-existent subdomain by @scottcain in #20361
Bump requests from 2.32.3 to 2.32.4 in /lib/galaxy/dependencies by @dependabot[bot] in #20422
Update mulled_containers.rst by @ccoulombe in #20446
Fix transient selenium error when adding collection input. by @jmchilton in #20460
Collection API related spelling fix. by @jmchilton in #20470
Fix alembic down_revision for trigger replacement migration by @mvdbeek in #20501
Add a merge migration, revert previous edit by @jdavcs in #20507
Update core.history tour by @pavanvidem in #20576
Fix UI Bug - don’t allow checking deferred for local files. by @jmchilton in #20609
Require user for visualizations create endpoint by @guerler in #20615
Use store to cache step jobs summary by @ahmedhamidawan in #20638
Fix typo in lib/galaxy/config/sample/job_conf.sample.yml: enviroment –> environment by @blankenberg in #20652
Remove select and deselect labels from visualization select field by @guerler in #20665
Fix assertion on python version by @ccoulombe in #20696
Remove decoded ids from job/dataset error report email by @ahmedhamidawan in #20714
Fix various collection descriptions in history panel. by @jmchilton in #20736
Various client unit test fixes and cleanup. by @jmchilton in #20752
More client unit test clean up. by @jmchilton in #20755
More cleanup for Jest output. by @jmchilton in #20769
Fix Switch to history link click actions and add extensive jests by @ahmedhamidawan in #20783
Only show breadcrumb when on history permissions route (not in sharing view) by @ahmedhamidawan in #20800
Fix Ipynb datatype sniffer and add unit tests. by @ksuderman in #20811
Ignore yaml and json in prettier pre-commit hook by @mvdbeek in #20823
Bump requirement of directory converters by @bernt-matthias in #20834
Fix lint error in WorkflowRunSuccess by @ahmedhamidawan in #20837
Fix multiple=”true” data collection map over for shell_command tools by @mvdbeek in #20859
Fix test in configfile_user_defined.yml by @nsoranzo in #20873
Likely fix for transiently failing published histories test. by @jmchilton in #20890
Bump codecov/codecov-action from 3 to 5 by @dependabot[bot] in #20920
Extract: do not use common prefix dir by @bernt-matthias in #20929
Fix default conditional test parameters… by @jmchilton in #20942
Fix JupyterLite History Identifier Retrieval Without Dataset by @guerler in #20971
Apply overscroll behavior setting to html by @guerler in #20975
Fix jest tests – wait for async calls in grid list by @dannon in #20986
Fix comp1 / test_subworkflow_map_over_data_column by @mvdbeek in #20992
Save IGV locus and improve error handling by @guerler in #20996
Fix content wrapping in cards and preference title by @guerler in #21009
Fix horizontal scrolling w/ GButton in input-group-append by @dannon in #21025
Fix GCS file source to handle virtual directories without marker objects by @dannon in #21051
Fix Huggingface timestamp parsing when last_commit is missing by @davelopez in #21072
Allow cors on data and tool landing pages by @mvdbeek in #21078
Fix invocation export dataset exclusion by @davelopez in #21091
Fix copy export download link for old exports by @davelopez in #21094
Fix invalid invocation tab handling and unify disabled tab components by @ahmedhamidawan in #21115
Fix shift+click range select not working in history list by @ahmedhamidawan in #21117
Improve _touch_collection_update_time_cte performance by @mvdbeek in #21134
Fix type annotation in test_run_workflow_use_cached_job_implicit_conv… by @mvdbeek in #21138
Use corepack to link yarn into $VIRTUALENV/bin by @mvdbeek in #21140
Pin Ansible version by @ksuderman in #21141
Remove invocation view connection animations by @ahmedhamidawan in #21145
Mark user creation API endpoint as admin-only by @mvdbeek in #21149
Set minimum profile version for expression tools by @mvdbeek in #21151
Add Convert characters1 to workflow safe updates by @mvdbeek in #21160
Use yarn instead of npx to use pinned openapi-typescript by @mvdbeek in #21164
Fix proxy endpoint encoding by @davelopez in #21169
Enable drag-and-drop of collection elements in IGV by @guerler in #21173
Save build date to GITHUB_OUTPUT by @ksuderman in #21181
Don’t show the “view sheet” button for non-sample sheet collections. by @jmchilton in #21191
Allow collection builder to be invoked consecutively by @ahmedhamidawan in #21193
Don’t create extra watchers when switching tabs by @natefoo in #21197
Drop single ‘pair’ from standard upload UI, preferring lists, or lists of pairs as options for user by @dannon in #21200
Assorted workbook upload fixes. by @jmchilton in #21203
Wrap ontology card in tool discovery view below list view selector by @ahmedhamidawan in #21212
Add missing more-itertools dependency by @nsoranzo in #21214
Fix downloading subworkflows without stored workflow by @mvdbeek in #21223
Apply tool test timeout only once by @bernt-matthias in #21246
Fix workbook download link by @jmchilton in #21261
Fixes download for restricted Zenodo records by @davelopez in #21274
Update the mulled.py script to check json output by @nilchia in #21276
Prevent duplicate current_history_json calls by @ahmedhamidawan in #21282
Prevent duplicate fetches for full workflow in invocation view by @ahmedhamidawan in #21284
Add a rate limiter to the API client factory by @ahmedhamidawan in #21286
Fix keyed cache fetching over and over if fetched value is 0 by @ahmedhamidawan in #21293
Fix invocations scroll list cards to show update time by @ahmedhamidawan in #21294
Set create_time as the default time for sorting/display for invocations by @ahmedhamidawan in #21314
Fix TERMINAL_STATES array has a duplicate state by @ahmedhamidawan in #21342
Backport smoke-test and pr jobs from dev branch by @ksuderman in #21350
Use anaconda API to find package download URL by @nsoranzo in #21360
Use a new format tox environment in lint GitHub action by @nsoranzo in #21419
Fix optional subworkflow input scheduling bug by @mvdbeek in #21435
Maintain columns on sample sheet map over by @mvdbeek in #21436
Enhancements
Don’t serialize view of item in delete/purge request by @mvdbeek in #18732
Support credentials(secrets/variables) in tool requirements by @arash77 in #19084
Allow several Galaxy Markdown directives to be embedded. by @jmchilton in #19086
Add tags to output datasets from tool form by @PlushZ in #19225
Implement Sample Sheets by @jmchilton in #19305
Refactor and use ScrollList component in more places by @mvdbeek in #19318
User preferences redesign by @itisAliRH in #19658
Refactor Object Store Selection Modals UI by @itisAliRH in #19697
Consider collections in on_strings for parameters accepting multiple datasets by @bernt-matthias in #19817
Add selectedItems composable by @ahmedhamidawan in #19973
Update Python dependencies by @galaxybot in #20139
Selenium tests for various 24.2 features. by @jmchilton in #20215
Update Javascript package licenses to MIT by @mr-c in #20264
Split Login and Register, enable OIDC Registration. by @uwwint in #20287
Empower Users to More Pragmatically Import Datasets & Collections From Tables by @jmchilton in #20288
Update GitHub workflows to use PostgreSQL 17 image by @nsoranzo in #20292
Switch Default Visualization Endpoint to script, migrate to YAML by @guerler in #20303
Add short term storage expiration indicator to history items by @davelopez in #20332
Update Python dependencies by @galaxybot in #20347
Install Visualization plugins as self-contained packages by @guerler in #20348
Add LocusZoom Visualization by @elmedjadjirayane in #20354
Refactor CollectionDescription component props to use HDCASummary by @davelopez in #20356
Update create_time field to be required in history content items by @davelopez in #20357
Prepare ToolBox.dynamic_tool_to_tool() for CWL formats by @nsoranzo in #20364
Install visualizations directly to static path, avoid duplication by @guerler in #20372
Update Python dependencies by @galaxybot in #20383
Use full page width in reports and pages by @guerler in #20384
Workflow Graph Search by @ElectronicBlueberry in #20390
History CitationsList export improvements by @dannon in #20402
Enhance citations page by @davelopez in #20408
Base Implementation of GFormInput by @ElectronicBlueberry in #20418
Type annotation fixes for mypy 1.16.0 by @nsoranzo in #20424
Implement dataset source requested transformations. by @jmchilton in #20435
Add username_key setting to configure python-social-auth OIDC by @marius-mather in #20497
Test case for using URL-based workflow inputs with implicit conversions. by @jmchilton in #20509
Remove deprecated tool document cache by @nsoranzo in #20510
Fixes for invocation import. by @jmchilton in #20528
Update Python dependencies by @galaxybot in #20537
Decode OIDC access token as part of authentication pipeline by @marius-mather in #20547
Add Dataverse template by @davelopez in #20551
Update Python dependencies by @galaxybot in #20577
Display the Galaxy Citation within the Export Tool References List by @mschatz in #20584
Add recent downloads page for STS requests by @davelopez in #20585
Implement Data Landing Requests by @jmchilton in #20592
Update Python dependencies by @galaxybot in #20601
Improve BreadcrumbHeading and add unit tests by @itisAliRH in #20618
Add a “Debug” (email report) tab to Workflow Invocations by @ahmedhamidawan in #20624
Update location of latest tpv shared db by @nuwang in #20651
Update Python dependencies by @galaxybot in #20653
Add markdown hint to schema by @bgruening in #20654
Update tiffviewer visualization to version 0.0.3 by @davelopez in #20658
Improve GCard visibility handling and type definitions by @itisAliRH in #20663
Removes entries from purged filter label in history grid by @guerler in #20664
Unify History export UX using wizard by @davelopez in #20666
Sort collection dialog by HID descending. by @jmchilton in #20674
Update Python dependencies by @galaxybot in #20680
Fix resource watcher composable race condition by @davelopez in #20690
Add special case for BAM files in RStudio by @bgruening in #20692
Add fsspec base implementation for File Source plugins by @davelopez in #20698
Update Python dependencies by @galaxybot in #20699
History Components Navigation/Heading Improvements by @itisAliRH in #20702
Improve cli and slurmcli runner traceability for job status and failure reasons by @selten in #20717
Attempt to reuse previously materialized datasets by @mvdbeek in #20718
Make workflow invocation tabs routable by @ahmedhamidawan in #20719
Drop ucsc test server from sample build sites by @mvdbeek in #20723
Refactor Files Sources Framework for stronger typing using pydantic models by @davelopez in #20728
Hierarchical display collection dataset states by @mvdbeek in #20731
Update Python dependencies by @galaxybot in #20732
Fix Client Linting Run Error by @itisAliRH in #20734
Add embed-compatible view for galaxy pages by @dannon in #20737
Make invocations panel reactive using the invocation store by @ahmedhamidawan in #20738
New History List Using GCard by @itisAliRH in #20744
Change Advanced Tool Search to a Tool Discovery View by @ahmedhamidawan in #20747
Update Python dependencies by @galaxybot in #20753
Consolidate visualization mako, avoid user agent styles by @guerler in #20760
Add configfiles support and various enhancements for user defined tools by @mvdbeek in #20761
Fix WorkflowComment tests warnings by @davelopez in #20762
A production data types checklist to aid creating/reviewing new data types by @jmchilton in #20768
Fail Jest tests on warn/error console logging. by @jmchilton in #20770
Modernize and Refactor Tour components by @ahmedhamidawan in #20771
Increase wait time (retry) in UCSC data source test by @davelopez in #20772
Drop old load_workflow controller method, use API by @mvdbeek in #20774
Allow fine-grained selection of included files in Invocation Export Wizard by @davelopez in #20776
Stabilize client build after client-dev-server by @davelopez in #20777
Update Python dependencies by @galaxybot in #20779
Remove Backbone from UI bootstrap initialization by @guerler in #20786
Adapt S3 file source to fsspec by @davelopez in #20794
Remove Backbone dependency from webhook wrappers by @guerler in #20797
Fix fsspec fs path handling by @davelopez in #20799
Add Hugging Face 🤗 file source and user-defined template by @davelopez in #20805
Refactor MESSAGES constant in FileSourceTypeSpan.vue by @davelopez in #20806
Fix new linting errors in unit test mounts by @davelopez in #20807
Update Python dependencies by @galaxybot in #20812
Enable data label column selection in basic Plotly plots and add heatmap by @guerler in #20813
Add small improvements for running CWL tools by @nsoranzo in #20826
Bump jspdf from 2.5.1 to 3.0.2 in /client by @dependabot[bot] in #20828
Migrate icon defs in CollectionOperations.vue to best practices. by @jmchilton in #20829
Update Python dependencies by @galaxybot in #20841
Allow adding extra steps to the default pipeline of the OIDC authentication by @marius-mather in #20845
Use a streaming based parser (ijson) when setting metadata for biom1 files. by @ksuderman in #20851
Support remote file source hashes by @davelopez in #20853
Various Container Execution Enhancements (including GCP Batch support) by @jmchilton in #20862
Update maf tools with profiles, required_files, and requirements. by @natefoo in #20865
Add support for hierarchical module systems in lmod + module dependency resolvers by @t1mk1k in #20866
Replace tour_generator webhook with internal API and frontend by @ahmedhamidawan in #20868
Update Python dependencies by @galaxybot in #20869
Improve type annotation for job runners and InteractiveToolManager by @nsoranzo in #20871
Add axt and maf to auto_compressed_types by @richard-burhans in #20875
Drop Python helper script from sort1 tool by @nsoranzo in #20876
Bump vite from 6.3.5 to 6.3.6 in /client-api by @dependabot[bot] in #20885
Set default option to make datasets accessible only to individual users when sharing histories with particular users by @davelopez in #20886
Refactor sharing logic for unified type handling by @davelopez in #20888
Small cleanup of tool execution code. by @jmchilton in #20899
Update Python dependencies by @galaxybot in #20905
Add Multiple Sequence Alignment Viewer 2.0 by @guerler in #20907
Improve Invocation View step display by @ahmedhamidawan in #20912
Allow creation of visualizations without dataset by @guerler in #20914
Enable dependabot version updates for GitHub actions by @nsoranzo in #20915
Add support for picking from_work_dir directory by @mvdbeek in #20916
Bump docker/login-action from 2 to 3 by @dependabot[bot] in #20918
Bump docker/build-push-action from 4 to 6 by @dependabot[bot] in #20919
Bump actions/setup-node from 4 to 5 by @dependabot[bot] in #20921
Bump docker/setup-buildx-action from 2 to 3 by @dependabot[bot] in #20922
Add tool to add nesting level to collection by @bernt-matthias in #20926
Update Python dependencies by @galaxybot in #20930
Make jupyterlite default visualization for ipynb by @guerler in #20931
Allow addressing user defined tools in job config by @mvdbeek in #20932
Wire up and test resource requirement via tpv by @mvdbeek in #20936
Bump actions/checkout from 4 to 5 by @dependabot[bot] in #20937
Bump peter-evans/create-pull-request from 6 to 7 by @dependabot[bot] in #20938
Bump docker/metadata-action from 4 to 5 by @dependabot[bot] in #20939
Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #20940
Bump actions/github-script from 7 to 8 by @dependabot[bot] in #20941
Add a dedicated ToolFormTags component for tool form output tags by @ahmedhamidawan in #20945
Limit admin requirement of selected tool data api endpoints by @guerler in #20949
Add resource docs and tweak tool source schema title generation by @mvdbeek in #20951
Allow specifying a command for determining a docker host port by @natefoo in #20953
Allow sending and tracking landing request origin by @mvdbeek in #20957
Move tours schema to schema directory (to fix package structure) by @ahmedhamidawan in #20965
Update Python dependencies by @galaxybot in #20968
Log task execution errors with log.exception by @mvdbeek in #20970
Bump actions/labeler from 5 to 6 by @dependabot[bot] in #20976
Simplify plugin staging with explicit clean step by @dannon in #20983
Update Python dependencies by @galaxybot in #21005
Fix and migrate HIV-TRACE to Charts Visualization Framework by @guerler in #21006
Add README and update the minimal visualization example by @guerler in #21007
Bump up total-perspective-vortex dependency by @mvdbeek in #21014
Fix GCard Layout and White Spaces by @itisAliRH in #21026
Add Keyboard Navigation to History Lists by @itisAliRH in #21035
Use workflow-style payload in data landing request by @mvdbeek in #21107
Release notes by @ahmedhamidawan in #21162
Add Release Drafter GitHub Action integration by @dannon in #21195
Tighter API for tool run tagging. by @jmchilton in #21210
Makes “set as current” the primary action in history list by @davelopez in #21233
Optimize /api/invocations/steps/{step_id} by @mvdbeek in #21249
[igv] Allow selection of genomes from history fasta/2bit by @guerler in #21269
Update tool profile version for credentials by @davelopez in #21273
New datatype addition: HAL by @SaimMomin12 in #21379
Add PNTS datatype for 3D Tiles Point Cloud by @kgerb in #21414
A better way to designate config_watcher by @jdavcs in #21426
Optionally include column headers in sample sheet file by @mvdbeek in #21439
Other changes
Small tweaks and cleanup from sample sheets branch by @jmchilton in #20229
Version 25.1.dev by @ahmedhamidawan in #20268
Merge release_25.0 into dev by @davelopez in #20484
Merge release_25.0 into dev by @davelopez in #20490
Bump pillow from 11.2.1 to 11.3.0 in /lib/galaxy/dependencies by @dependabot[bot] in #20591
Bump linkifyjs from 4.1.1 to 4.3.2 in /client by @dependabot[bot] in #20707
Sample Sheet Bug Fixes around Preserving Collection Metadata by @jmchilton in #20749
Add tool_id and tool_version column to tool_landing_request table by @mvdbeek in #20795
Implement bare-bones view of sample sheet collections as sheet. by @jmchilton in #20798
Fix optional numeric column definitions for sample sheets. by @jmchilton in #20830
Validate sample sheet column definitions in workflow definitions on backend. by @jmchilton in #20880
Bump axios from 1.8.2 to 1.12.0 in /client by @dependabot[bot] in #20906
Merge 25.0 into dev by @ahmedhamidawan in #20911
Bump default milestone to 26.0 by @ahmedhamidawan in #20946
Add 25.1 migration tags by @ahmedhamidawan in #21017
Update version to 25.1.rc1 by @ahmedhamidawan in #21019
Fix TOOL_WITH_SHELL_COMMAND import source by @mvdbeek in #21070
Drop fastapi extra dep from sentry-sdk by @mvdbeek in #21156
Resolve possible symlink before establishing tool file location by @mvdbeek in #21175
25.0.4 (2025-11-18)
Bug fixes
Skip sam metadata if we have too many references by @mvdbeek in #20820
Fix select field cut off in dataset view by @ahmedhamidawan in #20947
Check for expiration in refresh token dictionary by @jdavcs in #20954
Deactivate user file source on unknown error by @mvdbeek in #20962
Don’t create workflow outputs to recover input parameter outputs by @mvdbeek in #20980
Fix test_multiple_decorators unit test for FastAPI 0.118.0 by @nsoranzo in #20982
Fix PUT /api/workflows for user defined tools by @mvdbeek in #20987
Backport of #20984 by @davelopez in #20994
Improves zip file type detection for uploads under windows by @caroott in #20999
Require OK datasets for filtering empty datasets by @bernt-matthias in #21023
Fix InvalidRequestError when saving workflow step with dynamic tool by @mvdbeek in #21056
Fix has_size assertion by @bernt-matthias in #21081
Run landing request state through validator by @mvdbeek in #21087
Fix workflow run form input restrictions by @mvdbeek in #21095
Prefix download link by @martenson in #21112
Create new datasets when creating skipped database operation tool outputs by @mvdbeek in #21142
Fix workflow landing rendering if public query param not provided by @mvdbeek in #21165
Fix optional param unset in RO-Crate export by @davelopez in #21192
Fix refresh token expiration retrieval logic by @nuwang in #21213
Fix direct tool execution not using the latest version by @jmchilton in #21240
Fix proxy url validation for non-printable characters by @davelopez in #21280
Swap to NPM trusted publishing for prebuilt client by @dannon in #21290
Enhancements
Use job cache also for implicit conversions by @mvdbeek in #21021
Add LAS and LAZ file format by @bgruening in #21049
New datatype addition: gam for vg toolkit by @SaimMomin12 in #21096
Harden proxy redirect validation by @davelopez in #21185
Other changes
New datatype addition: beast.trees datatype by @SaimMomin12 in #21055
Add display_in_upload to LAZ and LAS by @bgruening in #21060
Backport Fix proxy endpoint encoding by @davelopez in #21184
25.0.3 (2025-09-23)
Bug fixes
Cascade newly created windows in window manager by @guerler in #20780
Remove packages/meta/requirements.txt by @nsoranzo in #20782
Ensure that workflow invocations are persisted with state by @mvdbeek in #20784
Fix password reset functionality for lowercase emails by @jdavcs in #20801
Disable Run Tool button when there are errors by @ahmedhamidawan in #20839
Drop eager argument from invocation related methods by @mvdbeek in #20863
Improve dataset collection fetch performance in the invocation view by @ahmedhamidawan in #20870
Use populated_optimized when serializing collection by @mvdbeek in #20872
Speed up ImplicitCollectionJobs.job_list by @mvdbeek in #20887
Make check for existing user in custos_authnz.py case insensitive by @cat-bro in #20893
Avoid potential race condition in replacement_for_connection by @mvdbeek in #20909
Fix collection element sorting in extended_metadata by @mvdbeek in #20928
Enhancements
Other changes
Undo accidental push by @bernt-matthias in #20854
Merge 25.0 into dev by @ahmedhamidawan in #20911
25.0.2 (2025-08-13)
Bug fixes
Remove num_unique_values tiff metadata element by @mvdbeek in #20464
Bump up python for for pulsar package tests by @mvdbeek in #20521
Prevent DCE collections from being renamed by @ahmedhamidawan in #20534
Use venv instead of virtualenv in package make setup-venv by @natefoo in #20536
Move definition of DatasetCollectionDescriptionT before its use by @nsoranzo in #20539
Fix restricting user defined tool input datasets extensions by @mvdbeek in #20545
Fix description and metadata of some packages by @nsoranzo in #20546
Fix activity bar reordering persistence by @dannon in #20550
Fix PDF preview functionality in dataset view by @dannon in #20552
Propagate cached job output replacement to copies of outputs by @mvdbeek in #20553
Fix workflow invocation report pdf generate by @itisAliRH in #20558
Fix Storage Dashboard Link to Dataset Details by @itisAliRH in #20565
Upgrade requests-unixsocket for requests compatibility by @natefoo in #20566
Don’t assume cwd = job directory when running prepare dirs by @natefoo in #20571
Don’t fail volume mount construction for tools without tool directory by @mvdbeek in #20593
Prevent importing workflows with invalid step UUID by @davelopez in #20596
Fix workflow loading error handling by @davelopez in #20597
Constraint conditional redis version to allow only minor updates by @davelopez in #20603
fix Admin job limit query by @martenson in #20626
Ignore webob http exceptions for logging purposes by @mvdbeek in #20630
Fix bug: tool output file may be overwritten by Runner’s multi work t… by @jianzuoyi in #20639
Fix IntersectionObserver updates when replacing items by @davelopez in #20646
Fix optional unspecified input to conditional step by @mvdbeek in #20647
Avoid postgres truncation of aliases and labels by @mvdbeek in #20649
Fix deferred datasets in multiple dataset parameters. by @jmchilton in #20650
Fix empty default Optionals for tool_shed_repositories API. by @jmchilton in #20656
Remove content from packages/meta/requirements.txt by @nsoranzo in #20662
Add num_unique_values tiff metadata element, fixed by @kostrykin in #20669
Fix invocation header by @qchiujunhao in #20676
Fix Invenio file downloads for published records with draft by @davelopez in #20685
Input linter: add missing attribute to sort_by by @bernt-matthias in #20693
Fix dataset serializers and response models by @arash77 in #20694
Add username filter to published pages grid by @ahmedhamidawan in #20703
Fix parameter models for optional color params. by @jmchilton in #20705
Prevent negative offset in historyStore handleTotalCountChange by @davelopez in #20708
Fix test_base_image_for_targets mulled test to use mzmine by @nsoranzo in #20713
DatasetView Header - fixes text wrapping issues on small screens by @dannon in #20721
Fix maximum workflow invocation duration test by @mvdbeek in #20729
Remove base_dir from zip in make_fast_zipfile by @davelopez in #20739
fix config for nginx in docs by @martenson in #20757
Enhancements
add fasta.bz2 as auto_compressed type by @bernt-matthias in #20496
Add redis conditional dependency by @davelopez in #20502
Clarify how to separate job and workflow scheduling by @mvdbeek in #20625
Other changes
Require user for visualizations create endpoint by @mvdbeek in #20629
Merge 24.2 into 25.0 by @ahmedhamidawan in #20681
25.0.1 (2025-06-20)
Bug fixes
Fix single data element identifier to be a regular string by @mvdbeek in #20438
Relax validation of XML test assertion parsing by @mvdbeek in #20511
Add id-token: write for npm publishing by @mvdbeek in #20519
Do not expose user info to non authenticated users by @bernt-matthias in #20524
names of package extras cannot contain underscores by @mr-c in #20525
Pin isa-rwval 0.10.11, drop conditional import handling by @natefoo in #20527
Fix import of galaxy.tool_util.cwl module by @nsoranzo in #20529
Fix galaxy-config script, move install to galaxy-dependencies in app package by @natefoo in #20531
Enhancements
Other changes
Merge Release 25.0 into the master branch by @ahmedhamidawan in #20514
Fixes for static handling and the web_client package by @natefoo in #20516
Fix link in user release notes by @bgruening in #20518
25.0.0 (2025-06-18)
Bug fixes
Stabilize HistoryView.test.js by @jmchilton in #19165
Cleanup Jest Test Output (part 2) by @jmchilton in #19178
Fix Pesky warning with PersistentTaskProgressMonitorAlert.test.ts by @ElectronicBlueberry in #19180
Cleanup Jest Test Output (part 3) by @jmchilton in #19185
Cleanup Jest Test Output (part 4) by @jmchilton in #19186
Bump tornado from 6.4.1 to 6.4.2 in /lib/galaxy/dependencies by @dependabot[bot] in #19189
Don’t calculate dataset hash for datasets in non-OK state by @nsoranzo in #19191
Cleanup test output console for tool panel tests. by @jmchilton in #19210
Update Vizarr package version to 0.1.6 by @davelopez in #19228
Bump python-multipart from 0.0.17 to 0.0.18 in /lib/galaxy/dependencies by @dependabot[bot] in #19233
Use resource_path() to access datatypes_conf.xml.sample as a package resource by @nsoranzo in #19331
Require importlib-resources also for Python 3.9-3.11 by @nsoranzo in #19358
Bump jinja2 from 3.1.4 to 3.1.5 in /lib/galaxy/dependencies by @dependabot[bot] in #19369
Better handling of public pages and workflows authored by deleted users by @jdavcs in #19394
Use id entity attribute when setting exampleOfWork property by @nsoranzo in #19396
Display email activation help only if user activation is enabled by @jdavcs in #19402
Avoid using custos refresh tokens which are expired by @martenson in #19411
Fix wrong id in test_combined_mapping_and_subcollection_mapping by @mvdbeek in #19481
Fix preferred object store id reactivity by @ElectronicBlueberry in #19491
Fix wrong URI written to ExportObjectResultMetadata when exporting histories to eLabFTW by @kysrpex in #19541
Fix test_mulled_build.py::test_mulled_build_files_cli with use_mamba=True by @kysrpex in #19545
Fix package test errors: Ignore mypy errors caused by social-auth-core 4.5.5 by @jdavcs in #19620
Update eLabFTW file source template docs by @kysrpex in #19632
Fix more vue tsc indicated type issues by @jmchilton in #19650
Yet More Vue Typing Error Fixes by @jmchilton in #19680
Fix incorrect type in tool_util.deps and fix package structure. by @jmchilton in #19702
Add linter argument to linter report function calls by @bernt-matthias in #19708
Refactor tool panel handling, resolve transiently failing jest test by @guerler in #19733
Jest Cleanup (Part 5) by @jmchilton in #19743
Use fissix also when python3-lib2to3 is not installed by @nsoranzo in #19749
Fix setting env and tags on resubmission by @bernt-matthias in #19753
Revise consistently failing edam tool panel view test. by @jmchilton in #19762
Add missing tool test file by @jmchilton in #19763
Bump axios from 1.7.4 to 1.8.2 in /client by @dependabot[bot] in #19773
Fix wording of API doc string by @bernt-matthias in #19776
Add better WorkflowSummary type by @ahmedhamidawan in #19779
Fix workflow run graph non input steps not appearing bug by @ahmedhamidawan in #19781
Update webdav user file source template help text by @sanjaysrikakulam in #19784
HelpText improvements (content, sizing) and WorkflowInvocationHeader tweaks. by @dannon in #19792
Remove unused (define* - compiler macro) imports from TextEditor.vue by @dannon in #19793
Fix Selenium workflow tests not updating param type properly. by @jmchilton in #19810
Fix Galaxy ignoring job object_store_id for quota check by @bernt-matthias in #19854
Cleanup circular dependencies around utils.ts. by @jmchilton in #19857
Remove circular dependency around user store. by @jmchilton in #19859
Move some store types out into own file to reduce circular dependencies. by @jmchilton in #19860
Fix most new vue typescript errors discovered in #19851 by @jmchilton in #19862
Create rucio.cfg from inside Rucio objectstore by @SergeyYakubov in #19863
Fix broken optimisation introduced in #19852 by @nsoranzo in #19871
Fix various mypy issues around mapped attributes by @mvdbeek in #19883
More fixes to FormData drag and drop and typing by @ahmedhamidawan in #19900
Use FA Component (w/svg) instead of span+font in RunWorkflow header by @dannon in #19901
Change wording in the google drive user file source template by @sanjaysrikakulam in #19927
Move FormBoolean back to FormElement field in workflow run form by @ahmedhamidawan in #19938
Fix adding tags popup closing logic on focus out by @itisAliRH in #19950
Use lower case extension for setting datatype in data discovery by @bernt-matthias in #19954
Fix ownership check in history contents update route by @mvdbeek in #19969
Remove hgv_sift from tool_conf.xml.sample by @natefoo in #19972
Unwind more client dependencies at top of stack. by @jmchilton in #19983
Fix keyedCache never allowing multiple fetches by @ahmedhamidawan in #20020
Fix linting with markdown in tool help by @bgruening in #20058
Update breadcrumb item ‘to’ type for better routing support by @itisAliRH in #20065
Always render Outputs tab in invocation view by @ahmedhamidawan in #20073
Remove collapse invocations panel on mouseleave feature by @ahmedhamidawan in #20074
Bump http-proxy-middleware from 2.0.7 to 2.0.9 in /client by @dependabot[bot] in #20086
Fix test_workflow_run export selenium by @ahmedhamidawan in #20089
Add hid to selection field in visualization creation form by @guerler in #20108
Remove only the Docker images specific for the test by @nsoranzo in #20109
Fixes for GButtons with disabled state by @ahmedhamidawan in #20121
Allow deferred and ok state datasets for vis by @guerler in #20143
Fix certain cases of collection parameter handling during workflow execution. by @jmchilton in #20152
Use backports.zoneinfo in job_metrics package under Python <3.9 by @nsoranzo in #20178
Update tabular_csv.py to use less memory in tsv->csv conversion by @cat-bro in #20187
Corrects header levels in Visualization Help Markdown by @guerler in #20199
Move UnprivilegedToolResponse into api by @mvdbeek in #20207
Fix NFDI auth by @bgruening in #20217
Fix next milestone by @martenson in #20219
Replace Bootstrap Popover with Popper wrapper by @guerler in #20246
Fix tool-provided metadata for CONVERTER_tar_to_directory by @mr-c in #20260
Remove duplicated job id in job success view by @ahmedhamidawan in #20289
Skip multiple pasted URLs when checking for remote Zip by @davelopez in #20300
Increase proxy API robustness by validating URL before use by @davelopez in #20311
Rerun workflows for the correct version/instance by @ahmedhamidawan in #20313
Avoid displaying dataset tab view in window manager by @guerler in #20317
Fix workflow bookmark filtering by @davelopez in #20325
Add test for workflow instance download fix by @ahmedhamidawan in #20326
Add basic validation to workflow creator attribute by @jdavcs in #20328
Fix broken admin navigation option and add missing menu items by @dannon in #20333
Error on duplicate labels by @ElectronicBlueberry in #20335
Small UI fixes for ag-grid based rule grid. by @jmchilton in #20358
Fix selection issue when adding tags to workflows in bulk by @davelopez in #20362
Remove redundant badge when creating collection from upload by @ahmedhamidawan in #20367
Make invocation errors more compact by @ahmedhamidawan in #20369
Generate a tenant-unique UID for tapis. by @dannon in #20370
Use router to route to creating a new file source by @ahmedhamidawan in #20374
Fix radio button options in CopyModal by @davelopez in #20378
Fix conda_link to use platform.machine() for architecture detection by @chrisagrams in #20381
Fix create file source button, show only at root by @davelopez in #20385
Prevent waiting for history item state to be ok in uploader by @ahmedhamidawan in #20397
Add job config variable for singularity –contain by @bernt-matthias in #20400
Fix form select input sorting by @davelopez in #20401
Bug fix: allow any collection type in FormCollectionType. by @jmchilton in #20403
Fixes for the admin jobs interface by @martenson in #20405
Fix $app attribute access in cheetah templates by @mvdbeek in #20414
Fix job rerun with tool version change by @mvdbeek in #20417
Fix workflow logo URL not being persisted. by @jmchilton in #20428
Fix css alignment styling of login page by @ahmedhamidawan in #20429
Add user-facing explanation for legacy workflow run form usage by @ahmedhamidawan in #20431
Upgrade tensorflow conditional dependency version to 2.15.1 by @cat-bro in #20434
Fix copying of job metrics for cached jobs by @mvdbeek in #20436
Dataset Display and Preferred Viz fixes by @dannon in #20439
Wrap Tool and Workflow run headers properly by @ahmedhamidawan in #20440
Fix inconsistent styling in List Collection Builder selector by @ahmedhamidawan in #20442
Fix add button is enabled when empty tag list by @davelopez in #20443
Set GALAXY_CONFIG_FILE env var if starting handler with -c by @mvdbeek in #20449
Fix pagination state in FilesDialog by @davelopez in #20452
Data Libraries - persist number of entries displayed in folders by @dannon in #20455
Fix multiple remote file upload to collection creator by @ahmedhamidawan in #20456
Bug fix: paired_or_unpaired also endswith paired. by @jmchilton in #20458
Fix bug with handling compressed file names while auto-pairing. by @jmchilton in #20459
Fix dataset error button not using router by @ahmedhamidawan in #20472
Don’t fit workflow if it doesn’t have steps by @mvdbeek in #20480
Remove rename modal from List Collection Creator by @ahmedhamidawan in #20487
Use DatasetAsImage component for DatasetView image display by @dannon in #20488
Allow workflow description to show full text by @davelopez in #20500
Enhancements
Dynamic options: add data table filter by @bernt-matthias in #12941
Run the tool working dir backup/restore on Pulsar by @natefoo in #16696
Strip galaxy filename annotation on upload by @GomeChas in #18561
Isolate singularity containers more thoroughly for better reproducibility. by @rhpvorderman in #18628
Upgrade bundled/requested node version to 22.15.0 by @dannon in #18710
Workflow Editor Activity Bar by @ElectronicBlueberry in #18729
Add author and tools details in RO-Crate by @Marie59 in #18820
Extend image metadata by @kostrykin in #18951
Implement tool markdown reports. by @jmchilton in #19054
Avoid persisting credentials on checkout step of the Github actions by @arash77 in #19089
Let file sources choose a path for uploaded files by @kysrpex in #19154
Move heatmap visualization to new script endpoint by @guerler in #19176
Calculate hash for new non-deferred datasets when finishing a job by @nsoranzo in #19181
Update Python dependencies by @galaxybot in #19190
Move phylocanvas to script entry point by @guerler in #19193
Drop thumbs up reaction as pull request approval method by @nsoranzo in #19202
Update visualizations to latest charts package by @guerler in #19213
Explicitly add cwl-utils to dependencies by @nsoranzo in #19257
Refactor for better reuse of workflow parameter type constants by @nsoranzo in #19260
Workflow Run Form Enhancements by @ahmedhamidawan in #19294
Minor drag style adjustment for activities by @guerler in #19299
Extract and typescript-ify datatype selection in wfeditor. by @jmchilton in #19304
Migrate WF Collection Input Form Definition to Client Side by @jmchilton in #19313
eLabFTW integration via Galaxy file source by @kysrpex in #19319
Add workflow selection and bulk actions by @itisAliRH in #19336
Use popper wrapper for help text popover by @guerler in #19340
Rework some form components for reuse. by @jmchilton in #19347
Hide outdated visualizations from visualizations activity panel by @guerler in #19353
Update Python dependencies by @galaxybot in #19366
Add Dataverse RDM repository integration by @KaiOnGitHub in #19367
Type annotation fixes for mypy 1.14.0 by @nsoranzo in #19372
Make conditional discriminators literals instead of generic string/bool by @mvdbeek in #19374
Empower Users to Build More Kinds of Collections, More Intelligently by @jmchilton in #19377
Clarify that extra_scopes is sometimes non-optional by @martenson in #19385
Documentation around highlighting PRs for release notes. by @jmchilton in #19390
Change galaxy system user uid for K8s image by @afgane in #19403
Set safe default extraction filter for tar archives by @nsoranzo in #19406
Prevent users from reusing a banned email after account is purged by @jdavcs in #19413
Update Python dependencies by @galaxybot in #19418
Enable cloning subworkflows by @ElectronicBlueberry in #19420
Allow controlling strict channel priority in mulled-build by @bernt-matthias in #19425
Add IGB display support for CRAM files by @paige-kulzer in #19428
Document $__user_name__ by @bernt-matthias in #19433
Handles S3 listing errors by @itisAliRH in #19446
Improve asynchronous tasks error handling and reporting by @davelopez in #19448
Reset invocation export wizard after completion by @davelopez in #19449
Workflow Editor Auto Zoom by @ElectronicBlueberry in #19451
Update main citation to 2024 community paper by @nsoranzo in #19453
Add test that verifies workflow source_metadata is preserved on landing claim by @mvdbeek in #19454
Update Python dependencies by @galaxybot in #19464
Add eLabFTW file source from file source templates by @kysrpex in #19493
Update Python dependencies by @galaxybot in #19510
Remote File Sources and Storage Locations redesign by @itisAliRH in #19521
Support setting and displaying timezone with the core metrics plugin by @natefoo in #19527
Allow to send notifications when Admins cancel jobs by @davelopez in #19547
Add config options for tool dependency installs by @afgane in #19565
Update Python dependencies by @galaxybot in #19567
Remove tags used by @ElectronicBlueberry in #19576
Support setting masthead height in a theme by @ksuderman in #19581
Expand workflow metadata for readme. by @jmchilton in #19591
Add vue-tsc baseline comparison to client-lint workflow by @dannon in #19593
Add failed jobs working directory cleanup as a celery periodic task by @sanjaysrikakulam in #19594
Add InvenioRDM file source template by @davelopez in #19619
Use discriminated unions in object stores and file source template configs by @davelopez in #19621
Use correct plugin_kind in user file sources by @davelopez in #19622
Update Python dependencies by @galaxybot in #19623
Add Zenodo file source template by @davelopez in #19638
Workflow landing request - collapse activity bar by default. by @dannon in #19652
Enhance ListHeader Component for Reusability by @itisAliRH in #19655
Add Breadcrumb Heading Component by @itisAliRH in #19656
Mention default values for truevalue and falsevalue by @pvanheus in #19657
Update test_create_dataset_in_subfolder to check for the dataset presence by @davelopez in #19660
Relax job status check in test_delete_user_cancel_all_jobs by @davelopez in #19661
Refactor dependencies for tool output actions. by @jmchilton in #19662
More Vue Typescript Fixes by @jmchilton in #19663
Click to edit history name in HistoryPanel by @ahmedhamidawan in #19665
Generate correct types for Dataset source transformations on backend. by @jmchilton in #19666
Remove unused(?) data_dialog form element type. by @jmchilton in #19669
Add webdavclient3 to conditional-requirements.txt by @bgruening in #19671
Update Python dependencies by @galaxybot in #19682
Define simple models for job messages. by @jmchilton in #19688
Data-source tool for DICED database (https://diced.lerner.ccf.org/) added. by @jaidevjoshi83 in #19689
Add forgotten linter test by @bernt-matthias in #19690
Fix MarkdownDialog types by @davelopez in #19703
Move RequiredAppT back into galaxy packages. by @jmchilton in #19704
Use model classes from galaxy.model instead of app.model object - Part 1 by @nsoranzo in #19706
Improved simplicity and isolation in transiently failing test. by @jmchilton in #19709
Speedup mulled build test by @bernt-matthias in #19712
Update TypeScript version to 5.7.3 by @davelopez in #19713
Augments popper wrapper, add click and escape handler by @guerler in #19717
Move vega wrapper to shared common directory and add error handler by @guerler in #19718
Move Markdown components to subdirectory for modularity by @guerler in #19719
Rucio templates by @SergeyYakubov in #19720
Preserve workflow labels in final invocation reports by @guerler in #19721
ToolShed 2.1 - Various bugfixes and enhancements. by @jmchilton in #19722
Use model classes from galaxy.model instead of app.model object - Part 2 by @nsoranzo in #19726
Update Python dependencies by @galaxybot in #19727
Add a script to reorganize tool data based on the new layout for genomic Data Managers by @natefoo in #19728
Fix Tours and add tooltips to history items by @guerler in #19734
Show workflow help (and readme?) in run form by @ahmedhamidawan in #19736
Enhance breadcrumb navigation UX in small screen sizes by @itisAliRH in #19737
ToolShed2 - Add more context when navigating between tools an repositories. by @jmchilton in #19738
Improvements to package decomposition. by @jmchilton in #19759
Add cell-based markdown editor for pages by @guerler in #19769
Rename tool “Citations” to “References” by @nsoranzo in #19770
Update Python dependencies by @galaxybot in #19772
Add visualization framework interface to cell-based markdown editor by @guerler in #19775
Allow overriding datatypes for planemo lint by @selten in #19780
Introduce reusable GCard component for unified card layout by @itisAliRH in #19785
Add history sharing and accessibility management view by @ahmedhamidawan in #19786
Add bigbed to bed converter and tests by @d-callan in #19787
xsd: use CollectionType for collections in tests by @bernt-matthias in #19802
Update Python dependencies by @galaxybot in #19816
Workflow Run Form Enhancements follow up by @ahmedhamidawan in #19825
More user feedback in FormRulesEdit (for Apply Rules tool) by @jmchilton in #19827
Use direct icon references in FormSelectMany.vue. by @jmchilton in #19829
Populate image metadata without allocating memory for the entire image content by @kostrykin in #19830
Syntactic sugar to ease TPV configuration. by @jmchilton in #19834
Improve markdown editor modularity and structure by @guerler in #19835
Add mandatory RO-Crate metadata when exporting by @elichad in #19846
Enable lazy loading for ace-builds by @ElectronicBlueberry in #19847
Add basic support for icons in tools by @davelopez in #19850
Improve type annotations of ModelPersistenceContext and derived classes by @nsoranzo in #19852
Migrate from Prism to Monaco for ToolSource display. by @dannon in #19861
Update Python dependencies by @galaxybot in #19874
Make preferences drop down available in single user deployments by @ksuderman in #19888
Clarify is_active method usage for Python Social Auth in Galaxy by @dannon in #19899
Improve docs for output filters by @bernt-matthias in #19904
Various styling improvements to Workflow Run and Invocation views by @ahmedhamidawan in #19905
Overhaul workflow runtime settings display. by @dannon in #19906
Allow embedding vitessce visualizations by @mvdbeek in #19909
Replace backend-based page creation controller endpoint by @guerler in #19914
Migrate Page editing controller endpoint to API by @guerler in #19923
Update Python dependencies by @galaxybot in #19929
Show pre-populated landing data values in workflow run form by @ahmedhamidawan in #19935
First steps of bootstrap replacement by @ElectronicBlueberry in #19946
Decrease sentry_sdk.errors log level to INFO by @natefoo in #19951
Allow PathLike parameters in make_fast_zipfile() by @nsoranzo in #19955
Add link to view history on dataset info page by @natefoo in #19956
Allow resizing Visualizations in Markdown editor by @guerler in #19958
Add share button for invocations by @ahmedhamidawan in #19959
Add type hints around collection copying and job things by @mvdbeek in #19961
Job cache allow different names when possible by @mvdbeek in #19962
Button replacement batch 1 by @ElectronicBlueberry in #19963
Update Python dependencies by @galaxybot in #19964
Adds a trimInputs prop to FormGeneric to trim string values on submit. by @dannon in #19971
Add Katex Equation rendering plugin to Markdown Editor by @guerler in #19988
Allow different AI providers (as long as they are openai compatible) by @uwwint in #19989
Button replacement batch 2 by @ElectronicBlueberry in #19990
Improve type annotation of tool parameter wrapping by @nsoranzo in #19991
Selenium test cases for running workflow from form upload. by @jmchilton in #19997
Update Python dependencies by @galaxybot in #19998
Restore Visualization insertion options in Reports Editor by @guerler in #20000
Implement dataset collection support in workflow landing requests by @mvdbeek in #20004
Enable warn_redundant_casts mypy option and drop redundant casts by @nsoranzo in #20008
Merge Inputs/Parameters and Outputs/Collections Tabs by @ahmedhamidawan in #20019
Show workflow README in split view next to the form inputs by @ahmedhamidawan in #20026
Move README to center panel in workflow editor by @ahmedhamidawan in #20029
Add help text popovers for workflow runtime settings by @ahmedhamidawan in #20031
Add rerun option for workflows by @ahmedhamidawan in #20032
Add support for Markdown help text in visualizations by @guerler in #20043
Add sample datasets for visualizations by @guerler in #20046
Add ZIP explorer to import individual files from local or remote ZIP archives by @davelopez in #20054
Add docx datatype by @bgruening in #20055
Add markdown datatype by @bgruening in #20056
Add flac audio format by @bgruening in #20057
Client refactorings ahead of #19377. by @jmchilton in #20059
Add rd datatype by @richard-burhans in #20060
GLink implementation by @ElectronicBlueberry in #20063
GCard Full Description by @itisAliRH in #20064
Enhance Storage Dashboard Selected Item UI by @itisAliRH in #20070
Add activity panel width to local storage by @ahmedhamidawan in #20072
Hide non-functional and replaced visualizations (e.g. Nora, MSA) by @guerler in #20077
Flexible mapping from collection parameter types to collection builder components. by @jmchilton in #20082
Route to creating a new file source in remote file browser modal by @ahmedhamidawan in #20084
Use visualization dropdown solely for examples by @guerler in #20094
Set node version to 22.13.0 by @davelopez in #20095
Update Python dependencies by @galaxybot in #20096
Adds Example Datasets and Help Text for Visualizations by @guerler in #20097
Enhance external login interface styling by @ahmedhamidawan in #20100
Improve type annotation of galaxy.util submodules by @nsoranzo in #20104
Add alignment.js for multiple sequence alignment rendering by @guerler in #20110
Add specific datatypes for Cytoscape and Kepler.gl by @guerler in #20117
Run integration tests on latest Ubuntu by @nsoranzo in #20118
Migrate Transition Systems Visualization by @guerler in #20125
Add logo, description and help for aequatus by @guerler in #20128
Add more metadata, esp infer_from to datatypes configuration by @bgruening in #20142
Show job ids on job success by @ahmedhamidawan in #20145
Additional type hints for toolbox.get_tool / toolbox.has_tool by @mvdbeek in #20150
Create working dir output outside of tool evaluator by @mvdbeek in #20153
Improved rule builder display for non-nested lists (most of them). by @jmchilton in #20156
Revise transiently failing data source test. by @jmchilton in #20157
Yaml parser fixes and improvements (part 1) by @mvdbeek in #20158
Add three AAI providers by @martenson in #20165
Add replacement_dataset option to collection filter tools by @simonbray in #20166
Implement file source to integrate Galaxy with RSpace by @kysrpex in #20167
G modal implementation by @ElectronicBlueberry in #20168
Bump vega from 5.30.0 to 5.32.0 in /client by @mvdbeek in #20188
Visualization-First Display functionality by @dannon in #20190
Improve type annotation of galaxy.model.dataset_collections by @nsoranzo in #20194
Have make dist in the web_client package build the client by @natefoo in #20195
Enable visualizations for anonymous user by @guerler in #20210
Display invocation inputs and outputs in workflow report by @mvdbeek in #20222
Use TUS streaming and remove redundant IndexDB temp store in Zip Explorer by @davelopez in #20226
Add more descriptions to custom tool source schema by @mvdbeek in #20266
Improve handling of very large files in Tabulator by @guerler in #20271
Improve performance of job cache query by @mvdbeek in #20319
Remove type import side-effects by @ElectronicBlueberry in #20321
Enable retrieving contents from extra file paths when request contains leading / by @mvdbeek in #20336
Release notes by @ahmedhamidawan in #20386
Update tiffviewer to latest version supporting more formats by @davelopez in #20457
Add Aladin as standard FITS viewer by @bgruening in #20465
Add molstar as default viewer for some molecule formats by @bgruening in #20467
Add /api/datasets/{dataset_id}/extra_files/raw/{filename:path} by @mvdbeek in #20468
Other changes
Merge 24.2 into dev. by @jmchilton in #19273
Bump @babel/runtime-corejs3 from 7.23.2 to 7.26.10 in /client by @dependabot[bot] in #19788
Rebuild API schema for latest dev. by @jmchilton in #19789
Fix import and update_page type signature by @mvdbeek in #19932
Merge 24.2 into dev by @ahmedhamidawan in #19933
Fix copying job output from discovered outputs by @mvdbeek in #19999
Add env var to skip CircularDependencyPlugin in development mode by @dannon in #20038
Bump h11 from 0.14.0 to 0.16.0 in /lib/galaxy/dependencies by @dependabot[bot] in #20088
Fix formatting in webapp and client/install.py by @dannon in #20185
Bump axios from 1.7.4 to 1.8.2 in /client by @dependabot[bot] in #20205
Bug fixes around wizard usage. by @jmchilton in #20224
Bug fix - allow file drops into PasteData widget. by @jmchilton in #20232
Only show custom tool editor in activity bar settings when user has access by @mvdbeek in #20247
Add 25.0 migration tags by @ahmedhamidawan in #20265
Update version to 25.0.rc1 by @ahmedhamidawan in #20267
Bug fix - auto-pairing step not connected to collection builder in wizard. by @jmchilton in #20345
Rename vitessce_json file_ext to vitessce.json by @mvdbeek in #20473
24.2.4 (2025-06-17)
Bug fixes
Fix #19515 - invalid citation handling changed with 24.2. by @jmchilton in #19716
Reduce default framework tool test timeout to 60 seconds by @mvdbeek in #19819
Backport #19810: Fix workflow param tests not updating param type. by @mvdbeek in #19820
Fix various job concurrency limit issues by @mvdbeek in #19824
Do not reorder options in FormSelect component when multiselect disabled by @jdavcs in #19837
Decode/encode FormDirectory paths to allow spaces (and other characters) by @ahmedhamidawan in #19841
Try to recover from recurring activation link error by @jdavcs in #19844
Add spacing between workflow author and invocation count by @ahmedhamidawan in #19849
Fix default ordering of items sorted by name by @jdavcs in #19853
Handle directories with percents directories with export_remote.xml. by @jmchilton in #19865
Fix drag and drop for dataset collection elements by @ahmedhamidawan in #19866
Don’t collect unnamed outputs twice in extended metadata mode by @mvdbeek in #19868
Lazy-load invocation step jobs as needed by @mvdbeek in #19877
Fix tabular metadata setting on pulsar with remote metadata by @mvdbeek in #19891
Drop unused alembic-utils from galaxy-data package requirements by @nsoranzo in #19896
Fix duplicate extensions for data inputs by @ahmedhamidawan in #19903
Skip implicit HDA conversions in DataToolParameter options by @davelopez in #19911
Fix duplicate entries when using drag and drop in multiple mode by @davelopez in #19913
Let pysam use extra threads available in job by @mvdbeek in #19917
Report TestCaseValidation as linter error for 24.2 and above by @bernt-matthias in #19928
Better interactive tool entry point query by @mvdbeek in #19942
Drop unnecessary job cache job subquery by @mvdbeek in #19945
Fix attempt restriction on multiple connections by @mvdbeek in #19948
Fix various parameter validation issues. by @jmchilton in #19949
Do not print OIDC access tokens to the logs by @kysrpex in #19966
Renew OIDC access tokens using valid refresh tokens by @kysrpex in #19967
Fix bug in psa-authnz redirect handling by @dannon in #19968
Add missing job state history entry for queued state by @mvdbeek in #19977
Restrict job cache to terminal jobs (and other fixes) by @mvdbeek in #19978
Do not display default labels obscuring selectable options in a vue-multiselect component by @jdavcs in #19981
Fix dynamic filter option access when building command line by @mvdbeek in #19982
Ensure job states are fetched in invocation view by @ahmedhamidawan in #20010
Renew access tokens from PSA using valid refresh tokens by @kysrpex in #20040
Fix edit permission for datasets delete button in storage dashboard overview by location by @itisAliRH in #20066
Fix mulled-search –destination quay, add index reuse by @natefoo in #20107
Skip param_value filter if ref value is runtime value by @mvdbeek in #20144
Fix DataCollectionParameterModel factory by @mvdbeek in #20164
Fix invocation failure dataset reference by @mvdbeek in #20200
Conditionally import from galaxy.config in galaxy.model.mapping if TYPE_CHECKING by @natefoo in #20209
Refactor display_as URL generation for UCSC links and fix to remove double slashes in URL by @natefoo in #20239
Fall back to name in job summary if no input label given by @mvdbeek in #20258
Fix WF Run RO-Crate logo width in Firefox by @davelopez in #20305
Skip validation of expression.json input in workflow parameter validator by @mvdbeek in #20412
Fix legacy get_metadata_file controller route by @mvdbeek in #20477
Prevent running datatype autodetect on purged datasets by @mvdbeek in #20479
Link workflow invocation outputs upon importing invocation by @mvdbeek in #20485
Make optional edam-ontology in datatypes registry optional by @natefoo in #20492
Enhancements
Point install_requires at requirements.txt file by @mvdbeek in #19864
Fix Invenio file source downloads not working with some Invenio instances by @davelopez in #19930
Update selectable object stores after adding or editing them by @davelopez in #19992
Other changes
19.9.0 (2019-11-21)
Initial import from dev branch of Galaxy during 19.09 development cycle.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file galaxy-26.1.1.tar.gz.
File metadata
- Download URL: galaxy-26.1.1.tar.gz
- Upload date:
- Size: 204.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad2c573e061fc1c948a2881c0a8fe0c16b2f4987b859eb3d3d5f0a908af7b77e
|
|
| MD5 |
e8564d5fdac39516be0ece6e6514454f
|
|
| BLAKE2b-256 |
f6e797ca49050493b991b154605720413cfe766dbd29ed522eb58628aa27c7e7
|
Provenance
The following attestation bundles were made for galaxy-26.1.1.tar.gz:
Publisher:
publish_artifacts.yaml on galaxyproject/galaxy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
galaxy-26.1.1.tar.gz -
Subject digest:
ad2c573e061fc1c948a2881c0a8fe0c16b2f4987b859eb3d3d5f0a908af7b77e - Sigstore transparency entry: 2341261748
- Sigstore integration time:
-
Permalink:
galaxyproject/galaxy@094145bc809e0dcd8c6e7784d4ff44f8db9bfbcb -
Branch / Tag:
refs/tags/v26.1.1 - Owner: https://github.com/galaxyproject
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_artifacts.yaml@094145bc809e0dcd8c6e7784d4ff44f8db9bfbcb -
Trigger Event:
release
-
Statement type:
File details
Details for the file galaxy-26.1.1-py3-none-any.whl.
File metadata
- Download URL: galaxy-26.1.1-py3-none-any.whl
- Upload date:
- Size: 67.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee584c5596e65a16b3c97f94fefb909f7231a11ecc05282d01da1534ec708abe
|
|
| MD5 |
bfd4087a815be5bdbd4a8fea02a88746
|
|
| BLAKE2b-256 |
e254f133bee0b682ea8c152c4b882712a156cf6492b6a816560c1c031d010610
|
Provenance
The following attestation bundles were made for galaxy-26.1.1-py3-none-any.whl:
Publisher:
publish_artifacts.yaml on galaxyproject/galaxy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
galaxy-26.1.1-py3-none-any.whl -
Subject digest:
ee584c5596e65a16b3c97f94fefb909f7231a11ecc05282d01da1534ec708abe - Sigstore transparency entry: 2341261880
- Sigstore integration time:
-
Permalink:
galaxyproject/galaxy@094145bc809e0dcd8c6e7784d4ff44f8db9bfbcb -
Branch / Tag:
refs/tags/v26.1.1 - Owner: https://github.com/galaxyproject
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_artifacts.yaml@094145bc809e0dcd8c6e7784d4ff44f8db9bfbcb -
Trigger Event:
release
-
Statement type: