Move galaxy.web.stack.database_heartbeat into galaxy.model - since it was the only thing in galaxy.web.stack that used galaxy.model at all and it didn't import anything else from galaxy.web.stack.
Once that was done, I refactored this whole package (galaxy.web.stack) into galaxy.web_stack. It doesn't use the framework setup or exported by the base galaxy.web package so it wouldn't seem to belong there. It also has very different dependencies than the rest of that. And finally and most importantly, this elimiantes almost all dependency from galaxy.jobs and galaxy.tools and galaxy.workflows to anything in galaxy.web.
Fix the following traceback:
```
/usr/users/ga002/soranzon/software/galaxyproject_galaxy/scripts/db_shell.py in printquery(statement, bind)
60 if bind is None:
61 bind = statement.session.get_bind(
---> 62 statement._mapper_zero_or_none())
63 statement = statement.statement
64 elif bind is None:
AttributeError: 'Query' object has no attribute '_mapper_zero_or_none'
```
due to the removal of `_mapper_zero_or_none()` in SQLAlchemy commit
https://github.com/sqlalchemy/sqlalchemy/commit/234a5b9723fbbb9747c0f9e3917baf8500b73370
* include categories as keywords for repository index
* allow filtering on category/owner using github-like wildards "category:name"
* only log metadtaa like matched terms, do not return in http response
* refactoring
- Auto-bootstrap user announcements for datatypes, tools, and viz. (follow up on #7527)
- Many fixes for things broken in #7527
- Treat procedures as an enhancment for categorizing things.
- Speed up release note generation a bit by not considering really, really old PRs.
This is (so far a subset of) the tool utilities from galaxy-lib. galaxy-lib mocked out a fake galaxy.tools to allow these to all exist below the galaxy.tools - but this was a terrible hack - in order for the new packages to be true subsets of Galaxy they need to be refactored into a new package that doesn't depend on models, SA, galaxy.jobs, etc...
[x] galaxy.tools.deps -> galaxy.tool_util.deps
[x] galaxy.tools.loader -> galaxy.tool_util.loader
[x] galaxy.tools.cwl -> galaxy.tool_util.cwl
[x] galaxy.tools.loader -> galaxy.tool_util.loader
[x] galaxy.tools.fetcher -> galaxy.tool_util.fetcher
[x] galaxy.tools.locations -> galaxy.tool_util.locations
[x] galaxy.tools.parser -> galaxy.tool_util.parser
It's important to not set the DatabaseHeartbeat `server_name` prior to forking,
which we avoid be getting `server_name` from
`application_stack.app.config.server_name`.
`WorkerProcess.server_name` for uwsgi web processes will look like:
`main.web.1` and mules like `main.job-handlers.1` while webless workers
remain named `handler1`.
I want to be able to use this class in galaxy.model and it doesn't have any dependnecies on "web" stuff so I'd like to move it out of galaxy.model and into galaxy.security. galaxy.model shouldn't have dependencies on galaxy.web (and doesn't after the recent 976f5ad367), so this pre-emptively ensures it doesn't require these dependencies for https://github.com/galaxyproject/galaxy/pull/7367.
This has the benefit of also eliminating any galaxy.web dependencies from the generic test base file (test/base/testcase.py) which has long been a goal of mine as well.
There are places we legimately use ID encoding and decoding for security (i.e. job files API) but for the most part it doesn't provide security for API endpoints and this causes confusion repeatedly, so I've started the process of renaming the contained class SecurityHelper to something I feel makes it clearer this is just about encoding and decoding IDs.
If there is no Git repo in a Galaxy install, DEV_WHEELS will not be
turned on by default. If they are needed, use the --dev-wheels flag.
(Current behavior: common_startup.sh will turn on the DEV_WHEELS option
if no git repo is found, making the assumption that it is dealing with a
dev install. Thus, dev dependencies are installed whenever there's no
Git repo, including the use case when Galaxy was downloaded as a tarball
- when they may or may not be desired. There is no option to override
this behavior without editing the script.)