Skip to content

Commit 1d2938f

Browse files
Stable: Rebased on refactor / Node 22
1 parent 9abc0fa commit 1d2938f

Some content is hidden

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

59 files changed

+1416
-2678
lines changed

.eslintrc.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
const isCI = process.env.CI === 'true';
2+
13
module.exports = {
24
"env": {
35
"browser": true,
@@ -145,6 +147,14 @@ module.exports = {
145147
"ignoreComments": true,
146148
}
147149
],
150+
// Flag TODO/FIXME comments (error in CI, warn locally)
151+
"no-warning-comments": [
152+
isCI ? "error" : "warn",
153+
{
154+
"terms": ["todo", "fixme"],
155+
"location": "anywhere"
156+
}
157+
],
148158
},
149159
"overrides": [
150160
{

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
- name: Use Node.js
2828
uses: actions/setup-node@v4
2929
with:
30-
node-version: '18.17.1'
30+
node-version: '22.x'
3131
cache: "yarn"
3232

3333
- name: Install dependencies

.github/workflows/package.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ jobs:
117117
- name: Use Node.js
118118
uses: actions/setup-node@v4
119119
with:
120-
node-version: '18.17.1'
120+
node-version: '22.x'
121121
cache: "yarn"
122122

123123
- name: Install dependencies
@@ -261,4 +261,4 @@ jobs:
261261
path: |
262262
./dist/vortex-setup-*.*.*.exe
263263
./dist/latest.yml
264-
if-no-files-found: error
264+
if-no-files-found: error

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ CodeSignTool*
1818
BuildPatchTool*
1919
assets/modules.json
2020

21+
# Ensure scripts/ is tracked
22+
!scripts/
23+
24+
# Archive legacy helpers (ignored)
25+
tools/legacy/
26+
2127
# User-specific files
2228
*.suo
2329

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20
1+
22

.submodule_remotes_backup.json

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,94 @@
11
{
22
,
33
"api": {
4-
"origin": "https://github.com/ErikVeland/vortex-api.git",
4+
"origin": "https://github.com/Nexus-Mods/vortex-api.git",
55
"original": "https://github.com/Nexus-Mods/vortex-api.git",
66
"upstream": "https://github.com/ErikVeland/vortex-api.git"
77
}
88
,
99
"extensions/changelog-dashlet": {
10-
"origin": "https://github.com/ErikVeland/extension-changelog-dashlet.git",
10+
"origin": "https://github.com/Nexus-Mods/extension-changelog-dashlet.git",
1111
"original": "https://github.com/Nexus-Mods/extension-changelog-dashlet.git",
1212
"upstream": "https://github.com/ErikVeland/extension-changelog-dashlet.git"
1313
}
1414
,
1515
"extensions/collections": {
16-
"origin": "https://github.com/ErikVeland/extension-collections.git",
16+
"origin": "https://github.com/Nexus-Mods/extension-collections.git",
1717
"original": "https://github.com/Nexus-Mods/extension-collections.git",
1818
"upstream": "https://github.com/ErikVeland/extension-collections.git"
1919
}
2020
,
2121
"extensions/common-interpreters": {
22-
"origin": "https://github.com/ErikVeland/extension-common-interpreters.git",
22+
"origin": "https://github.com/Nexus-Mods/extension-common-interpreters.git",
2323
"original": "https://github.com/Nexus-Mods/extension-common-interpreters.git",
2424
"upstream": "https://github.com/ErikVeland/extension-common-interpreters.git"
2525
}
2626
,
2727
"extensions/documentation": {
28-
"origin": "https://github.com/ErikVeland/extension-documentation.git",
28+
"origin": "https://github.com/Nexus-Mods/extension-documentation.git",
2929
"original": "https://github.com/Nexus-Mods/extension-documentation.git",
3030
"upstream": "https://github.com/ErikVeland/extension-documentation.git"
3131
}
3232
,
3333
"extensions/extension-dashlet": {
34-
"origin": "https://github.com/ErikVeland/extension-extension-dashlet.git",
34+
"origin": "https://github.com/Nexus-Mods/extension-extension-dashlet.git",
3535
"original": "https://github.com/Nexus-Mods/extension-extension-dashlet.git",
3636
"upstream": "https://github.com/ErikVeland/extension-extension-dashlet.git"
3737
}
3838
,
3939
"extensions/feedback": {
40-
"origin": "https://github.com/ErikVeland/extension-feedback.git",
40+
"origin": "https://github.com/Nexus-Mods/extension-feedback.git",
4141
"original": "https://github.com/Nexus-Mods/extension-feedback.git",
4242
"upstream": "https://github.com/ErikVeland/extension-feedback.git"
4343
}
4444
,
4545
"extensions/fnis-integration": {
46-
"origin": "https://github.com/ErikVeland/fnis-integration.git",
46+
"origin": "https://github.com/Nexus-Mods/fnis-integration.git",
4747
"original": "https://github.com/Nexus-Mods/fnis-integration.git",
4848
"upstream": "https://github.com/ErikVeland/fnis-integration.git"
4949
}
5050
,
5151
"extensions/game-pillarsofeternity2": {
52-
"origin": "https://github.com/ErikVeland/game-pillarsofeternity2.git",
52+
"origin": "https://github.com/Nexus-Mods/game-pillarsofeternity2.git",
5353
"original": "https://github.com/Nexus-Mods/game-pillarsofeternity2.git",
5454
"upstream": "https://github.com/ErikVeland/game-pillarsofeternity2.git"
5555
}
5656
,
5757
"extensions/gamebryo-archive-check": {
5858
"erik": "git@github.com:ErikVeland/bethesda-archive-check.git",
59-
"origin": "https://github.com/ErikVeland/bethesda-archive-check.git",
59+
"origin": "https://github.com/Nexus-Mods/bethesda-archive-check.git",
6060
"original": "https://github.com/Nexus-Mods/bethesda-archive-check.git",
6161
"upstream": "https://github.com/ErikVeland/bethesda-archive-check.git"
6262
}
6363
,
6464
"extensions/gamebryo-archive-invalidation": {
65-
"origin": "https://github.com/ErikVeland/extension-archive-invalidation.git",
65+
"origin": "https://github.com/Nexus-Mods/extension-archive-invalidation.git",
6666
"original": "https://github.com/Nexus-Mods/extension-archive-invalidation.git",
6767
"upstream": "https://github.com/ErikVeland/extension-archive-invalidation.git"
6868
}
6969
,
7070
"extensions/gamebryo-ba2-support": {
7171
"erik": "git@github.com:ErikVeland/extension-ba2-support.git",
72-
"origin": "https://github.com/ErikVeland/extension-ba2-support.git",
72+
"origin": "https://github.com/Nexus-Mods/extension-ba2-support.git",
7373
"original": "https://github.com/Nexus-Mods/extension-ba2-support.git",
7474
"upstream": "https://github.com/ErikVeland/extension-ba2-support.git"
7575
}
7676
,
7777
"extensions/gamebryo-bsa-support": {
7878
"erik": "git@github.com:ErikVeland/extension-bsa-support.git",
79-
"origin": "https://github.com/ErikVeland/extension-bsa-support.git",
79+
"origin": "https://github.com/Nexus-Mods/extension-bsa-support.git",
8080
"original": "https://github.com/Nexus-Mods/extension-bsa-support.git",
8181
"upstream": "https://github.com/ErikVeland/extension-bsa-support.git"
8282
}
8383
,
8484
"extensions/gamebryo-plugin-indexlock": {
85-
"origin": "https://github.com/ErikVeland/extension-plugin-indexlock.git",
85+
"origin": "https://github.com/Nexus-Mods/extension-plugin-indexlock.git",
8686
"original": "https://github.com/Nexus-Mods/extension-plugin-indexlock.git",
8787
"upstream": "https://github.com/ErikVeland/extension-plugin-indexlock.git"
8888
}
8989
,
9090
"extensions/gamebryo-plugin-management": {
91-
"origin": "https://github.com/ErikVeland/extension-plugin-management.git",
91+
"origin": "https://github.com/Nexus-Mods/extension-plugin-management.git",
9292
"original": "https://github.com/Nexus-Mods/extension-plugin-management.git",
9393
"upstream": "https://github.com/ErikVeland/extension-plugin-management.git"
9494
}

BuildSubprojects.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,13 @@ async function updateSourceMap(filePath) {
204204
function processCustom(project, buildType, feedback, noparallel) {
205205
const start = Date.now();
206206
const instArgs = noparallel ? ['--network-concurrency', '1'] : [];
207+
// Common macOS native build environment (Node-API C++ exceptions enabled)
208+
const macosNativeEnv = isMacOS() ? {
209+
GYP_DEFINES: `${process.env.GYP_DEFINES ? process.env.GYP_DEFINES + ' ' : ''}NAPI_CPP_EXCEPTIONS=1`,
210+
CPPFLAGS: `${process.env.CPPFLAGS ? process.env.CPPFLAGS + ' ' : ''}-DNAPI_CPP_EXCEPTIONS`,
211+
CXXFLAGS: `${process.env.CXXFLAGS ? process.env.CXXFLAGS + ' ' : ''}-DNAPI_CPP_EXCEPTIONS -std=c++17 -fexceptions`,
212+
MACOSX_DEPLOYMENT_TARGET: process.env.MACOSX_DEPLOYMENT_TARGET || '10.15'
213+
} : {};
207214

208215
// Special handling for gamebryo-savegame-management extension
209216
let res;
@@ -217,8 +224,11 @@ function processCustom(project, buildType, feedback, noparallel) {
217224
npm_config_node_gyp: path.join(__dirname, 'node_modules', 'node-gyp', 'bin', 'node-gyp.js'),
218225
// Add environment variables for macOS build
219226
LDFLAGS: "-L/usr/local/opt/zlib/lib",
220-
CPPFLAGS: "-I/usr/local/opt/zlib/include",
221-
PKG_CONFIG_PATH: "/usr/local/opt/zlib/lib/pkgconfig"
227+
CPPFLAGS: `${macosNativeEnv.CPPFLAGS || ''} -I/usr/local/opt/zlib/include`.trim(),
228+
CXXFLAGS: macosNativeEnv.CXXFLAGS,
229+
PKG_CONFIG_PATH: "/usr/local/opt/zlib/lib/pkgconfig",
230+
GYP_DEFINES: macosNativeEnv.GYP_DEFINES,
231+
MACOSX_DEPLOYMENT_TARGET: macosNativeEnv.MACOSX_DEPLOYMENT_TARGET
222232
}
223233
}, feedback)
224234
.then(() => {
@@ -237,7 +247,9 @@ function processCustom(project, buildType, feedback, noparallel) {
237247
cwd: project.path,
238248
env: {
239249
...process.env,
240-
npm_config_node_gyp: path.join(__dirname, 'node_modules', 'node-gyp', 'bin', 'node-gyp.js')
250+
npm_config_node_gyp: path.join(__dirname, 'node_modules', 'node-gyp', 'bin', 'node-gyp.js'),
251+
// Ensure Node-API C++ exceptions are enabled on macOS to avoid build failures
252+
...macosNativeEnv
241253
}
242254
}, feedback)
243255
.then(() => npm('run', [typeof project.build === 'string' ? project.build : 'build'], {

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,12 @@ TODO: Manual steps with dependencies and versions
141141
- [Vortex Forum](https://forums.nexusmods.com/index.php?/forum/4306-vortex-support/) or [Discord](https://discord.gg/nexusmods) for support and discussions with the community and the team.
142142
- [Vortex Wiki](https://github.com/Nexus-Mods/Vortex/wiki) for knowledge base, articles and troubleshooting
143143
- [Project Structure](structure.md) for an overview of how the codebase is organized.
144+
- [Yarn Commands Reference](docs/development/yarn-commands.md) for scripts, flags, and guidance.
145+
- [Scripts Overview](docs/development/scripts-overview.md) for install hooks, validation, and build utilities.
146+
- [Clean Command](docs/clean-command.md) for cleanup options (`--dev-data`, `--full`).
147+
- [macOS Guide](docs/macos/README.md) for macOS development, build, and packaging.
148+
- [macOS Code Signing](docs/macos/code-signing.md) for signing and notarization steps.
149+
- [Platform Text Usage](docs/platform-text-usage.md) for platform-specific UI text utilities.
144150

145151
## Contributing
146152

@@ -154,4 +160,4 @@ The majority of Vortex code is open-source. We are committed to a transparent de
154160

155161
## License
156162

157-
A this project is licensed under the [GPL-3.0](https://github.com/Nexus-Mods/Vortex/blob/master/LICENSE.md) license.
163+
This project is licensed under the [GPL-3.0](https://github.com/Nexus-Mods/Vortex/blob/master/LICENSE.md) license.

0 commit comments

Comments
 (0)