Skip to content

Commit 23f2631

Browse files
committed
Merge branch 'develop' into nat/edu-channel
2 parents 54334ff + 8ce3323 commit 23f2631

File tree

2,429 files changed

+61167
-50372
lines changed

Some content is hidden

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

2,429 files changed

+61167
-50372
lines changed

.git-blame-ignore-revs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Replace tabs with spaces
2+
1b68f71348ecf3983b76b40d7940da8377f049b7
3+
33418a77b716e122da9778869cdbabe97c83ff37
4+
# Trim trailing whitespace
5+
a0b3021bdcf76859054fda8e30abb3ed47749e83
6+
8444cd9562a6a7b755fcb075864e205122354192
7+
863c541ce0b2e3e1e566cc88423d3e87aaedb6ca
8+
# Wrong line endings
9+
1b67dd855c41f5a0cda7ec2a68d98071986ca703
10+
6cc7dd09d5e69cf57e6de7fb568a0ad2693f9c9a
11+
e2e37cced861b98de8c1a7c9c0d3a50d2d90e433

.gitattributes

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
* text eol=lf
2+
3+
# VSTool (normalization disabled)
4+
indra/tools/vstool/* -text
5+
6+
# Images
7+
*.bmp binary
8+
*.BMP binary
9+
*.gif binary
10+
*.icns binary
11+
*.ico binary
12+
*.j2c binary
13+
*.j2k binary
14+
*.jpg binary
15+
*.png binary
16+
*.tga binary
17+
*.tif binary
18+
19+
# Viewer resources
20+
*.db2 binary
21+
*.llm binary
22+
*.nib binary
23+
*.rtf binary
24+
*.ttf binary
25+
26+
# Executables
27+
*.dll binary
28+
*.exe binary
29+
30+
# Files with Windows line endings
31+
VivoxAUP.txt text eol=crlf
32+
FILES_ARE_UNICODE_UTF-16LE.txt text eol=crlf
33+
34+
# Windows Manifest files
35+
*.manifest text eol=crlf
36+
37+
# Windows Installer Script files (normalization disabled)
38+
*.nsi -text

.github/ISSUE_TEMPLATE/10-bug.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ body:
1111
- type: textarea
1212
attributes:
1313
label: Environment
14-
description: About Second Life Text
15-
placeholder: ex. Second Life Test 7.1.3.240191747 (64bit) ...
14+
description: "Please copy the info from the viewer's 'About Second Life' window and paste it here:"
15+
placeholder: 'ex. Second Life Release 7.1.8.9375512768 (64bit) ...'
1616
validations:
1717
required: true
1818

.github/labeler.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
llappearance:
22
- indra/llappearance/**/*
3-
3+
44
llaudio:
55
- indra/llaudio/**/*
66

@@ -76,3 +76,6 @@ c/cpp:
7676
- '**/*.i'
7777
- '**/*.inl'
7878
- '**/*.y'
79+
80+
'team:viewer':
81+
- '*'

.github/workflows/build.yaml

Lines changed: 59 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,57 @@
11
name: Build
22

33
on:
4-
workflow_dispatch:
5-
inputs:
6-
release_run:
7-
type: boolean
8-
description: Do a release of this build
9-
default: false
104
pull_request:
115
push:
126
branches: ["main", "release/*", "project/*"]
137
tags: ["Second_Life*"]
148

