Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fixups in the releasing process
[simgrid.git] / doc / doxygen / inside_release.doc
index 4ebbcef..9f8492f 100644 (file)
@@ -146,5 +146,50 @@ the settings icon of the release you want to change.
   - Do the possible cleanups now that these features are gone.
 - Update the Docker images (after pushing to the git)
   - cd tools/docker && make stable tuto-s4u push
+  - Update the simgrid-template-s4u repository to test against this new release
+    jed ~/Code/simgrid-template-s4u/.gitlab-ci.yml
+
+Release numbering semantic: 
+  - 3.X is a named release. 
+    - We have 4 named releases per year (for each equinox and solstice)
+    - The ChangeLog and NEWS are complete and informative
+    - All tests pass on all ci systems (or the workarounds are documented)
+    - We provide and store a source .tar.gz and a full jarfile on framagit
+    - Deprecated symbols remain usable for at least 3 named releases (~1 year)
+    - These releases are announced to the users
+  - 3.X.Y where Y is even: dot release of 3.X, prerelease of 3.(X+1)
+    - We provide and store a source .tar.gz and a full jarfile on framagit
+    - These releases are NOT announced publicly, nor really documented. 
+      The idea is to have something close to a rolling release.
+    - External projects can depend on dot releases to loosen their
+      release process from ours, when 4 release a year is not enough 
+  - 3.X.Y where Y is odd: git current status between two releases
+    - No expectations on such versions
+  - Example
+    - 3.22.4: unannounced/losely documented stable release
+    - 3.22.5: git status somewhere between the release of 3.22.4 and the next one
+    - 3.23: Documented and announced stable release
+    
+Doing a dot release:
+  - Update the version number in:
+      - CMakeLists.txt (in macros SIMGRID_VERSION_*)
+      - sonar-project.properties
+      - docs/source/conf.py
+      - setup.py
+  - Commit and push to both framagit and github
+  - Wait for both appveyor and jenkins/highsierra to complete the build
+  - If it's not successful, fix it and push again
+  - Once it's successful on both appveyor and jenkins:
+    - tag the release v3_X_Y and push the tag
+    - Merge 'master' into 'stable' and push it to framagit
+    - Do not merge into 'stable' before appveyor and jenkins are done,
+      or your jarfile will not contain the code you expect for win and
+      mac.
+  - python3 setup.py sdist # Build a source distrib
+    - test that the built distrib recompiles:
+      rm -rf /tmp/pysimgrid && mkdir /tmp/pysimgrid && cp dist/simgrid-*.tar.gz /tmp/pysimgrid 
+      (cd /tmp/pysimgrid && tar xfz simgrid*.tar.gz && cd simgrid-*/ && python3 setup.py build)
+    - Upload it to pypi (WARNING: you cannot modify uploaded files, ever)
+      twine upload dist/simgrid-*.tar.gz
 
 */