Commit Graph
1971 Commits
Author SHA1 Message Date
mvdbeek df4b4c8a12 Address gx-arch-review feedback on PR #22212
- Extract FavoritesManager (lib/galaxy/managers/favorites.py): owns
  normalize / resolve / persist / order logic; controllers in users.py
  are now 2 lines each, and trans.sa_session.commit moves out of the
  controller layer. Drops the redundant re-normalize on every write
  and replaces FavoriteObjectType.X.value == .value defensive dispatch
  with enum-identity comparison. Renames the set_favorite_order
  endpoint summary away from the ambiguous "top-level" wording.
- Move curated_tool_tags_by_id off the toolbox into ToolsService;
  the controller now routes through the service instead of poking
  trans.app.toolbox directly. Raw aggregates (curated_tool_tags,
  tool_edam_operations, tool_edam_topics) remain on the toolbox since
  they're derived from per-tool data.
- Rename /api/tools/tags -> /api/tags/tool_tags (operation_id
  tags__tool_tags) to disambiguate from /api/tools/{id}; update the
  client store, tests, and the hand-edited OpenAPI schema entry.
  (Run `make update-client-api-schema` before pushing to regenerate
  the schema in its canonical alphabetical position.)
- Promote inline imports to module-level (ontology_data.py logging,
  app/__init__.py configure_tool_tag_mapping); replace
  getattr(self.config, "tool_tag_mappings_file", None) with direct
  attribute access now that the option is registered in the schema.
- Convert ontology_data's import-time bundled-mapping reads to
  lru_cache so the YAML / TSV files load lazily; fix the
  Tool._setup_id comment to point at the actual lowercasing site
  (Tool.parse around `self_ids = [self.id.lower()]`).
- doc/source/admin/tool_panel.rst: 26.0 -> 26.1.
- scripts/extract_tool_sections_from_api.py: annotate the public
  helpers the test suite imports.
- test_to_dict_cache_drops_when_tool_removed now asserts observable
  to_dict() output before/after remove, not private cache membership.
- Split test_tool_discovery_landing into focused tests; extract a
  helper that opens the discovery view and types the standard filter.
- Move the Playwright drag helper from test_tool_panel_search.py into
  TestWithSeleniumMixin.playwright_drag_item_above so future tests
  reuse it.
- Client tests: drop the full-string Whoosh equality in
  utilities.test.ts; hard-code expected Whoosh strings in
  ToolsList.test.ts (drop createWhooshQuery as both sides of the
  assertion) and remove the redundant injectTestRouter mount option
  (ToolsList.vue only uses the useRouter composable); drop the
  FontAwesome data-icon/iconName assertions in ToolPanel.test.ts in
  favor of icon-existence checks; replace three near-identical
  add/remove favorite tests in ToolsListCard.test.ts with an it.each;
  export quoteToolTagValue from Panels/utilities so
  filterConversion.test.js imports the real helper instead of
  reconstructing it inline; delete the spy-only "loads the curated
  tag mapping" test in ToolBoxSearch.test.ts (the gate is covered by
  ToolPanel.test.ts's negative case and the favorite-tag rendering
  tests cover the positive case end-to-end).
2026-05-19 11:43:34 +02:00
Bjoern Gruening 70d9c89eb2 Harden extract_tool_sections_from_api script and document curated tags
Two related fixes around the admin-facing helper script and admin docs:

* Make the helper script work from any cwd and against any Galaxy
  server: `--api-url`, `--output`, `--timeout` argparse flags; raise
  `RuntimeError` on transport / decode failures (was a silent no-op);
  anchor the default output path on the script location so
  `python scripts/extract_tool_sections_from_api.py` works without a
  prior `cd`. Default output now points at `config/tool_tag_mappings.yml`
  to match the new admin override path.

* Add a "Curated tool tags" section to `doc/source/admin/tool_panel.rst`
  documenting the new `tool_tag_mappings_file` option, the new
  `tag:"…"` / `ontology:"…"` search syntax, the `?section=` URL
  deprecation, and the reindex requirement after changing the mapping.
