Skip to main content
Galaxy Logo

The latest information about Galaxy can be found on the Galaxy Community Hub.

Community support is available at Galaxy Help.

Chat on gitter Chat on irc Release Documentation Inspect the test results

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
  • Prevent and tolerate duplicate private roles by @mvdbeek in #23206

  • Fix NPM publish job by pointing pnpm setup at client/package.json by @dannon in #23249

  • Pin release npm upgrade to 11.x and fix PyPI repository-url precedence by @dannon in #23251

Other changes
  • Ship the web client in the galaxy-web-client artifacts again by @mvdbeek in #23254

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

  • Make database heartbeat more robust by @mvdbeek in #21734

  • 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

  • Disallow gunicorn 25.1.0 by @nsoranzo in #21905

  • 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

  • Fix GTabs vertical layout and spacing by @dannon in #21972

  • 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

  • Fix transient CI failures by @mvdbeek in #22102

  • 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

  • Remove dual load of cutWrapper.xml by @natefoo in #22266

  • 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

  • Revert ``galaxy.yml.sample`` changes by @nsoranzo in #22569

  • 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

  • Mount fastmcp at subapp root by @mvdbeek in #22618

  • Fix long title squashing in g-card by @mvdbeek in #22621

  • 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

  • Bump default max_tokens for AI agents by @dannon in #22630

  • 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

  • Fix admin panel style by @guerler in #22776

  • 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

  • Bump up gravity to 1.2.3 by @mvdbeek in #22886

  • 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

  • Use default_panel_view in docs by @jdavcs in #22892

  • 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

  • Require gravity 1.2.2 by @jdavcs in #23050

  • 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

  • Update spatialdata datatype by @nilchia in #23087

  • 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

  • Disable tool request by default by @guerler in #23113

  • 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
Other changes

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 version commit by @guerler in #22447

  • 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

  • Backport rocrate<0.15.0 pin by @nsoranzo in #22537

  • 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

  • Update Vintent by @guerler in #22660

  • 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 client linting by @nsoranzo in #22815

  • Fix ConnectedValue leak for omitted optional inputs inside groups by @mvdbeek in #22820

  • Fix missing scripts in built wheels by @jdavcs in #22825

Enhancements

26.0.0 (2026-04-08)

Bug fixes
  • Fix workflow report time handling by @dannon in #19292

  • 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

  • Various fixes around ascp file source by @mvdbeek in #21372

  • 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

  • Add license define for vite by @dannon in #21431

  • Create alembic merge by @mvdbeek in #21447

  • 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

  • Update Molstar by @guerler in #21567

  • Overhaul ChatGXY Routing approach by @dannon in #21580

  • 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 toolshed tests on Python 3.14 by @mvdbeek in #21617

  • 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

  • Triage command followup fixes/tweaks by @dannon in #21629

  • 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

  • Fix redirect upon impersonation by @guerler in #21810

  • 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 ascp download retries by @mvdbeek in #21857

  • 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

  • Don’t fail on probable delete race by @mvdbeek in #22183

  • Throw ParameterValueError instead of generic error by @guerler in #22188

  • Back port collection fixes from #22170. by @jmchilton in #22193

  • Cache url path lookup by @mvdbeek in #22198

  • Fix event loop blocking in async API routes by @mvdbeek in #22202

  • Update fastmcp requirement to 3.0.2 by @nsoranzo in #22221

  • Fix race condition in history list when rapidly changing search filters by @mvdbeek in #22223

  • Fix missing focus helper by @guerler in #22225

  • 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

  • Fix import order error from ESLint by @nsoranzo in #22240

  • 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 HDCA lost in tool form on rerun by @mvdbeek in #22258

  • Fix OMERO temp directory handling by @davelopez in #22262

  • Fix DOMPurify sanitize TypeError in Library components by @dannon in #22263

  • Fix purge for anon histories by @mvdbeek in #22275

  • 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

  • Harden API parameter validation by @mvdbeek in #22351

  • 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
Other changes

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
Other changes
  • Fix worker segfault in gunicorn preload mode on OSX by @mvdbeek in #21837

25.1.1 (2026-02-03)

Bug fixes
Enhancements
Other changes

25.1.0 (2025-12-12)

Bug fixes
Enhancements
Other changes

25.0.4 (2025-11-18)

Bug fixes
Enhancements
Other changes

25.0.3 (2025-09-23)

Bug fixes
Enhancements
Other changes

25.0.2 (2025-08-13)

Bug fixes
Enhancements
Other changes

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

25.0.0 (2025-06-18)

Bug fixes
Enhancements
Other changes

24.2.4 (2025-06-17)

Bug fixes
Enhancements
  • Bump up max_peek_size to 50MB by @mvdbeek in #19823

  • 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

galaxy-26.1.1.tar.gz (204.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

galaxy-26.1.1-py3-none-any.whl (67.3 kB view details)

Uploaded Python 3

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

Hashes for galaxy-26.1.1.tar.gz
Algorithm Hash digest
SHA256 ad2c573e061fc1c948a2881c0a8fe0c16b2f4987b859eb3d3d5f0a908af7b77e
MD5 e8564d5fdac39516be0ece6e6514454f
BLAKE2b-256 f6e797ca49050493b991b154605720413cfe766dbd29ed522eb58628aa27c7e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for galaxy-26.1.1.tar.gz:

Publisher: publish_artifacts.yaml on galaxyproject/galaxy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for galaxy-26.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ee584c5596e65a16b3c97f94fefb909f7231a11ecc05282d01da1534ec708abe
MD5 bfd4087a815be5bdbd4a8fea02a88746
BLAKE2b-256 e254f133bee0b682ea8c152c4b882712a156cf6492b6a816560c1c031d010610

See more details on using hashes here.

Provenance

The following attestation bundles were made for galaxy-26.1.1-py3-none-any.whl:

Publisher: publish_artifacts.yaml on galaxyproject/galaxy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

26.1.1 This release

2 files

26.1.0

2 files

26.0.1

2 files

26.0.0

2 files

25.1.2

2 files

25.1.1

2 files

25.1.0

2 files

25.0.4

2 files

25.0.3

2 files

25.0.2

2 files

25.0.1

2 files

1.9.9

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page