Skip to content

Releasing A New Version Of AZSLc

galibzon edited this page Feb 6, 2023 · 17 revisions

Suggestion:
Before trying to put together a new release package for AZSLc, follow this suggestion to change the default path of the AZSLc executable, which can help you validate the new version with the engine before committing to a new package that may not work:
Try new version AZSLc before release.

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. (Be sure to check for multiple instances of "package_version" as there could be overrides in the per-platform sections):

   ...
   "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. (Continue with the checklist while the PR is pending, but it must be approved and merged prior to the final merge in o3de, step 15).

  2. Install required python packages "boto3" and "certifi"

D:\> pip install boto3 certifi
  1. 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 8, 9 & 10 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 8, 9 & 10).

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 13 into the o3de development branch. Include a link in the description to the 3p-package-source PR from step 6.

  2. Ensure the 3p-package-source PR from step 6 has been approved and merged before proceeding.

  3. Merge the PR from step 13 to the development branch of o3de.

Clone this wiki locally