There was a bug in a context manager inside a unit test. This caused
nondeterministic behavior of some unit tests after a refactoring.
Bug fixed; added 3 unit tests to test the context manager.
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.
PR #8118 - adding to_dict to the dependency manager and an embedded loading of dependency resolution options from galaxy.yml - was really quite poorly thought through.
Certain options could be embedded - but only the resolvers and the actual dictified representation of the DependencyManager couldn't be actually embedded properly in the app config - but this is exactly what I wanted to do on the Pulsar side and it would make no sense to have the exact same options in both apps and configured differently.
So now the actual dictified representation of the whole DependencyManager can be directly embedded in galaxy.yml as the ``dependency_resolution:`` parameter. All the parameters can still be configured at the top level of the YAML file but with 'dependency' in the config option name (some prefixes, some suffixes, etc... a hodgepodge that has grown organically). Give the messiness of the existing options might be better to encourage using ``dependency_resolution:`` in the future.
- to simplify tool testing its of advantage to know
which parameter caused a problem
- for select parameters the illegal value and the
list of legal values is added
- also unified the text of the messages
Co-Authored-By: Marius van den Beek <m.vandenbeek@gmail.com>
- to simplify tool testing its of advantage to know
which parameter caused a problem
- for select parameters the illegal value and the
list of legal values is added
- also unified the text of the messages
Co-Authored-By: Marius van den Beek <m.vandenbeek@gmail.com>
- Rev pulsar-galaxy-lib for improved error messages.
- Rev to a newer container - one that actually logs.
- More use of host.docker.internal to improve testing robustness.
- Add documentation for overriding container to use.
The tests included here are really very manual and brittle tests, but I'm not sure how to do much better. See documentation in the file docstring for more information.
We can just call AbstractToolBox.create_section directly as the new
install operation is atomic (thank you so much @guerler!).
We don't need to have other processes create a new section, that'll
happen when we reload the toolbox anyway. Avoids a threading issue in
some circumstances that leads to tools appearing outside of sections.
Originally I added the task message in
https://github.com/galaxyproject/galaxy/commit/51c586c264f2acd912060297804d61c2539f2483
because the install process was a two step process, where we'd first
create the tool panel section (maybe in thread1) and then place the tool
into the not-yet-existing panel section in another thread.
I tried fixing that up again in
https://github.com/galaxyproject/galaxy/commit/fb69afae28c434f35860ccaa4591e95fe3acfe91,
which I think was almost correct, but send_control_task should have been
run with `noop_self` to avoid confliciting threads updating the
sections. Anyway, this is much better now, I think.
Needed for metadata evaluation stuff (at least in testing) and removes some circular dependencies in the form of stuff in galaxy.tools depending on stuff in galaxy.jobs.
- Fix bug where sep2tabs didn't work with '\r\n'
- Fix bug where sep2tabs didn't work with '\r' - we were opening it with universal newlines.
- Fix memory bug where convert_newlines would read unbounded buffers - other methods still do though :(.
- Simplify convert_newlines to just let universal newline handling handle the conversion.