Dear all,

as you might have noted I have revised the release-steps.md document to reflect 5.0 -> 5.1 to the best of my knowledge.

I propose that we follow the strategy from version 4 releases and put a release candidate in main/branches/5.1/trunk/ and that we release it in main/releases/5.1.0/trunk/ (exactly as that) and same for documentation and testing.

If there are objections to that (we did it slightly different in 5.0.0) I need to know since this will have to be modified in the “switching” script I have done.

I have taken a complete backup of all jobs so I am ready to carry out my part of the work, once there is a release candidate in place.

I have attached the list with steps I need to perform during the switch just to give you an idea of the many manual items still. Not complicated but tedious. After this release we might merge this list with  release-steps.md (or keep it as a separate item).


Necessary steps to perform when making a new release for ooRexx

1. All the footwork done for a release (Ricks document release-steps.md, 
compright update etc) and
   A Release candidate in main/branches/5.1/trunk or main/releases/5.1.0/trunk

2. Make a complete backup of Jenkins using jenkinsTotalBup.sh, date it and 
store away to DATA disk.

IMPORTANT
3. On the machine where the documentation is built make a complete copy of the
   Documentation job folder ooRexx-docs-build -> ooRexx-docs-build-Beta
   and thereafter clean out all old build files in ooRexx-docs-build
   zip, html, fo, pdf and delete version files both old and new
   make a SVN update oorexxdocSVN to confirm that svn is ok

4. Copy jenkinsTotalBup.zip to a temporary work folder, like Downloads

   Extract job folders WITH COMPLETE PATH /var/lib/jenkins/jobs/* 
   Copy Modifybuildjobs.rex to the same folder

NOTE: Work folder can be on another machine
   This can be done using GUI and file browser

5. In the script Modifybuildjobs.rex check this (example for 5.1.0)
 
   needle1     
='<remote>https://svn.code.sf.net/p/oorexx/code-0/main/trunk</remote>'

   Use one of the below depending on where the release candidate is located 
--newneedle1  
='<remote>https://svn.code.sf.net/p/oorexx/code-0/sandbox/po/branches/5.1/trunk'
  newneedle1  
='<remote>https://svn.code.sf.net/p/oorexx/code-0/sandbox/po/releases/5.1.0/trunk'

NOTE: 5.0.0 was https://svn.code.sf.net/p/oorexx/code-0/main/releases/5.0.0
      4.2   was 
https://svn.code.sf.net/p/oorexx/code-0/main/releases/4.2.0/trunk

   Modify Modifybuildjobs.rex to include the correct new paths
   needle = current path
   newneedle = the release path
   Run Modifybuildjobs.rex
   This will find and modify /var/lib/jenkins/jobs/<platform>/config.xml
   The script will also empty /var/lib/jenkins/jobs/<Platform>/builds/
   thereby removing all previous builds. We are ready for a fresh upload

NOTE: In order to be successful most builds need a fresh copy of the 
documentation. Since the revision
information is depending on how the documentation was built we need to make a 
build first to create the documentation and then build the artifacts a 2nd time 
with the correct documentation

6. Log in to Sourceforge and create one NON-STAGED folder for the new 
documentation build oorexx-docs/5.1.0
   important! Wget does not work with staged folders

7. Create 2 STAGED folders on Sourceforge
   /projects/oorexx/files/oorexx/5.1.0/
   /projects/oorexx/files/oorexx/5.1.0/portable/

IMPORTANT
8. In Jenkins main screen go over all build jobs and wipe the workspace
   -> this prevents older build files to be uploaded
   Do NOT, I repeat NOT wipe the upload and zip upload folders!

9. In Jenkins main screen set all physical machines to offline,
    also Built in Node (Controller), make a remark
   "Set to Offline for a release test P.O. Jonsson 2025-03-12"

   For machine used to build the documentation disable all other
   jobs -> Nodes -> pos MacPro 16Core
   -> job -> Configure -> turn "Enabled" to off and save these:
   ooRexx-docs-buildutils-check
   ooRexx-macOS14-X86_64-build
   ooRexx-macOS14-X86_64-test
   ooRexx-source-package-build

10. Turn all virtual machines off (on Mac and Win)

Now only ooRexx-docs-build is active and we are ready for switching

11. Stop Jenkins from running -> on Jenkins master sudo systemctl stop jenkins
   From remote use ssh to connect to jenkins controller
   ssh jenkins@192.168.1.8 (locally) or ssh jenk...@build.oorexx.org -p 2208 
(from remote)
   sudo systemctl stop jenkins or sudo service jenkins stop
   This is absolutely essential to do before anything else.

12 Copy back the modified /jobs folder from the /var/lib/jenkins/jobs/ 
   zip and move or use NAS/Upload


CONTINUE CHECKING HERE BUT WIPE ALL WORK        FOLDERS FIRST
------------------------------------

CHECK

--------------------
   
13 Start jenkins again
   sudo service jenkins start
   If all goes well the build of the documentation should start and
   upload to Sourceforge staged folder under oorexx-docs

14 When the documentation is completely built start by setting one or
   a few platforms (Win, MacOS, Ubuntu) active again and launch a build,
   make sure it/they build ok, activate the upload and zipupload jobs
   manually and check that the built are ok 

15 When all are ok and checked by others release the remaining jobs and
   turn on all VMs monitor that all platforms are built.
 
MOVING TO THE NEXT BETA AFTER RELEASE

1 Basically this is the same procedure as for the release, only with
  different paths.
  Store a copy of the modified  /var/lib/jenkins/jobs
  Modify Modifybuildjobs.rex again for the upcoming beta
  Run Modifybuildjobs.rex

WORKING MATERIAL, DELETE WHEN WORKING

Test to build from

/Users/jenkins/ooRexxSVN-Code-0/sandbox/po/branches/5.1/trunk

This works but the upload did not work
For Windows the documentation was taken from the Beta -> we need to modify the 
build to download locally

/Users/jenkins/ooRexxSVN-Code-0/sandbox/po/releases/5.1.0/trunk

For Upload and zip upload -> Make sure to add 5.1.0 to commandline before 
backing up again

In the parsing make sure to remove all builds from jobs/builds, delete hyperlink

rexx jenkinsArtifactUpload.rex 

ooRexx-CentOS9-build
ooRexx-Debian11-build
ooRexx-Fedora38-build
ooRexx-FreeBSD14-build
ooRexx-linux-aarch64-build
ooRexx-LinuxMint21-build
ooRexx-macOS14-X86_64-build
ooRexx-macOS14-M1-build
ooRexx-NetBSD9-build
ooRexx-OpenBSD7_2-build
ooRexx-OpenIndiana-build
ooRexx-OpenSuse15-build
ooRexx-RaspberryPiOS32-build
ooRexx-RaspberryPiOS64-build
oorexx-ubuntu16-build
oorexx-ubuntu16debug-build
ooRexx-Controller-Ubuntu20-build
ooRexx-Ubuntu24-build
ooRexx-windows32-build
ooRexx-windows64-build
ooRexx-source-package-build


----------------------------------------------------------------


Hälsningar/Regards/Grüsse,
ooRexx
oor...@jonases.se



_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to