github galaxyproject/galaxy v26.0.0

pre-release15 hours ago

What's Changed

🎉 Major Changes

🚀 New Features

🔧 Enhancements

🐛 Bug Fixes

  • Infer type from extension for mzml by @bgruening in #21033
  • Attempt to fix transient API test failure for jobs search. by @jmchilton in #20898
  • Update config samples from schema by @davelopez in #21053
  • 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
  • Fix various bugs/hacks with tool_data_table handling. by @jmchilton in #21163
  • Simplify transiently failing test (#21224) see if this stabilizes it at all by @jmchilton in #21239
  • Fix differentiation between single handler and handler tag by @natefoo in #21252
  • Cross product tools: Fix typos in help section by @RZ9082 in #21061
  • Plumbing for tracking potential fixes for transient failures (and a fix demonstrating it) by @jmchilton in #21243
  • 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
  • Use icon classes instead of strings for history content item states by @guerler in #21393
  • Attempt to fix transient failure in list_list_copy by @jmchilton in #21381
  • Use Playwright from the Galaxy virtualenv by @nsoranzo in #21425
  • Assorted tool shed fixes. by @jmchilton in #21424
  • Fix tool request API for multiple select parameters with defaults. by @jmchilton in #21416
  • 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
  • Add tool_shed_url config for explicit hostname setting by @jmchilton in #21499
  • Raise ConfigurationError instead etree.ParseError by @mvdbeek in #21509
  • Fix use of function, method and argument names deprecated in pyparsing 3.0.0 by @nsoranzo in #21517
  • 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
  • Clean up code with pyupgrade by @nsoranzo in #21540
  • Fix width and height assignment for image metadata using Pillow by @kostrykin in #21554
  • Preserve assistant messages with tool calls by @guerler in #21545
  • Restrict collection of dynamic working dir output to specified directory in pulsar by @mvdbeek in #21515
  • Don't return 404 when file name can't be serialized by @mvdbeek in #21577
  • Update Molstar by @guerler in #21567
  • Fix Vite 5 upgrade compatibility issues for tool shed frontend by @mvdbeek in #21581
  • Better error message for unencoded/unresolvable filesource uri by @dannon in #21562
  • Remove dummy header from JupyterLite requests by @guerler in #21585
  • 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
  • Triage command followup fixes/tweaks by @dannon in #21629
  • Fix loading spinner positioning in admin grid by @dannon in #21564
  • Fix Auto Layout crash with conditional (when) step inputs by @jmchilton in #21616
  • Overhaul ChatGXY Routing approach by @dannon in #21580
  • Fix ace import in cell-based markdown editor by @guerler in #21622
  • Fix incorrect router tag in plugins API by @dannon in #21669
  • Add missing types to visualization model by @guerler in #21672
  • Reduce completion monitor logging by @mvdbeek in #21674
  • [26.0] Fixes select field clipping and filtering by @guerler in #21479
  • [26.0] Fix storing origin for workflow landing requests by @mvdbeek in #21696
  • [26.0] Fix test_value_restriction_with_select_from_multiple_subworkflow_inputs formatting by @mvdbeek in #21723
  • [26.0] Hide interactivetools activity when disabled in config by @dannon in #21755
  • [26.0] Deserialize json string for export_metadata from old records by @mvdbeek in #21772
  • [26.0] Removes unnecessary overflow restriction in upload method panel by @davelopez in #21774
  • [26.0] Fix upload local file drop zone when listing by @davelopez in #21776
  • [26.0] Fix on_complete column type mismatch by @mvdbeek in #21765
  • [26.0] Hide ChatGXY activity when LLM API isn't configured by @dannon in #21756
  • [26.0] Handle TPV floating point memory values by @ksuderman in #21763
  • [26.0] Fix passing invalid job_destination dict to JobState constructor by @mvdbeek in #21798
  • [26.0] Use 1-based step index in invocation metric UI by @mvdbeek in #21799
  • [26.0] Fix redirect upon impersonation by @guerler in #21810
  • [26.0] Avoid slash duplication in display application urls by @guerler in #21809
  • [26.0] Fixes navigation back to added URLs in upload panel by @davelopez in #21796
  • [26.0] Update get_definitions() to FastAPI 0.128.8 by @nsoranzo in #21834
  • [26.0] Fix selenium test test_rename_history by @davelopez in #21835
  • [26.0] When getting tool by uuid, get that exact tool by @mvdbeek in #21844
  • [26.0] Fix ascp download retries by @mvdbeek in #21857
  • [26.0] Fix OMERO file source download multi channel TIFF by @davelopez in #21856
  • [26.0] Fixes some more optional fields in templates by @davelopez in #21891
  • [26.0] Fix infinite request loop on dataset preview fetch failure by @dannon in #21881
  • [26.0] Fix missing sharable link URL in TS2.0 emails by @jmchilton in #21892
  • [26.0] Parse input collections as well in markdown editor by @ahmedhamidawan in #21913
  • [26.0] Fix collection step Job markdown elements not rendering by @ahmedhamidawan in #21917
  • [26.0] Fix Pydantic UnsupportedFieldAttributeWarning for Field defaults in Annotated by @mvdbeek in #21923
  • [26.0] Remove unused handle_tool_shed_url_protocol by @mvdbeek in #21925
  • [26.0] Fix HTML dataset extra files 404 in preview by @dannon in #21981
  • [26.0] Fix dict leaking to process_dataset() during workflow execution by @mvdbeek in #21982
  • [26.0] Fix repo metadata persistence in fix_tool_config_paths.py by @mvdbeek in #22012
  • [26.0] Fix uncaught ImplicitConversionRequired by @mvdbeek in #22027
  • [26.0] Fix toolshed "copy page link" copying relative URL instead of absolute by @mvdbeek in #22028
  • [26.0] Fix subworkflow editing navigation and enable e2e test by @mvdbeek in #22032
  • [26.0] Use inference_services config for plugin chat proxy by @dannon in #21986
  • [26.0] Fix AttributeError serializing implicit output collections during job prep by @mvdbeek in #22034
  • [25.1] Fix dataset collection tag duplication when copying a history by @mvdbeek in #21984
  • [26.0] Fix AttributeError when export_metadata is a string instead of dict by @mvdbeek in #22033
  • [26.0] Fix invalid function schema error for tools with None parameters by @mvdbeek in #22030
  • [26.0] Fix AttributeError when fetching citations for missing tools by @mvdbeek in #22029
  • [26.0] Fix AttributeError when dataset in inheritance chain has no user by @mvdbeek in #22062
  • [26.0] Fix FileNotFoundError when workflow references purged HDA by @mvdbeek in #22060
  • [26.0] Move history panel expand button to top by @ahmedhamidawan in #22076
  • [26.0] Fix TypeError when column_names metadata is None by @mvdbeek in #22057
  • [26.0] Add check_database_connection to workflow scheduling path by @mvdbeek in #22063
  • [25.1] Fix preferred_object_store_id not respected for discovered outputs with extended metadata by @mvdbeek in #22056
  • [26.0] Store tool shed search index test data in repo by @mvdbeek in #22071
  • [26.0] Use ParameterValueError for dataset count validation to reduce Sentry noise by @mvdbeek in #22058
  • [26.0] AttributeError when history is None during tool execution by @mvdbeek in #22031
  • [26.0] Fix workflow search broken after auto layout by @dannon in #22093
  • [25.0] Fix legacy_expose_api error callable returning str instead of bytes by @mvdbeek in #22106
  • [26.0] Fix nested collection query performance by @mvdbeek in #22119
  • [26.0] Fix WSGI middlewares returning strings by @mvdbeek in #22108
  • [26.0] Fix CardinalityViolation in nested collection ARRAY walk scalar subqueries by @mvdbeek in #22123
  • [26.0] Model hidden_data params as optional data in tool meta-models. by @jmchilton in #22116
  • [26.0] Use skip_locked also when updating collection by @mvdbeek in #22133
  • [26.0] Do not render hide button on non-optional activities in activity bar by @ahmedhamidawan in #22140
  • [26.0] Fix unhandled exceptions in tool form model population by @guerler in #22129
  • [26.0] Fix workflow report time handling by @dannon in #19292
  • [26.0] Bump tiffviewer visualization to v0.0.4 by @davelopez in #22168
  • [25.1] Fix make all histories private controller None id bug by @ahmedhamidawan in #22174
  • [25.1] Do not queue paused jobs by @martenson in #22156
  • [26.0] Fix redundant empty collection elements by @mvdbeek in #22154
  • [26.0] Fixes for gxformat2 by @jmchilton in #22179
  • [26.0] Don't fail on probable delete race by @mvdbeek in #22183
  • [26.0] Add batch celery task for history dataset purging by @mvdbeek in #22180
  • [26.0] Update fastmcp requirement to 3.0.2 by @nsoranzo in #22221
  • [26.0] Include missing tools in stock_tool_paths. by @jmchilton in #22181
  • [26.0] Fix race condition in history list when rapidly changing search filters by @mvdbeek in #22223
  • [26.0] Throw ParameterValueError instead of generic error by @guerler in #22188
  • [26.0] Fix event loop blocking in async API routes by @mvdbeek in #22202
  • [26.0] Fix missing focus helper by @guerler in #22225
  • [25.1] Use /api/tool_data endpoints in DataTables.vue & DataManagerTable.vue by @mvdbeek in #22229
  • [26.0] Fix batch history purge not updating user's update_time by @mvdbeek in #22238
  • [26.0] Fix TypeError in ExternalIdentities by always including provider_label in authnz response by @guerler in #22234
  • [26.0] Optimize dataset get_edit API by deferring expensive role queries by @mvdbeek in #22232
  • [25.1] Restore file doesn't match sniffed datatype message by @mvdbeek in #21988
  • [26.0] Cache url path lookup by @mvdbeek in #22198
  • [26.0] Fix AmbiguousColumn error in job search for tools with long input names by @mvdbeek in #22167
  • [26.0] Fix import order error from ESLint by @nsoranzo in #22240
  • [26.0] Fix file source removal by @davelopez in #22246
  • [26.0] Validate replacement_params values are strings before storing by @mvdbeek in #22250
  • [26.0] Fix N+1 queries in fetch_job_states for jobs_summary endpoints by @mvdbeek in #22251
  • [26.0] Fixes optional integer form handling in templates by @davelopez in #22257
  • [26.0] Fix oauth2 template validation by @davelopez in #22253
  • [26.0] Drop stored workflow menu entries from user serialization by @mvdbeek in #22254
  • [26.0] Replace BaseHTTPMiddleware with pure ASGI middleware for X-Frame-Options by @mvdbeek in #22255
  • [26.0] Delete dummy error controller, fix type error on invalid requests by @mvdbeek in #22245
  • [26.0] Fix DOMPurify sanitize TypeError in Library components by @dannon in #22263
  • [26.0] Make sure origins for data landings are persisted by @d-callan in #22248
  • [26.0] Fix HDCA lost in tool form on rerun by @mvdbeek in #22258
  • [26.0] Batch-prefetch HDCA job_state_summary in history contents listing by @mvdbeek in #22256
  • [25.1] Fix refresh time in object store caches by @bgruening in #22279
  • [26.0] Raise error when API client sends invalid parameter keys by @mvdbeek in #22277
  • [25.1] Sequence datatypes: only read first character per line for setting metadata by @bernt-matthias in #22276
  • [25.1] Fix flaky job search for HDCA inputs on PostgreSQL by @mvdbeek in #22290
  • [26.0] Fail early wehn no route match is found by @mvdbeek in #22284
  • [26.0] Fix purge for anon histories by @mvdbeek in #22275
  • [26.0] Fix HDCA shown as unavailable on tool form rerun by @mvdbeek in #22291
  • [26.0] Fix nested DatasetCollectionElement in dynamic options by @mvdbeek in #22287
  • [26.0] Fix toolshed static image url encoding by @mvdbeek in #22286
  • [26.0] Improve timeout and error handling in /api/proxy endpoint by @mvdbeek in #22297
  • [26.0] Downgrade authnz OAuth callback errors from ERROR/EXCEPTION to WARNING by @mvdbeek in #22300
  • [26.0] Fix AttributeError when anonymous user searches workflows with is:bookmarked by @mvdbeek in #22296
  • [26.0] Raise MessageException instead of generic Exception in rules_dsl by @mvdbeek in #22285
  • [26.0] Skip WorkflowHub tests when workflowhub.eu is down by @mvdbeek in #22302
  • [26.0] Delay workflow scheduling when collection has unresolved 'auto' extension by @mvdbeek in #22303
  • [26.0] Fix atomicity issues when pulling files into object store cache by @mvdbeek in #22304
  • [26.0] Mark dataset collections as deleted when purging a history by @mvdbeek in #22315
  • [26.0] Fix OMERO temp directory handling by @davelopez in #22262
  • [26.0] Handle inaccessible history errors in route-level components by @mvdbeek in #22323
  • [26.0] Add optional dataset collection mode to harmonize tool by @mvdbeek in #22236
  • [26.0] Fix validation of certain classes of text validators in tools. by @jmchilton in #22280
  • [26.0] Ignore aborted requests in rethrowSimple by @mvdbeek in #22325
  • [25.1] Discard rest of line in chunks in iter_start_of_line by @mvdbeek in #22332
  • [26.0] Fix AbortSignal being serialized as dataset view query parameter by @mvdbeek in #22326
  • [26.0] Throw RequestAbortedError instead of returning undefined by @mvdbeek in #22352
  • [26.0] Fix slow get_private_role_user_emails_dict query by @mvdbeek in #22307
  • [26.0] Strip content-length and accept-ranges headers from proxied streaming responses by @mvdbeek in #22314
  • [26.0] Fix tool "Copy Link" generating broken /root?tool_id= URLs by @mvdbeek in #22339
  • [26.0] Harden API parameter validation by @mvdbeek in #22351
  • [25.1] Fix timestamp parsing in job import/export by @mvdbeek in #22372
  • [26.0] Fix Content-Disposition header with trailing whitespace by @mvdbeek in #22379
  • [26.0] Don't retry JobNotReadyException in job destination mapping by @mvdbeek in #22377
  • [26.0] Remove broken serialize_urls from HDASerializer by @mvdbeek in #22358
  • [26.0] Wrap webhook scripts in IIFE to prevent redeclaration errors by @mvdbeek in #22320
  • [26.0] Fail job gracefully when output name exceeds 255 character DB limit by @mvdbeek in #22059
  • [26.0] Fix invalid request error for get_metadata_file endpoint by @mvdbeek in #22389
  • [26.0] Ensure x-content-truncated header is string by @mvdbeek in #22386
  • [26.0] Show error message when display action not ready by @mvdbeek in #22383
  • [26.0] Fix workflow extract NoneType on LDDA leaf in implicit collection by @jmchilton in #22381
  • [26.0] Validate workflow invocation parameters values are dicts by @mvdbeek in #22388
  • [26.0] Fix dataset preview rendering to preserve newlines by @mvdbeek in #22397
  • [26.0] Offload AsyncClient construction to worker thread by @mvdbeek in #22392
  • [26.0] Unwrap HDCAs/DCEs nested in multi data input lists by @mvdbeek in #22405
  • [26.0] Silence social_core's noisy handle_http_errors logging by @mvdbeek in #22403
  • [26.0] Handle MaxDiscoveredFilesExceededError for dynamic collections by @mvdbeek in #22402
  • [26.0] Serialize data provider errors as MessageException subclasses by @mvdbeek in #22398
  • [26.0] Fix HideDatasetAction not applied for cached workflow jobs by @mvdbeek in #22360
  • [26.0] Reject HDCA submitted to single data parameter by @mvdbeek in #22406
  • [26.0] Pass tool_uuid as proper query parameter instead of reusing URL path id by @mvdbeek in #22309
  • [26.0] Fix headings in selenium package readme by @guerler in #22411

🧰 Refactoring

📚 Documentation

Other Changes

New Contributors

Full Changelog: v25.1.2...v26.0.0

Don't miss a new galaxy release

NewReleases is sending notifications on new releases.