Minor version

New version system: _vX.Y.Z

More information on  http://semver.org

Now, any spider should be name: Spider_ProcName_vX.Y.Z.py
The ProcName will refer to the process you are running. Example: Spider_dtiQA_v2.0.0.py
The assessor label on XNAT are named with the ProcName and X like: Project-x-subject-x-session-x-scan-x-dtiQA_v2  / dtiQA_v2 will be the proctype.

To know about the X.Y.Z version, read this http://semver.org .
X is for major version when you make incompatible API changes.
Y is for minor version when you add functionality in a backwards-compatible manner.
Z is for patch version when you make backwards-compatible bug fixes.

What does that mean?
This means that any new spider with a version X different will be a new assessor on XNAT.
Any changes on Y or Z will not create a new assessor. You will need to rerun the assessor if you want to have the new changes.
You can specify the version of the spider in the processor.

The old spider like they are written will still works.
Please for the new spider, start using the _vX.Y.Z version system.
Use X=0 for development. 
"1.0.0" is the first version for production mode. 
If no _vX.Y.Z, we assume that it's "1.0.0"
Oh I will check that.

Benjamin Yvernault

> On Jun 30, 2014, at 17:25, "Brian D. Boyd" <notifications@github.com> wrote:
> 
> In cci/processors.py:
> 
> > +            #remove any version if there is one
> > +            proc_name=re.split("/*_v[0-9]/*", proc_name)[0]
> > +            #setting the version and name of the spider
> > +            self.version = version
> > +            self.name = proc_name+'_v'+self.version.split('.')[0]
> > +            self.spider_path = os.path.join(os.path.dirname(spider_path),'Spider_'+proc_name+'_v'+version+'.py')
> > +        else:
> > +            self.default_settings_spider(spider_path)
> > +    
> > +    def default_settings_spider(self,spider_path):
> > +        #set spider path
> > +        self.spider_path = spider_path
> > +        #set the name and the version of the spider
> > +        if len(re.split("/*_v[0-9]/*", spider_path))>1:
> > +            self.version = os.path.basename(spider_path)[7:-3].split('_v')[-1]
> > +            self.name = re.split("/*_v[0-9]/*", spider_path[7:-3])[0] +'_v'+ self.version.split('.')[0]
> Right here is the cause of the bug. We need to call os.path.basename on spider_path
> 
> —
> Reply to this email directly or view it on GitHub.