# The form data below was edited by tom_tyler # A Perforce Branch Specification. # # Branch: The branch name. # Update: The date this specification was last modified. # Access: The date of the last 'integrate' using this branch. # Owner: The user who created this branch. # Description: A short description of the branch (optional). # Options: Branch update options: [un]locked. # View: Lines to map source depot files to target depot files. # # Use 'p4 help branch' to see more about branch views. Branch: ClassicToStreams.helix-installer Update: 2024/06/27 19:23:41 Access: 2024/06/27 17:17:30 Owner: tom_tyler Description: Branch spec for migration from Classic to Streams for the Helix Installer. At the start of migration the //guest/perforce_software/helix-installer Classic structure contains these folders: * dev - primary development branch. * main - mainline from which releases have been done. * tools - separate folder with tools for doing releases. * downloads - separate folder for publishing release tarballs. * azure-quickstart, branched from main. Inactive since 2021. * ami-builder - branched from azure-quickstart (and thus indirectly form main). * dev-ami-builder - active dev branch for ami-builder. Migration strategy for each folder: * main - The mainline stream 'main' will be populated from the Classic 'main' branch. * dev - The 'dev' stream will be created from the 'main' stream. * tools - To be migrated as a folder under the main stream. * downloads - To be started as a fresh/empty folder under the 'main' stream. * azure-quickstart - To be abandoned and left behind in Classic. * ami-builder - To be created as a development stream from 'main', and then integrated to from the corresponding Classic path. * dev-ami-builder - To be created as a development stream from 'ami-builder' then integrated to from the corresponding Classic path. Workflows on Streams: * New release streams e.g. r24.2 will be created from 'main' upon release. * Merge Down from 'main' to 'dev' regularly. * Copy Up from 'dev' to 'main' when code has reached Sharable Quality. * Merge Down from 'main' to 'ami-builder' regularly or as needed. * Merge Down from 'ami-builder' to 'dev-ami-builder' regularly. * Copy Up from 'dev-ami-builder' to 'ami-builder' for release. * Optional: Create release streams like 'r24.1-ami-builder' from 'ami-builder' upon release. Procedure Notes: STEP 1: Confirm that the Classic 'dev' and 'main' branches are identical Do: $ p4 diff2 -q dev/... main/... Ensure outpout indicates these are identical. STEP 2: Fix stream specs. Removed all 'import' entries from //helix-installer/* streams, which were there for when streams were used to provide workspace management for the Classic paths. STEP 3: Populate Mainline and dev $ p4 populate -o -b ClassicToStreams.helix-installer $ p4 populate -r -S //helix-installer/dev STEP 4: Update Protections Lock down //guest/perforce_software/helix-installer/... to be read-only. Open read access to //helix-installer/... Open group-based write access to //helix-installer/main/... Open group-based write access to //helix-installer/dev/... STEP 5: Generate stream structure for other streams. $ p4 stream -t development -P //helix-installer/main -o //helix-installer/ami-builder | p4 stream -i $ p4 stream -t development -P //helix-installer/ami-builder -o //helix-installer/dev-ami-builder | p4 stream -i STEP 6: Populate and Merge other streams from Classic $ p4 populate -r -S //helix-installer/ami-builder $ p4 populate -r -S //helix-installer/dev-ami-builder $ p4 switch ami-builder $ p4 integrate //guest/perforce_software/helix-installer/ami-builder/... //helix-installer/ami-builder/... $ p4 resolve -am //helix-installer/ami-builder/... $ p4 submit -d MergeFromClassic //helix-installer/ami-builder/... $ p4 switch dev-ami-builder $ p4 integrate //guest/perforce_software/helix-installer/dev-ami-builder/... //helix-installer/dev-ami-builder/... $ p4 resolve -am //helix-installer/dev-ami-builder/... $ p4 submit -d MergeFromClassic //helix-installer/ami-builder/... STEP 7: Fix Swarm Project. Adjust Swarm branches to reference the stream paths. Create new stream paths to reference legacy paths. STEP 8: Update Readme.md and docs. Find all docs and web URLs that require updating based on path changes. Adapt so they reference new stream paths. STEP 9: Exercise the HITS (regression test suite). Fix as needed. Options: unlocked View: //guest/perforce_software/helix-installer/main/... //helix-installer/main/... //guest/perforce_software/helix-installer/tools/... //helix-installer/main/tools/...