2026-05-07 13:23:33 +02:00
Bjoern Gruening 193abcf738 second iteration of the personalized tool panel 2026-05-07 13:09:36 +02:00
Dannon Baker da911d0cf3 Restructure client build-state check to match the build block
Nest the prebuilt/hash-check branches inside `if [ $SKIP_CLIENT_BUILD
-eq 0 ]` so the shape mirrors the subsequent build-or-install block.
Per Nicola's review.
2026-04-17 14:53:24 -04:00
DannonandNicola Soranzo 693486432a Update scripts/common_startup.sh
Co-authored-by: Nicola Soranzo <nicola.soranzo@gmail.com>
2026-04-17 14:51:56 -04:00
Dannon Baker ab245fbb79 Install prebuilt client from PyPI wheel instead of npm
The prebuilt client path (GALAXY_INSTALL_PREBUILT_CLIENT=1, used by
planemo) now pulls the matching galaxy-web-client wheel from PyPI and
lets webapp.py pick it up via `import galaxy.web_client`. The
root-level pnpm install is no longer needed for this flow -- the
Galaxy client isn't a JS library, so shipping it as an npm package
was always the wrong shape.

Dev versions don't have a published wheel, so we bail early with a
message pointing users at the source build path.
2026-04-17 11:19:21 -04:00
Michael R. Crusoe dbfcdb8bc9 python packages: convert to pure namespace packages
only directories in `lib/galaxy` & `packages/*/galaxy`
All other files removed or moved to their own module
All references to those files updated, especially galaxy/version.py
2026-04-15 15:16:34 +02:00
Nicola Soranzo d31114bdaa Migrate 3 scripts from psycopg2 to SQLAlchemy 2026-03-25 20:18:39 +00:00
mvdbeek d77ed6e740 Merge branch 'release_26.0' into dev 2026-03-11 10:22:01 +01:00
mvdbeek 8ac4b81b79 Fix repo metadata persistence in fix_tool_config_paths.py 2026-03-09 15:09:45 +01:00
Uwe WinterandNicola Soranzo afd4d3f526 Update scripts/common_startup.sh
Co-authored-by: Nicola Soranzo <nicola.soranzo@gmail.com>
2026-02-11 22:05:43 +11:00
Uwe Winter aa53fe3c3b fix: system uv can select a different python version than in the conda environment 2026-02-10 11:23:43 +11:00
Matthias Bernt 11505ae687 add zero-ice constraint
its an implicit dependency of omero py
2026-01-29 13:00:44 +01:00
John Davis b0e8306de6 Merge pull request #20819 from ccoulombe/refactor/cleanup-datasets
Refactor/cleanup admin_cleanup_datasets.py script
2026-01-27 19:06:52 -05:00
John DavisandNicola Soranzo 4f66c00124 Update scripts/cleanup_datasets/admin_cleanup_datasets.py
Co-authored-by: Nicola Soranzo <nicola.soranzo@gmail.com>
2026-01-27 15:16:04 -05:00
John Davis 8a40ef19fb Format 2026-01-27 11:51:12 -05:00
John Davis 01a3f2707b Do not change existing behavior; raising error is correct 2026-01-27 11:50:36 -05:00
John Davis 5ffdf789c1 Remove redundant join criteria 2026-01-27 11:49:22 -05:00
John Davis 3a59617837 Restore old comment 2026-01-27 11:30:40 -05:00
John Davis cce6f59c1c Do not use aliased on models for readability: just import them 2026-01-27 11:28:27 -05:00
John Davis 1bd316e951 Use == false() instead of is_(False) 2026-01-27 11:20:42 -05:00
Nicola Soranzo 17003e8d00 Apply 2026 black style 2026-01-20 10:25:45 +00:00
Nicola Soranzo eb9fde1dcd Drop support for Python 3.9 2026-01-19 18:39:16 +00:00
Dannon Baker f8db1d03c1 Update build system for pnpm
Replaces yarn with pnpm throughout the Makefile and common_startup.sh.
The startup script now installs pnpm via conda, corepack, or npm
depending on the environment.
2026-01-12 16:49:17 -05:00
Nicola Soranzo 959f4a5aa4 Clean up code with pyupgrade
by runnig:

```shell
make pyupgrade
ruff check --fix .
make format
```

Also update ruff configuration to:
- Enable UP006 and UP035 error codes for PEP 585 type annotations
- Ignore UP045 for the packages which need to stay compatible with Python 3.8
- Add tool-util-models paths to those that need to stay compatible with Python 3.8
2026-01-06 22:25:34 +00:00
Nicola Soranzo fc7d1dee35 Switch galaxyproject package index to `--extra-index-url`
so that `uv pip install` treats it with higher priority:

https://docs.astral.sh/uv/concepts/indexes/#-index-url-and-extra-index-url

Note that `pip` treats all indexes with the same priority:

https://pip.pypa.io/en/stable/cli/pip_install/#finding-packages