159
jobs:
16-
# The whole point of the setvar job is that we want to set a variable once
17-
# that will be consumed by multiple subsequent jobs. We tried setting it in
18-
# the global env, but a job.env can't directly reference the global env
19-
# context.
20-
setvar:
10+
# The whole point of the setup job is that we want to set variables once
11+
# that will be consumed by multiple subsequent jobs.
12+
setup:
2113
runs-on: ubuntu-latest
2214
outputs:
2315
release_run: ${{ steps.setvar.outputs.release_run }}
16+
configurations: ${{ steps.setvar.outputs.configurations }}
17+
bugsplat_db: ${{ steps.setvar.outputs.bugsplat_db }}
2418
env:
2519
# Build with a tag like "Second_Life#abcdef0" to generate a release page
2620
# (used for builds we are planning to deploy).
2721
# When you want to use a string variable as a workflow YAML boolean, it's
2822
# important to ensure it's the empty string when false. If you omit || '',
2923
# its value when false is "false", which is interpreted as true.
3024
RELEASE_RUN: ${{ (github.event.inputs.release_run || github.ref_type == 'tag' && startsWith(github.ref_name, 'Second_Life')) && 'Y' || '' }}
25+
FROM_FORK: ${{ github.event.pull_request.head.repo.fork }}
3126
steps:
32-
- name: Set Variable
27+
- name: Set Variables
3328
id: setvar
3429
shell: bash
3530
run: |
3631
echo "release_run=$RELEASE_RUN" >> "$GITHUB_OUTPUT"
3732
33+
if [[ "$FROM_FORK" == "true" ]]; then
34+
# PR from fork; don't build with Bugsplat, proprietary libs
35+
echo 'configurations=["ReleaseOS"]' >> $GITHUB_OUTPUT
36+
echo "bugsplat_db=" >> $GITHUB_OUTPUT
37+
else
38+
echo 'configurations=["Release"]' >> $GITHUB_OUTPUT
39+
echo "bugsplat_db=SecondLife_Viewer_2018" >> $GITHUB_OUTPUT
40+
fi
3841
build:
39-
needs: setvar
42+
needs: setup
4043
strategy:
4144
matrix:
4245
runner: [windows-large, macos-12-xl]
43-
configuration: [Release]
44-
Linden: [true]
45-
include:
46-
- runner: macos-12-xl
47-
developer_dir: "/Applications/Xcode_14.0.1.app/Contents/Developer"
48-
- runner: windows-large
49-
configuration: ReleaseOS
50-
Linden: false
46+
configuration: ${{ fromJSON(needs.setup.outputs.configurations) }}
5147
runs-on: ${{ matrix.runner }}
5248
outputs:
5349
viewer_channel: ${{ steps.build.outputs.viewer_channel }}
5450
viewer_version: ${{ steps.build.outputs.viewer_version }}
5551
viewer_branch: ${{ steps.which-branch.outputs.branch }}
5652
relnotes: ${{ steps.which-branch.outputs.relnotes }}
57-
imagename: ${{ steps.build.outputs.imagename }}
53+
imagename: ${{ steps.build.outputs.imagename }}
54+
configuration: ${{ matrix.configuration }}
5855
env:
5956
AUTOBUILD_ADDRSIZE: 64
6057
AUTOBUILD_BUILD_ID: ${{ github.run_id }}
@@ -67,12 +64,9 @@ jobs:
6764
# autobuild-package.xml.
6865
AUTOBUILD_VCS_INFO: "true"
6966
AUTOBUILD_VSVER: "170"
70-
DEVELOPER_DIR: ${{ matrix.developer_dir }}
67+
DEVELOPER_DIR: "/Applications/Xcode_14.0.1.app/Contents/Developer"
7168
# Ensure that Linden viewer builds engage Bugsplat.
72-
BUGSPLAT_DB: ${{ matrix.Linden && 'SecondLife_Viewer_2018' || '' }}
73-
# Run BUILD steps for Release configuration.
74-
# Run BUILD steps for ReleaseOS configuration only for release runs.
75-
BUILD: ${{ (matrix.Linden || needs.setvar.outputs.release_run) && 'Y' || '' }}
69+
BUGSPLAT_DB: ${{ needs.setup.outputs.bugsplat_db }}
7670
build_coverity: false
7771
build_log_dir: ${{ github.workspace }}/.logs
7872
build_viewer: true
@@ -91,39 +85,33 @@ jobs:
9185
variants: ${{ matrix.configuration }}
9286
steps:
9387
- name: Checkout code
94-
if: env.BUILD
9588
uses: actions/checkout@v4
9689
with:
9790
ref: ${{ github.event.pull_request.head.sha || github.sha }}
9891

9992
- name: Setup python
100-
if: env.BUILD
10193
uses: actions/setup-python@v5
10294
with:
10395
python-version: "3.11"
10496

10597
- name: Checkout build variables
106-
if: env.BUILD
10798
uses: actions/checkout@v4
10899
with:
109100
repository: secondlife/build-variables
110101
ref: master
111102
path: .build-variables
112103

113104
- name: Checkout master-message-template
114-
if: env.BUILD
115105
uses: actions/checkout@v4
116106
with:
117107
repository: secondlife/master-message-template
118108
path: .master-message-template
119109

120110
- name: Install autobuild and python dependencies
121-
if: env.BUILD
122111
run: pip3 install autobuild llsd
123112

124113
- name: Cache autobuild packages
125114
id: cache-installables
126-
if: env.BUILD
127115
uses: actions/cache@v4
128116
with:
129117
path: .autobuild-installables
@@ -132,20 +120,14 @@ jobs:
132120
${{ runner.os }}-64-${{ matrix.configuration }}-
133121
${{ runner.os }}-64-
134122
135-
- name: Install windows dependencies
136-
if: env.BUILD && runner.os == 'Windows'
137-
run: choco install nsis-unicode
138-
139123
- name: Determine source branch
140124
id: which-branch
141-
if: env.BUILD
142125
uses: secondlife/viewer-build-util/which-branch@v2
143126
with:
144127
token: ${{ github.token }}
145128

