Skip to content

Releasing A New Version Of AZSLc

galibzon edited this page Nov 2, 2022 · 17 revisions

In summary, releasing a new version of AZSLc is accomplished with the following steps:

  1. Clone AZSlc at the development branch. If the tag doesn't exist, create a tag based on the version described in AzslcMain.cpp. The tag should be pushed to the upstream repository: https://github.com/o3de/o3de-azslc.git.
> git tag -a 1.8.9
> git push upstream 1.8.9

Remark: For the rest of the instructions the version number 1.8.9 will be used.

  1. Clone https://github.com/o3de/3p-package-scripts.git, at the main branch.

  2. Clone https://github.com/o3de/3p-package-source.git, at the main branch.

  3. Now we need to update both the "git_tag" and "package_version" properties in 3p-package-source/package-system/azslc/build_config.json:

   ...
   "git_tag":"1.8.9",
   ...
   "package_version":"1.8.9-rev1",
   ...
  1. Now let's update the new package name for each host platform: Windows, Linux and MacOS:

Windows:

Update "build_from_source" section of this json file 3p-package-source/package_build_list_host_windows.json . You should only replace the name of the json key called "azslc-<x.y.z>-rev1-windows" with the new version. In this example the new name will be: "azslc-1.8.9-rev1-windows".
Update "build_from_folder" section of the same json file 3p-package-source/package_build_list_host_windows.json . You should only replace the name of the json key called "azslc-<x.y.z>-rev1-windows" with the new version. In this example the new name will be: "azslc-1.8.9-rev1-windows".

Linux:

Update "build_from_source" section of this json file 3p-package-source/package_build_list_host_linux.json . You should only replace the name of the json key called "azslc-<x.y.z>-rev1-linux" with the new version. In this example the new name will be: "azslc-1.8.9-rev1-linux".
Update "build_from_folder" section of the same json file 3p-package-source/package_build_list_host_linux.json . You should only replace the name of the json key called "azslc-<x.y.z>-rev1-linux" with the new version. In this example the new name will be: "azslc-1.8.9-rev1-linux".

MacOS:

Update "build_from_source" section of this json file 3p-package-source/package_build_list_host_darwin.json . You should only replace the name of the json key called "azslc-<x.y.z>-rev1-mac" with the new version. In this example the new name will be: "azslc-1.8.9-rev1-mac".
Update "build_from_folder" section of the same json file 3p-package-source/package_build_list_host_darwin.json . You should only replace the name of the json key called "azslc-<x.y.z>-rev1-mac" with the new version. In this example the new name will be: "azslc-1.8.9-rev1-mac".

  1. Submit a single Pull Request for changes done in https://github.com/o3de/3p-package-source at Steps 4 & 5.

  2. On a Windows machine generate the new package for windows, in this example it will be called azslc-1.8.9-rev1-windows:

D:\> cd GIT\3p-package-source\
D:\> python ..\3p-package-scripts\o3de_package_scripts\build_package.py --search_path . azslc-1.8.9-rev1-windows

If this step is successful the following files will be generated:

  • D:\GIT\3p-package-source\packages\ :

azslc-1.8.9-rev1-windows.PackageInfo.json
azslc-1.8.9-rev1-windows.tar.xz
azslc-1.8.9-rev1-windows.tar.xz.content.SHA256SUMS
azslc-1.8.9-rev1-windows.tar.xz.SHA256SUMS

  1. On a Linux machine generate the new package for linux, in this example it will be called azslc-1.8.9-rev1-linux:
$ cd ~/GIT/3p-package-source/
$ python ../3p-package-scripts/o3de_package_scripts/build_package.py --search_path . azslc-1.8.9-rev1-linux

If this step is successful the following files will be generated:

  • ~/GIT/3p-package-source/packages/ :

azslc-1.8.9-rev1-linux.PackageInfo.json
azslc-1.8.9-rev1-linux.tar.xz
azslc-1.8.9-rev1-linux.tar.xz.content.SHA256SUMS
azslc-1.8.9-rev1-linux.tar.xz.SHA256SUMS

  1. On a Mac machine generate the new package for MacOS, in this example it will be called azslc-1.8.9-rev1-mac:
$ cd ~/GIT/3p-package-source/
$ python ../3p-package-scripts/o3de_package_scripts/build_package.py --search_path . azslc-1.8.9-rev1-mac

If this step is successful the following files will be generated:

  • ~/GIT/3p-package-source/packages/ :

azslc-1.8.9-rev1-mac.PackageInfo.json
azslc-1.8.9-rev1-mac.tar.xz
azslc-1.8.9-rev1-mac.tar.xz.content.SHA256SUMS
azslc-1.8.9-rev1-mac.tar.xz.SHA256SUMS

  1. Submit all packages generated in steps 7, 8 & 9 to a trusted o3de maintainer so it can be uploaded into a staging S3 bucket.

  2. The trusted o3de maintainer will issue a request for promotion to production.

  3. AFTER there's confirmation that the AZSLc packages have been promoted to production, proceed to modify the engine code to reference the new packages:
    Remark: These steps can be done with a single PR using the same machine (unlike steps 7, 8 & 9).

Windows:

"D:\GIT\o3de\cmake\3rdParty\Platform\Windows\BuiltInPackages_windows.cmake".

Linux:

"D:\GIT\o3de\cmake\3rdParty\Platform\Linux\BuiltInPackages_linux.cmake".

Mac:

"D:\GIT\o3de\cmake\3rdParty\Platform\Mac\BuiltInPackages_mac.cmake".

For all three files mentioned above simply update the PACKAGE_NAME and PACKAGE_HASH. The PACKAGE_HASH is found in the GIT\3p-package-source\packages\ folder, inside the file name azslc-<version>-rev1-<platform>.tar.xz.SHA256SUMS.

  1. Submit the PR from step 12 and once it is merged the job is complete.
Clone this wiki locally