Merge branch 'release_20.09' into dev
@@ -1,8 +1,10 @@
|
||||
import { getGalaxyInstance } from "app";
|
||||
import { getAppRoot } from "onload/loadConfig";
|
||||
import { Toast } from "ui/toast";
|
||||
import mod_library_model from "mvc/library/library-model";
|
||||
import _ from "underscore";
|
||||
import Backbone from "backbone";
|
||||
import axios from "axios";
|
||||
import LIST_CREATOR from "mvc/collection/list-collection-creator";
|
||||
import PAIR_CREATOR from "mvc/collection/pair-collection-creator";
|
||||
import PAIRED_CREATOR from "mvc/collection/list-of-pairs-collection-creator";
|
||||
@@ -28,6 +30,9 @@ var ImportCollectionModal = Backbone.View.extend({
|
||||
this.histories = new mod_library_model.GalaxyHistories();
|
||||
return this.histories.fetch();
|
||||
},
|
||||
createNewHistory: function (new_history_name) {
|
||||
return axios.post(`${getAppRoot()}api/histories`, { name: new_history_name });
|
||||
},
|
||||
showCollectionSelect: function (e) {
|
||||
const Galaxy = getGalaxyInstance();
|
||||
var checked_items = this.findCheckedItems();
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<template>
|
||||
<b-navbar
|
||||
id="masthead"
|
||||
toggleable="lg"
|
||||
type="dark"
|
||||
role="navigation"
|
||||
aria-label="Main"
|
||||
class="justify-content-center"
|
||||
>
|
||||
<b-navbar id="masthead" type="dark" role="navigation" aria-label="Main" class="justify-content-center">
|
||||
<b-navbar-brand :href="brandLink" aria-label="homepage">
|
||||
<img alt="logo" class="navbar-brand-image" :src="brandImage" />
|
||||
<img alt="logo" class="navbar-brand-image" :src="brandImageSecondary" v-if="brandImageSecondary" />
|
||||
@@ -129,7 +122,7 @@ export default {
|
||||
},
|
||||
tabs() {
|
||||
const scratchbookTabs = [this.mastheadState.frame.buttonActive, this.mastheadState.frame.buttonLoad];
|
||||
const tabs = [].concat(this.baseTabs, scratchbookTabs, this.extensionTabs);
|
||||
const tabs = [].concat(this.baseTabs, this.extensionTabs, scratchbookTabs);
|
||||
return tabs.map(this._tabToJson);
|
||||
},
|
||||
},
|
||||
|
||||
@@ -54,6 +54,8 @@ export function filterTools(layout, results) {
|
||||
toolsResults.push(el);
|
||||
}
|
||||
});
|
||||
} else if (!section.text && results.includes(section.id)) {
|
||||
toolsResults.push(section);
|
||||
}
|
||||
});
|
||||
return toolsResults.sort((tool1, tool2) => {
|
||||
|
||||
@@ -25,22 +25,25 @@ export default {
|
||||
},
|
||||
customFormat: {
|
||||
type: String,
|
||||
default: null,
|
||||
default: undefined,
|
||||
},
|
||||
},
|
||||
created() {
|
||||
if (this.customFormat) this.processedDate = moment(this.date, this.customFormat).format();
|
||||
else this.processedDate = this.date;
|
||||
},
|
||||
computed: {
|
||||
elapsedTime: function () {
|
||||
return moment(moment.utc(this.processedDate)).from(moment().utc());
|
||||
return moment(moment.utc(this.formattedDate)).from(moment().utc());
|
||||
},
|
||||
fullDate: function () {
|
||||
return moment.utc(this.processedDate).format();
|
||||
return moment.utc(this.formattedDate).format();
|
||||
},
|
||||
formattedDate: function () {
|
||||
if (this.customFormat !== undefined) {
|
||||
return moment(this.date, this.customFormat).format();
|
||||
} else {
|
||||
return this.date;
|
||||
}
|
||||
},
|
||||
pretty: function () {
|
||||
return moment.utc(this.processedDate).format("dddd MMM Do h:mm:ss YYYY [UTC]");
|
||||
return moment.utc(this.formattedDate).format("dddd MMM Do h:mm:ss YYYY [UTC]");
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -161,18 +161,18 @@ export default {
|
||||
methods: {
|
||||
...mapActions(["fetchInvocationForId", "fetchInvocationJobsSummaryForId"]),
|
||||
pollStepStatesUntilTerminal: function () {
|
||||
clearInterval(this.stepStatesInterval);
|
||||
if (!this.invocationSchedulingTerminal) {
|
||||
this.fetchInvocationForId(this.invocationId);
|
||||
this.stepStatesInterval = setInterval(this.pollStepStatesUntilTerminal, 3000);
|
||||
}
|
||||
this.fetchInvocationForId(this.invocationId).then((response) => {
|
||||
if (!this.invocationSchedulingTerminal) {
|
||||
this.stepStatesInterval = setTimeout(this.pollStepStatesUntilTerminal, 3000);
|
||||
}
|
||||
});
|
||||
},
|
||||
pollJobStatesUntilTerminal: function () {
|
||||
clearInterval(this.jobStatesInterval);
|
||||
if (!this.jobStatesTerminal) {
|
||||
this.fetchInvocationJobsSummaryForId(this.invocationId);
|
||||
this.jobStatesInterval = setInterval(this.pollJobStatesUntilTerminal, 3000);
|
||||
}
|
||||
this.fetchInvocationJobsSummaryForId(this.invocationId).then((response) => {
|
||||
if (!this.jobStatesTerminal) {
|
||||
this.jobStatesInterval = setTimeout(this.pollJobStatesUntilTerminal, 3000);
|
||||
}
|
||||
});
|
||||
},
|
||||
onError: function (e) {
|
||||
console.error(e);
|
||||
@@ -182,8 +182,8 @@ export default {
|
||||
},
|
||||
},
|
||||
beforeDestroy: function () {
|
||||
clearInterval(this.jobStatesInterval);
|
||||
clearInterval(this.stepStatesInterval);
|
||||
clearTimeout(this.jobStatesInterval);
|
||||
clearTimeout(this.stepStatesInterval);
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -158,7 +158,7 @@ var HistoryViewColumn = Backbone.View.extend(baseMVC.LoggableMixin).extend({
|
||||
/** event map */
|
||||
events: {
|
||||
// will make this the current history
|
||||
"click .switch-to.btn": function () {
|
||||
"click .switch-to": function () {
|
||||
this.model.setAsCurrent();
|
||||
},
|
||||
//TODO: remove boiler plate from next 3
|
||||
@@ -198,10 +198,6 @@ var HistoryViewColumn = Backbone.View.extend(baseMVC.LoggableMixin).extend({
|
||||
<strong class="current-label">
|
||||
${_l("Current History")}
|
||||
</strong>
|
||||
<% } else { %>
|
||||
<button class="switch-to btn btn-secondary">
|
||||
${_l("Switch to")}
|
||||
</button>
|
||||
<% } %>
|
||||
</div>`,
|
||||
{ variable: "data" }
|
||||
@@ -212,6 +208,11 @@ var HistoryViewColumn = Backbone.View.extend(baseMVC.LoggableMixin).extend({
|
||||
`<div class="text-right col-4">
|
||||
<% if( !data.history.purged ){ %>
|
||||
<div class="panel-menu btn-group">
|
||||
<% if( !data.history.isCurrentHistory ){ %>
|
||||
<button class="switch-to btn btn-secondary">
|
||||
${_l("Switch to")}
|
||||
</button>
|
||||
<% } %>
|
||||
<button
|
||||
history-dropdown-btn="<%= data.history.id %>"
|
||||
type="button"
|
||||
@@ -865,7 +866,7 @@ var MultiPanelColumns = Backbone.View.extend(baseMVC.LoggableMixin).extend({
|
||||
this.filters = [];
|
||||
this.renderColumns(0);
|
||||
},
|
||||
advsearchlink: true,
|
||||
advsearchlink: false, // advanced search doesn't work for histories
|
||||
});
|
||||
|
||||
// input to search datasets
|
||||
|
||||
@@ -159,7 +159,7 @@ body {
|
||||
@extend .unified-panel;
|
||||
right: 0px;
|
||||
width: $panel-width;
|
||||
overflow: unset !important;
|
||||
overflow: unset;
|
||||
}
|
||||
#right > .unified-panel-footer {
|
||||
.drag {
|
||||
|
||||
@@ -189,7 +189,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------- datasets as list-items
|
||||
// ----------------------------------------------------------------------------
|
||||
// datasets as list-items
|
||||
|
||||
.list-item.dataset,
|
||||
.list-item.dataset-collection,
|
||||
.list-item.history-content {
|
||||
border-color: rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.dataset {
|
||||
@extend .has-job-state-mixin;
|
||||
|
||||
|
||||
@@ -156,16 +156,9 @@
|
||||
@extend .flex-column;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
|
||||
&:not(:empty) {
|
||||
border-top: 1px solid $border-color;
|
||||
}
|
||||
&:empty {
|
||||
flex-grow: 0 !important;
|
||||
}
|
||||
.list-item:first-child {
|
||||
border-top-width: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
> .empty-message {
|
||||
@@ -360,7 +353,7 @@
|
||||
$mph-column_gap: 8px;
|
||||
$mph-header_height: 40px;
|
||||
$mph-footer_height: 0;
|
||||
$mph-controls_height: 20px;
|
||||
$mph-controls_height: 28px;
|
||||
|
||||
// for some reason, .flex-row-container below won't be applied to multi-panel-history since it's the enclosing node
|
||||
// re-apply here
|
||||
@@ -380,11 +373,6 @@
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
|
||||
/* force ff to squish beyond content:
|
||||
https://developer.mozilla.org/en-US/Firefox/Releases/34/Site_Compatibility#CSS */
|
||||
min-width: 0px;
|
||||
min-height: 0px;
|
||||
|
||||
-webkit-align-items: stretch;
|
||||
-ms-align-items: stretch;
|
||||
align-items: stretch;
|
||||
@@ -430,6 +418,7 @@
|
||||
.search-control {
|
||||
width: 300px;
|
||||
float: left;
|
||||
height: 36px;
|
||||
}
|
||||
// popover containing sorting and filters
|
||||
.more-options {
|
||||
@@ -466,6 +455,7 @@
|
||||
@extend .btn-sm;
|
||||
}
|
||||
.open-more-options {
|
||||
margin-top: 4px;
|
||||
padding: 2px 6px 2px 6px;
|
||||
font-size: 100%;
|
||||
}
|
||||
@@ -479,7 +469,7 @@
|
||||
margin-right: 8px;
|
||||
margin-left: 8px;
|
||||
& > * {
|
||||
margin: 0px 4px 4px 0px;
|
||||
margin-left: 8px;
|
||||
}
|
||||
}
|
||||
&.control-column-center {
|
||||
@@ -537,7 +527,7 @@
|
||||
}
|
||||
.panel-controls {
|
||||
width: 100%;
|
||||
height: ($mph-controls_height + 4);
|
||||
height: $mph-controls_height;
|
||||
background-color: $white;
|
||||
|
||||
.btn {
|
||||
|
||||
@@ -17,6 +17,8 @@ $vertical-gap: 8px;
|
||||
}
|
||||
|
||||
.list-item {
|
||||
border: 1px solid $border-color;
|
||||
|
||||
.vertical-spacing {
|
||||
@extend %vertical-spacing;
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ function searchInput(parentNode, options) {
|
||||
onsearch: function (inputVal) {},
|
||||
minSearchLen: 0,
|
||||
escWillClear: true,
|
||||
advsearchlink: null,
|
||||
advsearchlink: false,
|
||||
oninit: function () {},
|
||||
};
|
||||
|
||||
@@ -149,7 +149,7 @@ function searchInput(parentNode, options) {
|
||||
.popover({
|
||||
trigger: "focus",
|
||||
html: true,
|
||||
container: ".history-right-panel",
|
||||
container: "body",
|
||||
})
|
||||
.popover("show");
|
||||
});
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
../releases/images/20.09-gtn-in-galaxy.mp4
|
||||
@@ -0,0 +1 @@
|
||||
../releases/images/20.09-upload-form.mp4
|
||||
@@ -0,0 +1,854 @@
|
||||
|
||||
.. to_doc
|
||||
|
||||
20.09
|
||||
===============================
|
||||
|
||||
.. announce_start
|
||||
|
||||
Enhancements
|
||||
-------------------------------
|
||||
|
||||
.. major_feature
|
||||
* Simplified Workflow Run Form
|
||||
`Pull Request 9151`_
|
||||
* Allow uploading directly from the tool form
|
||||
`Pull Request 9809`_
|
||||
* Pluggable URI handling across upload components.
|
||||
`Pull Request 9888`_
|
||||
* API + UI for importing workflows from a GA4GH TRS server.
|
||||
`Pull Request 9999`_
|
||||
* GTN in Galaxy
|
||||
(thanks to `@hexylena <https://github.com/hexylena>`__).
|
||||
`Pull Request 10024`_
|
||||
* Revision of Workflow Reports
|
||||
`Pull Request 10121`_
|
||||
* Markdown Editor Revision
|
||||
`Pull Request 10134`_
|
||||
* GA4GH TRS Workflow Search
|
||||
`Pull Request 10158`_
|
||||
* Vue rewrite of the data-library-folder
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 9905`_
|
||||
* Improve workflow layout algorithm
|
||||
(thanks to `@hexylena <https://github.com/hexylena>`__).
|
||||
`Pull Request 10045`_
|
||||
|
||||
.. feature
|
||||
|
||||
* Added documentation for debugging Galaxy and unit/integration tests
|
||||
(thanks to `@kxk302 <https://github.com/kxk302>`__).
|
||||
`Pull Request 9664`_
|
||||
* Feature/persist rule builder collection in web storage
|
||||
(thanks to `@assuntad23 <https://github.com/assuntad23>`__).
|
||||
`Pull Request 9718`_
|
||||
* Higlass InteractiveTool update
|
||||
(thanks to `@astrovsky01 <https://github.com/astrovsky01>`__).
|
||||
`Pull Request 9805`_
|
||||
* Add allowed_cilogon list functionality (idphint short list)
|
||||
(thanks to `@juleengraham <https://github.com/juleengraham>`__).
|
||||
`Pull Request 9862`_
|
||||
* Add lastdb datatype for last tool (PR `#2749 <https://github.com/galaxyproject/galaxy/issues/2749>`__)
|
||||
(thanks to `@RomainDallet <https://github.com/RomainDallet>`__).
|
||||
`Pull Request 9872`_
|
||||
* Adding user id to key so savedRules are specific for users
|
||||
(thanks to `@assuntad23 <https://github.com/assuntad23>`__).
|
||||
`Pull Request 9882`_
|
||||
* Add BLASTDBv5 datatype (for blast >=2.8.1)
|
||||
(thanks to `@abretaud <https://github.com/abretaud>`__).
|
||||
`Pull Request 9939`_
|
||||
* Add galaxyp MVP visualization plugin
|
||||
(thanks to `@tmcgowan <https://github.com/tmcgowan>`__).
|
||||
`Pull Request 10136`_
|
||||
* Connect/disconnect multiple custos
|
||||
(thanks to `@juleengraham <https://github.com/juleengraham>`__).
|
||||
`Pull Request 10182`_
|
||||
* Add missing database indexes
|
||||
`Pull Request 10385`_
|
||||
.. enhancement_tag_viz
|
||||
|
||||
* Add build artifact destination for plugins
|
||||
`Pull Request 9754`_
|
||||
* Plugin watchBuilding, and fixes for several older visualization builds
|
||||
`Pull Request 10287`_
|
||||
.. enhancement_tag_datatypes
|
||||
|
||||
* Add VCF_BGZIP to VCF converter
|
||||
(thanks to `@almahmoud <https://github.com/almahmoud>`__).
|
||||
`Pull Request 7926`_
|
||||
* Add NcbiTaxonomySQlite class to describe NCBI Taxonomy SQLite databases
|
||||
(thanks to `@pvanheus <https://github.com/pvanheus>`__).
|
||||
`Pull Request 9712`_
|
||||
* Add Anndata peek capability
|
||||
(thanks to `@mtekman <https://github.com/mtekman>`__).
|
||||
`Pull Request 10013`_
|
||||
* Add "tgz" datatype to config sample file for toolfactory and any other tools generating gzipped tar files
|
||||
(thanks to `@fubar2 <https://github.com/fubar2>`__).
|
||||
`Pull Request 10080`_
|
||||
.. enhancement_tag_tools
|
||||
|
||||
* Citations overhaul
|
||||
`Pull Request 9757`_
|
||||
* Fix and simplify built-in trim tool
|
||||
(thanks to `@wm75 <https://github.com/wm75>`__).
|
||||
`Pull Request 10145`_
|
||||
* Allow unary plus and minus in filtering
|
||||
(thanks to `@wm75 <https://github.com/wm75>`__).
|
||||
`Pull Request 10154`_
|
||||
* Toolbox refactoring, styling, and a couple bugfixes
|
||||
`Pull Request 10170`_
|
||||
.. enhancement_tag_workflows
|
||||
|
||||
* Support for BioCompute Object Export
|
||||
(thanks to `@biocompute-objects <https://github.com/biocompute-objects>`__).
|
||||
`Pull Request 9077`_
|
||||
* Workflow reports: multiple argument & add single job parameter
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 9686`_
|
||||
* Allow composite and extra file uploads via data fetch API.
|
||||
`Pull Request 9860`_
|
||||
* Implement more Galaxy Markdown components.
|
||||
`Pull Request 9938`_
|
||||
* Rework client datatype handling logic for reuse
|
||||
`Pull Request 9955`_
|
||||
* Flush once for enqueue / workflow handler assignment
|
||||
`Pull Request 10019`_
|
||||
* Workflow list: Add published column, add sort bookmarked
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 10119`_
|
||||
* Add workflow invocation grabbing with db-skipped-lock
|
||||
`Pull Request 10177`_
|
||||
* Add user-is-owner context for display of published workflows.
|
||||
`Pull Request 10215`_
|
||||
* Allow execution of workflows for certain tool updates
|
||||
`Pull Request 10569`_
|
||||
.. enhancement_tag_ui
|
||||
|
||||
* Early 20.09 full client dependency update.
|
||||
`Pull Request 9739`_
|
||||
* Improve mocha test output for rule DSL specification tests.
|
||||
`Pull Request 9798`_
|
||||
* Change usage of whitelist/blacklist terms to allowlist/blocklist
|
||||
`Pull Request 9864`_
|
||||
* Allow option to remember the previously used IDP for login
|
||||
(thanks to `@juleengraham <https://github.com/juleengraham>`__).
|
||||
`Pull Request 10078`_
|
||||
* Infrastructure for writing to pluggable Galaxy file sources.
|
||||
`Pull Request 10152`_
|
||||
.. enhancement_tag_jobs
|
||||
|
||||
* Add support for cleaning up kubernetes jobs after a specified number of seconds since finish
|
||||
(thanks to `@nuwang <https://github.com/nuwang>`__).
|
||||
`Pull Request 8122`_
|
||||
* Port and Vuefy AWS estimate from EU
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 9621`_
|
||||
* View support for galaxy model, hdca.job_state_summary option
|
||||
`Pull Request 9713`_
|
||||
* Allow tool submission with DatasetCollectionElements / make build_for_rerun consumable by API
|
||||
`Pull Request 9802`_
|
||||
* Allow setting metadata_strategy per destination
|
||||
`Pull Request 9956`_
|
||||
* Flush once per mapped over execution
|
||||
`Pull Request 9985`_
|
||||
* Job cache improvements
|
||||
`Pull Request 10020`_
|
||||
* Edit post-job email to add history link and format text
|
||||
(thanks to `@astrovsky01 <https://github.com/astrovsky01>`__).
|
||||
`Pull Request 10133`_
|
||||
* Updated documentation to show how a job is de-queued and processed.
|
||||
(thanks to `@kxk302 <https://github.com/kxk302>`__).
|
||||
`Pull Request 10185`_
|
||||
* Allow CLI runner modules to be loaded from sys.path
|
||||
`Pull Request 10189`_
|
||||
* Make cached container resolver pick newest build
|
||||
(thanks to `@torfinnnome <https://github.com/torfinnnome>`__).
|
||||
`Pull Request 10242`_
|
||||
* Don't run local runner job processes in an unnecessary shell
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 10257`_
|
||||
* Improve kubernetes job selection
|
||||
(thanks to `@nuwang <https://github.com/nuwang>`__).
|
||||
`Pull Request 10407`_
|
||||
.. enhancement_tag_admin
|
||||
|
||||
* It docs additional info
|
||||
(thanks to `@astrovsky01 <https://github.com/astrovsky01>`__).
|
||||
`Pull Request 9650`_
|
||||
* GitLab error reporting - further features
|
||||
(thanks to `@selten <https://github.com/selten>`__).
|
||||
`Pull Request 9775`_
|
||||
* Improve support for readonly tool caches
|
||||
`Pull Request 10411`_
|
||||
.. enhancement
|
||||
|
||||
* assign discovered extension, dbkey and designation for assign_primary=true
|
||||
(thanks to `@bernt-matthias <https://github.com/bernt-matthias>`__).
|
||||
`Pull Request 9127`_
|
||||
* Add dataset deserializer for 'datatype'
|
||||
(thanks to `@simonbray <https://github.com/simonbray>`__).
|
||||
`Pull Request 9374`_
|
||||
* Add tests for admin interface jobs, dependencies, and containers sections
|
||||
`Pull Request 9618`_
|
||||
* Remove DO_NOT_TEST from config unit tests
|
||||
`Pull Request 9644`_
|
||||
* Framework for Browser Testing of Custom Configured Galaxy Instances
|
||||
`Pull Request 9652`_
|
||||
* Clear error message for wrong authenticator type
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 9670`_
|
||||
* add doc for discover_datasets sort_by
|
||||
(thanks to `@bernt-matthias <https://github.com/bernt-matthias>`__).
|
||||
`Pull Request 9674`_
|
||||
* Collection pagination api resource route
|
||||
`Pull Request 9682`_
|
||||
* xsd, docs, and test for sort_by (discover_datasets)
|
||||
(thanks to `@bernt-matthias <https://github.com/bernt-matthias>`__).
|
||||
`Pull Request 9684`_
|
||||
* Allow input element created by editable-text.js to change value on click/lose focus
|
||||
(thanks to `@lawrence14701 <https://github.com/lawrence14701>`__).
|
||||
`Pull Request 9703`_
|
||||
* Allow oidc login icons to be specified through backend_config xml
|
||||
(thanks to `@nuwang <https://github.com/nuwang>`__).
|
||||
`Pull Request 9704`_
|
||||
* Display msg history no items
|
||||
(thanks to `@lawrence14701 <https://github.com/lawrence14701>`__).
|
||||
`Pull Request 9706`_
|
||||
* Spinner in library folders
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 9717`_
|
||||
* Implement HDCA update_time
|
||||
`Pull Request 9722`_
|
||||
* Skip check for branch protection
|
||||
`Pull Request 9723`_
|
||||
* Upgrade to the newer nodejs lts (v10 -> v12; 12.16.3)
|
||||
`Pull Request 9725`_
|
||||
* Move containers test from selenium to selenium integration.
|
||||
`Pull Request 9728`_
|
||||
* Update to IT comment
|
||||
(thanks to `@astrovsky01 <https://github.com/astrovsky01>`__).
|
||||
`Pull Request 9735`_
|
||||
* Swap out node-sass for the new standard sass compiler
|
||||
`Pull Request 9737`_
|
||||
* doc: dynamic destinations better set the id in JobDestination
|
||||
(thanks to `@bernt-matthias <https://github.com/bernt-matthias>`__).
|
||||
`Pull Request 9742`_
|
||||
* Allow tool search on tool id and wildcard before search string
|
||||
(thanks to `@juleengraham <https://github.com/juleengraham>`__).
|
||||
`Pull Request 9744`_
|
||||
* linkify Data Libraries description and bugfix
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 9746`_
|
||||
* Improved dataset verification output
|
||||
(thanks to `@bernt-matthias <https://github.com/bernt-matthias>`__).
|
||||
`Pull Request 9771`_
|
||||
* Added config parameter for irods connection pool size.
|
||||
(thanks to `@kxk302 <https://github.com/kxk302>`__).
|
||||
`Pull Request 9774`_
|
||||
* Add selenium test for user toolbox filters.
|
||||
`Pull Request 9782`_
|
||||
* Minor improvements to API errors
|
||||
`Pull Request 9797`_
|
||||
* switch branch of IUC CI earlier in release process
|
||||
(thanks to `@bernt-matthias <https://github.com/bernt-matthias>`__).
|
||||
`Pull Request 9806`_
|
||||
* Don't use Backbone to define masthead elements.
|
||||
`Pull Request 9811`_
|
||||
* Add selenium test for user API keys
|
||||
`Pull Request 9820`_
|
||||
* More reactive, tested Masthead.
|
||||
`Pull Request 9822`_
|
||||
* i18n for tool page about email notification
|
||||
(thanks to `@shenweiyan <https://github.com/shenweiyan>`__).
|
||||
`Pull Request 9830`_
|
||||
* Add option to text asserts to specify number of occurrences
|
||||
(thanks to `@simonbray <https://github.com/simonbray>`__).
|
||||
`Pull Request 9831`_
|
||||
* History DBkey and refactor dataset state
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 9841`_
|
||||
* History Panel Tags&Annotation
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 9846`_
|
||||
* Add support for relative paths in dependency resolver mappings
|
||||
(thanks to `@rupertnash <https://github.com/rupertnash>`__).
|
||||
`Pull Request 9855`_
|
||||
* History structure
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 9858`_
|
||||
* Improved UploadModal state handling during initialization.
|
||||
`Pull Request 9869`_
|
||||
* Feature/9669 sort collection for paired collections
|
||||
(thanks to `@assuntad23 <https://github.com/assuntad23>`__).
|
||||
`Pull Request 9874`_
|
||||
* Full Python dependencies update
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 9912`_
|
||||
* Update AskOmics IT to askomics 4.0.0
|
||||
(thanks to `@xgaia <https://github.com/xgaia>`__).
|
||||
`Pull Request 9915`_
|
||||
* Documentation on Galaxy startup
|
||||
(thanks to `@kxk302 <https://github.com/kxk302>`__).
|
||||
`Pull Request 9918`_
|
||||
* Speed up output discovery
|
||||
`Pull Request 9926`_
|
||||
* Modify email address domain extraction
|
||||
`Pull Request 9949`_
|
||||
* Refactor toward real cohesion toward testing packages. (1/n)
|
||||
`Pull Request 9951`_
|
||||
* Stub unit tests for galaxy-web-stack.
|
||||
`Pull Request 9958`_
|
||||
* Progress toward proper packaging of galaxy-web-framework package.
|
||||
`Pull Request 9959`_
|
||||
* Decouple API and Selenium tests from galaxy-test-driver (and the whole app!)
|
||||
`Pull Request 9960`_
|
||||
* Added doc explaining what happens when you upload a file to Galaxy.
|
||||
(thanks to `@kxk302 <https://github.com/kxk302>`__).
|
||||
`Pull Request 9963`_
|
||||
* More packaging touches.
|
||||
`Pull Request 9964`_
|
||||
* Refactor more unit tests into the galaxy-data package.
|
||||
`Pull Request 9966`_
|
||||
* Revise workflow invocation status page
|
||||
`Pull Request 9978`_
|
||||
* Simplify workflow invocations grid, remove drop down, add workflow execution option
|
||||
`Pull Request 9986`_
|
||||
* Update Code of Conduct
|
||||
`Pull Request 9989`_
|
||||
* Move unit tests to more appropriate packages.
|
||||
`Pull Request 9993`_
|
||||
* Package rules DSL specification.
|
||||
`Pull Request 9995`_
|
||||
* Optimize iRODS ``_exists()`` method
|
||||
(thanks to `@kxk302 <https://github.com/kxk302>`__).
|
||||
`Pull Request 9998`_
|
||||
* Don't flush after each dataset creation in DistributedObjectStore
|
||||
`Pull Request 10008`_
|
||||
* Touch up of toolbox search adjustments and messages
|
||||
`Pull Request 10036`_
|
||||
* Rework galaxy.tool_util.verify.wait for reuse in Planemo.
|
||||
`Pull Request 10041`_
|
||||
* Add GALAXY_ALLOW_FUTURE_DATABASE option in migration check
|
||||
`Pull Request 10044`_
|
||||
* Upload tests to clarify behavior around handling files without trailing newlines.
|
||||
`Pull Request 10050`_
|
||||
* Fix Galaxy tool/workflow staging and refactor for reuse in Planemo.
|
||||
`Pull Request 10052`_
|
||||
* Update docs on from_work_dir and delta
|
||||
(thanks to `@pvanheus <https://github.com/pvanheus>`__).
|
||||
`Pull Request 10055`_
|
||||
* Update environment_modules_mapping.yml.sample
|
||||
`Pull Request 10074`_
|
||||
* Add generic CORS preflight options response
|
||||
`Pull Request 10077`_
|
||||
* Progressively render conditional as they are being displayed
|
||||
`Pull Request 10083`_
|
||||
* Selenium: Library Dataset Download Zip
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 10084`_
|
||||
* Selenium Delete Dataset from library folder
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 10090`_
|
||||
* Test import dataset from path
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 10102`_
|
||||
* Lib Folder pagination (backend)
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 10104`_
|
||||
* User self-delete
|
||||
(thanks to `@astrovsky01 <https://github.com/astrovsky01>`__).
|
||||
`Pull Request 10107`_
|
||||
* Add subworkflow_invocation_id to invocation step
|
||||
`Pull Request 10109`_
|
||||
* Selenium Library Subfolder
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 10110`_
|
||||
* expose dataset 'in use state' through api
|
||||
(thanks to `@scholtalbers <https://github.com/scholtalbers>`__).
|
||||
`Pull Request 10122`_
|
||||
* Jest-based client testing
|
||||
`Pull Request 10123`_
|
||||
* Copy to clipboard, instead of pop-up
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 10124`_
|
||||
* Open pages API a bit to allow anonymous users to view published pages
|
||||
`Pull Request 10129`_
|
||||
* More structured errors for tool validation problems
|
||||
`Pull Request 10146`_
|
||||
* Add hidden column, attach StoredWorkflow to subworkflows
|
||||
`Pull Request 10160`_
|
||||
* Use tool_enable_ngram_search by default, whitespace search fix
|
||||
`Pull Request 10175`_
|
||||
* Switch tool document cache to diskcache
|
||||
`Pull Request 10191`_
|
||||
* Force pagination on Valid Galaxy Tools -> Tools page
|
||||
`Pull Request 10195`_
|
||||
* Rebuild config for 20.09, including missing option in galaxy_options doc
|
||||
`Pull Request 10527`_
|
||||
* Allow specyfying tool tests we expect to fail
|
||||
`Pull Request 10548`_
|
||||
* Various fixes for conditional dependencies handling
|
||||
`Pull Request 10575`_
|
||||
* Fixes/enhancements to use client tool test configs in Ephemeris
|
||||
`Pull Request 10578`_
|
||||
* Mark test cases that use data tables or loc files
|
||||
`Pull Request 10602`_
|
||||
.. small_enhancement
|
||||
|
||||
* Porting Masthead to Vue.js
|
||||
(thanks to `@inkuzmin <https://github.com/inkuzmin>`__).
|
||||
`Pull Request 9071`_
|
||||
* Remove unused and deprecated parameters from kubernetes runner
|
||||
(thanks to `@nuwang <https://github.com/nuwang>`__).
|
||||
`Pull Request 9323`_
|
||||
* Add Vue components for Workflow Inputs and Outputs, reduce Workflow loading time
|
||||
`Pull Request 9574`_
|
||||
* Refactor helper functions
|
||||
(thanks to `@lawrence14701 <https://github.com/lawrence14701>`__).
|
||||
`Pull Request 9700`_
|
||||
* Modify loading of email white/blacklists
|
||||
`Pull Request 9793`_
|
||||
* Cleanup and refactoring client code around upload/data dialog
|
||||
`Pull Request 9827`_
|
||||
* Mount workflow nodes in v-for loop
|
||||
`Pull Request 9883`_
|
||||
* Fix DeprecationWarning: Flags not at the start of the expression
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 9899`_
|
||||
* Trim the inflector
|
||||
`Pull Request 9902`_
|
||||
* Fix name of container resolver method name.
|
||||
`Pull Request 9914`_
|
||||
* Python3 cleanup
|
||||
`Pull Request 9923`_
|
||||
* Small tweaks to packaging of unit test utilities.
|
||||
`Pull Request 9953`_
|
||||
* Small refactoring for plugin_config.
|
||||
`Pull Request 9982`_
|
||||
* Cleanup WorkflowRun.test.js with flush promises.
|
||||
`Pull Request 9984`_
|
||||
* Fix copy/paste in workflow editor
|
||||
`Pull Request 10056`_
|
||||
* Client error handling fixes, updates.
|
||||
`Pull Request 10082`_
|
||||
* Client structure refactoring for packaging
|
||||
`Pull Request 10086`_
|
||||
* Uniformly process config files
|
||||
`Pull Request 10172`_
|
||||
* javascript es6 arrow functions
|
||||
(thanks to `@juleengraham <https://github.com/juleengraham>`__).
|
||||
`Pull Request 10181`_
|
||||
* Abstraction for purging the dataset quota usage from a user.
|
||||
`Pull Request 10208`_
|
||||
* Improve job error logging
|
||||
`Pull Request 10226`_
|
||||
* Pass user to the ObjectStorePopulator
|
||||
`Pull Request 10231`_
|
||||
* mvpapp visualization fixes and refinement
|
||||
`Pull Request 10355`_
|
||||
* Move linting to GitHub action, fix linting
|
||||
`Pull Request 10615`_
|
||||
|
||||
|
||||
Fixes
|
||||
-------------------------------
|
||||
|
||||
.. major_bug
|
||||
|
||||
|
||||
.. bug_tag_viz
|
||||
|
||||
* Hyphyvision visualization dependency fix
|
||||
`Pull Request 10011`_
|
||||
* Bugfix: include an index link in visualization base
|
||||
`Pull Request 10391`_
|
||||
.. bug_tag_datatypes
|
||||
|
||||
* Use compression_utils to safely peek in compressed datasets
|
||||
(thanks to `@pvanheus <https://github.com/pvanheus>`__).
|
||||
`Pull Request 9990`_
|
||||
* fix OSError in fastq_to_fqtoc converter
|
||||
(thanks to `@bgruening <https://github.com/bgruening>`__).
|
||||
`Pull Request 10042`_
|
||||
* Don't display download link for optional, non-existant metadata files
|
||||
`Pull Request 10068`_
|
||||
* Fix determining 'int', 'float' column type in Tabular and BaseCSV
|
||||
(thanks to `@selten <https://github.com/selten>`__).
|
||||
`Pull Request 10155`_
|
||||
* Decrease pysam verbosity
|
||||
`Pull Request 10225`_
|
||||
* Remove references to missing types from sample config file
|
||||
`Pull Request 10269`_
|
||||
* Fix ``Wav`` datatype to inherit from ``Audio``
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 10312`_
|
||||
* Fix wiggle estimated_display_viewport
|
||||
`Pull Request 10333`_
|
||||
* AnnData Peek Fix
|
||||
(thanks to `@mtekman <https://github.com/mtekman>`__).
|
||||
`Pull Request 10555`_
|
||||
.. bug_tag_tools
|
||||
|
||||
* Allow submission of tools with unset hidden parameters
|
||||
(thanks to `@bernt-matthias <https://github.com/bernt-matthias>`__).
|
||||
`Pull Request 9656`_
|
||||
* Fix error in get_open_tempfile()
|
||||
`Pull Request 10060`_
|
||||
* Backport bugfix in `#10060 <https://github.com/galaxyproject/galaxy/issues/10060>`__ to 20.05
|
||||
`Pull Request 10138`_
|
||||
* Fix filtering.py failing all expressions
|
||||
(thanks to `@almahmoud <https://github.com/almahmoud>`__).
|
||||
`Pull Request 10266`_
|
||||
.. bug_tag_workflows
|
||||
|
||||
* Rev gxformat2 for a bunch of bug fixes.
|
||||
`Pull Request 10028`_
|
||||
* Fix running workflows with parameters restricted on connections...
|
||||
`Pull Request 10048`_
|
||||
* Count all terminal jobs when rendering job complete string
|
||||
`Pull Request 10089`_
|
||||
* Remove duplicates from tool recommendations
|
||||
(thanks to `@anuprulez <https://github.com/anuprulez>`__).
|
||||
`Pull Request 10094`_
|
||||
* Tensorflow update to support python 3.8
|
||||
`Pull Request 10096`_
|
||||
* Fix tool recommendation node injection
|
||||
`Pull Request 10097`_
|
||||
* Fix Workflow node insertion via recommendations
|
||||
(thanks to `@anuprulez <https://github.com/anuprulez>`__).
|
||||
`Pull Request 10103`_
|
||||
* Fix change datatype PJA not applied when loaded from server
|
||||
`Pull Request 10237`_
|
||||
* Fix db-skip-locked invocation grabbing for pool members
|
||||
`Pull Request 10371`_
|
||||
* Fix TRS search when Galaxy deployed behind a proxy.
|
||||
`Pull Request 10406`_
|
||||
* Fix wf step annotations dropped after rename.
|
||||
`Pull Request 10464`_
|
||||
* Fix workflow extraction if nested collection in input step
|
||||
`Pull Request 10560`_
|
||||
* Mark workflow as changed if tools were upgraded
|
||||
`Pull Request 10570`_
|
||||
* Fix workflow editor version switching
|
||||
`Pull Request 10597`_
|
||||
* Fix trs_id and trs_server query strings
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 10616`_
|
||||
* Fix Workflow node input terminal not updating
|
||||
`Pull Request 10626`_
|
||||
.. bug_tag_ui
|
||||
|
||||
* Tool recommendation node bug
|
||||
(thanks to `@juleengraham <https://github.com/juleengraham>`__).
|
||||
`Pull Request 9836`_
|
||||
* Fix history sharing link (ref. `#10040 <https://github.com/galaxyproject/galaxy/issues/10040>`__)
|
||||
`Pull Request 10112`_
|
||||
.. bug_tag_jobs
|
||||
|
||||
* fix history import and export for real user setups
|
||||
(thanks to `@bernt-matthias <https://github.com/bernt-matthias>`__).
|
||||
`Pull Request 9001`_
|
||||
* Rev pulsar-galaxy-lib for latest fixes.
|
||||
`Pull Request 9910`_
|
||||
* Fix MetadataFile handing with metadata_strategy: extended
|
||||
`Pull Request 9974`_
|
||||
* Fix metadata_source handling when dataset does not exist in object store
|
||||
`Pull Request 10059`_
|
||||
* Fix change_datatype PJA when dataset is not yet in object store
|
||||
`Pull Request 10087`_
|
||||
* Fix outputs_to_working_directory with extended metadata
|
||||
`Pull Request 10100`_
|
||||
* Don't fail to complete the job fail method if job outputs cannot be updated
|
||||
`Pull Request 10111`_
|
||||
* Fix for the hour value depicted as a float value in CPU and Job Runtime
|
||||
(thanks to `@npinter <https://github.com/npinter>`__).
|
||||
`Pull Request 10159`_
|
||||
* Restore the use of set_job_destination() in the Pulsar runner's queue_job() method
|
||||
`Pull Request 10255`_
|
||||
* Fix webless handler --attach-to-pool
|
||||
`Pull Request 10294`_
|
||||
* Ensure that kubernetes job ids are unique
|
||||
(thanks to `@nuwang <https://github.com/nuwang>`__).
|
||||
`Pull Request 10307`_
|
||||
* Prevent endless cleanup loops when duplicate job or kubernetes job not found
|
||||
(thanks to `@nuwang <https://github.com/nuwang>`__).
|
||||
`Pull Request 10308`_
|
||||
* enable validation of ITs
|
||||
`Pull Request 10341`_
|
||||
* Defer metadata strategy resolution in job wrapper
|
||||
`Pull Request 10367`_
|
||||
* Restrict kubernetes max job name length to 63 and shorten prefix
|
||||
(thanks to `@nuwang <https://github.com/nuwang>`__).
|
||||
`Pull Request 10416`_
|
||||
* Fixing bug in kubernetes runner's k8s_pod_retrials
|
||||
(thanks to `@almahmoud <https://github.com/almahmoud>`__).
|
||||
`Pull Request 10444`_
|
||||
* Move more non-dns compliant labels to annotations
|
||||
(thanks to `@nuwang <https://github.com/nuwang>`__).
|
||||
`Pull Request 10470`_
|
||||
* Fix ``maximum_workflow_jobs_per_scheduling_iteration`` and set 1000 as default value
|
||||
`Pull Request 10490`_
|
||||
* Fix get_output_path when HDA identity changes
|
||||
`Pull Request 10552`_
|
||||
* Don't pass resources as job params when reading job config as a dict
|
||||
`Pull Request 10561`_
|
||||
* Stop monitoring terminal Pulsar Kubernetes jobs
|
||||
`Pull Request 10572`_
|
||||
* Fix IntegrityError when flushing DC/DCE relationship
|
||||
`Pull Request 10606`_
|
||||
.. bug_tag_admin
|
||||
|
||||
* Fix admin data_types_list bug
|
||||
(thanks to `@cat-bro <https://github.com/cat-bro>`__).
|
||||
`Pull Request 10148`_
|
||||
* Restore welcome html link for non-uwsgi setups
|
||||
`Pull Request 10623`_
|
||||
.. bug
|
||||
|
||||
* Python37 lock fix
|
||||
`Pull Request 9642`_
|
||||
* Fix history panel collapse
|
||||
(thanks to `@juleengraham <https://github.com/juleengraham>`__).
|
||||
`Pull Request 9688`_
|
||||
* Improve tool recommendations
|
||||
(thanks to `@anuprulez <https://github.com/anuprulez>`__).
|
||||
`Pull Request 9708`_
|
||||
* Various spelling and log message error fixes.
|
||||
`Pull Request 9721`_
|
||||
* Minor fixes to docs on how to build a job runner
|
||||
(thanks to `@nuwang <https://github.com/nuwang>`__).
|
||||
`Pull Request 9749`_
|
||||
* Client watch fix -- force everything to use modern chokidar
|
||||
`Pull Request 9755`_
|
||||
* Handled unexpected exceptions in iRods objectstore
|
||||
(thanks to `@kxk302 <https://github.com/kxk302>`__).
|
||||
`Pull Request 9765`_
|
||||
* Remove unused code and other fixes
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 9766`_
|
||||
* Added the missing return value. Added try/catch for another irods call.
|
||||
(thanks to `@kxk302 <https://github.com/kxk302>`__).
|
||||
`Pull Request 9768`_
|
||||
* Hide masthead dropdown on iframe click
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 9789`_
|
||||
* Fix refactoring in linkifing libraries description
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 9790`_
|
||||
* Babel peer dependency fix,
|
||||
`Pull Request 9795`_
|
||||
* InteractiveTool unit test fix
|
||||
`Pull Request 9800`_
|
||||
* Make AuthN attribute optional for Azure and GCP.
|
||||
`Pull Request 9801`_
|
||||
* Fix bug: add self arg to method
|
||||
`Pull Request 9808`_
|
||||
* Fix conditional conda activate syntax in job script
|
||||
(thanks to `@brinkmanlab <https://github.com/brinkmanlab>`__).
|
||||
`Pull Request 9832`_
|
||||
* Fix line-height property for upload button in tool panel
|
||||
`Pull Request 9845`_
|
||||
* hide expression tools
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 9859`_
|
||||
* Added missing dev flag to hot module reload script, sourcemaps work now
|
||||
`Pull Request 9891`_
|
||||
* Typo in the uWSGI default umask description
|
||||
(thanks to `@gmauro <https://github.com/gmauro>`__).
|
||||
`Pull Request 9909`_
|
||||
* Do not automatically overwrite the output labels for subworkflows
|
||||
`Pull Request 9917`_
|
||||
* Fix issues reported by flake8-bugbear and W504 errors 1/N
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 9943`_
|
||||
* Using context manager for irods session object
|
||||
(thanks to `@kxk302 <https://github.com/kxk302>`__).
|
||||
`Pull Request 9944`_
|
||||
* Strip leading whitespace before calling urlparse
|
||||
`Pull Request 9947`_
|
||||
* Fixes to package dependency declarations.
|
||||
`Pull Request 9950`_
|
||||
* Various small fixes for galaxy packages.
|
||||
`Pull Request 9952`_
|
||||
* actually `set -e` for non-legacy tools
|
||||
(thanks to `@bernt-matthias <https://github.com/bernt-matthias>`__).
|
||||
`Pull Request 9962`_
|
||||
* Fix workflow run default icon
|
||||
`Pull Request 9971`_
|
||||
* Remove unnecessary log statements for number of connections
|
||||
(thanks to `@kxk302 <https://github.com/kxk302>`__).
|
||||
`Pull Request 9975`_
|
||||
* Use optimized path of setting dataset size during output discovery
|
||||
`Pull Request 9980`_
|
||||
* Cookie names to work with PR `#9921 <https://github.com/galaxyproject/galaxy/issues/9921>`__ and py3 Exception printing
|
||||
(thanks to `@almahmoud <https://github.com/almahmoud>`__).
|
||||
`Pull Request 9991`_
|
||||
* Tweak requirements for recent changes to package structure.
|
||||
`Pull Request 9992`_
|
||||
* Properly update active version in workflow attribute form
|
||||
`Pull Request 10009`_
|
||||
* Fix pip error around markdown tables.
|
||||
`Pull Request 10014`_
|
||||
* Pass stdin to hg clone to fix planemo tests
|
||||
`Pull Request 10018`_
|
||||
* Mulled packaging dependency fixes
|
||||
`Pull Request 10025`_
|
||||
* Fix reports webapp template resolution
|
||||
`Pull Request 10037`_
|
||||
* Encoding issue fix for hmac_new
|
||||
`Pull Request 10047`_
|
||||
* add missing $ in docs
|
||||
(thanks to `@bernt-matthias <https://github.com/bernt-matthias>`__).
|
||||
`Pull Request 10057`_
|
||||
* Fix non-unique entries in tool search index
|
||||
`Pull Request 10061`_
|
||||
* Restore preview rendering of bam files
|
||||
`Pull Request 10067`_
|
||||
* Allow numbers as filenames while adding datasets to library folder
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 10070`_
|
||||
* Fix library zip download
|
||||
`Pull Request 10072`_
|
||||
* fix masthead dropdown
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 10098`_
|
||||
* Handle python2-related syntax errors in Cheetah code
|
||||
`Pull Request 10099`_
|
||||
* Filter pages of deleted users from the published list.
|
||||
`Pull Request 10106`_
|
||||
* Update toolshed/ie js dist locations
|
||||
`Pull Request 10143`_
|
||||
* Pin latex-to-unicode js module
|
||||
`Pull Request 10157`_
|
||||
* Make visualization unit tests independent
|
||||
`Pull Request 10162`_
|
||||
* Keycloak/custos tweaks and cleanup
|
||||
`Pull Request 10168`_
|
||||
* Don't include hidden tools in tool search index
|
||||
`Pull Request 10173`_
|
||||
* Send activation email upon custos account creation
|
||||
(thanks to `@juleengraham <https://github.com/juleengraham>`__).
|
||||
`Pull Request 10174`_
|
||||
* Fix ToolValidator get_list_of_copied_sample_files
|
||||
`Pull Request 10183`_
|
||||
* Bump http-proxy from 1.17.0 to 1.18.1 in /lib/galaxy/web/proxy/js
|
||||
(thanks to `@galaxyproject <https://github.com/galaxyproject>`__).
|
||||
`Pull Request 10190`_
|
||||
* Unicodify binary strings in Tool Shed alert emails
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 10196`_
|
||||
* use GalaxyTagHandlerSession for data library uploads
|
||||
(thanks to `@scholtalbers <https://github.com/scholtalbers>`__).
|
||||
`Pull Request 10197`_
|
||||
* Display proper clientside error
|
||||
(thanks to `@juleengraham <https://github.com/juleengraham>`__).
|
||||
`Pull Request 10199`_
|
||||
* Add pwd when overriding tool_config_file in run.sh
|
||||
`Pull Request 10200`_
|
||||
* If a config file is not found, try resolving w.r.t. root
|
||||
`Pull Request 10201`_
|
||||
* Use pagination on most tool shed pages
|
||||
`Pull Request 10207`_
|
||||
* Remove exec permissions from tools/__init__.py
|
||||
`Pull Request 10213`_
|
||||
* Strip deprecated dir from all paths in comma-separated option values
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 10220`_
|
||||
* Fix flake8 issues in dev
|
||||
`Pull Request 10234`_
|
||||
* Logout fix and refactoring
|
||||
`Pull Request 10248`_
|
||||
* Catch all possible repo install errors
|
||||
`Pull Request 10250`_
|
||||
* Include an upgrade warning for 20.05 regarding the drop of the blue symlink in static
|
||||
`Pull Request 10256`_
|
||||
* Persist tool_cache_data_dir tag if specified
|
||||
`Pull Request 10281`_
|
||||
* Bump tensorflow from 2.3.0 to 2.3.1 in /lib/galaxy/dependencies
|
||||
(thanks to `@galaxyproject <https://github.com/galaxyproject>`__).
|
||||
`Pull Request 10300`_
|
||||
* Fix container resolution when requirement version is not specified
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 10305`_
|
||||
* Fix tool search to not display 'no results' prior to result return
|
||||
`Pull Request 10317`_
|
||||
* Respect ``use_shared_home="false"`` when running tools in container
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 10321`_
|
||||
* Fix double masthead in some spaces
|
||||
`Pull Request 10329`_
|
||||
* Fix composite data download from collection
|
||||
`Pull Request 10330`_
|
||||
* Handle resend_activation_email gracefully without session
|
||||
`Pull Request 10331`_
|
||||
* Strip trailing ``/`` from tool_id for data source redirects
|
||||
`Pull Request 10332`_
|
||||
* Allow 'planemo run' to stage in existing datasets without reuploading
|
||||
(thanks to `@simonbray <https://github.com/simonbray>`__).
|
||||
`Pull Request 10335`_
|
||||
* Pin pytest < 6.1
|
||||
`Pull Request 10337`_
|
||||
* Fix 'Newer Version Available' tag in admin tool management section
|
||||
(thanks to `@cat-bro <https://github.com/cat-bro>`__).
|
||||
`Pull Request 10339`_
|
||||
* Use block elements for labels to handle wrapping indentation
|
||||
`Pull Request 10342`_
|
||||
* Add missing index migrations
|
||||
`Pull Request 10344`_
|
||||
* Bugfix: chrome forgets scroll offset upon show/hide cycle of GTN in Galaxy webhook
|
||||
(thanks to `@hexylena <https://github.com/hexylena>`__).
|
||||
`Pull Request 10362`_
|
||||
* Allow GEDAs to respond to Access-Control-Request-*
|
||||
`Pull Request 10384`_
|
||||
* Fix regex replacement wrongly appearing in rule builder
|
||||
`Pull Request 10390`_
|
||||
* add recurse attribute for discover_datasets
|
||||
(thanks to `@bernt-matthias <https://github.com/bernt-matthias>`__).
|
||||
`Pull Request 10394`_
|
||||
* Try case-insensitive match on email also when it's lowercase
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 10401`_
|
||||
* Python 3 fix and client build fix for the proxy
|
||||
(thanks to `@bgruening <https://github.com/bgruening>`__).
|
||||
`Pull Request 10403`_
|
||||
* Rework new collection order testing in 20.09.
|
||||
`Pull Request 10434`_
|
||||
* backport `#10365 <https://github.com/galaxyproject/galaxy/issues/10365>`__: add test for data_column parameter referring to non-tabular data (bed) and fix bug
|
||||
(thanks to `@bernt-matthias <https://github.com/bernt-matthias>`__).
|
||||
`Pull Request 10438`_
|
||||
* Change response body from str to bytes
|
||||
(thanks to `@qiagu <https://github.com/qiagu>`__).
|
||||
`Pull Request 10441`_
|
||||
* Add ``*requirements.txt`` files to source packages
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 10447`_
|
||||
* Fix mulled-search to not assume conda APIs from vanilla environments
|
||||
`Pull Request 10465`_
|
||||
* Fix trailing commas in history dataset search
|
||||
(thanks to `@cat-bro <https://github.com/cat-bro>`__).
|
||||
`Pull Request 10518`_
|
||||
* Allow username or email for authenticate API identity
|
||||
`Pull Request 10521`_
|
||||
* Improved error handling for data_fetch API.
|
||||
`Pull Request 10543`_
|
||||
* Fix composite dataset listing in upload modal
|
||||
`Pull Request 10551`_
|
||||
* allow adding dataset to library from history by default
|
||||
(thanks to `@OlegZharkov <https://github.com/OlegZharkov>`__).
|
||||
`Pull Request 10556`_
|
||||
* Make package names lowercase for mulled dependency resolving
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 10559`_
|
||||
* Fix listing idps
|
||||
`Pull Request 10567`_
|
||||
* Fix progress bar floating text
|
||||
`Pull Request 10579`_
|
||||
* bugfix: external login component fetching idps when it should not
|
||||
`Pull Request 10581`_
|
||||
* Resolve LDDA <-> Library Dataset circular dependency
|
||||
`Pull Request 10582`_
|
||||
* Fix file_path bug; change default assignment of file_path and id/uuid
|
||||
`Pull Request 10617`_
|
||||
|
||||
.. include:: 20.09_prs.rst
|
||||
|
||||
@@ -3,8 +3,85 @@
|
||||
September 2020 Galaxy Release (v 20.09)
|
||||
===========================================================
|
||||
|
||||
.. include:: _header.rst
|
||||
|
||||
Schedule
|
||||
Highlights
|
||||
===========================================================
|
||||
* Planned Freeze Date: 2020-09-07
|
||||
* Planned Release Date: 2020-09-28
|
||||
|
||||
**Plugin framework for uploading datasets**
|
||||
Galaxy administrators can now configure different sources
|
||||
from which users may upload files. These include global or
|
||||
user-specifc webdav servers, dropbox accounts as well as
|
||||
FTP and regular filesystem locations. Developers can add
|
||||
new types of sources by adding `PyFileSystem2 <https://docs.pyfilesystem.org/en/latest/introduction.html>`__ compatible
|
||||
plugins. (`Pull Request 9888`_)
|
||||
|
||||
**Workflow import from GA4GH TRS servers**
|
||||
Galaxy can now search and import workflows from GA4GH TRS servers,
|
||||
such as `Dockstore <https://dockstore.org/>`__ and `WorkflowHub <https://workflowhub.eu/>`__.
|
||||
We hope that sharing workflows on these platforms will facilitate re-use and collaboration.
|
||||
(`Pull Request 9999`_, `Pull Request 10158`_)
|
||||
|
||||
**Simplified workflow submission form**
|
||||
Galaxy now presents a simpler and cleaner interface for submitting workflows
|
||||
that focuses on the parameters to set and datasets to choose.
|
||||
(`Pull Request 9151`).
|
||||
|
||||
**Accelerate batch job creation and workflow step scheduling**
|
||||
Galaxy now batches database interactions for the creation of batch jobs.
|
||||
For large batches of jobs this can speed up job creation by 100 fold or more.
|
||||
(`Pull Request 9926`_, `Pull Request 9980`_, `Pull Request 9985`_, `Pull Request 10008`_, `Pull Request 10019`_)
|
||||
|
||||
Also check out the `20.09 user release notes <20.09_announce_user.html>`__
|
||||
|
||||
Configuration Changes
|
||||
=====================
|
||||
|
||||
The following configuration options have been changed
|
||||
|
||||
**config/tool_shed.yml.sample:**
|
||||
|
||||
- uwsgi.static-safe has changed from ``client/galaxy/images`` to ``client/src/assets``
|
||||
|
||||
**config/galaxy.yml.sample:**
|
||||
|
||||
- uwsgi.static-safe has changed from ``client/galaxy/images`` to ``client/src/assets``
|
||||
|
||||
**config/reports.yml.sample:**
|
||||
|
||||
- uwsgi.static-safe has changed from ``client/galaxy/images`` to ``client/src/assets``
|
||||
|
||||
New Configuration Files
|
||||
-----------------------
|
||||
|
||||
The following files are new, or recently converted to yaml
|
||||
|
||||
- ``config/trs_servers_conf.yml.sample``
|
||||
- ``config/build_mulled_singularity_mapping_file.yml.sample``
|
||||
- ``config/singularity_mapping.yml.sample``
|
||||
|
||||
|
||||
Get Galaxy
|
||||
==========
|
||||
|
||||
The code lives at `GitHub <https://github.com/galaxyproject/galaxy>`__ and you should have `Git <https://git-scm.com/>`__ to obtain it.
|
||||
|
||||
To get a new Galaxy repository run:
|
||||
.. code-block:: shell
|
||||
|
||||
$ git clone -b release_20.09 https://github.com/galaxyproject/galaxy.git
|
||||
|
||||
To update an existing Galaxy repository run:
|
||||
.. code-block:: shell
|
||||
|
||||
$ git fetch origin && git checkout release_20.09 && git pull --ff-only origin release_20.09
|
||||
|
||||
See the `community hub <https://galaxyproject.org/develop/source-code/>`__ for additional details regarding the source code locations.
|
||||
|
||||
Release Notes
|
||||
===========================================================
|
||||
|
||||
.. include:: 20.09.rst
|
||||
:start-after: announce_start
|
||||
|
||||
.. include:: _thanks.rst
|
||||
|
||||
@@ -0,0 +1,195 @@
|
||||
|
||||
===========================================================
|
||||
September 2020 Galaxy Release (v 20.09)
|
||||
===========================================================
|
||||
|
||||
.. include:: _header.rst
|
||||
|
||||
Highlights
|
||||
===========================================================
|
||||
|
||||
Pluggable Upload Components - Dropbox & WebDav
|
||||
----------------------------------------------
|
||||
|
||||
`@jmchilton <https://github.com/jmchilton>`__ has written a new pluggable interface for upload sources. He has initially added two new backends, you can now import data from Dropbox and any WebDav servers you might have access to. This work also makes it easier for developers to add support for other, new personal data sources in the future.
|
||||
|
||||
An example of a Dropbox account:
|
||||
|
||||
.. figure:: images/20.09-upload-dropbox.png
|
||||
:alt: Screenshot of Dropbox with a "bams" folder and several test files
|
||||
|
||||
There will be a new button for "Choose Remote files", when sources are configured, and then you will be able to see and search across all of the remote data locations to which you might have access.
|
||||
|
||||
.. figure:: images/20.09-upload-search.png
|
||||
:alt: Search across sources. A modal dialog showing a new "Dropbox" folder amongst "FTP Directory" and library location.
|
||||
|
||||
You will be able to see and load your files easily in Galaxy!
|
||||
|
||||
.. figure:: images/20.09-upload-dropbox-gx.png
|
||||
:alt: Screenshot of the same files from the Dropbox screenshot, accessible in Galaxy.
|
||||
|
||||
The admin will need to configure this feature, and then you will need to provide your credentials for these services in Galaxy's user preferences, if you want to use them. Ask you admin!
|
||||
|
||||
|
||||
GTN In Galaxy
|
||||
-------------
|
||||
|
||||
During the BCC2020 CoFest, `@hexylena <https://github.com/hexylena>`__ and `@shiltemann <https://github.com/shiltemann>`__ worked together to add support for accessing `Galaxy Training Network <https://training.galaxyproject.org>`__ tutorials from within Galaxy. The graduation cap icon will activate the interface.
|
||||
|
||||
For updated tutorials, tools will be highlighted as blue buttons. When clicked, these buttons will hide the GTN and take you directly to the correct version of the correct tool within the Galaxy interface. No more time spent figuring out which "cut" tool the tutorial author meant! And when you're ready, you can easily jump back to the training materials.
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<video controls autoplay loop muted width="100%">
|
||||
<source src="../_static/20.09-gtn-in-galaxy.mp4" type="video/mp4">
|
||||
</video>
|
||||
|
||||
Thanks `@pvanheus <https://github.com/pvanheus>`__ for the video of it in action!
|
||||
|
||||
Upload Directly from the Tool From
|
||||
----------------------------------
|
||||
|
||||
Did you ever start configuring a tool but forgot to upload your datasets first? And had to start over? Now you can upload datasets directly in the tool form thanks to `@jmchilton <https://github.com/jmchilton>`__. `Pull Request 9809`_
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<video controls autoplay loop muted width="100%">
|
||||
<source src="../_static/20.09-upload-form.mp4" type="video/mp4">
|
||||
</video>
|
||||
|
||||
|
||||
Improved Workflow Layout Algorithm
|
||||
----------------------------------
|
||||
|
||||
The old automatic workflow layout algorithm liked to hide the flow of data within your workflow
|
||||
|
||||
.. figure:: images/20.09-wf-before.png
|
||||
:alt: Screenshot of a large workflow in Galaxy. Many connections go behind tools and are hard to follow.
|
||||
|
||||
|
||||
So we have replaced the layout algorithm with a newer one which should make the flow of data within your workflows easier to understand. You will still probably want to make manual adjustments after the automatic layout, but hopefully this will save you some time.
|
||||
|
||||
|
||||
.. figure:: images/20.09-wf-after.png
|
||||
:alt: Screenshot of a large workflow in Galaxy. Many connections go behind tools and are hard to follow.
|
||||
|
||||
Workflow Reporting Improvements
|
||||
-------------------------------
|
||||
|
||||
When one or more workflows are submitted, the status page reporting on those workflow(s) and their reports has been improved!
|
||||
|
||||
.. figure:: images/20.09-wf-report-list.png
|
||||
:alt: Improved workflow report listing showing a workflow generating 4 histories, with individual reports. `Pull Request 9978`_
|
||||
|
||||
Several new functions have been added to the Workflow Report syntax, which you can use in your reports. Thanks `@OlegZharkov <https://github.com/OlegZharkov>`__! `Pull Request 9938`_
|
||||
|
||||
* ``invocation-time`` - The iso time of the workflow invocation time.
|
||||
* ``generate-time`` - The iso time of the time of generation of the Markdown.
|
||||
* ``generate-galaxy-version`` - The Galaxy MAJOR_VERSION at the time of generation of the Markdown.
|
||||
* ``dataset-type`` - The ext/format/datatype of the target dataset.
|
||||
* ``dataset-name`` - The name of the target dataset.
|
||||
|
||||
You can self-delete your account
|
||||
--------------------------------
|
||||
|
||||
In (hopefully) rare cases, you might want to close your account and delete the associated data. `@astrovsky01 <https://github.com/astrovsky01>`__ has implemented user self-deletion, so you no longer need to request an admin to do this for you and wait for their response. `Pull Request 10107`_
|
||||
|
||||
|
||||
New Visualizations
|
||||
===========================================================
|
||||
|
||||
.. visualizations
|
||||
|
||||
GalaxyP MVP visualization plugin (thanks to `@tmcgowan <https://github.com/tmcgowan>`__). `Pull Request 10136`_
|
||||
|
||||
.. figure:: images/20.09-mvp.png
|
||||
:alt: Screenshot of the MVP visualisation. Described below.
|
||||
|
||||
From their associated paper:
|
||||
|
||||
[The MVP App] displays this example data where the list of variant peptides
|
||||
are shown in the Peptide Overview window (A). One of these peptides
|
||||
(sequence DGDLENPVLYSGAVK) has been selected in this list, and the button
|
||||
“PSMs for Selected Peptides” clicked to display the 2 PSMs that matched to
|
||||
this sequence, along with associated scoring metrics (B). Double-clicking
|
||||
on one of these PSMs opens the Lorikeet MS/MS viewer (C). Lorikeet [29]
|
||||
renders MS/MS spectra, providing a visualization of the annotated spectra
|
||||
that led to a PSM using the upstream sequence database searching software.
|
||||
C shows an example PSM, where the blue- and red-colored m/z peak
|
||||
values correspond to amino acid fragments that would be predicted to derive
|
||||
from the peptide sequence identified by this PSM
|
||||
|
||||
New Datatypes
|
||||
===========================================================
|
||||
|
||||
Several community members and committers (`@stevecassidy <https://github.com/stevecassidy>`__, `@hexylena <https://github.com/hexylena>`__, `@anuprulez <https://github.com/anuprulez>`__, and `@bgruening <https://github.com/bgruening>`__, `@mvdbeek <https://github.com/mvdbeek>`__) worked together from 2017 on, to add datatypes for Audio & Video datatypes. This PR is now merged and available in Galaxies everywhere. This additionally includes a specific visualisation for these files allowing you to view the audio or video media directly in Galaxy. `Pull Request 4949`_
|
||||
|
||||
.. figure:: images/20.09-video.png
|
||||
:alt: Screenshot of the video visualisation plugin activated in Galaxy with a paused video displayed in the main panel.
|
||||
|
||||
Support for ``mkv``, ``mp4``, ``flv``, ``mpg`` video containers, as well as ``mp3``, ``wav``, ``TextGrid``, and ``BPF`` audio formats is included.
|
||||
|
||||
.. datatypes
|
||||
* Add VCF_BGZIP to VCF converter
|
||||
(thanks to `@almahmoud <https://github.com/almahmoud>`__).
|
||||
`Pull Request 7926`_
|
||||
* Add NcbiTaxonomySQlite class to describe NCBI Taxonomy SQLite databases
|
||||
(thanks to `@pvanheus <https://github.com/pvanheus>`__).
|
||||
`Pull Request 9712`_
|
||||
* Add lastdb datatype for last tool (PR `#2749 <https://github.com/galaxyproject/galaxy/issues/2749>`__)
|
||||
(thanks to `@RomainDallet <https://github.com/RomainDallet>`__).
|
||||
`Pull Request 9872`_
|
||||
* Add BLASTDBv5 datatype (for blast >=2.8.1)
|
||||
(thanks to `@abretaud <https://github.com/abretaud>`__).
|
||||
`Pull Request 9939`_
|
||||
* Use compression_utils to safely peek in compressed datasets
|
||||
(thanks to `@pvanheus <https://github.com/pvanheus>`__).
|
||||
`Pull Request 9990`_
|
||||
* Add Anndata peek capability
|
||||
(thanks to `@mtekman <https://github.com/mtekman>`__).
|
||||
`Pull Request 10013`_, `Pull Request 10555`_
|
||||
* Fix OSError in fastq_to_fqtoc converter
|
||||
(thanks to `@bgruening <https://github.com/bgruening>`__).
|
||||
`Pull Request 10042`_
|
||||
* Don't display download link for optional, non-existant metadata files
|
||||
`Pull Request 10068`_
|
||||
* Add "tgz" datatype to config sample file for toolfactory and any other tools generating gzipped tar files
|
||||
(thanks to `@fubar2 <https://github.com/fubar2>`__).
|
||||
`Pull Request 10080`_
|
||||
* Fix determining 'int', 'float' column type in Tabular
|
||||
(thanks to `@selten <https://github.com/selten>`__).
|
||||
`Pull Request 10155`_
|
||||
* Decrease pysam verbosity
|
||||
`Pull Request 10225`_
|
||||
* Remove references to missing types from sample config file
|
||||
`Pull Request 10269`_
|
||||
* Fix tuple assignment (fixes anndata, scanpy tool tests)
|
||||
`Pull Request 10293`_
|
||||
* Fix ``Wav`` datatype to inherit from ``Audio``
|
||||
(thanks to `@nsoranzo <https://github.com/nsoranzo>`__).
|
||||
`Pull Request 10312`_
|
||||
* Fix wiggle estimated_display_viewport
|
||||
`Pull Request 10333`_
|
||||
|
||||
Builtin Tool Updates
|
||||
===========================================================
|
||||
|
||||
.. tools
|
||||
* Fix and simplify built-in trim tool
|
||||
(thanks to `@wm75 <https://github.com/wm75>`__).
|
||||
`Pull Request 10145`_
|
||||
* Allow unary plus and minus in filtering
|
||||
(thanks to `@wm75 <https://github.com/wm75>`__).
|
||||
`Pull Request 10154`_
|
||||
* Fix filtering.py failing all expressions
|
||||
(thanks to `@almahmoud <https://github.com/almahmoud>`__).
|
||||
`Pull Request 10266`_
|
||||
|
||||
Release Notes
|
||||
===========================================================
|
||||
|
||||
Please see the `full release notes <20.09_announce.html>`_ for more details.
|
||||
|
||||
.. include:: 20.09_prs.rst
|
||||
|
||||
.. include:: _thanks.rst
|
||||
@@ -0,0 +1,373 @@
|
||||
|
||||
.. github_links
|
||||
.. _Pull Request 4949: https://github.com/galaxyproject/galaxy/pull/4949
|
||||
.. _Pull Request 7926: https://github.com/galaxyproject/galaxy/pull/7926
|
||||
.. _Pull Request 8122: https://github.com/galaxyproject/galaxy/pull/8122
|
||||
.. _Pull Request 9001: https://github.com/galaxyproject/galaxy/pull/9001
|
||||
.. _Pull Request 9071: https://github.com/galaxyproject/galaxy/pull/9071
|
||||
.. _Pull Request 9077: https://github.com/galaxyproject/galaxy/pull/9077
|
||||
.. _Pull Request 9127: https://github.com/galaxyproject/galaxy/pull/9127
|
||||
.. _Pull Request 9151: https://github.com/galaxyproject/galaxy/pull/9151
|
||||
.. _Pull Request 9323: https://github.com/galaxyproject/galaxy/pull/9323
|
||||
.. _Pull Request 9374: https://github.com/galaxyproject/galaxy/pull/9374
|
||||
.. _Pull Request 9574: https://github.com/galaxyproject/galaxy/pull/9574
|
||||
.. _Pull Request 9618: https://github.com/galaxyproject/galaxy/pull/9618
|
||||
.. _Pull Request 9621: https://github.com/galaxyproject/galaxy/pull/9621
|
||||
.. _Pull Request 9638: https://github.com/galaxyproject/galaxy/pull/9638
|
||||
.. _Pull Request 9642: https://github.com/galaxyproject/galaxy/pull/9642
|
||||
.. _Pull Request 9644: https://github.com/galaxyproject/galaxy/pull/9644
|
||||
.. _Pull Request 9650: https://github.com/galaxyproject/galaxy/pull/9650
|
||||
.. _Pull Request 9652: https://github.com/galaxyproject/galaxy/pull/9652
|
||||
.. _Pull Request 9656: https://github.com/galaxyproject/galaxy/pull/9656
|
||||
.. _Pull Request 9664: https://github.com/galaxyproject/galaxy/pull/9664
|
||||
.. _Pull Request 9670: https://github.com/galaxyproject/galaxy/pull/9670
|
||||
.. _Pull Request 9674: https://github.com/galaxyproject/galaxy/pull/9674
|
||||
.. _Pull Request 9682: https://github.com/galaxyproject/galaxy/pull/9682
|
||||
.. _Pull Request 9684: https://github.com/galaxyproject/galaxy/pull/9684
|
||||
.. _Pull Request 9686: https://github.com/galaxyproject/galaxy/pull/9686
|
||||
.. _Pull Request 9688: https://github.com/galaxyproject/galaxy/pull/9688
|
||||
.. _Pull Request 9700: https://github.com/galaxyproject/galaxy/pull/9700
|
||||
.. _Pull Request 9703: https://github.com/galaxyproject/galaxy/pull/9703
|
||||
.. _Pull Request 9704: https://github.com/galaxyproject/galaxy/pull/9704
|
||||
.. _Pull Request 9706: https://github.com/galaxyproject/galaxy/pull/9706
|
||||
.. _Pull Request 9708: https://github.com/galaxyproject/galaxy/pull/9708
|
||||
.. _Pull Request 9712: https://github.com/galaxyproject/galaxy/pull/9712
|
||||
.. _Pull Request 9713: https://github.com/galaxyproject/galaxy/pull/9713
|
||||
.. _Pull Request 9717: https://github.com/galaxyproject/galaxy/pull/9717
|
||||
.. _Pull Request 9718: https://github.com/galaxyproject/galaxy/pull/9718
|
||||
.. _Pull Request 9720: https://github.com/galaxyproject/galaxy/pull/9720
|
||||
.. _Pull Request 9721: https://github.com/galaxyproject/galaxy/pull/9721
|
||||
.. _Pull Request 9722: https://github.com/galaxyproject/galaxy/pull/9722
|
||||
.. _Pull Request 9723: https://github.com/galaxyproject/galaxy/pull/9723
|
||||
.. _Pull Request 9725: https://github.com/galaxyproject/galaxy/pull/9725
|
||||
.. _Pull Request 9728: https://github.com/galaxyproject/galaxy/pull/9728
|
||||
.. _Pull Request 9735: https://github.com/galaxyproject/galaxy/pull/9735
|
||||
.. _Pull Request 9737: https://github.com/galaxyproject/galaxy/pull/9737
|
||||
.. _Pull Request 9739: https://github.com/galaxyproject/galaxy/pull/9739
|
||||
.. _Pull Request 9742: https://github.com/galaxyproject/galaxy/pull/9742
|
||||
.. _Pull Request 9744: https://github.com/galaxyproject/galaxy/pull/9744
|
||||
.. _Pull Request 9746: https://github.com/galaxyproject/galaxy/pull/9746
|
||||
.. _Pull Request 9749: https://github.com/galaxyproject/galaxy/pull/9749
|
||||
.. _Pull Request 9754: https://github.com/galaxyproject/galaxy/pull/9754
|
||||
.. _Pull Request 9755: https://github.com/galaxyproject/galaxy/pull/9755
|
||||
.. _Pull Request 9757: https://github.com/galaxyproject/galaxy/pull/9757
|
||||
.. _Pull Request 9765: https://github.com/galaxyproject/galaxy/pull/9765
|
||||
.. _Pull Request 9766: https://github.com/galaxyproject/galaxy/pull/9766
|
||||
.. _Pull Request 9768: https://github.com/galaxyproject/galaxy/pull/9768
|
||||
.. _Pull Request 9771: https://github.com/galaxyproject/galaxy/pull/9771
|
||||
.. _Pull Request 9774: https://github.com/galaxyproject/galaxy/pull/9774
|
||||
.. _Pull Request 9775: https://github.com/galaxyproject/galaxy/pull/9775
|
||||
.. _Pull Request 9782: https://github.com/galaxyproject/galaxy/pull/9782
|
||||
.. _Pull Request 9784: https://github.com/galaxyproject/galaxy/pull/9784
|
||||
.. _Pull Request 9789: https://github.com/galaxyproject/galaxy/pull/9789
|
||||
.. _Pull Request 9790: https://github.com/galaxyproject/galaxy/pull/9790
|
||||
.. _Pull Request 9793: https://github.com/galaxyproject/galaxy/pull/9793
|
||||
.. _Pull Request 9795: https://github.com/galaxyproject/galaxy/pull/9795
|
||||
.. _Pull Request 9797: https://github.com/galaxyproject/galaxy/pull/9797
|
||||
.. _Pull Request 9798: https://github.com/galaxyproject/galaxy/pull/9798
|
||||
.. _Pull Request 9799: https://github.com/galaxyproject/galaxy/pull/9799
|
||||
.. _Pull Request 9800: https://github.com/galaxyproject/galaxy/pull/9800
|
||||
.. _Pull Request 9801: https://github.com/galaxyproject/galaxy/pull/9801
|
||||
.. _Pull Request 9802: https://github.com/galaxyproject/galaxy/pull/9802
|
||||
.. _Pull Request 9805: https://github.com/galaxyproject/galaxy/pull/9805
|
||||
.. _Pull Request 9806: https://github.com/galaxyproject/galaxy/pull/9806
|
||||
.. _Pull Request 9808: https://github.com/galaxyproject/galaxy/pull/9808
|
||||
.. _Pull Request 9809: https://github.com/galaxyproject/galaxy/pull/9809
|
||||
.. _Pull Request 9810: https://github.com/galaxyproject/galaxy/pull/9810
|
||||
.. _Pull Request 9811: https://github.com/galaxyproject/galaxy/pull/9811
|
||||
.. _Pull Request 9820: https://github.com/galaxyproject/galaxy/pull/9820
|
||||
.. _Pull Request 9822: https://github.com/galaxyproject/galaxy/pull/9822
|
||||
.. _Pull Request 9825: https://github.com/galaxyproject/galaxy/pull/9825
|
||||
.. _Pull Request 9827: https://github.com/galaxyproject/galaxy/pull/9827
|
||||
.. _Pull Request 9830: https://github.com/galaxyproject/galaxy/pull/9830
|
||||
.. _Pull Request 9831: https://github.com/galaxyproject/galaxy/pull/9831
|
||||
.. _Pull Request 9832: https://github.com/galaxyproject/galaxy/pull/9832
|
||||
.. _Pull Request 9836: https://github.com/galaxyproject/galaxy/pull/9836
|
||||
.. _Pull Request 9841: https://github.com/galaxyproject/galaxy/pull/9841
|
||||
.. _Pull Request 9845: https://github.com/galaxyproject/galaxy/pull/9845
|
||||
.. _Pull Request 9846: https://github.com/galaxyproject/galaxy/pull/9846
|
||||
.. _Pull Request 9855: https://github.com/galaxyproject/galaxy/pull/9855
|
||||
.. _Pull Request 9858: https://github.com/galaxyproject/galaxy/pull/9858
|
||||
.. _Pull Request 9859: https://github.com/galaxyproject/galaxy/pull/9859
|
||||
.. _Pull Request 9860: https://github.com/galaxyproject/galaxy/pull/9860
|
||||
.. _Pull Request 9862: https://github.com/galaxyproject/galaxy/pull/9862
|
||||
.. _Pull Request 9864: https://github.com/galaxyproject/galaxy/pull/9864
|
||||
.. _Pull Request 9869: https://github.com/galaxyproject/galaxy/pull/9869
|
||||
.. _Pull Request 9872: https://github.com/galaxyproject/galaxy/pull/9872
|
||||
.. _Pull Request 9874: https://github.com/galaxyproject/galaxy/pull/9874
|
||||
.. _Pull Request 9882: https://github.com/galaxyproject/galaxy/pull/9882
|
||||
.. _Pull Request 9883: https://github.com/galaxyproject/galaxy/pull/9883
|
||||
.. _Pull Request 9888: https://github.com/galaxyproject/galaxy/pull/9888
|
||||
.. _Pull Request 9891: https://github.com/galaxyproject/galaxy/pull/9891
|
||||
.. _Pull Request 9899: https://github.com/galaxyproject/galaxy/pull/9899
|
||||
.. _Pull Request 9902: https://github.com/galaxyproject/galaxy/pull/9902
|
||||
.. _Pull Request 9905: https://github.com/galaxyproject/galaxy/pull/9905
|
||||
.. _Pull Request 9909: https://github.com/galaxyproject/galaxy/pull/9909
|
||||
.. _Pull Request 9910: https://github.com/galaxyproject/galaxy/pull/9910
|
||||
.. _Pull Request 9912: https://github.com/galaxyproject/galaxy/pull/9912
|
||||
.. _Pull Request 9914: https://github.com/galaxyproject/galaxy/pull/9914
|
||||
.. _Pull Request 9915: https://github.com/galaxyproject/galaxy/pull/9915
|
||||
.. _Pull Request 9917: https://github.com/galaxyproject/galaxy/pull/9917
|
||||
.. _Pull Request 9918: https://github.com/galaxyproject/galaxy/pull/9918
|
||||
.. _Pull Request 9923: https://github.com/galaxyproject/galaxy/pull/9923
|
||||
.. _Pull Request 9926: https://github.com/galaxyproject/galaxy/pull/9926
|
||||
.. _Pull Request 9938: https://github.com/galaxyproject/galaxy/pull/9938
|
||||
.. _Pull Request 9939: https://github.com/galaxyproject/galaxy/pull/9939
|
||||
.. _Pull Request 9943: https://github.com/galaxyproject/galaxy/pull/9943
|
||||
.. _Pull Request 9944: https://github.com/galaxyproject/galaxy/pull/9944
|
||||
.. _Pull Request 9947: https://github.com/galaxyproject/galaxy/pull/9947
|
||||
.. _Pull Request 9949: https://github.com/galaxyproject/galaxy/pull/9949
|
||||
.. _Pull Request 9950: https://github.com/galaxyproject/galaxy/pull/9950
|
||||
.. _Pull Request 9951: https://github.com/galaxyproject/galaxy/pull/9951
|
||||
.. _Pull Request 9952: https://github.com/galaxyproject/galaxy/pull/9952
|
||||
.. _Pull Request 9953: https://github.com/galaxyproject/galaxy/pull/9953
|
||||
.. _Pull Request 9955: https://github.com/galaxyproject/galaxy/pull/9955
|
||||
.. _Pull Request 9956: https://github.com/galaxyproject/galaxy/pull/9956
|
||||
.. _Pull Request 9958: https://github.com/galaxyproject/galaxy/pull/9958
|
||||
.. _Pull Request 9959: https://github.com/galaxyproject/galaxy/pull/9959
|
||||
.. _Pull Request 9960: https://github.com/galaxyproject/galaxy/pull/9960
|
||||
.. _Pull Request 9962: https://github.com/galaxyproject/galaxy/pull/9962
|
||||
.. _Pull Request 9963: https://github.com/galaxyproject/galaxy/pull/9963
|
||||
.. _Pull Request 9964: https://github.com/galaxyproject/galaxy/pull/9964
|
||||
.. _Pull Request 9966: https://github.com/galaxyproject/galaxy/pull/9966
|
||||
.. _Pull Request 9971: https://github.com/galaxyproject/galaxy/pull/9971
|
||||
.. _Pull Request 9974: https://github.com/galaxyproject/galaxy/pull/9974
|
||||
.. _Pull Request 9975: https://github.com/galaxyproject/galaxy/pull/9975
|
||||
.. _Pull Request 9978: https://github.com/galaxyproject/galaxy/pull/9978
|
||||
.. _Pull Request 9980: https://github.com/galaxyproject/galaxy/pull/9980
|
||||
.. _Pull Request 9982: https://github.com/galaxyproject/galaxy/pull/9982
|
||||
.. _Pull Request 9984: https://github.com/galaxyproject/galaxy/pull/9984
|
||||
.. _Pull Request 9985: https://github.com/galaxyproject/galaxy/pull/9985
|
||||
.. _Pull Request 9986: https://github.com/galaxyproject/galaxy/pull/9986
|
||||
.. _Pull Request 9989: https://github.com/galaxyproject/galaxy/pull/9989
|
||||
.. _Pull Request 9990: https://github.com/galaxyproject/galaxy/pull/9990
|
||||
.. _Pull Request 9991: https://github.com/galaxyproject/galaxy/pull/9991
|
||||
.. _Pull Request 9992: https://github.com/galaxyproject/galaxy/pull/9992
|
||||
.. _Pull Request 9993: https://github.com/galaxyproject/galaxy/pull/9993
|
||||
.. _Pull Request 9995: https://github.com/galaxyproject/galaxy/pull/9995
|
||||
.. _Pull Request 9998: https://github.com/galaxyproject/galaxy/pull/9998
|
||||
.. _Pull Request 9999: https://github.com/galaxyproject/galaxy/pull/9999
|
||||
.. _Pull Request 10008: https://github.com/galaxyproject/galaxy/pull/10008
|
||||
.. _Pull Request 10009: https://github.com/galaxyproject/galaxy/pull/10009
|
||||
.. _Pull Request 10011: https://github.com/galaxyproject/galaxy/pull/10011
|
||||
.. _Pull Request 10013: https://github.com/galaxyproject/galaxy/pull/10013
|
||||
.. _Pull Request 10014: https://github.com/galaxyproject/galaxy/pull/10014
|
||||
.. _Pull Request 10015: https://github.com/galaxyproject/galaxy/pull/10015
|
||||
.. _Pull Request 10018: https://github.com/galaxyproject/galaxy/pull/10018
|
||||
.. _Pull Request 10019: https://github.com/galaxyproject/galaxy/pull/10019
|
||||
.. _Pull Request 10020: https://github.com/galaxyproject/galaxy/pull/10020
|
||||
.. _Pull Request 10024: https://github.com/galaxyproject/galaxy/pull/10024
|
||||
.. _Pull Request 10025: https://github.com/galaxyproject/galaxy/pull/10025
|
||||
.. _Pull Request 10028: https://github.com/galaxyproject/galaxy/pull/10028
|
||||
.. _Pull Request 10036: https://github.com/galaxyproject/galaxy/pull/10036
|
||||
.. _Pull Request 10037: https://github.com/galaxyproject/galaxy/pull/10037
|
||||
.. _Pull Request 10041: https://github.com/galaxyproject/galaxy/pull/10041
|
||||
.. _Pull Request 10042: https://github.com/galaxyproject/galaxy/pull/10042
|
||||
.. _Pull Request 10044: https://github.com/galaxyproject/galaxy/pull/10044
|
||||
.. _Pull Request 10045: https://github.com/galaxyproject/galaxy/pull/10045
|
||||
.. _Pull Request 10047: https://github.com/galaxyproject/galaxy/pull/10047
|
||||
.. _Pull Request 10048: https://github.com/galaxyproject/galaxy/pull/10048
|
||||
.. _Pull Request 10049: https://github.com/galaxyproject/galaxy/pull/10049
|
||||
.. _Pull Request 10050: https://github.com/galaxyproject/galaxy/pull/10050
|
||||
.. _Pull Request 10052: https://github.com/galaxyproject/galaxy/pull/10052
|
||||
.. _Pull Request 10055: https://github.com/galaxyproject/galaxy/pull/10055
|
||||
.. _Pull Request 10056: https://github.com/galaxyproject/galaxy/pull/10056
|
||||
.. _Pull Request 10057: https://github.com/galaxyproject/galaxy/pull/10057
|
||||
.. _Pull Request 10059: https://github.com/galaxyproject/galaxy/pull/10059
|
||||
.. _Pull Request 10060: https://github.com/galaxyproject/galaxy/pull/10060
|
||||
.. _Pull Request 10061: https://github.com/galaxyproject/galaxy/pull/10061
|
||||
.. _Pull Request 10067: https://github.com/galaxyproject/galaxy/pull/10067
|
||||
.. _Pull Request 10068: https://github.com/galaxyproject/galaxy/pull/10068
|
||||
.. _Pull Request 10070: https://github.com/galaxyproject/galaxy/pull/10070
|
||||
.. _Pull Request 10071: https://github.com/galaxyproject/galaxy/pull/10071
|
||||
.. _Pull Request 10072: https://github.com/galaxyproject/galaxy/pull/10072
|
||||
.. _Pull Request 10074: https://github.com/galaxyproject/galaxy/pull/10074
|
||||
.. _Pull Request 10077: https://github.com/galaxyproject/galaxy/pull/10077
|
||||
.. _Pull Request 10078: https://github.com/galaxyproject/galaxy/pull/10078
|
||||
.. _Pull Request 10080: https://github.com/galaxyproject/galaxy/pull/10080
|
||||
.. _Pull Request 10082: https://github.com/galaxyproject/galaxy/pull/10082
|
||||
.. _Pull Request 10083: https://github.com/galaxyproject/galaxy/pull/10083
|
||||
.. _Pull Request 10084: https://github.com/galaxyproject/galaxy/pull/10084
|
||||
.. _Pull Request 10086: https://github.com/galaxyproject/galaxy/pull/10086
|
||||
.. _Pull Request 10087: https://github.com/galaxyproject/galaxy/pull/10087
|
||||
.. _Pull Request 10089: https://github.com/galaxyproject/galaxy/pull/10089
|
||||
.. _Pull Request 10090: https://github.com/galaxyproject/galaxy/pull/10090
|
||||
.. _Pull Request 10091: https://github.com/galaxyproject/galaxy/pull/10091
|
||||
.. _Pull Request 10094: https://github.com/galaxyproject/galaxy/pull/10094
|
||||
.. _Pull Request 10096: https://github.com/galaxyproject/galaxy/pull/10096
|
||||
.. _Pull Request 10097: https://github.com/galaxyproject/galaxy/pull/10097
|
||||
.. _Pull Request 10098: https://github.com/galaxyproject/galaxy/pull/10098
|
||||
.. _Pull Request 10099: https://github.com/galaxyproject/galaxy/pull/10099
|
||||
.. _Pull Request 10100: https://github.com/galaxyproject/galaxy/pull/10100
|
||||
.. _Pull Request 10102: https://github.com/galaxyproject/galaxy/pull/10102
|
||||
.. _Pull Request 10103: https://github.com/galaxyproject/galaxy/pull/10103
|
||||
.. _Pull Request 10104: https://github.com/galaxyproject/galaxy/pull/10104
|
||||
.. _Pull Request 10106: https://github.com/galaxyproject/galaxy/pull/10106
|
||||
.. _Pull Request 10107: https://github.com/galaxyproject/galaxy/pull/10107
|
||||
.. _Pull Request 10109: https://github.com/galaxyproject/galaxy/pull/10109
|
||||
.. _Pull Request 10110: https://github.com/galaxyproject/galaxy/pull/10110
|
||||
.. _Pull Request 10111: https://github.com/galaxyproject/galaxy/pull/10111
|
||||
.. _Pull Request 10112: https://github.com/galaxyproject/galaxy/pull/10112
|
||||
.. _Pull Request 10116: https://github.com/galaxyproject/galaxy/pull/10116
|
||||
.. _Pull Request 10119: https://github.com/galaxyproject/galaxy/pull/10119
|
||||
.. _Pull Request 10121: https://github.com/galaxyproject/galaxy/pull/10121
|
||||
.. _Pull Request 10122: https://github.com/galaxyproject/galaxy/pull/10122
|
||||
.. _Pull Request 10123: https://github.com/galaxyproject/galaxy/pull/10123
|
||||
.. _Pull Request 10124: https://github.com/galaxyproject/galaxy/pull/10124
|
||||
.. _Pull Request 10129: https://github.com/galaxyproject/galaxy/pull/10129
|
||||
.. _Pull Request 10133: https://github.com/galaxyproject/galaxy/pull/10133
|
||||
.. _Pull Request 10134: https://github.com/galaxyproject/galaxy/pull/10134
|
||||
.. _Pull Request 10135: https://github.com/galaxyproject/galaxy/pull/10135
|
||||
.. _Pull Request 10136: https://github.com/galaxyproject/galaxy/pull/10136
|
||||
.. _Pull Request 10138: https://github.com/galaxyproject/galaxy/pull/10138
|
||||
.. _Pull Request 10143: https://github.com/galaxyproject/galaxy/pull/10143
|
||||
.. _Pull Request 10145: https://github.com/galaxyproject/galaxy/pull/10145
|
||||
.. _Pull Request 10146: https://github.com/galaxyproject/galaxy/pull/10146
|
||||
.. _Pull Request 10148: https://github.com/galaxyproject/galaxy/pull/10148
|
||||
.. _Pull Request 10152: https://github.com/galaxyproject/galaxy/pull/10152
|
||||
.. _Pull Request 10154: https://github.com/galaxyproject/galaxy/pull/10154
|
||||
.. _Pull Request 10155: https://github.com/galaxyproject/galaxy/pull/10155
|
||||
.. _Pull Request 10157: https://github.com/galaxyproject/galaxy/pull/10157
|
||||
.. _Pull Request 10158: https://github.com/galaxyproject/galaxy/pull/10158
|
||||
.. _Pull Request 10159: https://github.com/galaxyproject/galaxy/pull/10159
|
||||
.. _Pull Request 10160: https://github.com/galaxyproject/galaxy/pull/10160
|
||||
.. _Pull Request 10162: https://github.com/galaxyproject/galaxy/pull/10162
|
||||
.. _Pull Request 10168: https://github.com/galaxyproject/galaxy/pull/10168
|
||||
.. _Pull Request 10170: https://github.com/galaxyproject/galaxy/pull/10170
|
||||
.. _Pull Request 10172: https://github.com/galaxyproject/galaxy/pull/10172
|
||||
.. _Pull Request 10173: https://github.com/galaxyproject/galaxy/pull/10173
|
||||
.. _Pull Request 10174: https://github.com/galaxyproject/galaxy/pull/10174
|
||||
.. _Pull Request 10175: https://github.com/galaxyproject/galaxy/pull/10175
|
||||
.. _Pull Request 10177: https://github.com/galaxyproject/galaxy/pull/10177
|
||||
.. _Pull Request 10181: https://github.com/galaxyproject/galaxy/pull/10181
|
||||
.. _Pull Request 10182: https://github.com/galaxyproject/galaxy/pull/10182
|
||||
.. _Pull Request 10183: https://github.com/galaxyproject/galaxy/pull/10183
|
||||
.. _Pull Request 10185: https://github.com/galaxyproject/galaxy/pull/10185
|
||||
.. _Pull Request 10188: https://github.com/galaxyproject/galaxy/pull/10188
|
||||
.. _Pull Request 10189: https://github.com/galaxyproject/galaxy/pull/10189
|
||||
.. _Pull Request 10190: https://github.com/galaxyproject/galaxy/pull/10190
|
||||
.. _Pull Request 10191: https://github.com/galaxyproject/galaxy/pull/10191
|
||||
.. _Pull Request 10195: https://github.com/galaxyproject/galaxy/pull/10195
|
||||
.. _Pull Request 10196: https://github.com/galaxyproject/galaxy/pull/10196
|
||||
.. _Pull Request 10197: https://github.com/galaxyproject/galaxy/pull/10197
|
||||
.. _Pull Request 10199: https://github.com/galaxyproject/galaxy/pull/10199
|
||||
.. _Pull Request 10200: https://github.com/galaxyproject/galaxy/pull/10200
|
||||
.. _Pull Request 10201: https://github.com/galaxyproject/galaxy/pull/10201
|
||||
.. _Pull Request 10203: https://github.com/galaxyproject/galaxy/pull/10203
|
||||
.. _Pull Request 10206: https://github.com/galaxyproject/galaxy/pull/10206
|
||||
.. _Pull Request 10207: https://github.com/galaxyproject/galaxy/pull/10207
|
||||
.. _Pull Request 10208: https://github.com/galaxyproject/galaxy/pull/10208
|
||||
.. _Pull Request 10213: https://github.com/galaxyproject/galaxy/pull/10213
|
||||
.. _Pull Request 10215: https://github.com/galaxyproject/galaxy/pull/10215
|
||||
.. _Pull Request 10216: https://github.com/galaxyproject/galaxy/pull/10216
|
||||
.. _Pull Request 10217: https://github.com/galaxyproject/galaxy/pull/10217
|
||||
.. _Pull Request 10220: https://github.com/galaxyproject/galaxy/pull/10220
|
||||
.. _Pull Request 10225: https://github.com/galaxyproject/galaxy/pull/10225
|
||||
.. _Pull Request 10226: https://github.com/galaxyproject/galaxy/pull/10226
|
||||
.. _Pull Request 10231: https://github.com/galaxyproject/galaxy/pull/10231
|
||||
.. _Pull Request 10234: https://github.com/galaxyproject/galaxy/pull/10234
|
||||
.. _Pull Request 10237: https://github.com/galaxyproject/galaxy/pull/10237
|
||||
.. _Pull Request 10239: https://github.com/galaxyproject/galaxy/pull/10239
|
||||
.. _Pull Request 10242: https://github.com/galaxyproject/galaxy/pull/10242
|
||||
.. _Pull Request 10247: https://github.com/galaxyproject/galaxy/pull/10247
|
||||
.. _Pull Request 10248: https://github.com/galaxyproject/galaxy/pull/10248
|
||||
.. _Pull Request 10250: https://github.com/galaxyproject/galaxy/pull/10250
|
||||
.. _Pull Request 10251: https://github.com/galaxyproject/galaxy/pull/10251
|
||||
.. _Pull Request 10255: https://github.com/galaxyproject/galaxy/pull/10255
|
||||
.. _Pull Request 10256: https://github.com/galaxyproject/galaxy/pull/10256
|
||||
.. _Pull Request 10257: https://github.com/galaxyproject/galaxy/pull/10257
|
||||
.. _Pull Request 10261: https://github.com/galaxyproject/galaxy/pull/10261
|
||||
.. _Pull Request 10263: https://github.com/galaxyproject/galaxy/pull/10263
|
||||
.. _Pull Request 10266: https://github.com/galaxyproject/galaxy/pull/10266
|
||||
.. _Pull Request 10269: https://github.com/galaxyproject/galaxy/pull/10269
|
||||
.. _Pull Request 10281: https://github.com/galaxyproject/galaxy/pull/10281
|
||||
.. _Pull Request 10282: https://github.com/galaxyproject/galaxy/pull/10282
|
||||
.. _Pull Request 10284: https://github.com/galaxyproject/galaxy/pull/10284
|
||||
.. _Pull Request 10286: https://github.com/galaxyproject/galaxy/pull/10286
|
||||
.. _Pull Request 10287: https://github.com/galaxyproject/galaxy/pull/10287
|
||||
.. _Pull Request 10293: https://github.com/galaxyproject/galaxy/pull/10293
|
||||
.. _Pull Request 10294: https://github.com/galaxyproject/galaxy/pull/10294
|
||||
.. _Pull Request 10295: https://github.com/galaxyproject/galaxy/pull/10295
|
||||
.. _Pull Request 10300: https://github.com/galaxyproject/galaxy/pull/10300
|
||||
.. _Pull Request 10302: https://github.com/galaxyproject/galaxy/pull/10302
|
||||
.. _Pull Request 10305: https://github.com/galaxyproject/galaxy/pull/10305
|
||||
.. _Pull Request 10307: https://github.com/galaxyproject/galaxy/pull/10307
|
||||
.. _Pull Request 10308: https://github.com/galaxyproject/galaxy/pull/10308
|
||||
.. _Pull Request 10312: https://github.com/galaxyproject/galaxy/pull/10312
|
||||
.. _Pull Request 10317: https://github.com/galaxyproject/galaxy/pull/10317
|
||||
.. _Pull Request 10321: https://github.com/galaxyproject/galaxy/pull/10321
|
||||
.. _Pull Request 10329: https://github.com/galaxyproject/galaxy/pull/10329
|
||||
.. _Pull Request 10330: https://github.com/galaxyproject/galaxy/pull/10330
|
||||
.. _Pull Request 10331: https://github.com/galaxyproject/galaxy/pull/10331
|
||||
.. _Pull Request 10332: https://github.com/galaxyproject/galaxy/pull/10332
|
||||
.. _Pull Request 10333: https://github.com/galaxyproject/galaxy/pull/10333
|
||||
.. _Pull Request 10335: https://github.com/galaxyproject/galaxy/pull/10335
|
||||
.. _Pull Request 10337: https://github.com/galaxyproject/galaxy/pull/10337
|
||||
.. _Pull Request 10339: https://github.com/galaxyproject/galaxy/pull/10339
|
||||
.. _Pull Request 10341: https://github.com/galaxyproject/galaxy/pull/10341
|
||||
.. _Pull Request 10342: https://github.com/galaxyproject/galaxy/pull/10342
|
||||
.. _Pull Request 10344: https://github.com/galaxyproject/galaxy/pull/10344
|
||||
.. _Pull Request 10355: https://github.com/galaxyproject/galaxy/pull/10355
|
||||
.. _Pull Request 10360: https://github.com/galaxyproject/galaxy/pull/10360
|
||||
.. _Pull Request 10362: https://github.com/galaxyproject/galaxy/pull/10362
|
||||
.. _Pull Request 10367: https://github.com/galaxyproject/galaxy/pull/10367
|
||||
.. _Pull Request 10371: https://github.com/galaxyproject/galaxy/pull/10371
|
||||
.. _Pull Request 10375: https://github.com/galaxyproject/galaxy/pull/10375
|
||||
.. _Pull Request 10384: https://github.com/galaxyproject/galaxy/pull/10384
|
||||
.. _Pull Request 10385: https://github.com/galaxyproject/galaxy/pull/10385
|
||||
.. _Pull Request 10390: https://github.com/galaxyproject/galaxy/pull/10390
|
||||
.. _Pull Request 10391: https://github.com/galaxyproject/galaxy/pull/10391
|
||||
.. _Pull Request 10394: https://github.com/galaxyproject/galaxy/pull/10394
|
||||
.. _Pull Request 10401: https://github.com/galaxyproject/galaxy/pull/10401
|
||||
.. _Pull Request 10403: https://github.com/galaxyproject/galaxy/pull/10403
|
||||
.. _Pull Request 10406: https://github.com/galaxyproject/galaxy/pull/10406
|
||||
.. _Pull Request 10407: https://github.com/galaxyproject/galaxy/pull/10407
|
||||
.. _Pull Request 10411: https://github.com/galaxyproject/galaxy/pull/10411
|
||||
.. _Pull Request 10412: https://github.com/galaxyproject/galaxy/pull/10412
|
||||
.. _Pull Request 10416: https://github.com/galaxyproject/galaxy/pull/10416
|
||||
.. _Pull Request 10431: https://github.com/galaxyproject/galaxy/pull/10431
|
||||
.. _Pull Request 10434: https://github.com/galaxyproject/galaxy/pull/10434
|
||||
.. _Pull Request 10438: https://github.com/galaxyproject/galaxy/pull/10438
|
||||
.. _Pull Request 10441: https://github.com/galaxyproject/galaxy/pull/10441
|
||||
.. _Pull Request 10444: https://github.com/galaxyproject/galaxy/pull/10444
|
||||
.. _Pull Request 10447: https://github.com/galaxyproject/galaxy/pull/10447
|
||||
.. _Pull Request 10464: https://github.com/galaxyproject/galaxy/pull/10464
|
||||
.. _Pull Request 10465: https://github.com/galaxyproject/galaxy/pull/10465
|
||||
.. _Pull Request 10470: https://github.com/galaxyproject/galaxy/pull/10470
|
||||
.. _Pull Request 10490: https://github.com/galaxyproject/galaxy/pull/10490
|
||||
.. _Pull Request 10518: https://github.com/galaxyproject/galaxy/pull/10518
|
||||
.. _Pull Request 10521: https://github.com/galaxyproject/galaxy/pull/10521
|
||||
.. _Pull Request 10527: https://github.com/galaxyproject/galaxy/pull/10527
|
||||
.. _Pull Request 10543: https://github.com/galaxyproject/galaxy/pull/10543
|
||||
.. _Pull Request 10548: https://github.com/galaxyproject/galaxy/pull/10548
|
||||
.. _Pull Request 10551: https://github.com/galaxyproject/galaxy/pull/10551
|
||||
.. _Pull Request 10552: https://github.com/galaxyproject/galaxy/pull/10552
|
||||
.. _Pull Request 10555: https://github.com/galaxyproject/galaxy/pull/10555
|
||||
.. _Pull Request 10556: https://github.com/galaxyproject/galaxy/pull/10556
|
||||
.. _Pull Request 10559: https://github.com/galaxyproject/galaxy/pull/10559
|
||||
.. _Pull Request 10560: https://github.com/galaxyproject/galaxy/pull/10560
|
||||
.. _Pull Request 10561: https://github.com/galaxyproject/galaxy/pull/10561
|
||||
.. _Pull Request 10567: https://github.com/galaxyproject/galaxy/pull/10567
|
||||
.. _Pull Request 10569: https://github.com/galaxyproject/galaxy/pull/10569
|
||||
.. _Pull Request 10570: https://github.com/galaxyproject/galaxy/pull/10570
|
||||
.. _Pull Request 10572: https://github.com/galaxyproject/galaxy/pull/10572
|
||||
.. _Pull Request 10575: https://github.com/galaxyproject/galaxy/pull/10575
|
||||
.. _Pull Request 10578: https://github.com/galaxyproject/galaxy/pull/10578
|
||||
.. _Pull Request 10579: https://github.com/galaxyproject/galaxy/pull/10579
|
||||
.. _Pull Request 10581: https://github.com/galaxyproject/galaxy/pull/10581
|
||||
.. _Pull Request 10582: https://github.com/galaxyproject/galaxy/pull/10582
|
||||
.. _Pull Request 10584: https://github.com/galaxyproject/galaxy/pull/10584
|
||||
.. _Pull Request 10597: https://github.com/galaxyproject/galaxy/pull/10597
|
||||
.. _Pull Request 10599: https://github.com/galaxyproject/galaxy/pull/10599
|
||||
.. _Pull Request 10602: https://github.com/galaxyproject/galaxy/pull/10602
|
||||
.. _Pull Request 10606: https://github.com/galaxyproject/galaxy/pull/10606
|
||||
.. _Pull Request 10609: https://github.com/galaxyproject/galaxy/pull/10609
|
||||
.. _Pull Request 10610: https://github.com/galaxyproject/galaxy/pull/10610
|
||||
.. _Pull Request 10611: https://github.com/galaxyproject/galaxy/pull/10611
|
||||
.. _Pull Request 10612: https://github.com/galaxyproject/galaxy/pull/10612
|
||||
.. _Pull Request 10613: https://github.com/galaxyproject/galaxy/pull/10613
|
||||
.. _Pull Request 10615: https://github.com/galaxyproject/galaxy/pull/10615
|
||||
.. _Pull Request 10616: https://github.com/galaxyproject/galaxy/pull/10616
|
||||
.. _Pull Request 10617: https://github.com/galaxyproject/galaxy/pull/10617
|
||||
.. _Pull Request 10623: https://github.com/galaxyproject/galaxy/pull/10623
|
||||
.. _Pull Request 10626: https://github.com/galaxyproject/galaxy/pull/10626
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
===========================================================
|
||||
January 2021 Galaxy Release (v 21.01)
|
||||
===========================================================
|
||||
|
||||
|
||||
Schedule
|
||||
===========================================================
|
||||
* Planned Freeze Date: 2021-01-04
|
||||
* Planned Release Date: 2021-01-25
|
||||
|
After Width: | Height: | Size: 484 KiB |
|
After Width: | Height: | Size: 127 KiB |
|
After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 148 KiB |
|
After Width: | Height: | Size: 340 KiB |
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 72 KiB |
@@ -895,12 +895,12 @@ class Loom(H5):
|
||||
super().set_meta(dataset, overwrite=overwrite, **kwd)
|
||||
try:
|
||||
with h5py.File(dataset.file_name, 'r') as loom_file:
|
||||
dataset.metadata.title = util.unicodify(loom_file.attrs.get('title'))
|
||||
dataset.metadata.description = util.unicodify(loom_file.attrs.get('description'))
|
||||
dataset.metadata.url = util.unicodify(loom_file.attrs.get('url'))
|
||||
dataset.metadata.doi = util.unicodify(loom_file.attrs.get('doi'))
|
||||
dataset.metadata.loom_spec_version = util.unicodify(loom_file.attrs.get('LOOM_SPEC_VERSION'))
|
||||
dataset.creation_date = util.unicodify(loom_file.attrs.get('creation_date'))
|
||||
dataset.metadata.title = loom_file.attrs.get('title')
|
||||
dataset.metadata.description = loom_file.attrs.get('description')
|
||||
dataset.metadata.url = loom_file.attrs.get('url')
|
||||
dataset.metadata.doi = loom_file.attrs.get('doi')
|
||||
dataset.metadata.loom_spec_version = loom_file.attrs.get('LOOM_SPEC_VERSION')
|
||||
dataset.creation_date = loom_file.attrs.get('creation_date')
|
||||
dataset.metadata.shape = tuple(loom_file['matrix'].shape)
|
||||
|
||||
tmp = list(loom_file.get('layers', {}).keys())
|
||||
@@ -940,6 +940,18 @@ class Anndata(H5):
|
||||
False
|
||||
>>> Anndata().sniff(get_test_fname('import.loom.krumsiek11.h5ad'))
|
||||
True
|
||||
>>> Anndata().sniff(get_test_fname('adata_0_6_small2.h5ad'))
|
||||
True
|
||||
>>> Anndata().sniff(get_test_fname('adata_0_6_small.h5ad'))
|
||||
True
|
||||
>>> Anndata().sniff(get_test_fname('adata_0_7_4_small2.h5ad'))
|
||||
True
|
||||
>>> Anndata().sniff(get_test_fname('adata_0_7_4_small.h5ad'))
|
||||
True
|
||||
>>> Anndata().sniff(get_test_fname('adata_unk2.h5ad'))
|
||||
True
|
||||
>>> Anndata().sniff(get_test_fname('adata_unk.h5ad'))
|
||||
True
|
||||
"""
|
||||
file_ext = 'h5ad'
|
||||
|
||||
@@ -982,12 +994,12 @@ class Anndata(H5):
|
||||
def set_meta(self, dataset, overwrite=True, **kwd):
|
||||
super().set_meta(dataset, overwrite=overwrite, **kwd)
|
||||
with h5py.File(dataset.file_name, 'r') as anndata_file:
|
||||
dataset.metadata.title = util.unicodify(anndata_file.attrs.get('title'))
|
||||
dataset.metadata.description = util.unicodify(anndata_file.attrs.get('description'))
|
||||
dataset.metadata.url = util.unicodify(anndata_file.attrs.get('url'))
|
||||
dataset.metadata.doi = util.unicodify(anndata_file.attrs.get('doi'))
|
||||
dataset.creation_date = util.unicodify(anndata_file.attrs.get('creation_date'))
|
||||
dataset.metadata.shape = anndata_file.attrs.get('shape') or dataset.metadata.shape
|
||||
dataset.metadata.title = anndata_file.attrs.get('title')
|
||||
dataset.metadata.description = anndata_file.attrs.get('description')
|
||||
dataset.metadata.url = anndata_file.attrs.get('url')
|
||||
dataset.metadata.doi = anndata_file.attrs.get('doi')
|
||||
dataset.creation_date = anndata_file.attrs.get('creation_date')
|
||||
dataset.metadata.shape = anndata_file.attrs.get('shape', dataset.metadata.shape)
|
||||
# none of the above appear to work in any dataset tested, but could be useful for future
|
||||
# AnnData datasets
|
||||
|
||||
@@ -998,21 +1010,29 @@ class Anndata(H5):
|
||||
def _layercountsize(tmp, lennames=0):
|
||||
"From TMP and LENNAMES, return layers, their number, and the length of one of the layers (all equal)."
|
||||
if hasattr(tmp, 'dtype'):
|
||||
layers = [util.unicodify(x) for x in tmp.dtype.names]
|
||||
layers = list(tmp.dtype.names)
|
||||
count = len(tmp.dtype)
|
||||
size = int(tmp.size)
|
||||
else:
|
||||
layers = [util.unicodify(x) for x in list(tmp.keys())]
|
||||
layers = list(tmp.keys())
|
||||
count = len(layers)
|
||||
size = lennames
|
||||
return (layers, count, size)
|
||||
|
||||
if 'obs' in dataset.metadata.layers_names:
|
||||
tmp = anndata_file["obs"]
|
||||
dataset.metadata.obs_names = [util.unicodify(x) for x in tmp["index"]]
|
||||
dataset.metadata.obs_layers, \
|
||||
dataset.metadata.obs_count, \
|
||||
dataset.metadata.obs_size = _layercountsize(tmp, len(dataset.metadata.obs_names))
|
||||
obs_index = None
|
||||
if "index" in tmp:
|
||||
obs_index = "index"
|
||||
elif "_index" in tmp:
|
||||
obs_index = "_index"
|
||||
# do not attempt to parse beyond these
|
||||
if obs_index:
|
||||
dataset.metadata.obs_names = list(tmp[obs_index])
|
||||
x, y, z = _layercountsize(tmp, len(dataset.metadata.obs_names))
|
||||
dataset.metadata.obs_layers = x
|
||||
dataset.metadata.obs_count = y
|
||||
dataset.metadata.obs_size = z
|
||||
|
||||
if 'obsm' in dataset.metadata.layers_names:
|
||||
tmp = anndata_file["obsm"]
|
||||
@@ -1022,17 +1042,25 @@ class Anndata(H5):
|
||||
tmp = anndata_file["raw.var"]
|
||||
# full set of genes would never need to be previewed
|
||||
# dataset.metadata.raw_var_names = tmp["index"]
|
||||
dataset.metadata.raw_var_layers, \
|
||||
dataset.metadata.raw_var_count, \
|
||||
dataset.metadata.raw_var_size = _layercountsize(tmp, len(tmp["index"]))
|
||||
x, y, z = _layercountsize(tmp, len(tmp["index"]))
|
||||
dataset.metadata.raw_var_layers = x
|
||||
dataset.metadata.raw_var_count = y
|
||||
dataset.metadata.raw_var_size = z
|
||||
|
||||
if 'var' in dataset.metadata.layers_names:
|
||||
tmp = anndata_file["var"]
|
||||
# row names are never used in preview windows
|
||||
# dataset.metadata.var_names = tmp["index"]
|
||||
dataset.metadata.var_layers, \
|
||||
dataset.metadata.var_count, \
|
||||
dataset.metadata.var_size = _layercountsize(tmp, len(tmp["index"]))
|
||||
var_index = None
|
||||
if "index" in tmp:
|
||||
var_index = "index"
|
||||
elif "_index" in tmp:
|
||||
var_index = "_index"
|
||||
# We never use var_names
|
||||
# dataset.metadata.var_names = tmp[var_index]
|
||||
if var_index:
|
||||
x, y, z = _layercountsize(tmp, len(tmp[var_index]))
|
||||
dataset.metadata.var_layers = x
|
||||
dataset.metadata.var_count = y
|
||||
dataset.metadata.var_size = z
|
||||
|
||||
if 'varm' in dataset.metadata.layers_names:
|
||||
tmp = anndata_file["varm"]
|
||||
|
||||
@@ -42,7 +42,7 @@ cloudauthz==0.6.0
|
||||
cloudbridge==2.0.0
|
||||
cmd2==0.8.9
|
||||
coloredlogs==14.0
|
||||
cryptography==2.9.2
|
||||
cryptography==3.2.1
|
||||
cwltool==3.0.20201109103151
|
||||
debtcollector==1.22.0
|
||||
decorator==4.4.2
|
||||
|
||||
@@ -8,7 +8,7 @@ AST_NODE_TYPE_ALLOWLIST = [
|
||||
'Expr', 'Load', 'Str', 'Num', 'BoolOp', 'Compare', 'And', 'Eq', 'NotEq',
|
||||
'Or', 'GtE', 'LtE', 'Lt', 'Gt', 'BinOp', 'Add', 'Div', 'Sub', 'Mult', 'Mod',
|
||||
'Pow', 'LShift', 'GShift', 'BitAnd', 'BitOr', 'BitXor', 'UnaryOp', 'Invert',
|
||||
'Not', 'NotIn', 'In', 'Is', 'IsNot', 'List', 'Index', 'Subscript',
|
||||
'Not', 'NotIn', 'In', 'Is', 'IsNot', 'List', 'Index', 'Subscript', 'Constant',
|
||||
# Further checks
|
||||
'Name', 'Call', 'Attribute',
|
||||
]
|
||||
|
||||
@@ -28,6 +28,7 @@ _galaxy_setup_environment() {
|
||||
$integrity_injection
|
||||
$slots_statement
|
||||
export GALAXY_SLOTS
|
||||
export PYTHONWARNINGS="ignore"
|
||||
GALAXY_VIRTUAL_ENV="$galaxy_virtual_env"
|
||||
_GALAXY_VIRTUAL_ENV="$galaxy_virtual_env"
|
||||
PRESERVE_GALAXY_ENVIRONMENT="$preserve_python_environment"
|
||||
|
||||
@@ -219,7 +219,7 @@ class DatasetCollectionManager:
|
||||
history=None):
|
||||
if collection_type_description.has_subcollections():
|
||||
# Nested collection - recursively create collections and update identifiers.
|
||||
self.__recursively_create_collections_for_identifiers(trans, element_identifiers, hide_source_items, copy_elements)
|
||||
self.__recursively_create_collections_for_identifiers(trans, element_identifiers, hide_source_items, copy_elements, history=history)
|
||||
new_collection = False
|
||||
for element_identifier in element_identifiers:
|
||||
if element_identifier.get("src") == "new_collection" and element_identifier.get('collection_type') == '':
|
||||
@@ -350,7 +350,7 @@ class DatasetCollectionManager:
|
||||
context.flush()
|
||||
return dataset_collection_instance
|
||||
|
||||
def __recursively_create_collections_for_identifiers(self, trans, element_identifiers, hide_source_items, copy_elements):
|
||||
def __recursively_create_collections_for_identifiers(self, trans, element_identifiers, hide_source_items, copy_elements, history=None):
|
||||
for index, element_identifier in enumerate(element_identifiers):
|
||||
try:
|
||||
if element_identifier.get("src", None) != "new_collection":
|
||||
@@ -368,6 +368,7 @@ class DatasetCollectionManager:
|
||||
element_identifiers=element_identifier["element_identifiers"],
|
||||
hide_source_items=hide_source_items,
|
||||
copy_elements=copy_elements,
|
||||
history=history,
|
||||
)
|
||||
element_identifier["__object__"] = collection
|
||||
|
||||
|
||||
@@ -158,10 +158,18 @@ class WorkflowsManager:
|
||||
|
||||
return True
|
||||
|
||||
def get_invocation(self, trans, decoded_invocation_id):
|
||||
workflow_invocation = trans.sa_session.query(
|
||||
def get_invocation(self, trans, decoded_invocation_id, eager=False):
|
||||
q = trans.sa_session.query(
|
||||
self.app.model.WorkflowInvocation
|
||||
).get(decoded_invocation_id)
|
||||
)
|
||||
if eager:
|
||||
q = q.options(subqueryload(self.app.model.WorkflowInvocation.steps).joinedload(
|
||||
'implicit_collection_jobs').joinedload(
|
||||
'jobs').joinedload(
|
||||
'job').joinedload(
|
||||
'input_datasets')
|
||||
)
|
||||
workflow_invocation = q.get(decoded_invocation_id)
|
||||
if not workflow_invocation:
|
||||
encoded_wfi_id = trans.security.encode_id(decoded_invocation_id)
|
||||
message = "'%s' is not a valid workflow invocation id" % encoded_wfi_id
|
||||
|
||||
@@ -218,7 +218,6 @@ class MetadataCollection(Mapping):
|
||||
dataset.validated_state_message = JSONified_dict['__validated_state_message__']
|
||||
|
||||
def to_JSON_dict(self, filename=None):
|
||||
# galaxy.model.customtypes.json_encoder.encode()
|
||||
meta_dict = {}
|
||||
dataset_meta_dict = self.parent._metadata
|
||||
for name, spec in self.spec.items():
|
||||
@@ -230,10 +229,11 @@ class MetadataCollection(Mapping):
|
||||
meta_dict['__validated_state__'] = dataset_meta_dict['__validated_state__']
|
||||
if '__validated_state_message__' in dataset_meta_dict:
|
||||
meta_dict['__validated_state_message__'] = dataset_meta_dict['__validated_state_message__']
|
||||
encoded_meta_dict = galaxy.model.custom_types.json_encoder.encode(meta_dict)
|
||||
if filename is None:
|
||||
return json.dumps(meta_dict)
|
||||
return encoded_meta_dict
|
||||
with open(filename, 'wt+') as fh:
|
||||
json.dump(meta_dict, fh)
|
||||
fh.write(encoded_meta_dict)
|
||||
|
||||
def __getstate__(self):
|
||||
# cannot pickle a weakref item (self._parent), when
|
||||
|
||||
@@ -5,7 +5,11 @@ import os
|
||||
import shutil
|
||||
import tarfile
|
||||
import tempfile
|
||||
from json import dump, dumps, load
|
||||
from json import (
|
||||
dump,
|
||||
dumps,
|
||||
load,
|
||||
)
|
||||
from uuid import uuid4
|
||||
|
||||
from bdbag import bdbag_api as bdb
|
||||
@@ -19,6 +23,7 @@ from galaxy.util import FILENAME_VALID_CHARS
|
||||
from galaxy.util import in_directory
|
||||
from galaxy.util.bunch import Bunch
|
||||
from galaxy.util.path import safe_walk
|
||||
from ..custom_types import json_encoder
|
||||
from ..item_attrs import add_item_annotation, get_item_annotation_str
|
||||
from ... import model
|
||||
|
||||
@@ -1218,20 +1223,23 @@ class DirectoryModelExportStore(ModelExportStore):
|
||||
else:
|
||||
provenance_attrs.append(dataset)
|
||||
|
||||
def to_json(attributes):
|
||||
return json_encoder.encode([a.serialize(self.security, self.serialization_options) for a in attributes])
|
||||
|
||||
datasets_attrs_filename = os.path.join(export_directory, ATTRS_FILENAME_DATASETS)
|
||||
with open(datasets_attrs_filename, 'w') as datasets_attrs_out:
|
||||
dump(list(map(lambda d: d.serialize(self.security, self.serialization_options), datasets_attrs)), datasets_attrs_out)
|
||||
datasets_attrs_out.write(to_json(datasets_attrs))
|
||||
|
||||
with open(datasets_attrs_filename + ".provenance", 'w') as provenance_attrs_out:
|
||||
dump(list(map(lambda d: d.serialize(self.security, self.serialization_options), provenance_attrs)), provenance_attrs_out)
|
||||
provenance_attrs_out.write(to_json(provenance_attrs))
|
||||
|
||||
libraries_attrs_filename = os.path.join(export_directory, ATTRS_FILENAME_LIBRARIES)
|
||||
with open(libraries_attrs_filename, 'w') as librariess_attrs_out:
|
||||
dump(list(map(lambda d: d.serialize(self.security, self.serialization_options), self.included_libraries)), librariess_attrs_out)
|
||||
with open(libraries_attrs_filename, 'w') as libraries_attrs_out:
|
||||
libraries_attrs_out.write(to_json(self.included_libraries))
|
||||
|
||||
collections_attrs_filename = os.path.join(export_directory, ATTRS_FILENAME_COLLECTIONS)
|
||||
with open(collections_attrs_filename, 'w') as collections_attrs_out:
|
||||
dump(list(map(lambda d: d.serialize(self.security, self.serialization_options), self.collections_attrs)), collections_attrs_out)
|
||||
collections_attrs_out.write(to_json(self.collections_attrs))
|
||||
|
||||
#
|
||||
# Write jobs attributes file.
|
||||
@@ -1367,11 +1375,11 @@ class DirectoryModelExportStore(ModelExportStore):
|
||||
|
||||
jobs_attrs_filename = os.path.join(export_directory, ATTRS_FILENAME_JOBS)
|
||||
with open(jobs_attrs_filename, 'w') as jobs_attrs_out:
|
||||
dump(jobs_attrs, jobs_attrs_out)
|
||||
jobs_attrs_out.write(json_encoder.encode(jobs_attrs))
|
||||
|
||||
icjs_attrs_filename = os.path.join(export_directory, ATTRS_FILENAME_IMPLICIT_COLLECTION_JOBS)
|
||||
with open(icjs_attrs_filename, 'w') as icjs_attrs_out:
|
||||
dump(icjs_attrs, icjs_attrs_out)
|
||||
icjs_attrs_out.write(json_encoder.encode(icjs_attrs))
|
||||
|
||||
export_attrs_filename = os.path.join(export_directory, ATTRS_FILENAME_EXPORT)
|
||||
with open(export_attrs_filename, 'w') as export_attrs_out:
|
||||
|
||||
@@ -55,7 +55,11 @@ class ToolDocumentCache:
|
||||
self.writeable_cache_file = None
|
||||
|
||||
def get(self, config_file):
|
||||
tool_document = self._cache.get(config_file)
|
||||
try:
|
||||
tool_document = self._cache.get(config_file)
|
||||
except sqlite3.OperationalError:
|
||||
log.debug("Tool document cache unavailable")
|
||||
return None
|
||||
if not tool_document:
|
||||
return None
|
||||
if tool_document.get('tool_cache_version') != CURRENT_TOOL_CACHE_VERSION:
|
||||
@@ -80,22 +84,28 @@ class ToolDocumentCache:
|
||||
self.reopen_ro()
|
||||
|
||||
def set(self, config_file, tool_source):
|
||||
if self.cache_file_is_writeable:
|
||||
self._make_writable()
|
||||
to_persist = {
|
||||
'document': tool_source.to_string(),
|
||||
'macro_paths': tool_source.macro_paths,
|
||||
'paths_and_modtimes': tool_source.paths_and_modtimes(),
|
||||
'tool_cache_version': CURRENT_TOOL_CACHE_VERSION,
|
||||
}
|
||||
self._cache[config_file] = to_persist
|
||||
try:
|
||||
if self.cache_file_is_writeable:
|
||||
self._make_writable()
|
||||
to_persist = {
|
||||
'document': tool_source.to_string(),
|
||||
'macro_paths': tool_source.macro_paths,
|
||||
'paths_and_modtimes': tool_source.paths_and_modtimes(),
|
||||
'tool_cache_version': CURRENT_TOOL_CACHE_VERSION,
|
||||
}
|
||||
try:
|
||||
self._cache[config_file] = to_persist
|
||||
except RuntimeError:
|
||||
log.debug("Tool document cache not writeable")
|
||||
except sqlite3.OperationalError:
|
||||
log.debug("Tool document cache unavailable")
|
||||
|
||||
def delete(self, config_file):
|
||||
if self.cache_file_is_writeable:
|
||||
self._make_writable()
|
||||
try:
|
||||
del self._cache[config_file]
|
||||
except KeyError:
|
||||
except (KeyError, RuntimeError):
|
||||
pass
|
||||
|
||||
def __del__(self):
|
||||
|
||||
@@ -938,7 +938,7 @@ class WorkflowsAPIController(BaseAPIController, UsesStoredWorkflowMixin, UsesAnn
|
||||
:raises: exceptions.MessageException, exceptions.ObjectNotFound
|
||||
"""
|
||||
decoded_workflow_invocation_id = self.decode_id(invocation_id)
|
||||
workflow_invocation = self.workflow_manager.get_invocation(trans, decoded_workflow_invocation_id)
|
||||
workflow_invocation = self.workflow_manager.get_invocation(trans, decoded_workflow_invocation_id, eager=True)
|
||||
if workflow_invocation:
|
||||
step_details = util.string_as_bool(kwd.get('step_details', 'False'))
|
||||
legacy_job_state = util.string_as_bool(kwd.get('legacy_job_state', 'False'))
|
||||
|
||||
@@ -329,6 +329,31 @@ class LibrariesApiTestCase(ApiTestCase, TestsDatasets):
|
||||
def test_ldda_collection_import_to_history_hide_source(self):
|
||||
self._import_to_history(visible=False)
|
||||
|
||||
def test_import_paired_collection(self):
|
||||
ld = self._create_dataset_in_folder_in_library("ForHistoryImport").json()
|
||||
history_id = self.dataset_populator.new_history()
|
||||
url = "histories/%s/contents" % history_id
|
||||
collection_name = 'Paired-end data (from library)'
|
||||
payload = {
|
||||
'name': collection_name,
|
||||
'collection_type': 'list:paired',
|
||||
"type": "dataset_collection",
|
||||
'element_identifiers': json.dumps([
|
||||
{
|
||||
'src': 'new_collection',
|
||||
'name': 'pair1',
|
||||
'collection_type': 'paired',
|
||||
'element_identifiers': [{'name': 'forward', 'src': 'ldda', 'id': ld['id']},
|
||||
{'name': 'reverse', 'src': 'ldda', 'id': ld['id']}]
|
||||
}
|
||||
])
|
||||
}
|
||||
new_collection = self._post(url, payload).json()
|
||||
assert new_collection['name'] == collection_name
|
||||
pair = new_collection['elements'][0]
|
||||
assert pair['element_identifier'] == 'pair1'
|
||||
assert pair['object']['elements'][0]['object']['history_id'] == history_id
|
||||
|
||||
def _import_to_history(self, visible=True):
|
||||
ld = self._create_dataset_in_folder_in_library("ForHistoryImport").json()
|
||||
history_id = self.dataset_populator.new_history()
|
||||
|
||||