Skip to content

Commit ed98b0c

Browse files
committed
Merge tag 'rel-test' into test
2 parents 434647e + 2a31dc1 commit ed98b0c

36 files changed

Lines changed: 5694 additions & 188 deletions

.github/workflows/build_release_shared.yaml

Lines changed: 78 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ on:
1818

1919
env:
2020
platform: "${{ inputs.client_target == 'emu' && 'Win32' || 'x64' }}"
21+
scoop_packages: "sentry-cli"
2122

2223
jobs:
2324
build:
@@ -135,6 +136,60 @@ jobs:
135136
}
136137
$resourceFile | Set-Content $resourceFilePath
137138
139+
- name: Check Scoop Installation
140+
if: false # Disable scoop since we're not using sentry integration
141+
id: check_scoop
142+
shell: pwsh
143+
run: |
144+
$scoopPath = "$env:USERPROFILE\scoop"
145+
$packages = "${{ env.scoop_packages }}" -split '\s+'
146+
$allInstalled = $true
147+
148+
if (Test-Path $scoopPath) {
149+
foreach ($pkg in $packages) {
150+
if (-not (Test-Path "$scoopPath\apps\$pkg")) {
151+
$allInstalled = $false
152+
break
153+
}
154+
}
155+
} else {
156+
$allInstalled = $false
157+
}
158+
159+
$hash = (Get-FileHash -InputStream ([IO.MemoryStream]::new([Text.Encoding]::UTF8.GetBytes("${{ env.scoop_packages }}"))) -Algorithm SHA256).Hash.Substring(0,16)
160+
161+
echo "scoop_ready=$allInstalled" >> $env:GITHUB_OUTPUT
162+
echo "scoop_packages_hash=$hash" >> $env:GITHUB_OUTPUT
163+
164+
- name: Restore Scoop Cache
165+
if: false # Disable scoop since we're not using sentry integration
166+
# if: steps.check_scoop.outputs.scoop_ready != 'true'
167+
id: restore_scoop_cache
168+
uses: actions/cache@v4
169+
with:
170+
path: '~/scoop'
171+
key: ${{ runner.os }}-scoop-${{ steps.check_scoop.outputs.scoop_packages_hash }}
172+
173+
- name: Install Scoop
174+
if: false # Disable scoop since we're not using sentry integration
175+
# if: steps.check_scoop.outputs.scoop_ready != 'true' && steps.restore_scoop_cache.outputs.cache-hit != 'true'
176+
uses: MinoruSekine/setup-scoop@v4.0.2
177+
with:
178+
install_scoop: 'true'
179+
buckets: extras
180+
apps: ${{ env.scoop_packages }}
181+
scoop_update: 'true'
182+
update_path: 'true'
183+
184+
- name: Setup Scoop PATH
185+
if: false # Disable scoop since we're not using sentry integration
186+
# if: steps.check_scoop.outputs.scoop_ready == 'true' || steps.restore_scoop_cache.outputs.cache-hit == 'true'
187+
uses: MinoruSekine/setup-scoop@v4.0.2
188+
with:
189+
install_scoop: 'false'
190+
scoop_update: 'false'
191+
update_path: 'true'
192+
138193
- name: Setup MSBuild
139194
uses: microsoft/setup-msbuild@v2
140195
with:
@@ -147,8 +202,19 @@ jobs:
147202
run: |
148203
nuget restore src/MacroQuestCustom.sln
149204
150-
- name: Handle vcpkg Cache
151-
if: false # Disabled for build server speed improvements
205+
- name: Check vcpkg Installation
206+
id: check_vcpkg
207+
shell: pwsh
208+
run: |
209+
$installedPath = "${{ github.workspace }}/contrib/vcpkg/installed"
210+
if ((Test-Path $installedPath) -and (Get-ChildItem $installedPath -Directory | Measure-Object).Count -gt 0) {
211+
echo "vcpkg_installed=true" >> $env:GITHUB_OUTPUT
212+
} else {
213+
echo "vcpkg_installed=false" >> $env:GITHUB_OUTPUT
214+
}
215+
216+
- name: Restore vcpkg Cache
217+
if: steps.check_vcpkg.outputs.vcpkg_installed != 'true'
152218
uses: actions/cache@v4
153219
with:
154220
path: |
@@ -172,6 +238,16 @@ jobs:
172238
- name: Create Symbols Archive
173239
run: 7z a -tzip -r build/bin/MacroQuest-Symbols.zip build/bin/Release/*.exe build/bin/Release/*.dll build/bin/Release/*.pdb
174240

241+
- name: Upload Symbols to Sentry
242+
if: false # Disable sentry integration
243+
env:
244+
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
245+
SENTRY_ORG: macroquest
246+
SENTRY_PROJECT: macroquest
247+
shell: pwsh
248+
run: |
249+
sentry-cli debug-files upload --wait "${{ github.workspace }}\build\bin\Release"
250+
175251
- name: Upload Symbols Artifact
176252
uses: actions/upload-artifact@v4
177253
with:

data/resources/CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
## 3/4/2026 (test)
2+
3+
Update for test patch
4+
5+
6+
## 3/1/2026
7+
8+
Updated to crashpad from the crashpad-backtrace fork we were previously using.
9+
- For local builders you should remove crashpad-backtrace to prevent conflicts
10+
- `vcpkg remove crashpad-backtrace:x64-windows-static` and/or `vcpkg remove crashpad-backtrace:x86-windows-static`
11+
12+
### Bug fixes
13+
14+
- live/test: Fix /removeaug (#974)
15+
- emu: Fix CTargetWnd buff accessor (#975)
16+
17+
118
## 2/22/2026
219

320
### ImAnim Integration

include/config/crashpad.h.example

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
//
22
// To enable automatic submissions, remove the .example extension from
3-
// this header and set the submissions url to your crashpad submission endpoint.
3+
// this header and set the submission values for your crash backend.
44
//
55

66
#pragma once
77

88
// Enables crashpad submissions
99
#define CRASHPAD_SUBMISSIONS_ENABLED true
1010

11-
// The submission URL used for submitting crash reports
11+
// Optional environment annotation.
12+
// #define CRASHPAD_SUBMISSION_ENVIRONMENT "production"
13+
14+
// Crashpad submission endpoint URL.
15+
// Example: https://crash-reports.example.com/minidump
1216
#define CRASHPAD_SUBMISSIONS_URL ""
1317

1418
// Enables the rate limit for crash submissions (1/hour)

src/imgui/imanim/im_anim_usecase.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7442,7 +7442,7 @@ static void ShowUsecase_InlineConfirmation()
74427442
// Width animation
74437443
float target_width = confirming ? expanded_total : collapsed_width;
74447444
float animated_width = iam_tween_float(ImGui::GetID("conf_w"), ImHashStr("cw"),
7445-
target_width, 0.2f, iam_ease_preset(iam_ease_out_quad), iam_policy_crossfade, dt);
7445+
target_width, 0.2f, iam_ease_preset(iam_ease_out_quad), iam_policy_crossfade, dt, collapsed_width);
74467446

74477447
// Background
74487448
ImU32 bg_col = confirming ? IM_COL32(180, 60, 60, 255) : IM_COL32(60, 65, 75, 255);

src/loader/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Generated from MacroQuest.vcxproj
1+
# Generated from MacroQuest.vcxproj
22
# This file is designed to work with add_subdirectory()
33

44
# ---------------------------------------------------------------------
@@ -114,7 +114,7 @@ target_link_libraries(MacroQuest PRIVATE imgui login routing)
114114
# Include directories
115115
# ---------------------------------------------------------------------
116116
target_include_directories(MacroQuest PRIVATE
117-
"${VCPKG_IncludeStatic}/crashpad-backtrace"
117+
"${VCPKG_IncludeStatic}/crashpad"
118118
"${CMAKE_SOURCE_DIR}/include"
119119
)
120120

src/loader/Crashpad.cpp

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@
5050
#if !defined(CRASHPAD_SUBMISSIONS_RATELIMITED)
5151
#define CRASHPAD_SUBMISSIONS_RATELIMITED true
5252
#endif
53+
#if !defined(CRASHPAD_SUBMISSION_PRODUCT)
54+
#define CRASHPAD_SUBMISSION_PRODUCT "MQ Loader"
55+
#endif
56+
#if !defined(CRASHPAD_SUBMISSION_ENVIRONMENT)
57+
#define CRASHPAD_SUBMISSION_ENVIRONMENT "unknown"
58+
#endif
5359

5460
using namespace crashpad;
5561
CrashpadClient client;
@@ -85,6 +91,24 @@ bool InitializeCrashpad()
8591
}
8692

8793
std::map<std::string, std::string> annotations;
94+
annotations["format"] = "minidump";
95+
const std::string product = CRASHPAD_SUBMISSION_PRODUCT;
96+
if (!product.empty())
97+
{
98+
annotations["product"] = product;
99+
}
100+
annotations["version"] = MQMAIN_VERSION;
101+
std::string release = MQMAIN_VERSION;
102+
if (!product.empty())
103+
{
104+
release = product + "@" + release;
105+
}
106+
annotations["sentry[release]"] = release;
107+
const std::string environment = CRASHPAD_SUBMISSION_ENVIRONMENT;
108+
if (!environment.empty())
109+
{
110+
annotations["sentry[environment]"] = environment;
111+
}
88112
std::vector<std::string> arguments;
89113

90114
// This is the directory you will use to store and queue crash data.
@@ -95,9 +119,7 @@ bool InitializeCrashpad()
95119
// crash handlers. This path may be relative.
96120
std::string handlerPath(internal_paths::MQRoot + "\\crashpad_handler.exe");
97121

98-
// This should point to your server dump submission port (labeled as "http/writer"
99-
// in the listener configuration pane. Preferrably, the SSL enabled port should
100-
// be used. If Backtrace is hosting your instance, the default port is 6098.
122+
// This should point to your server dump submission endpoint.
101123
std::string url(gCrashpadSubmissionURL);
102124

103125
if (!gEnableRateLimit)
@@ -124,6 +146,7 @@ bool InitializeCrashpad()
124146

125147
crashpad::UUID uuid;
126148
s_database->GetSettings()->GetClientID(&uuid);
149+
annotations["sentry[user][id]"] = uuid.ToString();
127150
SPDLOG_INFO("Crash report guid: {}", uuid.ToString());
128151
}
129152
else

src/loader/MacroQuest.vcxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
7474
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
7575
<ClCompile>
76-
<AdditionalIncludeDirectories>$(VCPKG_IncludeStatic)\crashpad-backtrace;$(MQRoot)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
76+
<AdditionalIncludeDirectories>$(VCPKG_IncludeStatic)\crashpad;$(MQRoot)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
7777
</ClCompile>
7878
<Link />
7979
<Manifest />
@@ -83,7 +83,7 @@
8383
</ItemDefinitionGroup>
8484
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
8585
<ClCompile>
86-
<AdditionalIncludeDirectories>$(VCPKG_IncludeStatic)\crashpad-backtrace;$(MQRoot)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
86+
<AdditionalIncludeDirectories>$(VCPKG_IncludeStatic)\crashpad;$(MQRoot)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
8787
</ClCompile>
8888
<Link />
8989
<Manifest />
@@ -96,7 +96,7 @@
9696
<Optimization>MaxSpeed</Optimization>
9797
<FunctionLevelLinking>true</FunctionLevelLinking>
9898
<IntrinsicFunctions>true</IntrinsicFunctions>
99-
<AdditionalIncludeDirectories>$(VCPKG_IncludeStatic)\crashpad-backtrace;$(MQRoot)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
99+
<AdditionalIncludeDirectories>$(VCPKG_IncludeStatic)\crashpad;$(MQRoot)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
100100
</ClCompile>
101101
<Link>
102102
<EnableCOMDATFolding>true</EnableCOMDATFolding>
@@ -110,7 +110,7 @@
110110
<Optimization>MaxSpeed</Optimization>
111111
<FunctionLevelLinking>true</FunctionLevelLinking>
112112
<IntrinsicFunctions>true</IntrinsicFunctions>
113-
<AdditionalIncludeDirectories>$(VCPKG_IncludeStatic)\crashpad-backtrace;$(MQRoot)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
113+
<AdditionalIncludeDirectories>$(VCPKG_IncludeStatic)\crashpad;$(MQRoot)include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
114114
</ClCompile>
115115
<Link>
116116
<EnableCOMDATFolding>true</EnableCOMDATFolding>

src/loader/vcpkg.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
],
88
"dependencies": [
9-
"crashpad-backtrace",
9+
"crashpad",
1010
"spdlog",
1111
"wil",
1212
"date",

src/loader/vcpkg_mq.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
crashpad-backtrace
1+
crashpad
22
spdlog
33
wil
44
date

0 commit comments

Comments
 (0)