Allows uv to install the Python 3.14 wheel of pysam==0.23.3 from
wheels.galaxyproject.org instead of trying to build it from the source
package from PyPI.
2025-12-24 15:15:11 +00:00
Nicola Soranzo 176382b6be Install pip module if missing 2025-12-24 15:15:10 +00:00
mvdbeek b55ae26068 Add toolshed metadata fixing script
Updates repository_metadata.tools with new and correct file locations.
The test toolshed moved around `file_path` multiple times since its
inception, and old revisions might point at old location. This is a
simple script that fixes the locations. It has a dry run mode that I've
run successfully:

```
----------------------------------------------------------------------
Dry run complete - no changes made to database
======================================================================
SUMMARY
======================================================================
Total RepositoryMetadata records processed: 25414
RepositoryMetadata with tools: 22497
Total tools examined: 40470
Tools with correct paths (unchanged): 3898
Tools with paths updated: 36572
  - Tool file exists on disk: 33297
  - Tool file missing (removed in later changeset): 3275
Tools with path construction errors: 0
======================================================================
```
it also write out json files for each repository as backups should
this be needed.

Closes https://github.com/galaxyproject/galaxy/issues/21454
2025-12-15 12:09:23 +01:00
Nicola Soranzo f20306b03b Shellcheck fixes 2025-10-29 18:45:26 +00:00
Nicola Soranzo 6cf9d49c8a Install uv into `$GALAXY_CONDA_ENV` 2025-10-29 18:45:25 +00:00
Nicola Soranzo ae62f129c6 Reduce command duplications 2025-10-29 18:45:25 +00:00
Arash e4f6aa39e9 Enhance ensure_prereqs function to use 'uv' for pip list if available 2025-10-29 12:45:46 +00:00
Arash 137928e8fd Streamlines wheel + conditional dependency setup 2025-10-29 12:45:43 +00:00
Arash 2409312f8c Makes uv optional with pip fallbacks 2025-10-29 12:45:42 +00:00
Arash 478b88a7d4 Enhance package management by integrating 'uv' for faster installation and virtual environment creation across scripts 2025-10-29 12:45:42 +00:00
Dannon Baker 5b4b3892f9 Use corepack to enable yarn in common_startup.sh 2025-10-22 12:49:20 -04:00
mvdbeek b488cf2694 Use nodejs-wheel to install node 2025-09-27 09:17:12 +02:00
Charles Coulombe f14f34dca7 Removed unsused imports 2025-08-26 13:18:46 -04:00
Charles Coulombe 85d8e6a78f Added --no-send option, to allow not sending an email upon deletion 2025-08-26 10:29:34 -04:00
Charles Coulombe f0e63ff652 Added state to email subject. Differentiate between the information and the actual deletion email 2025-08-25 15:38:57 -04:00
Charles Coulombe 651426ae39 Updated _get_tool_id_for_hda function to be more readable but mainly compatible with sqlalchemy 2.x 2025-08-20 08:57:04 -04:00
Charles Coulombe 860e2cda72 Refactored and updated administrative_delete_datasets function to be more readable but mainly compatible with sqlalchemy 2.x 2025-08-19 19:50:04 -04:00
Charles Coulombe 3904721208 Fixed query results mapping for compatibility with sqlalchemy 2.x 2025-08-19 19:01:31 -04:00
Charles Coulombe b6f5553615 Format with 3 decimals and display seconds 2025-08-19 11:06:35 -04:00
Nicola Soranzo 7f89e0eab9 Code cleanups from pyupgrade
Found by running:

```
make pyupgrade
ruff check --fix .
ruff check --preview --unsafe-fixes --select=F401 --fix .
make format
make update-client-api-schema
```

The bulk of the changes are replacements of typing deprecated aliases
such as `Dict` and `List` with the standard library classes. These
aliases became redundant in Python 3.9 when the corresponding
pre-existing classes were enhanced to support `[]`, see
https://docs.python.org/3/library/typing.html#deprecated-aliases

Also:
- Update the `pyupgrade` Makefile target to use `--py38-plus` for the
  packages needed by Pulsar, including the new galaxy-tool-util-models
  package.
2025-07-31 11:17:22 +01:00
Charles Coulombe b08b68a889 Fix assertion on python version
Likely a typo, f-strings were introduced in 3.6
2025-07-24 21:15:28 -04:00
davelopez fdac8820a6 Merge release_25.0 into dev 2025-06-16 14:12:30 +02:00
mvdbeek 37c5e9978c Run make format 2025-05-09 10:53:43 +02:00
Nate Coraor 0ee30084cb Preserve loc permissions 2025-05-09 10:52:17 +02:00
Nate Coraor a5cc985765 Add optional empty directory pruning 2025-05-09 10:52:17 +02:00