\n"},i.prototype.tablecell=function(e,t){var r=t.header?"th":"td",a=t.align?"<"+r+' style="text-align:'+t.align+'">':"<"+r+">";return a+e+""+r+">\n"},i.prototype.strong=function(e){return""+e+""},i.prototype.em=function(e){return""+e+""},i.prototype.codespan=function(e){return""+e+""},i.prototype.br=function(){return" "},i.prototype.del=function(e){return""+e+""},i.prototype.link=function(e,t,r){if(this.options.sanitize){try{var a=decodeURIComponent(l(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(i){return""}if(0===a.indexOf("javascript:"))return""}var n='"+r+""},i.prototype.image=function(e,t,r){var a='"},n.parse=function(e,t,r){var a=new n(t,r);return a.parse(e)},n.prototype.parse=function(e){this.inline=new a(e.links,this.options,this.renderer),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},n.prototype.next=function(){return this.token=this.tokens.pop()},n.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},n.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},n.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,r,a,i,n="",s="";for(r="",e=0;e code {
+ color: #ff9300;
+ text-decoration: none;
+}
+
+.code > pre, .code > code {
+ white-space: pre-wrap;
+}
+.remark-code, .remark-inline-code {
+ font-family: 'Consolas';
+ color: #ff9300;
+ font-size: 1.1em;
+}
+.slightly-smaller {
+ font-size: .9em;
+}
+
+.remark-code-line-highlighted {
+ background-color: #373832;
+}
+.pull-left {
+ float: left;
+ width: 47%;
+}
+.pull-right {
+ float: right;
+ width: 47%;
+}
+.pull-right ~ p {
+ clear: both;
+}
+#slideshow .slide .content code {
+}
+#slideshow .slide .content pre code {
+}
+
+.inverse {
+ background-color: #000;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: contain;
+ color: #ffffff;
+}
+
+i, em, b, strong {
+ color: #ff9300;
+}
+
+.inverse h1, .inverse h2 {
+ color: #f3f3f3;
+ line-height: 0.8em;
+}
+
+.white {
+ background-color: #ffffff;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: contain;
+ color: #000;
+}
+
+.strike {
+ text-decoration: line-through;
+}
+
+/* Slide-specific styling */
+#slide-inverse .footnote {
+ bottom: 12px;
+ left: 20px;
+}
+#slide-how .slides {
+ font-size: 0.9em;
+ position: absolute;
+ top: 151px;
+ right: 140px;
+}
+#slide-how .slides h3 {
+ margin-top: 0.2em;
+}
+#slide-how .slides .first, #slide-how .slides .second {
+ padding: 1px 20px;
+ height: 90px;
+ width: 120px;
+ -moz-box-shadow: 0 0 10px #777;
+ -webkit-box-shadow: 0 0 10px #777;
+ box-shadow: 0 0 10px #777;
+}
+#slide-how .slides .first {
+ background: #fff;
+ position: absolute;
+ top: 20%;
+ left: 20%;
+ z-index: 1;
+}
+#slide-how .slides .second {
+ position: relative;
+ background: #fff;
+ z-index: 0;
+}
+
+/* Two-column layout */
+.left-column {
+ color: #777;
+ width: 20%;
+ height: 92%;
+ float: left;
+}
+.left-column h2:last-of-type, .left-column h3:last-child {
+ color: #000;
+}
+.right-column {
+ width: 75%;
+ float: right;
+ padding-top: 1em;
+}
+
+/*First slide h1 orange, h2 white*/
+.special h1 {
+ color: #ff8800;
+}
+
+.special p {
+ color: #cbcbcb;
+}
+
+.special {
+ color: #ff8800;
+}
+
+/* Emphasis 2 */
+.special2 {
+ color: #00f900;
+}
+
diff --git a/lib/galaxy/model/migrate/check.py b/lib/galaxy/model/migrate/check.py
index 84556e29452..2d71a440f16 100644
--- a/lib/galaxy/model/migrate/check.py
+++ b/lib/galaxy/model/migrate/check.py
@@ -99,7 +99,11 @@ def create_or_verify_database( url, galaxy_config_file, engine_options={}, app=N
def migrate_to_current_version( engine, schema ):
# Changes to get to current version
- changeset = schema.changeset( None )
+ try:
+ changeset = schema.changeset( None )
+ except Exception as e:
+ log.error("Problem determining migration changeset for engine [%s]" % engine)
+ raise e
for ver, change in changeset:
nextver = ver + changeset.step
log.info( 'Migrating %s -> %s... ' % ( ver, nextver ) )
diff --git a/scripts/slideshow/__init__.py b/scripts/slideshow/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/scripts/slideshow/build_slideshow.py b/scripts/slideshow/build_slideshow.py
new file mode 100644
index 00000000000..6331f3af0e5
--- /dev/null
+++ b/scripts/slideshow/build_slideshow.py
@@ -0,0 +1,27 @@
+import os
+import string
+import sys
+
+
+SCRIPTS_DIRECTORY = os.path.dirname(__file__)
+TEMPLATE_PATH = os.path.join(SCRIPTS_DIRECTORY, "slideshow_template.html")
+TEMPLATE = string.Template(open(TEMPLATE_PATH, "r").read())
+
+
+def main(argv=None):
+ if argv is None:
+ argv = sys.argv
+ title = argv[1]
+ markdown_source = argv[2]
+ output = os.path.splitext(markdown_source)[0] + '.html'
+ with open(markdown_source, "r") as s:
+ content = s.read()
+ html = TEMPLATE.safe_substitute(**{
+ 'title': title,
+ 'content': content,
+ })
+ print html
+ open(output, "w").write(html)
+
+if __name__ == "__main__":
+ main()
diff --git a/scripts/slideshow/example.md b/scripts/slideshow/example.md
new file mode 100644
index 00000000000..4c11f4cd87d
--- /dev/null
+++ b/scripts/slideshow/example.md
@@ -0,0 +1,243 @@
+## Galaxy Tool Framework Changes
+
+This document describes changes to Galaxy's tooling framework over recent
+releases.
+
+---
+
+### 16.04
+
+Full [Galaxy changelog](https://docs.galaxyproject.org/en/master/releases/16.04_announce.html).
+
+---
+
+#### Tool Profile Version ([PR #1688](https://github.com/galaxyproject/galaxy/pull/1688))
+
+Tools may (and should) now declare a `profile` version (e.g.
+``).
+
+This allows Galaxy to fire a warning if a tool uses features too new for the
+current version and allows us to migrate away from some undesirable default
+behaviors that were required for backward compatiblity.
+
+---
+
+#### `set -e` by default ([d020522](https://github.com/galaxyproject/galaxy/pull/1688/commits/d020522650a9bfc86c22923a01fd5d7c07c65326))
+
+From the [IUC best practices documentation](http://galaxy-iuc-standards.readthedocs.org/en/latest/best_practices/tool_xml.html#command-tag):
+
+> _"If you need to execute more than one shell command, concatenate them with a double ampersand (`&&`), so that an error in a command will abort the execution of the following ones."_
+
+The job script generated with profile `16.04`+ tools will include a `#set -e` statement causing this behavior by default.
+
+Older-style tools can enable this behavior by setting `strict="true"` on
+the tool `command` XML block.
+
+---
+
+#### Using Exit Codes for Error Detection ([b92074e](b92074e6ff87a19133b4d973577779c4ee6286d7))
+
+Previously the default behavior was for Galaxy to ignore exit codes and
+declare a tool in error if issued any output on standard error. This was
+a regretable default behavior and so all tools were encouraged to declare
+special XML blocks to force the use of exit codes.
+
+For any tool that declares a profile version of `16.04` or greater, the
+default is now just to use exit codes for error detection.
+
+---
+
+#### Unrobust Features Removed ([b92074e](b92074e6ff87a19133b4d973577779c4ee6286d7))
+
+A few tool features have ben removed from tools that declare a version of `16.04` or newer.
+
+- The `interepreter=` attribute on `command` blocks has been eliminated. Please use `$__tool_directory__` from within the tool instead.
+- `format="input"` on output datasets has been eliminated, please use `format_source=` to specify an exact input to derive datatype from.
+- Disables extra output file discovery by default, tools must explicitly describe the outputs to collect with `discover_dataset` tags.
+- Tools require a `version` attribute - previously an implicit default to `1.0.0` would be used.
+- `$param_file` has been eliminated.
+
+---
+
+#### Clean Working Directories
+
+Previously, Galaxy would fill tool working directories with files related to
+metadata and job metric collection. Tools will no longer be executed in the same directory as these files.
+
+This applies to all tools not just profile `16.04`+ tools.
+
+---
+
+### 16.01
+
+Full [Galaxy changelog](https://docs.galaxyproject.org/en/master/releases/16.01_announce.html).
+
+---
+
+#### Conda Dependency Resolution ([PR #1345](https://github.com/galaxyproject/galaxy/pull/1345))
+
+```xml
+
+ ...
+
+ FastQC
+
+ ...
+
+```
+
+- Dependency resolvers tell Galaxy how to translate requirements into jobs.
+- The Conda dependency resolver forces Galaxy to create a conda environment
+ for the job with `FastQC` at version `0.11.4` installed.
+- Only dependency resolver that can be installed at runtime - great for
+ Docker images, heterogeneous clusters, and testing tools.
+- Links [Conda](http://conda.pydata.org/docs/) and [BioConda](https://bioconda.github.io/)
+
+---
+
+#### ToolBox Enhancements - Labels ([PR #1012](https://github.com/galaxyproject/galaxy/pull/1012))
+
+ 
+
+---
+
+#### ToolBox Enhancements - Monitoring ([PR #1398](https://github.com/galaxyproject/galaxy/pull/1398))
+
+- The Galaxy toolbox can be reloaded from the Admin interface.
+- Tool conf files (e.g. `tool_conf.xml`) can be monitored and automatically
+ reloaded by Galaxy.
+- Tool conf files can now be specified as YAML (or JSON).
+
+---
+
+#### Process Inputs as JSON ([PR #1405](https://github.com/galaxyproject/galaxy/pull/1405))
+
+```xml
+ python "$__tool_directory/script.py" "$json_inputs"
+
+
+
+```
+
+This will produce a file referenced as `$json_inputs` that contains a nested
+JSON structure corresponding to the tools inputs. Of limitted utility for
+simple command-line tools - but complex tools with many repeats, conditional,
+and nesting could potentially benefit from this.
+
+For instance, the [JBrowse](https://github.com/galaxyproject/tools-iuc/blob/master/tools/jbrowse/jbrowse.xml)
+tool generates a complex JSON data structure using a `configfile` inside the
+XML. This is a much more portable way to deal with that.
+
+---
+
+
+#### Collections
+
+- `data_collection` tool parameters (`param`s) can now specify multiple
+ `collection_type`s for consumption ([PR #1308](https://github.com/galaxyproject/galaxy/pull/1308)).
+ - This mirrors the `format` attribute which allows a comma-separated list
+ of potential format types.
+- Multiple collections can now be supplied to a `multiple="true"` data parameter ([PR #805](https://github.com/galaxyproject/galaxy/pull/805)).
+- Output collections can specify a `type_source` attribute (again mirroring
+ `format_source`) ([PR #1153](https://github.com/galaxyproject/galaxy/pull/1153)).
+
+---
+
+### 15.10
+
+Full [Galaxy changelog](https://docs.galaxyproject.org/en/master/releases/15.10_announce.html).
+
+---
+
+#### Collections
+
+- Tools may now produce explicit nested outputs [PR #538](https://github.com/galaxyproject/galaxy/pull/538).
+ This enhances the `discover_dataset` XML tag to allow this.
+- Allow certain `output` actions on collections.
+ [PR #544](https://github.com/galaxyproject/galaxy/pull/544).
+- Allow `discover_dataset` tags to use `format` instead of `ext`
+ when referring to datatype extensions/formats.
+- Allow `min`/`max` attributes on multiple data input parameters [PR #765](https://github.com/galaxyproject/galaxy/pull/765).
+
+---
+
+#### Whitelist Tools that Generate HTML ([PR #510](https://github.com/galaxyproject/galaxy/pull/510))
+
+Galaxy now contains a plain text file that contains a list of tools whose
+output can be trusted when rendering HTML.
+
+---
+
+### 15.07
+
+Full [Galaxy changelog](https://docs.galaxyproject.org/en/master/releases/15.07_announce.html).
+
+---
+
+#### Parameterized XML Macros ([PR #362](https://github.com/galaxyproject/galaxy/pull/362))
+
+Macros now allow defining tokens to be consumed
+as XML attributes. For instance, the following definition
+
+```xml
+
+
+
+
+
+
+ @FOO@
+
+
+
+```
+
+would expand out as
+
+```xml
+
+ hello
+ world
+ the_default
+
+```
+
+---
+
+#### Tool Form
+
+The workflow editor was updated to the use Galaxy's newer
+frontend tool form.
+
+
+
+---
+
+#### Environment Variables ([PR #395](https://github.com/galaxyproject/galaxy/pull/395))
+
+Tools may now use `inputs` to define environment variables that will be
+set during tool execution. The new `environment_variables` XML block is
+used to define this.
+
+```xml
+
+ ...
+
+ echo "\$INTVAR" > $out_file1;
+ echo "\$FORTEST" >> $out_file1;
+
+
+ $inttest
+ #for i in ['m', 'o', 'o']#$i#end for#
+
+ ...
+```
+
+[Test tool](https://github.com/galaxyproject/galaxy/blob/dev/test/functional/tools/environment_variables.xml) demonstrating the use of the `environment_variables` tag.
+
+---
+
+#### Collections
+
+ - Explicit output collections can now be used in workflows. ([PR #311](https://github.com/galaxyproject/galaxy/pull/311))
+ - The `filter` tag has been implemented for output dataset collections ([PR #455](https://github.com/galaxyproject/galaxy/pull/455). See the example tool [output_collection_filter.xml](https://github.com/galaxyproject/galaxy/blob/dev/test/functional/tools/output_collection_filter.xml).
\ No newline at end of file
diff --git a/scripts/slideshow/slideshow_template.html b/scripts/slideshow/slideshow_template.html
new file mode 100644
index 00000000000..dd534564cdf
--- /dev/null
+++ b/scripts/slideshow/slideshow_template.html
@@ -0,0 +1,18 @@
+
+
+
+ ${title}
+
+
+
+
+
+
+
+
+
diff --git a/scripts/slideshow/style.sample.css b/scripts/slideshow/style.sample.css
new file mode 100644
index 00000000000..d70cf9bfaed
--- /dev/null
+++ b/scripts/slideshow/style.sample.css
@@ -0,0 +1,25 @@
+/*
+This is a sample of a CSS file for a slideshow
+You need to put your `style.css` at the same level than your *.md slideshow file
+Example:
+MyDirectory:
+ - mySlideshow.md
+ - myCss.css
+ - images/
+*/
+@import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
+@import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
+@import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
+
+body {
+ font-family: 'Droid Serif';
+}
+
+h1, h2, h3 {
+ font-family: 'Yanone Kaffeesatz';
+ font-weight: normal;
+}
+
+.remark-code, .remark-inline-code {
+ font-family: 'Ubuntu Mono';
+}