- Require a URL or FTP column for raw pasted data.
- Require list identifiers if creating collections.
- Require name in more scenerios that require a name.
Present users with the job standard error and also check for binary sniffing problems and report them with a pretty message suggesting specifying a file type.
Resolving the default when unspecified in the XML before writing out datatype confs fixes this. This makes this option always explicit in the datatypes conf that is shared with the upload tool.
This does undo an attempt that Nate made to auto sniff fastq.gz files when they can't be converted anyway, but that was kind of broken in its own way.
From Gitter:
jmchilton: natefoo "# Link mode can't decompress anyway, so enable sniffing for keep-compressed datatypes even when auto_decompress is enabled" Did you test this hack? I get the thought process but it seems like it results in uploaded fastq.gz files defaulting to fastqcssanger.gz? Maybe it didn't at some point though?
Nate Coraor: ummmmmmmmmmmm maybe probably not
John Chilton: I have four fixes for compressed datatypes that all fall apart because of this hack... can I just use the configured sniff order or do you want me to try to preserve this and write a test case
Nate Coraor: nah go ahead and de-hack
John Chilton: There is a good argument to be made for making the behavior more consistent anyway right? Cool thanks
- Incorrect parsing of default auto sniff flag value.
- Not respecting flag value when adding to dict of compressed sniffers.
- Not checking the right value when checking for compressed datatype instances to add to sniff order.
- Not filtering out the sniffers from being automatically added during the default stage of sniffer handling where all types with sniff are added at the end.
This last point is the most complicated. I added a hack with #6091 so that the compressed sniffers would only return True if in validation mode or explicitly enabled. I'm not convinced that approached worked and I'm definitely convinced it was a bad approach.
The better, cleaner approach is to just always let the sniffer return its truth regardless of validation mode or not and instead only add it to the list of sniffers if it should be enabled. This is what I was assuming would happen but I found this method append_to_sniff_order that was adding sniffers back in that I didn't want added.
Problem one is that passing the tool_state as the input payload doesn't
preserve the tool state, adressed with the client-part fix.
Then passing the tool state still has no effect since the state is
properly recovered in `module_factory.from_dict`, but then overwritten
by recovering the state starting with an empty dict. It looks like this
isn't necessary as we call populate_state anyway when calling
`module.get_config_form()`.
Fixes https://github.com/galaxyproject/galaxy/issues/5879.