mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-10-31 02:28:09 +08:00
Support tool shed installs end-to-end on top of the persistent tool source store: - Section-install paths funnel through ``_lazy_register_tool_item`` so each shed install is indexed alongside the panel section it lives in. - Shed entries are keyed by full toolshed guid (not the short id) so workflow-side ``has_tool(guid)`` lookups resolve, and short-id references resolve back to the latest matching guid. - ``tool_shed_repository``/``guid`` metadata is stamped on stored entries and restored on materialisation; cross-version lineage follows the guid so the same lineage covers every installed revision. - ``_prune_orphaned_shed_entries`` drops persisted entries whose backing shed_tool_conf no longer references them, so a ``reset_shed_tools`` test doesn't leak installs into the next test. - Section re-materialisation rebuilds ``section.elems`` (shed tools inserted at section head, ahead of local tools) instead of clearing the existing entries; ``remove_tool_by_id`` clears ``_tool_versions_by_id`` and lineage state under the toolbox lock. - ``reload_tool_source_cache`` broadcasts with ``noop_self=True`` so the local process keeps its just-stored cache instead of racing the queue-worker session. - Configured shed/migrated tool confs are registered as on-demand placeholders when the file is absent at boot, matching the eager toolbox's behaviour.