Branch Structure
Please direct pull requests to the desired development branch. Development changes to3.0 should target 3.0-dev. Development changes to 2.0 should target main. 1.0 is deprecated and should not be used.
Azure Linux 3.0 Branches
| Git Ref | Branch / Tag | For PRs | Published | Notes |
|---|---|---|---|---|
| 3.0-dev | Branch | Yes | No | Primary development branch |
| 3.0 | Branch | No | Yes - eventually | Staging branch for publishing |
| 3.0-preview | Tag | No | No | Publishing in progress |
| 3.0-stable | Tag | No | Yes | Last published release |
Azure Linux 2.0 Branches
| Git Ref | Branch / Tag | For PRs | Published | Notes |
|---|---|---|---|---|
| main | Branch | Yes | No | Primary development branch |
| 2.0 | Branch | No | Yes - eventually | Staging branch for publishing |
| 2.0-preview | Tag | No | No | Publishing in progress |
| 2.0-stable | Tag | No | Yes | Last published release |
PR Title Guidelines
PR titles should start with an action verb and clearly describe the change.Good PR Title Examples
Bad PR Title Examples
Avoid titles such as:Pull Request Process
Prepare Your Changes
Make your changes in a feature branch based on the appropriate development branch (
3.0-dev or main).Verify Your Changes Build
Ensure any updated packages successfully build. For guidance on building packages, see the building instructions.Ensure the package is located in the appropriate folder (
SPECS or SPECS-EXTENDED).Run Package Tests
Package tests (
%check section) should be verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files.When running the check section, results will not fail a build. Check the logs for the results of this section.Update Required Files
Ensure the following files are updated as needed:cgmanifest files - Up-to-date and alphabetically sorted:LICENSE-MAP files - Up-to-date:Source file hashes - All source files have up-to-date hashes in the
./cgmanifest.json./toolkit/tools/cgmanifest.json./toolkit/scripts/toolchain/cgmanifest.json.github/workflows/cgmanifest.json
./LICENSES-AND-NOTICES/SPECS/data/licenses.json./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md
*.signatures.json files:Verify Toolchain Changes (If Applicable)
If you changed any packages in the toolchain package manifests, ensure:
- The toolchain has been rebuilt successfully
- The toolchain/worker package manifests are up-to-date (versions match latest package versions in SPEC files):
toolchain_x86_64.txttoolchain_aarch64.txtpkggen_core_x86_64.txtpkggen_core_aarch64.txt
Update Static Dependencies
Packages depending on static components modified in this PR (Golang,
*-static subpackages, etc.) should have their Release tag incremented.Dependent packages are packages which contain a BuildRequires on the package you are updating and create static links from your package. This can be difficult to discern based on spec files alone and may require investigating make commands in dependent packages or consulting an Azure Linux dev.Verify Package Sources
All package sources must be available. The sources are either in the source server or local
SPECS folder (SPECS/<package>/SOURCES or SPECS/<package>).While it is possible to build packages with all sources inside the repo, our policy is generally to have the source compressed and placed on the source server. Uploading to the source server can only be accomplished by an Azure Linux developer. Please request help in your PR for uploading your sources to the source server.To check the source server: [https://azurelinuxsrcstorage.blob.core.windows.net/sources/core/< source tar >]Test Go Tools (If Modified)
If you modified the Go tools, ensure that the formatting meets Go standards and that the tests still pass:
Update Documentation
Documentation should be updated to match any changes to the build system. See toolkit/docs.
Create Pull Request
Create your pull request with:
- A clear title following the PR title guidelines
- A summary of what the PR accomplishes and why it was needed
- A detailed change log listing all changes
- Links to any associated issues or CVEs
- Test methodology (e.g., local build, pipeline build id)
Complete PR Checklist
Check all applicable items in the merge checklist when creating your PR. See the PR Checklist below for details.
PR Checklist
When creating your PR, ensure the following items are checked (tick any boxes which don’t apply to this PR):- The toolchain has been rebuilt successfully (or no changes were made to it)
- The toolchain/worker package manifests are up-to-date
- Any updated packages successfully build (or no packages were changed)
- Packages depending on static components modified in this PR (Golang,
*-staticsubpackages, etc.) have had theirReleasetag incremented - Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
- All package sources are available
- cgmanifest files are up-to-date and sorted
- LICENSE-MAP files are up-to-date
- All source files have up-to-date hashes in the
*.signatures.jsonfiles -
sudo make go-tidy-allandsudo make go-test-coveragepass - Documentation has been updated to match any changes to the build system
- Ready to merge
PR Template Sections
Your pull request should include the following sections:Summary (Required)
Quick explanation of the changes. What does the PR accomplish, why was it needed?Change Log (Required)
Detail the changes made here:- List any packages which will be affected by this change, if applicable
- List any CVEs fixed by this change, if applicable