-
Notifications
You must be signed in to change notification settings - Fork 234
Versioning Conventions
Version tagging is based on a major.minor.patch
numbering scheme.
-
The major number is incremented after extensive rewrites or substantial overhauls that may significantly affect workflow integration or user experience. Major updates undergo extensive testing, but subsequent patch updates may still be needed.
-
The minor number is incremented whenever modifications to the source code are significant enough to require updates to parameter files or other input files.
-
The patch number is used to denote bug fixes or other minor revisions. Updates to parameter files or other input files are not required.
In the past, tagged releases have been fairly infrequent because the associated testing is very time consuming. Now that a buildbot system and testing framework are being put in place, the frequency of such releases is expected to increase.
How do we set the version number for a SPECFEM code? The version tagging could look as following (after discussing also with Robert Knight & Dennis McRitchie for shakemovies at PICSciE Princeton):
-
major number increase, e.g. 5.0.1 -> 6.0.0
- if a major feature is added
- if a major restructuring of the code was done
-
minor number increase, e.g. 5.0.1 -> 5.1.0
- if a minor feature is added
- if something in the file format changed:
e.g., a new parameter in constants.h such that the new code would not compile anymore with the old constants.h
-
minuscule number increase, e.g. 5.0.1 -> 5.0.2
- for bug fixes
- if only a very minor feature is added without changing any input parameter files
The following is a checklist to go through when updating the release version:
-
update version numbers in files:
- VERSION file
- configure.ac, update configure script by:
autoreconf -i
- doc/USER_MANUAL/manual_SPECFEM3D_Cartesian.tex
- (globe code) setup/adios_xml_files/par_header.xml
- (globe code) src/specfem3D/write_output_SAC.f90
-
add version information to header in files:
- src/meshfem3D/meshfem3D.f90
- src/specfem3D/specfem3D.F90
- doc/USER_MANUAL/copyright_and_version.tex
- doc/USER_MANUAL/manual_SPECFEM3D.tex
-
update development plan:
- wiki/Development-plan.md
-
announcement:
- what is new?
- what has changed?
- what bug fixes are done?
Development wiki for SPECFEM3D
Development wiki
- Home
- Development plan
- Best Practices
- Using Git for SPECFEM
- Advanced Git Topics
- Versioning Conventions
- Merging Development Branches into Master
User manual
- 01_introduction
- 02_getting_started
- 03_mesh_generation
- 04_creating_databases
- 05_running_the_solver
- 06_fault_sources
- 07_adjoint_simulations
- 08_doing_tomography
- 08b_performing_full_waveform_inversion_FWI_or_source_inversions
- 09_noise_simulations
- 10_gravity_calculations
- 11_graphics
- 12_running_scheduler
- 13_changing_the_model
- 14_post_processing
- 15_informations_for_developers
- A_reference_frame
- B_channel_codes
- C_troubleshooting
- D_license
- authors
- bug_reports
- copyright_and_version
- features
- manual_SPECFEM3D_Cartesian
- notes_and_acknowledgement
- sponsors