146129
- name: Build
147130
id: build
148-
if: env.BUILD
149131
shell: bash
150132
env:
151133
AUTOBUILD_VCS_BRANCH: ${{ steps.which-branch.outputs.branch }}
@@ -227,6 +209,9 @@ jobs:
227209
if [[ "$edu" == "true" ]]
228210
then
229211
export viewer_channel="Second Life Release edu"
212+
elif [[ "$branch" == "develop" ]];
213+
then
214+
export viewer_channel="Second Life Develop"
230215
else
231216
branch=$AUTOBUILD_VCS_BRANCH
232217
IFS='/' read -ra ba <<< "$branch"
@@ -277,7 +262,7 @@ jobs:
277262
echo "artifact=$RUNNER_OS$cfg_suffix" >> $GITHUB_OUTPUT
278263
279264
- name: Upload executable
280-
if: matrix.Linden && steps.build.outputs.viewer_app
265+
if: steps.build.outputs.viewer_app
281266
uses: actions/upload-artifact@v4
282267
with:
283268
name: "${{ steps.build.outputs.artifact }}-app"
@@ -287,15 +272,12 @@ jobs:
287272
# The other upload of nontrivial size is the symbol file. Use a distinct
288273
# artifact for that too.
289274
- name: Upload symbol file
290-
if: matrix.Linden
291275
uses: actions/upload-artifact@v4
292276
with:
293277
name: "${{ steps.build.outputs.artifact }}-symbols"
294-
path: |
295-
${{ steps.build.outputs.symbolfile }}
278+
path: ${{ steps.build.outputs.symbolfile }}
296279

297280
- name: Upload metadata
298-
if: matrix.Linden
299281
uses: actions/upload-artifact@v4
300282
with:
301283
name: "${{ steps.build.outputs.artifact }}-metadata"
@@ -306,7 +288,7 @@ jobs:
306288
- name: Upload physics package
307289
uses: actions/upload-artifact@v4
308290
# should only be set for viewer-private
309-
if: matrix.Linden && steps.build.outputs.physicstpv
291+
if: matrix.configuration == 'Release' && steps.build.outputs.physicstpv
310292
with:
311293
name: "${{ steps.build.outputs.artifact }}-physics"
312294
# emitted by build.sh, zero or one lines
@@ -382,37 +364,62 @@ jobs:
382364
needs: build
383365
runs-on: ubuntu-latest
384366
steps:
367+
- name: Download viewer exe
368+
uses: actions/download-artifact@v4
369+
with:
370+
name: Windows-app
371+
path: _artifacts
372+
- name: Download Windows Symbols
373+
if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS
374+
uses: actions/download-artifact@v4
375+
with:
376+
name: Windows-symbols
377+
- name: Extract viewer pdb
378+
if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS
379+
shell: bash
380+
run: |
381+
tar -xJf "${{ needs.build.outputs.viewer_channel }}.sym.tar.xz" -C _artifacts
385382
- name: Post Windows symbols
386383
if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS
387-
uses: secondlife/viewer-build-util/post-bugsplat-windows@v2
384+
uses: secondlife-3p/symbol-upload@v10
388385
with:
389386
username: ${{ env.BUGSPLAT_USER }}
390387
password: ${{ env.BUGSPLAT_PASS }}
391388
database: "SecondLife_Viewer_2018"
392-
channel: ${{ needs.build.outputs.viewer_channel }}
389+
application: ${{ needs.build.outputs.viewer_channel }}
393390
version: ${{ needs.build.outputs.viewer_version }}
391+
directory: _artifacts
392+
files: "**/{SecondLifeViewer.exe,llwebrtc.dll,*.pdb}"
394393

395394
post-mac-symbols:
396395
env:
397396
BUGSPLAT_USER: ${{ secrets.BUGSPLAT_USER }}
398397
BUGSPLAT_PASS: ${{ secrets.BUGSPLAT_PASS }}
399398
needs: build
399+
if: needs.build.outputs.configuration == 'Release'
400400
runs-on: ubuntu-latest
401401
steps:
402+
- name: Download Mac Symbols
403+
if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS
404+
uses: actions/download-artifact@v4
405+
with:
406+
name: macOS-symbols
402407
- name: Post Mac symbols
403408
if: env.BUGSPLAT_USER && env.BUGSPLAT_PASS
404-
uses: secondlife/viewer-build-util/post-bugsplat-mac@v2
409+
uses: secondlife-3p/symbol-upload@v10
405410
with:
406411
username: ${{ env.BUGSPLAT_USER }}
407412
password: ${{ env.BUGSPLAT_PASS }}
408413
database: "SecondLife_Viewer_2018"
409-
channel: ${{ needs.build.outputs.viewer_channel }}
410-
version: ${{ needs.build.outputs.viewer_version }}
414+
application: ${{ needs.build.outputs.viewer_channel }}
415+
version: ${{ needs.build.outputs.viewer_version }} (${{ needs.build.outputs.viewer_version }})
416+
directory: .
417+
files: "**/*.xcarchive.zip"
411418

412419
release:
413-
needs: [setvar, build, sign-and-package-windows, sign-and-package-mac]
420+
needs: [setup, build, sign-and-package-windows, sign-and-package-mac]
414421
runs-on: ubuntu-latest
415-
if: needs.setvar.outputs.release_run
422+
if: needs.setup.outputs.release_run
416423
steps:
417424
- uses: actions/download-artifact@v4
418425
with:

.github/workflows/stale.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Stale PRs
1+
name: Stale PRs
22
on:
33
workflow_dispatch:
44
schedule:

0 commit comments

Comments
 (0)