Project

General

Profile

Model Change Workflow » History » Revision 9

Revision 7 (Andreas Müller, 08/30/2013 04:40 PM) → Revision 9/17 (Andreas Müller, 03/07/2019 02:48 PM)

 



 



 # WORKFLOW for Changing CDM Model 

 


 * Create branch in cdmlib called cdm-x.x where x.x is the model version 

 * Adapt version number and create SchemaUpdater (should be simplified) 
     * create new package in cdmlib-persistence/eu.etaxonomy.cdm.database.update for the new version 
     * create new SchemaUpdater in this package (compare with older SchemaUpdaters) 
     * link method getPreviousUpdater to last used SchemaUpdater, accordingly link last used SchemaUpdater with the new SchemaUpdater 
     * in CdmUpdater set getCurrenSchemaUpdater to new SchemaUpdater 
     * in new SchemaUpdater set startSchemaVersion with current value in CdmMetaData.dbSchemaVersion 
     * in new SchemaUpdater set endSchemaVersion with new value, adapt CdmMetaData.dbSchemaVersion with exact same value (should represent the expected release date) 

 * Run all tests in current trunk 

 

 * Create branch for new model 

 

 * Run all test in new branch 

 

 * Change model 

 

 * Check for  

    

   * hibernate annotations 

   

   * JAXB annotations (on attribute and class level) 

   

   * clone methods 

   

   * other methods 

   

   * write tests (for all layers) 

   

   * write database update (persistence layer), also test that hibernate_sequences is up-to-date after updates 

   

   * adapt testing data (xsd, xml, etc.) 

   

   * run tests for all layers 

 

 * test brach with applications (Taxonomic Editor, Data Portals) on local databases, including update script 

 

 * test branch with applications (Taxonomic Editor, Data Portals) on developer server, including update script 

 

 * integrate into trunk 

 

 * test trunk with local database and developer server 

 

 * create new milestone, move all open tickets to new milestone, close old milestone 

 

 * roll-out Taxonomic Editor and CDM Server at the same time 

 

 * update uml model 

 

 * update project pages (java doc) 

 

 * document on "What has changed" sites