Skip to content

Commit 3f18029

Browse files
Merge branch 'develop-2.0.0' into conditional-ci-2.x
2 parents bbaae77 + 0c8ba1f commit 3f18029

File tree

157 files changed

+4576
-1410
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

157 files changed

+4576
-1410
lines changed

.github/pull_request_template.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ Replace this block with what this PR does and why. Describe what you'd like revi
44
)
55

66
### Jira ticket
7-
_Link to related jira ticket ([Use the smart commits](https://support.atlassian.com/bitbucket-cloud/docs/use-smart-commits/))_
7+
_Link to related jira ticket ([Use the smart commits](https://support.atlassian.com/bitbucket-cloud/docs/use-smart-commits/)). Short version (e.g. MTT-123) also works and gets auto-linked_
88

99
### Changelog
1010
[//]: # (updated with all public facing changes - API changes, UI/UX changes, behaviour changes, bug fixes. Remove if not relevant.)
1111

1212
- Added: The package whose Changelog should be added to should be in the header. Delete the changelog section entirely if it's not needed.
1313
- Fixed: If you update multiple packages, create a new section with a new header for the other package.
14-
- Removed/Deprecated/Changed: Each bullet should be prefixed with Added, Fixed, Removed, Deprecated, or Changed to indicate where the entry should go
14+
- Removed/Deprecated/Changed: Each bullet should be prefixed with Added, Fixed, Removed, Deprecated, or Changed to indicate where the entry should go.
1515

1616
<!-- Uncomment and mark items off with a * if this PR deprecates any API:
1717
### Deprecated API
@@ -31,12 +31,14 @@ We should always evaluate if the changes in this PR require any documentation ch
3131
- Includes documentation for previously-undocumented public API entry points.
3232
- Includes edits to existing public API documentation.
3333

34-
## Testing & QA
34+
## Testing & QA (How your changes can be verified during release Playtest)
3535
[//]: # (
3636
This section is REQUIRED and should describe how the changes were tested and how should they be tested when Playtesting for the release.
3737
It can range from "edge case covered by unit tests" to "manual testing required and new sample was added".
3838
Expectation is that PR creator does some manual testing and provides a summary of it here.)
3939

40+
<!-- Add any performance testing results here if relevant. -->
41+
4042
### Functional Testing
4143
[//]: # (If checked, List manual tests that have been performed.)
4244
_Manual testing :_
@@ -50,12 +52,13 @@ _Does the change require QA team to:_
5052

5153
- [ ] `Review automated tests`?
5254
- [ ] `Execute manual tests`?
55+
- [ ] `Provide feedback about the PR`?
5356

54-
If any boxes above are checked, please add QA as a PR reviewer.
57+
If any boxes above are checked the QA team will be automatically added as a PR reviewer.
5558

56-
## Backport
59+
## Backports
5760
[//]: # (
5861
This section is REQUIRED and should link to the PR that targets other NGO version which is either develop or develop-2.0.0 branch
5962
Add the following to the PR title: "\[Backport\] ..."
6063
If this is not needed, for example feature specific to NGOv2.X, then just mention this fact.
61-
)
64+
)

.github/renovate.json5

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616
"com.unity.netcode.gameobjects/**/*",
1717
"Examples/**/*",
1818
"testproject/**/*",
19-
"minimalproject/**/*",
20-
"testproject-tools-integration/**/*"
19+
"minimalproject/**/*"
2120
],
2221
"packageRules": [
2322
// Run unity-upm-project and unity-upm-package only on weekends to reduce PR noise

.github/workflows/conventional-pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
steps:
1818
- name: semantic-pull-request
1919
# Internal Unity mirror available at jesseo/action-semantic-pull-request, but actions from private repos aren't supported, so continue to use the public one below
20-
uses: amannn/action-semantic-pull-request@v5
20+
uses: amannn/action-semantic-pull-request@v6
2121
env:
2222
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2323
with:

.github/workflows/pr-verification.yml renamed to .github/workflows/pr-description-validation.yml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# This workflow is designed to verify that the pull request description contains a required sections that are important from quality perspective.
1+
# This workflow is designed to verify that the pull request description contains a required sections that are important from quality perspective.
22
# ## Backport section is important as a reminder to account for backports for anyone that works with NGO repository (to 1.X or 2.X branches respectively).
33
# ## Testing & QA section is important to ensure that the PR has appropriate testing coverage and is important when QA will evaluate PRs before Playtesting for the release.
44
# ## Documentation section is important to ensure that the documentation is updated with the changes made in the PR.
55

66
# If any of the sections is missing, the workflow will fail and block the PR from merging, prompting the developer to add those sections to the PR description.
77
# The workflow is configured to run when PR is created as well as when it is edited which also counts simple description edits.
88

9-
name: "NGO - PR Verification"
9+
name: "NGO - PR description validation"
1010

1111
on:
1212
pull_request:
@@ -17,11 +17,11 @@ on:
1717
- release/*
1818

1919
jobs:
20-
pr-verification:
20+
pr-description-validation:
2121
runs-on: ubuntu-latest
2222
steps:
2323
- name: Checkout code
24-
uses: actions/checkout@v4
24+
uses: actions/checkout@v5
2525

2626
- name: Check PR description
2727
uses: actions/github-script@v7
@@ -33,8 +33,8 @@ jobs:
3333
// List of mandatory PR sections
3434
const requiredSections = [
3535
{
36-
header: '## Backport',
37-
description: 'PR description must include a "## Backport" section. Please add this section and provide information about this PR backport to develop or develop-2.0.0 branch respectively or explain why backport is not needed.'
36+
header: '## Backports',
37+
description: 'PR description must include a "## Backports" section. Please add this section and provide information about this PR backport to develop or develop-2.0.0 branch respectively or explain why backport is not needed.'
3838
},
3939
{
4040
header: '## Testing & QA',
@@ -43,6 +43,10 @@ jobs:
4343
{
4444
header: '## Documentation',
4545
description: 'PR description must include a "## Documentation" section. Please add this section and provide information about the documentation changes made in this PR. It is important to keep the documentation up to date with the code changes.'
46+
},
47+
{
48+
header: '## Jira ticket',
49+
description: 'PR description must include a "## Jira ticket" section. Please add this section and provide a link to the Jira ticket that corresponds to this PR. General rule should be that if the PR takes you more then a day of work it should have Jira ticket. Otherwise you can always write "N/A" in this section.'
4650
}
4751
];
4852
@@ -59,4 +63,4 @@ jobs:
5963
message += '\n\nPlease add them to your PR description.';
6064
6165
core.setFailed(message);
62-
}
66+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# This workflow depend on the content of .github/pull_request_template.md file, which should contain the required sections that the script checks for
2+
# This also works in parallel with .github/workflows/pr-description-validation.yml which validates PR format
3+
# In contrast to .github/workflows/pr-description-validation.yml, this workflow is conditional and aims to ease the process of requesting QA review by automatically assigning the QA team whenever a checkbox is marked
4+
5+
# In case that the given checkboxes are marked the script will automatically add netcode-qa team as a reviewer.
6+
7+
name: 'Assign QA Reviewer'
8+
9+
on:
10+
pull_request:
11+
types: [opened, edited, synchronize, reopened]
12+
13+
jobs:
14+
assign-qa:
15+
# This job only runs if the checkbox in the PR description exist and is checked.
16+
if: >
17+
contains(github.event.pull_request.body, '- [x] `Review automated tests`') ||
18+
contains(github.event.pull_request.body, '- [x] `Execute manual tests`') ||
19+
contains(github.event.pull_request.body, '- [x] `Provide feedback about the PR`')
20+
runs-on: ubuntu-latest
21+
22+
23+
steps:
24+
25+
- name: 'Assign QA Team'
26+
uses: actions/github-script@v7
27+
with:
28+
github-token: ${{ secrets.GH_TOKEN }}
29+
script: |
30+
github.rest.pulls.requestReviewers({
31+
owner: context.repo.owner,
32+
repo: context.repo.repo,
33+
pull_number: context.issue.number,
34+
team_reviewers: ['netcode-qa']
35+
});
36+
console.log('Assigned netcode-qa for review.');

.yamato/generated-scripts/infrastructure-instability-detection-win.cmd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
@echo on
22
rem This is an auto-generated script. Do not edit manually!
33

4+
if exist "%TEMP%\BugReporterCrashReportJson" for /f "delims=" %%i in ('dir /b /a-d "%TEMP%\BugReporterCrashReportJson\*.json"') do curl -X POST -H "Content-Type: application/json" -T "%TEMP%\BugReporterCrashReportJson\%%i" "https://internal-crash-collector.prd.cds.internal.unity3d.com/api/crash" || echo Failed to upload %%i. Ignoring...
45
curl -fs "https://artifactory-slo.bf.unity3d.com/artifactory/automation-and-tooling/infrastructure-instability-detection/standalone/1.0.0/windows.zip" --output "infrastructure_instability_detection_standalone.zip" --retry 5
56
IF EXIST "infrastructure_instability_detection" rmdir /s /q infrastructure_instability_detection
67
powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('infrastructure_instability_detection_standalone.zip', '.'); }" && DEL "infrastructure_instability_detection_standalone.zip"

.yamato/mobile-standalone-test.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@ mobile_standalone_build_{{ project.name }}_{{ platform.name }}_{{ editor }}:
4848
{% if platform.model %}
4949
model: {{ platform.model }} # This is set only in platforms where we want non-default model to use (more information in project.metafile)
5050
{% endif %}
51+
# Automatic UI interruption handling is available for iPhones running iOS 15 and above (models SE-Gen3 and 13).
52+
# It is enabled by default when using those devices. Otherwise, system alerts (e.g. “Local Network Access” permission alert, introduced in iOS 14) might cause disruptions during test execution.
53+
# If building of the test app is done on a separate (“Build”) job, please make sure that that job has environment variable UNITY_HANDLEUIINTERRUPTIONS set to 1.
54+
variables:
55+
UNITY_HANDLEUIINTERRUPTIONS: 1
5156
commands:
5257
- unity-downloader-cli --fast --wait -u {{ editor }} -c Editor -c il2cpp {% if platform.base == "mac" %} -c ios {% else %} -c android {% endif %}
5358
- UnifiedTestRunner --suite=playmode --platform={{ platform.standalone }} --testproject={{ project.path }} --architecture={{ platform.architecture }} --scripting-backend=il2cpp --editor-location=.Editor --artifacts-path=artifacts --testfilter="Unity.Netcode.RuntimeTests.*" --player-save-path=build/players --extra-editor-arg=-batchmode --extra-editor-arg=-nographics --reruncount=1 --clean-library-on-rerun --build-only --timeout=1800
@@ -96,7 +101,7 @@ mobile_standalone_test_{{ project.name }}_{{ platform.name }}_{{ editor }}:
96101
{% else %}
97102

98103
# Run tests for non-Android devices
99-
- UnifiedTestRunner --suite=playmode --platform={{ platform.standalone }} --artifacts-path=test-results --player-load-path=build/players --testproject={{ project.path }} --editor-location=.Editor --fail-on-assert --reruncount=1 --clean-library-on-rerun --timeout=3600
104+
- UnifiedTestRunner --suite=playmode --platform={{ platform.standalone }} --artifacts-path=test-results --player-load-path=build/players --testproject={{ project.path }} --editor-location=.Editor --fail-on-assert --reruncount=1 --clean-library-on-rerun --timeout=3600 --device-id=%BOKKEN_DEVICE_ID%
100105
{% endif %}
101106
artifacts:
102107
logs:

.yamato/project-builders/project-builders.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,22 +32,22 @@ build_{{ netcodeProject[0] }}_project:
3232
PLATFORM_WIN64_MAC_ANDROID: win64
3333
commands:
3434
# Validate inputs passed via Yamato variables
35-
- python Tools/CI/scripts/BuildAutomation/validate_params.py
35+
- python Tools/scripts/BuildAutomation/validate_params.py
3636
- echo Building {{ netcodeProject[0] }} project with Unity version of %UNITY_VERSION%, Scripting backend %SCRIPTING_BACKEND_IL2CPP_MONO%, Burst %BURST_ON_OFF% for platform %PLATFORM_WIN64_MAC_ANDROID%
3737

3838
# Clone the external project repository into a specific directory. Notice that branch is also specified.
3939
- git clone --single-branch --branch {{ netcodeProject[1].branch }} {{ netcodeProject[1].GithubRepo }} C:/ClonedProject
4040

4141
# Modify the external project's manifest to use the local N4E package from current branch on which this Yamato job is running. (requires python that should be preinstalled in the image)
42-
- python Tools/CI/scripts/BuildAutomation/manifest_update.py --manifest-path C:/ClonedProject/{{ netcodeProject[1].manifestPath }} --local-package-path %YAMATO_SOURCE_DIR%/com.unity.netcode.gameobjects
42+
- python Tools/scripts/BuildAutomation/manifest_update.py --manifest-path C:/ClonedProject/{{ netcodeProject[1].manifestPath }} --local-package-path %YAMATO_SOURCE_DIR%/com.unity.netcode.gameobjects
4343

4444
# Run python script to update ProjectSettings.asset in order to connect the project to Unity Services/set proper values.
4545
# Notice that if a project has this already set up then in theory we don't need to run this script.
46-
- python Tools/CI/scripts/BuildAutomation/connect_services.py --project-settings-path C:/ClonedProject/{{ netcodeProject[1].projectPath }}/ProjectSettings/ProjectSettings.asset
46+
- python Tools/scripts/BuildAutomation/connect_services.py --project-settings-path C:/ClonedProject/{{ netcodeProject[1].projectPath }}/ProjectSettings/ProjectSettings.asset
4747

4848
# Enable or disable Burst compilation. This step is specific to Netcode package (or any package that uses Burst)
49-
- IF "%BURST_ON_OFF%"=="on" (python Tools/CI/scripts/BuildAutomation/disable-enable-burst.py --enable-burst --project-path C:/ClonedProject/{{ netcodeProject[1].projectPath }})
50-
ELSE (python Tools/CI/scripts/BuildAutomation/disable-enable-burst.py --disable-burst --project-path C:/ClonedProject/{{ netcodeProject[1].projectPath }})
49+
- IF "%BURST_ON_OFF%"=="on" (python Tools/scripts/BuildAutomation/disable-enable-burst.py --enable-burst --project-path C:/ClonedProject/{{ netcodeProject[1].projectPath }})
50+
ELSE (python Tools/scripts/BuildAutomation/disable-enable-burst.py --disable-burst --project-path C:/ClonedProject/{{ netcodeProject[1].projectPath }})
5151

5252
# Download the Unity Editor version specified in the UNITY_VERSION variable. Il2cpp component is downloaded only if the SCRIPTING_BACKEND_IL2CPP_MONO is set to "il2cpp".
5353
# TODO: we could download components only if needed
@@ -56,7 +56,7 @@ build_{{ netcodeProject[0] }}_project:
5656
# Add BuilderScript.cs to the project so we can modify and build the project using Unity Editor.
5757
# This is a bit tricky step, notice that we also need to include proper assembly definition in order for those scripts to compile properly.
5858
# TODO: the asmdef file can be simplified
59-
- python Tools/CI/scripts/BuildAutomation/FileCopy.py "C:/ClonedProject/{{ netcodeProject[1].projectPath }}"
59+
- python Tools/scripts/BuildAutomation/FileCopy.py "C:/ClonedProject/{{ netcodeProject[1].projectPath }}"
6060

6161
# Build the project using Unity Editor. This will call the given static BuilderScripts method.
6262
# Ideally, it would be nice to parametrize the BuilderScripts (for example to pass scripting backend as parameter) but -executeMethod only calls static methods without parameters so for now we will have multiple configurations

.yamato/project.metafile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# image --> Defines the package-ci Bokken image to use for the environment (e.g., package-ci/ubuntu-22.04:v4). This is basically a device configuration
1111
# flavor --> Determines the VM size/resources (e.g., b1.small, b1.large, m1.mac)
1212
# standalone --> Specifies the build target platform (e.g., StandaloneLinux64, Android, IOS)
13-
# model --> Defines specific hardware model requirements (e.g., rtx2080, SE for iPhone SE)
13+
# model --> Defines specific hardware model requirements (e.g., rtx2080, iPhone model 13). Notice that trunk currently (19.08.2025) has 13.0 as minimal iOS version which devices below this are not supporting
1414
# base --> Indicates the base operating system for build operations (e.g., win, mac)
1515
# architecture --> Specifies the target CPU architecture (e.g., armv7, arm64)
1616

@@ -89,7 +89,7 @@ test_platforms:
8989
type: Unity::mobile::iPhone
9090
image: package-ci/macos-13-arm64:v4
9191
flavor: m1.mac
92-
model: SE
92+
model: 13
9393
standalone: IOS
9494
base: mac
9595
architecture: arm64
@@ -156,8 +156,8 @@ validation_editors:
156156
- trunk
157157
all:
158158
- 6000.0
159-
- 6000.1
160159
- 6000.2
160+
- 6000.3
161161
- trunk
162162
minimal:
163163
- 6000.0

.yamato/wrench/api-validation-jobs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ api_validation_-_netcode_gameobjects_-_6000_0_-_windows:
5151
dependencies:
5252
- path: .yamato/wrench/package-pack-jobs.yml#package_pack_-_netcode_gameobjects
5353
variables:
54-
UPMPVP_CONTEXT_WRENCH: 0.12.2.0
54+
UPMPVP_CONTEXT_WRENCH: 1.1.0.0
5555
metadata:
5656
Job Maintainers: '#rm-packageworks'
57-
Wrench: 0.12.2.0
57+
Wrench: 1.1.0.0
5858

0 commit comments

Comments
 (0)