Development Branches
Main branches
master
This is the development branch of VisTrails. It's where the features are merged for the next release and tested/bugfixed for a future public version.
v2.1
This is the upcoming version, currently in beta. No more features should be added here, and once we think no more bug fixing is required, it will become the new stable version. Bug fixes will still happen on this branch, and would lead to the release of minor versions (2.1.1, 2.1.2, ...).
v2.0
This is the current stable version. No more features are to be added here. We add there the occasional bugfix, but this should slow down once 2.1 is released.
The list of features that are not present in 2.0 is available on the page New features.
uvcdat-*
These branches are used by the UV-CDAT project. They were forked from VisTrails long ago (Feb. 2012) and there is not intention to merge back, although they live in the same repository.
Development branches
master itself is an integration branch and is not generally stable. However development of complex features happen in their own branches, based off master or a release branch, which are listed below.
add-gmaps-package
Adds a gmaps package that uses Qt's WebKit to render Google Maps in a spreadsheet cell.
automatic-loops
Execute module once for each input in a list without using a Map. Working.
automatic-loops-streaming
Based on automatic-loops, allows streaming inputs one at a time through the workflow. TODO: Accumulate results in single module. Group support.
controlflow-fake-signatures
This effort is about having Map work better with the cache and with ModuleSuspended/JobSubmission.
controlflow-fake-signatures builds fake signatures for the looped module in FoldWithModule. This still doesn't use the cache but makes these signatures unique.
jobs-use-signature uses the subpipeline signature as the job identifier. Checking for an existing job happens earlier, which allows a module with an already-submitted job to suspend again or finish without running its upstream at all (like persistence does once the file is cached).
jobs-use-signature_/connect-folded-module tries to make FoldWithModule build an actual runtime pipeline (a set of vistrails_module:Module and ModuleConnector objects, not vistrail.module:Module and Connection).
Next thing to try: make FoldWithModule instanciate a full-fledged pipeline an pass it through the interpreter (like what Group does, except that pipeline would be dynamically generated, and executed several times). There are issues here with logging, since we want to have a LoopExec with the global module IDs in the log, not a WorkflowExec and different (from the dynamic pipeline generation) module IDs.
dat
This branch has changes needed by the DAT tool, and that generally makes VisTrails more customizable and useful when used as a library. These changes are intended to be merged back in the main line of development someday.
dont-use-modules-as-data
Tries to not pass Module subclasses on connections, and to not use 'self' as an output port.
This effort causes a lot of issues in the tests because so many packages' version have been bumped, causing upgrades to happen where they didn't happen before.
See issue 804.
dont-use-modules-as-data_/matplotlib: fixes what can be fixed in matplotlib package
export-cells
Adds options to export a single spreadsheet cell to various formats.
Related UV-CDAT issue: #408
hash-annotations
Adds annotations to module signatures Deprecated. We should use control-parameters instead.
improves-logging
Improves core.debug.
improves-logging_/v2.1 backports some functionalities to v2.1 so that deprecation warnings are actually visible.
input-module-no-subclass
Disallows connection of any type to Module input ports, only allows Module itself (disallows subclasses). This is to make self->FunctionPort connections safer.
java-pkg
Port of the java packages from the 'java' branch. Work in progress.
mac-app
Alternative method to create a Mac OS X app bundle for VisTrails. Doesn't use py2app, builds Python as a framework, installs required packages and relinks Qt and vtk using install_name_tool.
TODO: move from shell script to Makefile or Python, make relinking more automatic.
madagascar
Contains a package wrapping madagascar. Basic modules are working but more work is needed.
matplotlib-add-helpers
Improvements to both the matplotlib package and a start at a general framework for semi-automated package generation.
matplotlib-figure-creation
Attempt at fixing issue 685, which makes matplotlib incompatible with the multithreaded-interpreter work.
module-upgrade-recursion
Work to make UpgradeWorkflowHandler.remap_module work recursively so that upgrades can be chained rather than rewritten.
multithreaded-interpreter
This changes the interpreter part of VisTrails to use a task system instead of relying on each module running its upstream counterparts recursively. It allows the use of multithreading at the module level (i.e. running different modules in parallel) and provides this via different schemes. The branch has schemes for threading and multiprocessing (through concurrent.futures) as well as IPython (which replaces the ParallelFlow package).
This is a legacy branch that is still relevant and functional, but is superseeded by multithreaded-interpreter-target-selection which provides more options.
More information is available on its specific page: multithreaded-interpreter.
multithreaded-interpreter-target-selection
It's a variant of the previous branch that changes the way schemes work. There can be different instances of each scheme (named targets), configured by the user, and each module can be assigned to a specific target, allowing fine-grained control of where each module should execute.
It also revamps the XML log and adds an XML configuration file for remote execution.
multithreaded-interpreter-responsive
This brings in background-interpreter, except that it works. The interpreter runs in a different thread, although modules that don't use the @parallelizable decorator will be run synchronously on the UI thread (thus blocking the UI for a time).
See issue 701.
It is probably required for further work in stopping/resuming workflows, but is a bit complex.
new-matplotlib-pkg
New 'matplotlib' package, that replaces 'pylab'. Has been merged in v2.1 and released. The branch is still used by Sunitha Menon who is making more examples.
optimize-vtk-startup
Profiles and tries to shorten the loading time of the VTK package.
parameter-configuration-api
Improves the widgets API to allow module developers to choose custom widgets for the ports of their modules (see issue 699).
Currently, it is only possible to provide a widget for a type (all ports of that type will have that widget) or to do limited configuration with entry_type. This branch makes it more extensible.
persistent_archive
Work on a new package to replace persistence.
See issue 755 and the file_archive tool.
pyside-compatibility
This branch aims at making VisTrails compatible with both PyQt4 and PySide. PySide currently crashes.
python3
Python 3 port of VisTrails. Work in progress.
See issue 674.
rename-api
Renames some methods from CamelCaseNames to python_style_names.
resume-suspended-pipelines
Changes the interpreter to not clean not-cacheable modules from the persisted pipeline if the execution was suspended. This means that the next execution will resume close to where the last one stopped.
Obviously doesn't work across sessions.
rewrite-startup
Rewrites the startup logic (configuration and command-line option parsing).
richtextcell-xml-xsl
Adds an XSLCell module that shows a XML document formatted via an XSLT stylesheet.
See issue 292.
scripting-support
Work attempting to make it possible to convert from scripts to workflows and vice versa. Based off rename-api.
See issue 732
Merged in master, not in v2.1 yet.
tabledata-merge-tabdata
Work to merge some of the tabdata package work (used for the weather.vt example) into the the tabledata package.
ungroup-keep-disconnected-ports
Some sections of the usersguide makes the user create a group by making a pipeline with the inputport/outputport modules and grouping them along. This is useful when using controlflow, where some ports need to be "exported" although they are not connected in the final structure. But ungrouping doesn't preserve them, so when changing something in a group, regrouping is the hardest part.
This adds an option to ungroup to the inner unconnected structure with the InputPort/OutputPort modules preserved, instead of replacing them with the outer connections of the replaced group module.
Not sure what to do with that.
unicode
Tries to make VisTrails unicode-safe. This means eliminating bytestrings from the code where unicode strings were meant (PyQt4 already uses unicode). Work in progress.
See issue 673.
use-uuid
Use UUIDs for identifiers instead of incrementing integers. This would make things like merging vistrails or dealing with distributed versions of the same vistrail much easier (e.g. crowdLabs, subworkflows).
See ticket 355
Unknown branches (fixme?)
easy-install (2012-11-21)
Emanuele's branch trying to get easy-install to work on both user/system installations. We have now moved to using "pip" but some of this may still be relevant.
fernando (2010-03-28)
improve-vt-bundle
matplotlib-add-helpers (2014-01-28)
order-connections
sahm-mac
sql-alchemy
v2.0-prov
v2.0-with-layout (2012-08-22)
vtk-new-package
To be deleted?
- for-module: merged (adds a For module, issue 282)
- richtextcell-rtf-support: merged (adds RTF support in addition to HTML to RichTextCell, issue 789)
- remove-lockmethod: merged (removes the unused interpreter mutex, issue 791)
- remove-socket: merged (removes stall single-instance sockets, issue 793)
- testsuite-tempdir: merged (fixes theuse a different temporary and dotvistrails directories for the testsuite, issue 732)
- fix-server: merged (hotfix for VisTrails server in v2.1.0)
- logger-rewrite: merged (rewrites the logger to better support loops and for compatibility with multithreaded-interpreter, issue 774)
- tabledata-doc: merged (user's guide section + example for tabledata and matplotlib)
- tabledata-write-table: merged (adds modules to write tables)
- reload-disabled-package: merged (allows to reload a disabled package from the package list, issue 714)
- remove-unused-doc-images: merged (removes unused images from the users' guide)
- str-format-module: merged (adds a StringFormat module for str.format())
- fix-focus: merged (fixes detached views)
- fix-packagemanager-dependencies: merged (get_ordered_dependencies() returned the list backwards, issue 829)
- sql-pkg-sqlalchemy: merged (rewrites sql package with SQLAlchemy)
Related projects
These are projects part of the VisTrails effort that we are working on, but that are not technically a part of the VisTrails repository.
DAT
The Data Analysis Tool is inspired by UV-CDAT. It has a similar interface meant to create visualizations from Plots and Variables connected together by drag and drop, generating the VisTrails workflows on-the-fly. It lives in vgc.poly.edu:src/dat.git. The changes it requires on VisTrails have not been fully merged in and are in the dat branch.
file_archive
This is a file store with metadata that is meant to replace Git as the backend of the persistence package. It is developed as a stand-alone tool and library, allowing to search for and get files that were generated from VisTrails without having to go through its UI. An initial design document is on the Archive page.
See the Github project, issue 755 and branch persistent_archive.