BrainVisa release plans and planned evolutions¶
Version 4.2: january 2012¶
FEATURES:- Soma-workflow integration in BrainVisa
- FreeSurfer toolbox:
Process "Import From FreeSurfer to T1 pipeline" is available at user level 1.
All other processes are available at user level 2.
- lock files:
Please to refer Issue #3427 to read the beginning of the discussion.
To sum up the short implemenation of locked files, it seems better:- to lock at the file level with an empty .lock file
- the lock don't be transmitted when you copy files
- no new button, just a new entry in the menu by right-click on the parameter
- by right-click on the parameter
Lock action:
When you press "run" to launch a process or a pipeline, BrainVISA must check if data are locked (if there is a .lock). If yes, BrainVISA stops the process.
When a process launch a command with context.system, BrainVISA must check too.
context.runProcess and context.system
But do ALL processes use a context.sytem when they launch a command ?Further features:
- lock all output files of a pipeline or a process
- add an option in BrainVISA -> preferences : to lock always/never output files
version 4.3: september 1, 2012¶
- Feature freeze (and svn branches creation): august 1, 2012
- Axon:
- Processing history management in databases: (/) done
- GUI: docs viewer is now a “real” web browser: (/) done
- Axon libs can now really be used as standard python libraries: import brainvisa.axon: (/) done
- Anatomist control goes to the “direct” mode, allowing more sophisticated viewers (BV/Anatomist combined interfaces): (/) done
- reorganization of axon source tree: files in the "brainvisa" directory should go in the "python" tree. (/) done
Old python modules have been moved to brainvisa.processing, brainvisa.data and brainvisa.configuration sub-modules.
Older top-level modules (directly used in processes, such as neuroProcesses) are still reachable directly via a proxy module, which will import from the new location (brainvisa.processing.neuroProcesses for instance). Modules which should not be commonly used from processes (like neuroLog) have been removed from the brainvisa directory. - fixes in configuration options (it aborted when a non-existing (or moved away) file was referenced in the config: (/) done
- reusable anatomist windows in Brainvisa: done but could be extended to windows blocks: (/) done
- Morphologist:
- Reorganization of the toolbox, now including the sulci and morphometry toolboxes: (/) done
- Greg's “snapbase”, large scale snapshot tools
- Anatomist:
- Replacements for old histogram and profile windows, with more features: (/) done
- “BrainVisa Sulci Atlas” plugin: may be posponed to release 4.4
- some new features in manual sulci splitting: (/) done
- sulci annotations reimplemented in C++, a lot faster now: (/) done
- new fusion modes: (/) done
- fibers rendering using shaders light models: (!) delayed, implemented in 4.5
- Aims:
- AimsRoiFeatures should replace AimsVoiStat: it should thus implement all features of AimsVoiStat (like timesteps features), and make AimsVoiStat issue a deprecation warning
- Soma-workflow:
- compatibility with Pyside: (/) done
- Documentations:
Document new features: TO DO...
Most important features are almost ready.
Still needs:
- testing
- a pass on open bug tickets.
Please check / confirm / status bugs: To do:
Later, version 4.4? and / or 5.0¶
Most of the following features have been aborted and postponed. Version 4.4 (released in nov. 2013) was mainly a slight update to 4.3, with limited improvements.
- Drop compatibility with python 2.5: 2.6 or higher must be installed on all systems ( (/) done)
- Axon:
- Pipelining infrastructure will be entirely redesigned ( (!) not done)
- Databasing will be redesigned ( (!) not done)
- Allow remote, multi-user databases, as well as local lightweight databases
- Overcome concurrent access problems and limitations
- Allow databases copies and easy data sharing (partially done)
- More modularization: ( (!) not done)
- pipelining and databasing APIs will be available as independent library modules. “Axon” will just use several components
- Processes will look more like standard python functions
- Morphologist:
- More restructuring of the pipeline, allowing better parallelization (partially done in Morphologist 2013)
- user-friendly interface: Connectomist-style with integrated Anatomist views ( (!) not released)
- Integrating the morphometric stats part ( (!) not done)
- Anatomist:
- ROI toolbox GUI refactoring ( (!) not done)
- New fibers rendering ( (/) done for version 4.5)
- Redesign the referentials/transformations system ( (!) not done)
- Integration of connectivity profiles visualizations (Pauline Roca) ( (/) done in Constellation 4.5, but not released yet)
- Various GUI improvements and visual interactive feedbacks (partly done)
Version 4.5¶
Target date: july 2015
New web site (currently brainvisa.fr)¶
- create an account brainvisa
- create 2 directories:
~/prod/www ~/testing/www
- create 2 directories for repositories and installers
~/prod/packages/<release>/<system>/brainvisa-installer packages ~/testing/packages/...
( (/) done)
Test site: http://brainvisa.fr:8080
make bug_fix branches¶
bv_maker correspondance¶
bv_maker | svn |
trunk | trunk |
bug_fix | branches/4.3 4.2 bug_fix (= future 4.4) |
tag | tags/latest_release (= 4.3.1) 4.3.0 |
The correspondance between bv_maker names and svn/git branches can be setup independently.
We will do so wile setting up the new svn branches bug_fix, so that developers will not be impacted.
make a new script: bv_release, for automatic version / branch change¶
it will replace bv_create_branch
- The script should deal with svn and git, with a priority for svn, first.
- 2 modes:
- change trunk -> bug fix branch
- tag a new release
both modes are similar with small differences.
For svn:¶
- bug_fix branch:
bv_release -i <project(s)>
- move the bug_fix branch to a new numbered version: <tt>bug_fix -> 4.4</tt>
if the numbered branch already exists ? delete it first ? display an error ? merge it ?
if bug_fix doesn't exist yet: do nothing ? - copy the trunk branch to the (new) bug_fix one
- increment the version number in trunk sources (project_info.cmake/info.py etc)
- move the bug_fix branch to a new numbered version: <tt>bug_fix -> 4.4</tt>
- tag a release:
bv_release -r <project(s)>
- move the latest_release branch/tag to a numbered version: <tt>latest_release -> 4.3.1</tt>
- copy the bug_fix branch to the (new) latest_release one
(version is not changed) *** questionable ? maybe the version in bug_fix should be incremented (4.3.2) ?
( (/) done for svn)
For git, the branch policy has to be defined first.¶
- git has a master branch, which is generally the "stable" one, corresponding to bug_fix (in svn or bv_maker).
this "stable" branch should not include new features. - we need a development one, equivalent to trunk, but which integrates new features: integration ?
- creating a new bug_fix branch will merge integration into master (and tag wit a number)
- creating a release will move the latest_release tag, and create a numbered tag
Distributions will use the Qt installer. ( (/) done)¶
Features¶
web site¶
- complete images, especially for developing toolboxes demos
- link to CATI project ( (/) done)
- validate things with Jeff
software¶
- soma-io: the OpenSlide plugin and lib has modifs for Zeis format, not integrated to the main Openslide project due to possible license issues.
- fix tests which do not pass at the moment
- fix Matplotlib on Windows which randomly fails to load some of its modules
- cleanup soma-base
- clarify separation between Capsul and Soma-base libs (Controller GUI...) (ongoing)
- move some things from soma-base to axon, remove obsolete things (ongoing)
To be further discussed and continued...