Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
ed50da9
sms-api: initial commit
OrkunTokdemir Mar 12, 2026
5eb527e
sms-api: Add eslint and fix linting issues
OrkunTokdemir Mar 12, 2026
03f94b7
sms-api: Add integration test setup
OrkunTokdemir Mar 12, 2026
7f3d7e8
sms-api: Add unit tests
OrkunTokdemir Mar 12, 2026
faf8e84
sms-api: Add cache, settings, and message notification support
OrkunTokdemir Mar 16, 2026
6b6e8cc
sms-api: Add service lifecycle management and offline package creation
OrkunTokdemir Mar 31, 2026
ad4c9ad
sms-api: add install and post-install verification to integration tests
OrkunTokdemir Apr 1, 2026
df72657
qt-sms: Introduce Qt Software Management Service extension
OrkunTokdemir Apr 8, 2026
8e295a0
sms-api: Improve ServiceLauncher diagnostics and add integration tests
OrkunTokdemir Apr 9, 2026
1acdd3e
qt-sms: Redirect the service output to qt-sms output channel
OrkunTokdemir Apr 9, 2026
75b79a1
Package: Include qt-sms to npm run all_dev
OrkunTokdemir Apr 9, 2026
6975b28
sms-api: Use absolute path for socket
OrkunTokdemir Apr 9, 2026
fdc70ea
sms-api: apply prettier formatting
OrkunTokdemir Apr 10, 2026
96f3232
sms-api: fix user prompt reply key names (reply_choice → replyChoice)
OrkunTokdemir Apr 10, 2026
9f186dc
sms-api: Fix integration test on macOS
OrkunTokdemir Apr 10, 2026
88e03c4
qt-sms: show install progress percentage with increment
OrkunTokdemir Apr 13, 2026
491e6fd
qt-sms: sms-api: Introduce ProgressType
OrkunTokdemir Apr 15, 2026
6d4faca
qt-sms: Add user prompt handling for service-to-client questions
OrkunTokdemir Apr 15, 2026
e42668d
qt-sms: Add progress logging to package listing and searching commands
OrkunTokdemir Apr 15, 2026
4bcf6a2
sms-api, qt-sms: Add Settings API with installationPath support
OrkunTokdemir Apr 21, 2026
425b0ed
qt-sms: sms-api: Add Qt Account authentication support
OrkunTokdemir Apr 21, 2026
9d23dc7
qt-sms: sms-api: Add login state tracking, logging callbacks, and UI …
OrkunTokdemir Apr 22, 2026
84f5126
sms-api: Add new filter parameters
OrkunTokdemir Apr 23, 2026
86502f0
sms-api/qt-sms: Add fetchRequirements API and license agreement flow
OrkunTokdemir Apr 23, 2026
2963526
qt-sms: Extract service connection lifecycle and improve installation…
OrkunTokdemir Apr 24, 2026
07b5b31
sms-api: Fix license agreement field name to match backend protocol
OrkunTokdemir Apr 24, 2026
0a9ed6b
qt-sms: Filter package search results to monolith presentation
OrkunTokdemir Apr 27, 2026
95dbda1
qt-sms: Add launch configuration for qt-sms
OrkunTokdemir Apr 27, 2026
56d0a02
qt-sms: Synchronize installation path with service on connect
OrkunTokdemir Apr 27, 2026
7759579
sms-api: Fix warning about shadowed parameter
OrkunTokdemir Apr 27, 2026
3c1f055
qt-sms: Move login/logout commands to separate functions
OrkunTokdemir Apr 27, 2026
b248102
qt-sms: Bypass VS Code consent popup on login
OrkunTokdemir Apr 27, 2026
bc6bf6b
qt-sms: replace modal license dialog with Svelte webview panel
OrkunTokdemir Apr 27, 2026
f45d7aa
qt-sms: Require login before installing packages
OrkunTokdemir Apr 28, 2026
5516603
qt-sms: Register installed Qt into additionalQtPaths after install
OrkunTokdemir Apr 28, 2026
2fb3716
sms-api/qt-sms: Port features from SMS service
OrkunTokdemir Apr 30, 2026
6f56691
qt-sms: Update license agreement logging
OrkunTokdemir Apr 30, 2026
2edfaeb
qt-sms: Add preview flag
OrkunTokdemir May 4, 2026
009324d
qt-sms: Reset license agreement consents before each install
OrkunTokdemir May 4, 2026
7e490c7
qt-sms: Do not set `installationPath` if it is already set
OrkunTokdemir May 5, 2026
8ea86e5
qt-sms: Introduce alpha allowlist check for logins
OrkunTokdemir May 5, 2026
122e3db
qt-sms: Use `~/Qt_sm_alpha` as default installation
OrkunTokdemir May 5, 2026
6208ea1
qt-sms: Resolve installation path before using
OrkunTokdemir May 5, 2026
b1255e1
qt-sms: Package: Switch to `application` scope from `machine-overrida…
OrkunTokdemir May 5, 2026
6d4eb57
qt-sms: Add parameters to `installPackage()` to filter by name and ve…
OrkunTokdemir May 6, 2026
e16f2f3
qt-sms: Introduce walkthrough
OrkunTokdemir May 6, 2026
a7fced9
sms-api: use os.tmpdir() for socket path to match Qt's behavior
OrkunTokdemir May 6, 2026
9532193
qt-sms: Add webview-ui specific files to .vscodeignore
OrkunTokdemir May 7, 2026
356390f
qt-sms: Show package version while installing
OrkunTokdemir May 7, 2026
92751e8
qt-sms: Update DEFAULT_BACKEND_URL
OrkunTokdemir May 7, 2026
fb89167
qt-sms: Add a message when already signed in
OrkunTokdemir May 7, 2026
58bf7b6
qt-sms: Use error log level for service connection stderr output
OrkunTokdemir May 7, 2026
849bf61
qt-sms: Add activity bar with Qt Account and Get Started views
OrkunTokdemir May 7, 2026
90969d4
qt-sms: sms-api: Add cancellable download phase
OrkunTokdemir May 8, 2026
1fae020
qt-sms: Print backend URL in installPackage command
OrkunTokdemir May 8, 2026
0d5c01e
qt-sms: Register qtpaths from new QtFramework/<version>/<arch> structure
OrkunTokdemir May 11, 2026
595c8ce
qt-sms: Track installed packages locally and filter from install list
OrkunTokdemir May 18, 2026
f124a82
qt-sms: Change default installation path to `~/QtAlpha`
OrkunTokdemir May 19, 2026
b171645
sms-api: Windows IPC compatibility for SMS service launcher
OrkunTokdemir May 21, 2026
5f23d03
qt-sms: Discover service binary from QtCompany.ini and trigger bootst…
OrkunTokdemir May 26, 2026
c008012
qt-sms: replace state-based install tracking with disk checks
OrkunTokdemir May 27, 2026
e4145ca
qt-sms: Update README.md
OrkunTokdemir May 27, 2026
cec0d01
qt-sms: Add a walkthrough step to build first app
OrkunTokdemir May 27, 2026
9c62abb
qt-sms: sms-api: align credential storage with C++ QtAccountStorage
OrkunTokdemir May 27, 2026
f359ea9
qt-sms: Remove listInstalledPackages command and related code
OrkunTokdemir May 27, 2026
cf0fb86
sms-api: Use LOCALAPPDATA for Windows instead of APPDATA
OrkunTokdemir May 27, 2026
25c615a
qt-sms: Add Windows support with MSVC 2022 architecture labels
OrkunTokdemir May 27, 2026
5d9f038
qt-sms: Use common platform checks
OrkunTokdemir May 28, 2026
0a56896
qt-sms: Add dependency version enforcement on activation
OrkunTokdemir May 28, 2026
a05920b
qt-sms: qt-cpp when a kit is added via qt-sms package install
OrkunTokdemir May 29, 2026
b383810
qt-sms: Document known issue with stale QtCompany.ini
OrkunTokdemir May 29, 2026
b179ee8
qt-sms: Improve bootstrap resilience and service startup
OrkunTokdemir May 29, 2026
04b3c07
qt-sms: Add survey
OrkunTokdemir Jun 1, 2026
6f6ddd8
qt-sms: Move qt-cpp and cmake-tools to walkthrough install step
OrkunTokdemir Jun 1, 2026
62533b9
qt-sms: check installed packages from disk and add product filter
OrkunTokdemir Jun 2, 2026
382f61c
qt-sms: retainContextWhenHidden option for license panel
OrkunTokdemir Jun 2, 2026
ef73389
qt-sms: Add "SMS: Reset Test State" command for testing
OrkunTokdemir Jun 2, 2026
b42d1ac
qt-sms: make the survey appear after a minute due to test purposes
OrkunTokdemir Jun 2, 2026
c045d52
sms-api: add unit tests for Packages.cancel()
OrkunTokdemir Jun 4, 2026
315371f
qt-sms: Show survey popup in 30 minutes instead of 1 minute for the a…
OrkunTokdemir Jun 4, 2026
c4a4838
qt-sms: install Qt C++ Extension Pack and prerelease qt-core in walkt…
OrkunTokdemir Jun 4, 2026
cb10be2
qt-sms: Use "Qt Software Management Configuration" as the title of th…
OrkunTokdemir Jun 4, 2026
4c29b53
qt-sms: Use 0.1.0 version for the alpha version
OrkunTokdemir Jun 5, 2026
b179f1b
License: Update ThirdPartyNotices.txt
OrkunTokdemir Jun 5, 2026
33bbf8e
qt-sm: Ensure Qt Core pre-release is installed and reload window
OrkunTokdemir Jun 5, 2026
7e9ef3e
qt-sm: sms-api: Build sms-api before publishing qt-sm
OrkunTokdemir Jun 5, 2026
569dd07
qt-sm: sms-api: Add sms-api to license check exclude list
OrkunTokdemir Jun 5, 2026
a4bd7fa
qt-sms: Update package-lock.json
OrkunTokdemir Jun 5, 2026
3cce7be
qt-sm: Update CHANGELOG.md
OrkunTokdemir Jun 5, 2026
b2adad5
qt-sm: Bump version to 0.1.1
OrkunTokdemir Jun 5, 2026
d7e5d90
qt-sm: Install Qt extensions as pre-release in walkthrough
OrkunTokdemir Jun 5, 2026
6d5ca16
qt-sm: Update CHANGELOG.md for version 0.1.1
OrkunTokdemir Jun 5, 2026
9d3a1b3
qt-sm: Fix password input losing focus when walkthrough is open
OrkunTokdemir Jun 8, 2026
281f440
qt-sm: Ensure cmake-tools meets minimum version during extension install
OrkunTokdemir Jun 8, 2026
81f8fb3
qt-sm: Reset test state: sign out and remove Qt paths under install dir
OrkunTokdemir Jun 8, 2026
3666d77
qt-sm: Replace built-in walkthrough with custom webview panel
OrkunTokdemir Jun 15, 2026
b271364
qt-sm: Rename extension from qt-sms to qt-sm
OrkunTokdemir Jun 19, 2026
5426ec7
qt-sm: Publish bundled CMake/Ninja paths via CoreAPI
OrkunTokdemir Jun 22, 2026
d55c60e
qt-sm: Fix style errors
OrkunTokdemir Jun 22, 2026
8b6f24a
qt-sm: Add Mark Done button to the walkthrough
OrkunTokdemir Jun 22, 2026
bb9345a
qt-sm: Change command names to SM from SMS
OrkunTokdemir Jun 23, 2026
3eb49c4
qt-sm: Fix timeline rail showing through locked step icons
OrkunTokdemir Jun 23, 2026
d751d26
qt-sm: also watch installation root removal in package store
OrkunTokdemir Jun 23, 2026
c44a512
qt-sm: keep Qt Core extension when it matches required version
OrkunTokdemir Jun 23, 2026
3de5d1f
qt-sm: Bump version to 0.1.2
OrkunTokdemir Jun 24, 2026
2917d6d
qt-sm: Update CHANGELOG.md
OrkunTokdemir Jun 24, 2026
7a6b8bb
License: Update ThirdPartyNotices.txt
OrkunTokdemir Jun 24, 2026
55c2dde
qt-sm: Add (Alpha) to displayName due the name taken error in the mar…
OrkunTokdemir Jun 24, 2026
2deb1ee
qt-sm: Bump version to 0.1.3
OrkunTokdemir Jun 25, 2026
27cb19c
qt-sm: Show themed Qt icon on the Get Started walkthrough tab
OrkunTokdemir Jun 25, 2026
520e5b4
qt-sm: Enable Get latest Qt Framework when latest is not installed
OrkunTokdemir Jun 25, 2026
1510ed8
qt-sm: Include version in the install success message
OrkunTokdemir Jun 25, 2026
f050614
qt-sm: Fix walkthrough growing unbounded instead of scrolling
OrkunTokdemir Jun 25, 2026
a440272
qt-sm: Restrict alpha access to @qt.io emails
OrkunTokdemir Jun 25, 2026
ed86130
qt-sm: Update CHANGELOG.md
OrkunTokdemir Jun 25, 2026
c866d75
Package: Use `npm run install:all` for qt-sm
OrkunTokdemir Jul 17, 2026
9b31b57
qt-sm: Improve walkthrough footer and add reset password button
OrkunTokdemir Jul 20, 2026
bae6056
qt-sm: Improve Qt Account login retry and error messages
OrkunTokdemir Jul 20, 2026
edc9afc
qt-sm: Update package-lock.json
OrkunTokdemir Jul 20, 2026
b253aba
Package: Run `install:sms-api` in `install:all` scripts
OrkunTokdemir Jul 20, 2026
de86a61
qt-sm: Allow theqtcompany.com domain for alpha access
OrkunTokdemir Aug 4, 2026
e96fd36
qt-sm: Update CHANGELOG.md
OrkunTokdemir Aug 4, 2026
211bcc6
qt-sm: Bump version to 0.1.4
OrkunTokdemir Aug 4, 2026
9fa5953
qt-sm: Bump version to 0.1.5
OrkunTokdemir Aug 4, 2026
d4569a7
qt-sm: Rename the walkthrough button and panel to "Install Qt"
OrkunTokdemir Aug 13, 2026
d860526
qt-sm: Show the account state in the walkthrough sign-in step
OrkunTokdemir Aug 13, 2026
64dc27f
qt-sm: Turn the Qt Account view into a webview
OrkunTokdemir Aug 13, 2026
eecc4a9
qt-sm: Add an Installed Packages view
OrkunTokdemir Aug 13, 2026
cdd13a9
qt-sm: Reset the walkthrough in "Reset Test State"
OrkunTokdemir Aug 13, 2026
6b14a66
qt-sm: Add an accept checkbox to the license panel
OrkunTokdemir Aug 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/build-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
# qt-lib should be built first as it is a dependency for other packages
- run: npm run ci:qt-lib
- run: npm run compile:qt-lib
- run: npm run ci:sms-api
- run: npm run compile:sms-api
- run: npm run ci:all
- run: npm run compile:all
- run: npm run ci-lint:all
Expand Down
8 changes: 8 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,14 @@
"outFiles": ["${workspaceFolder}/qt-python/out/**/*.js"],
"preLaunchTask": "npm qt-python watch"
},
{
"name": "Run qt-sm",
"type": "extensionHost",
"request": "launch",
"args": ["--extensionDevelopmentPath=${workspaceFolder}/qt-sm"],
"outFiles": ["${workspaceFolder}/qt-sm/out/**/*.js"],
"preLaunchTask": "npm qt-sm watch"
},
{
"name": "Run Extension Tests qt-core",
"type": "extensionHost",
Expand Down
17 changes: 17 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,23 @@
"cwd": "${workspaceFolder}/qt-python"
}
},
{
"type": "shell",
"label": "npm qt-sm watch",
"problemMatcher": "$tsc-watch",
"command": "npm run watch",
"isBackground": true,
"presentation": {
"reveal": "never"
},
"group": {
"kind": "build",
"isDefault": true
},
"options": {
"cwd": "${workspaceFolder}/qt-sm"
}
},
{
"type": "shell",
"label": "npm qt-qml watch",
Expand Down
58 changes: 38 additions & 20 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,69 +13,84 @@
"all_dev:qt-qml": "ts-node ./scripts/all_dev.ts --extension=\"qt-qml\"",
"all_dev:qt-cpp": "ts-node ./scripts/all_dev.ts --extension=\"qt-cpp\"",
"all_dev:qt-python": "ts-node ./scripts/all_dev.ts --extension=\"qt-python\"",
"all_dev:qt-sm": "ts-node ./scripts/all_dev.ts --extension=\"qt-sm\"",
"test:qt-core": "ts-node ./scripts/test.ts --extension=\"qt-core\"",
"test:qt-cpp": "ts-node ./scripts/test.ts --extension=\"qt-cpp\"",
"test:qt-qml": "ts-node ./scripts/test.ts --extension=\"qt-qml\"",
"test:qt-python": "ts-node ./scripts/test.ts --extension=\"qt-python\"",
"test:qt-sm": "ts-node ./scripts/test.ts --extension=\"qt-sm\"",
"test:all": "ts-node ./scripts/test.ts --extension=\"all\"",
"lint": "npm run prettierWrite && eslint scripts --fix --cache",
"lint:qt-core": "cd qt-core && npm run lint",
"lint:qt-qml": "cd qt-qml && npm run lint",
"lint:qt-cpp": "cd qt-cpp && npm run lint",
"lint:qt-python": "cd qt-python && npm run lint",
"lint:qt-sm": "cd qt-sm && npm run lint",
"lint:qt-lib": "cd qt-lib && npm run lint",
"lint:all": "concurrently \"npm run lint\" \"npm run lint:qt-lib\" \"npm run lint:qt-core\" \"npm run lint:qt-cpp\" \"npm run lint:qt-python\" \"npm run lint:qt-qml\"",
"lint:all_sync": "npm run lint && npm run lint:qt-lib && npm run lint:qt-core && npm run lint:qt-cpp && npm run lint:qt-python && npm run lint:qt-qml",
"lint:sms-api": "cd sms-api && npm run lint",
"lint:all": "concurrently \"npm run lint\" \"npm run lint:qt-lib\" \"npm run lint:qt-core\" \"npm run lint:qt-cpp\" \"npm run lint:qt-python\" \"npm run lint:qt-qml\" \"npm run lint:qt-sm\"",
"lint:all_sync": "npm run lint && npm run lint:qt-lib && npm run lint:qt-core && npm run lint:qt-cpp && npm run lint:qt-python && npm run lint:qt-qml && npm run lint:qt-sm",
"pretest": "npm run prettierWrite && npx tsc --incremental --noEmit && eslint scripts --fix --cache",
"pretest:qt-core": "cd qt-core && npm run pretest",
"pretest:qt-qml": "cd qt-qml && npm run pretest",
"pretest:qt-cpp": "cd qt-cpp && npm run pretest",
"pretest:qt-python": "cd qt-python && npm run pretest",
"pretest:qt-sm": "cd qt-sm && npm run pretest",
"pretest:qt-lib": "cd qt-lib && npm run pretest",
"pretest:all": "concurrently \"npm run pretest\" \"npm run pretest:qt-lib\" \"npm run pretest:qt-core\" \"npm run pretest:qt-cpp\" \"npm run pretest:qt-python\" \"npm run pretest:qt-qml\"",
"pretest:all_sync": "npm run pretest && npm run pretest:qt-lib && npm run pretest:qt-core && npm run pretest:qt-cpp && npm run pretest:qt-python && npm run pretest:qt-qml",
"pretest:sms-api": "cd sms-api && npm run pretest",
"pretest:all": "concurrently \"npm run pretest\" \"npm run pretest:qt-lib\" \"npm run pretest:qt-core\" \"npm run pretest:qt-cpp\" \"npm run pretest:qt-python\" \"npm run pretest:qt-qml\" \"npm run pretest:qt-sm\"",
"pretest:all_sync": "npm run pretest && npm run pretest:qt-lib && npm run pretest:qt-core && npm run pretest:qt-cpp && npm run pretest:qt-python && npm run pretest:qt-qml && npm run pretest:qt-sm",
"ci-lint:qt-core": "ts-node ./scripts/ci_lint.ts --dir=\"qt-core\" --exclude_licenses=\"qt-core\"",
"ci-lint:qt-qml": "ts-node ./scripts/ci_lint.ts --dir=\"qt-qml\" --exclude_licenses=\"qt-qml\"",
"ci-lint:qt-cpp": "ts-node ./scripts/ci_lint.ts --dir=\"qt-cpp\" --exclude_licenses=\"qt-cpp\"",
"ci-lint:qt-python": "ts-node ./scripts/ci_lint.ts --dir=\"qt-python\" --exclude_licenses=\"qt-python\"",
"ci-lint:qt-sm": "ts-node ./scripts/ci_lint.ts --dir=\"qt-sm\" --exclude_licenses=\"qt-sm\"",
"ci-lint:qt-lib": "npm run checkStyle -- --dir=\"qt-lib\" && npm run eslint -- --dir=\"qt-lib\" && npm run checkPackage -- --dir=\"qt-lib\"",
"ci-lint:all": "concurrently \"npm run ci-lint\" \"npm run ci-lint:qt-lib\" \"npm run ci-lint:qt-core\" \"npm run ci-lint:qt-cpp\" \"npm run ci-lint:qt-python\" \"npm run ci-lint:qt-qml\" \"npm run checkChangelog:all_ext_pack\"",
"ci-lint:all_sync": "npm run ci-lint && npm run ci-lint:qt-lib && npm run ci-lint:qt-core && npm run ci-lint:qt-cpp && npm run ci-lint:qt-python && npm run ci-lint:qt-qml ",
"ci-lint:all": "concurrently \"npm run ci-lint\" \"npm run ci-lint:qt-lib\" \"npm run ci-lint:qt-core\" \"npm run ci-lint:qt-cpp\" \"npm run ci-lint:qt-python\" \"npm run ci-lint:qt-qml\" \"npm run ci-lint:qt-sm\" \"npm run checkChangelog:all_ext_pack\"",
"ci-lint:all_sync": "npm run ci-lint && npm run ci-lint:qt-lib && npm run ci-lint:qt-core && npm run ci-lint:qt-cpp && npm run ci-lint:qt-python && npm run ci-lint:qt-qml && npm run ci-lint:qt-sm",
"ci-lint": "npm run prettierCheck && eslint scripts",
"install-ext:qt-core": "ts-node ./scripts/install-ext.ts --dir=\"qt-core\" --name=\"qt-core\"",
"install-ext:qt-qml": "ts-node ./scripts/install-ext.ts --dir=\"qt-qml\" --name=\"qt-qml\"",
"install-ext:qt-cpp": "ts-node ./scripts/install-ext.ts --dir=\"qt-cpp\" --name=\"qt-cpp\"",
"install-ext:qt-python": "ts-node ./scripts/install-ext.ts --dir=\"qt-python\" --name=\"qt-python\"",
"install-ext:all": "concurrently \"npm run install-ext:qt-core\" \"npm run install-ext:qt-cpp\" \"npm run install-ext:qt-python\" \"npm run install-ext:qt-qml\"",
"install-ext:all_sync": "npm run install-ext:qt-core && npm run install-ext:qt-cpp && npm run install-ext:qt-python && npm run install-ext:qt-qml",
"install-ext:qt-sm": "ts-node ./scripts/install-ext.ts --dir=\"qt-sm\" --name=\"qt-sm\"",
"install-ext:all": "concurrently \"npm run install-ext:qt-core\" \"npm run install-ext:qt-cpp\" \"npm run install-ext:qt-python\" \"npm run install-ext:qt-qml\" \"npm run install-ext:qt-sm\"",
"install-ext:all_sync": "npm run install-ext:qt-core && npm run install-ext:qt-cpp && npm run install-ext:qt-python && npm run install-ext:qt-qml && npm run install-ext:qt-sm",
"install:qt-core": "cd qt-core && npm run install:all",
"install:qt-qml": "cd qt-qml && npm install",
"install:qt-cpp": "cd qt-cpp && npm install",
"install:qt-python": "cd qt-python && npm install",
"install:qt-sm": "cd qt-sm && npm run install:all",
"install:qt-lib": "cd qt-lib && npm install",
"install:all": "concurrently \"npm install\" \"npm run install:qt-lib\" \"npm run install:qt-core\" \"npm run install:qt-cpp\" \"npm run install:qt-python\" \"npm run install:qt-qml\"",
"install:all_sync": "npm install && npm run install:qt-lib && npm run install:qt-core && npm run install:qt-cpp && npm run install:qt-python && npm run install:qt-qml",
"install:sms-api": "cd sms-api && npm install",
"install:all": "concurrently \"npm install\" \"npm run install:qt-lib\" \"npm run install:sms-api\" \"npm run install:qt-core\" \"npm run install:qt-cpp\" \"npm run install:qt-python\" \"npm run install:qt-qml\" \"npm run install:qt-sm\"",
"install:all_sync": "npm install && npm run install:qt-lib && npm run install:sms-api && npm run install:qt-core && npm run install:qt-cpp && npm run install:qt-python && npm run install:qt-qml && npm run install:qt-sm",
"eslint": "ts-node ./scripts/eslint.ts",
"ci:qt-core": "cd qt-core && npm run ci:all",
"ci:qt-qml": "cd qt-qml && npm ci",
"ci:qt-cpp": "cd qt-cpp && npm ci",
"ci:qt-python": "cd qt-python && npm ci",
"ci:qt-sm": "cd qt-sm && npm run ci:all",
"ci:qt-lib": "cd qt-lib && npm ci",
"ci:all": "npm ci && concurrently \"npm run ci:qt-lib\" \"npm run ci:qt-core\" \"npm run ci:qt-cpp\" \"npm run ci:qt-python\" \"npm run ci:qt-qml\"",
"ci:all_sync": "npm ci && npm run ci:qt-lib && npm run ci:qt-core && npm run ci:qt-cpp && npm run ci:qt-python && npm run ci:qt-qml",
"ci:sms-api": "cd sms-api && npm ci",
"ci:all": "npm ci && concurrently \"npm run ci:qt-lib\" \"npm run ci:qt-core\" \"npm run ci:qt-cpp\" \"npm run ci:qt-python\" \"npm run ci:qt-qml\" \"npm run ci:qt-sm\"",
"ci:all_sync": "npm ci && npm run ci:qt-lib && npm run ci:qt-core && npm run ci:qt-cpp && npm run ci:qt-python && npm run ci:qt-qml && npm run ci:qt-sm",
"package:qt-core": "ts-node ./scripts/package.ts --extension=\"qt-core\"",
"package:qt-qml": "ts-node ./scripts/package.ts --extension=\"qt-qml\"",
"package:qt-cpp": "ts-node ./scripts/package.ts --extension=\"qt-cpp\"",
"package:qt-python": "ts-node ./scripts/package.ts --extension=\"qt-python\"",
"package:all": "concurrently \"npm run package:qt-core\" \"npm run package:qt-cpp\" \"npm run package:qt-python\" \"npm run package:qt-qml\"",
"package:all_sync": "npm run package:qt-core && npm run package:qt-cpp && npm run package:qt-python && npm run package:qt-qml",
"package:qt-sm": "ts-node ./scripts/package.ts --extension=\"qt-sm\"",
"package:all": "concurrently \"npm run package:qt-core\" \"npm run package:qt-cpp\" \"npm run package:qt-python\" \"npm run package:qt-qml\" \"npm run package:qt-sm\"",
"package:all_sync": "npm run package:qt-core && npm run package:qt-cpp && npm run package:qt-python && npm run package:qt-qml && npm run package:qt-sm",
"compile:qt-core": "cd qt-core && npm run compile",
"compile:qt-qml": "cd qt-qml && npm run compile",
"compile:qt-cpp": "npm run prepareNatvisFiles && cd qt-cpp && npm run compile",
"compile:qt-python": "cd qt-python && npm run compile",
"compile:qt-sm": "cd qt-sm && npm run compile",
"compile:qt-lib": "cd qt-lib && npm run compile",
"compile:all": "concurrently \"npm run compile:qt-core\" \"npm run compile:qt-cpp\" \"npm run compile:qt-python\" \"npm run compile:qt-qml\"",
"compile:all_sync": "npm run compile:qt-core && npm run compile:qt-cpp && npm run compile:qt-python && npm run compile:qt-qml && npm run compile:qt-lib",
"compile:sms-api": "cd sms-api && npm run compile",
"compile:all": "concurrently \"npm run compile:qt-core\" \"npm run compile:qt-cpp\" \"npm run compile:qt-python\" \"npm run compile:qt-qml\" \"npm run compile:sms-api && npm run compile:qt-sm\"",
"compile:all_sync": "npm run compile:qt-core && npm run compile:qt-cpp && npm run compile:qt-python && npm run compile:qt-qml && npm run compile:qt-lib && npm run compile:qt-sm",
"checkLicenses": "ts-node ./scripts/check_licenses.ts",
"checkPackage": "ts-node ./scripts/check_package.ts",
"checkStyle": "ts-node ./scripts/check_style.ts",
Expand All @@ -87,23 +102,26 @@
"checkUnused:qt-core": "ts-node ./scripts/check_unused.ts --dir=\"qt-core\"",
"checkUnused:qt-cpp": "ts-node ./scripts/check_unused.ts --dir=\"qt-cpp\"",
"checkUnused:qt-qml": "ts-node ./scripts/check_unused.ts --dir=\"qt-qml\"",
"checkUnused:all": "concurrently \"npm run checkUnused:qt-core\" \"npm run checkUnused:qt-cpp\" \"npm run checkUnused:qt-qml\"",
"checkUnused:all_sync": "npm run checkUnused:qt-core && npm run checkUnused:qt-cpp && npm run checkUnused:qt-qml",
"checkUnused:qt-sm": "ts-node ./scripts/check_unused.ts --dir=\"qt-sm\"",
"checkUnused:all": "concurrently \"npm run checkUnused:qt-core\" \"npm run checkUnused:qt-cpp\" \"npm run checkUnused:qt-qml\" \"npm run checkUnused:qt-sm\"",
"checkUnused:all_sync": "npm run checkUnused:qt-core && npm run checkUnused:qt-cpp && npm run checkUnused:qt-qml && npm run checkUnused:qt-sm",
"checkChangelog:all_ext_pack": "npm run checkChangelog:qt-all-pack && npm run checkChangelog:qt-wasm-pack && npm run checkChangelog:qt-cpp-pack",
"generateLicenses": "ts-node ./scripts/generate_licenses.ts",
"generateLicenses:qt-core": "npm run generateLicenses -- --dir=\"qt-core\" --exclude=\"qt-core, qt-lib\" --output=\"qt-core/ThirdPartyNotices.txt\" && npm run generateLicenses:qt-core-webview",
"generateLicenses:qt-core-webview": "npm run generateLicenses -- --dir=\"qt-core/webview-ui\" --exclude=\"qt-core-webview\" --output=\"qt-core/webview-ui/ThirdPartyNotices.txt\"",
"generateLicenses:qt-qml": "npm run generateLicenses -- --dir=\"qt-qml\" --exclude=\"qt-qml, qt-lib\" --output=\"qt-qml/ThirdPartyNotices.txt\"",
"generateLicenses:qt-cpp": "npm run generateLicenses -- --dir=\"qt-cpp\" --exclude=\"qt-cpp, qt-lib\" --output=\"qt-cpp/ThirdPartyNotices.txt\"",
"generateLicenses:qt-python": "npm run generateLicenses -- --dir=\"qt-python\" --exclude=\"qt-python, qt-lib\" --output=\"qt-python/ThirdPartyNotices.txt\"",
"generateLicenses:all": "concurrently \"npm run generateLicenses:qt-core\" \"npm run generateLicenses:qt-cpp\" \"npm run generateLicenses:qt-python\" \"npm run generateLicenses:qt-qml\"",
"generateLicenses:all_sync": "npm run generateLicenses:qt-core && npm run generateLicenses:qt-cpp && npm run generateLicenses:qt-python && npm run generateLicenses:qt-qml",
"generateLicenses:qt-sm": "npm run generateLicenses -- --dir=\"qt-sm\" --exclude=\"qt-sm, qt-lib, sms-api\" --output=\"qt-sm/ThirdPartyNotices.txt\"",
"generateLicenses:all": "concurrently \"npm run generateLicenses:qt-core\" \"npm run generateLicenses:qt-cpp\" \"npm run generateLicenses:qt-python\" \"npm run generateLicenses:qt-qml\" \"npm run generateLicenses:qt-sm\"",
"generateLicenses:all_sync": "npm run generateLicenses:qt-core && npm run generateLicenses:qt-cpp && npm run generateLicenses:qt-python && npm run generateLicenses:qt-qml && npm run generateLicenses:qt-sm",
"_prepublish_git": "git reset --hard && git clean -ffdx",
"_prepublish": "npm run _prepublish_git && npm ci && npm run ci:qt-lib && npm run compile:qt-lib && npm run ci-lint:qt-lib",
"publish:qt-core": "ts-node ./scripts/publish.ts --extension=\"qt-core\"",
"publish:qt-qml": "ts-node ./scripts/publish.ts --extension=\"qt-qml\"",
"publish:qt-cpp": "ts-node ./scripts/publish.ts --extension=\"qt-cpp\"",
"publish:qt-python": "ts-node ./scripts/publish.ts --extension=\"qt-python\"",
"publish:qt-sm": "ts-node ./scripts/publish.ts --extension=\"qt-sm\"",
"publish:qt-cpp-pack": "ts-node ./scripts/publish_ext_pack.ts --dir=\"extension_packs/cpp\" --pack=\"qt-cpp-pack\"",
"publish:qt-wasm-pack": "ts-node ./scripts/publish_ext_pack.ts --dir=\"extension_packs/wasm\" --pack=\"qt-wasm-pack\"",
"publish:qt-all-pack": "ts-node ./scripts/publish_ext_pack.ts --dir=\"extension_packs/qt\" --pack=\"qt-all-pack\"",
Expand Down
31 changes: 31 additions & 0 deletions qt-sm/.vscodeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
.vscode/**
.vscode-test/**
src/**
test/**
.gitignore
**/tsconfig.json
**/.eslintrc.json
**/*.map
**/*.ts
**/*.mts
node_modules/**
**/package-lock.json
.eslintignore
eslint.config.mjs
.prettierrc
.prettierignore
.github/**
out/test/**
out/scripts/**
Development.md
esbuild.mjs
.eslintrc.cjs
package-lock.json
extension_packs/**
../**/*
.eslintcache
**/tsconfig.tsbuildinfo
webview-ui/**
!webview-ui/dist/**
!webview-ui/ThirdPartyNotices.txt

61 changes: 61 additions & 0 deletions qt-sm/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Change Log

## 0.1.4 (Aug 4, 2026)

🎉 **Added**

- Allow the `theqtcompany.com` domain to access the alpha version
- Add a "Reset password" button to the walkthrough sign-in step

⚠️ **Changed**

- Prefill the login email prompt with the last attempted address on retry
- Show a readable message with a "Reset Password" action for invalid credentials
- Hide "Reset walkthrough" when there is no progress and "Mark Done" once done

## 0.1.3 (Jun 25, 2026)

🎉 **Added**

- Show the themed Qt icon on the Get Started walkthrough tab

⚠️ **Changed**

- Restrict alpha access to `@qt.io` Qt Account emails
- Include the installed version in the install success message

🐞 **Fixed**

- Fix the walkthrough growing unbounded instead of scrolling
- Enable "Get latest Qt Framework" when the latest version is not installed

## 0.1.2 (Jun 24, 2026)

🎉 **Added**

- Add a custom walkthrough

⚠️ **Changed**

- Rename the extension from `qt-sms` to `qt-sm`
- Rename commands to use the `SM` prefix instead of `SMS`

🐞 **Fixed**

- Refresh the walkthrough when the installation root is removed

## 0.1.1 (Jun 5, 2026)

🐞 **Fixed**

- Install Qt extensions as pre-release in walkthrough to avoid inconsistency

## 0.1.0 (Jun 5, 2026)

🎉 **Added**

- Initial release
- Search available Qt packages
- List installed Qt packages
- Install Qt packages
- Walkthrough
5 changes: 5 additions & 0 deletions qt-sm/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Licensees holding valid commercial Qt licenses may use this software in
accordance with the the terms contained in a written agreement between
you and The Qt Company. Alternatively, the terms and conditions that were
accepted by the licensee when buying and/or downloading the
software do apply.
63 changes: 63 additions & 0 deletions qt-sm/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Qt Software Management

Supercharge your Qt development in Visual Studio Code with advanced QML support, intelligent code completion, and integrated debugging — all in one streamlined extension.

## Get started

1. Install Qt extension
2. Go through the walkthrough
3. Install Qt Client. Accept legal obligations.
4. Sign in to Qt account, if you already have an account or if you have a commercial account.

## What you get

- Qt Client to manage Qt installations.
- Qt Framework is not part of the extension. Qt Client will offer to install it.
- Qt Client will also install CMake and Build tools

## Documentation

For more information about using Qt extensions, go to
[Qt Extension for VS Code Documentation](https://doc.qt.io/vscodeext/index.html).

For pre-release versions, go to
[Qt Extension for VS Code Pre-release Documentation](https://doc-snapshots.qt.io/vscodeext-dev/).

## Known Issues (Alpha)

### Bootstrap not triggered after previous installation remnants

If `QtCompany.ini` exists from a previous test or installation but the
service binary is missing (e.g. after running `remove-installation` or
manually deleting `~/.local/bin/QtSoftwareManagementService`), the
extension will skip the bootstrap download because it considers the
service already installed.

**Workaround:** Remove the stale configuration and restart VS Code:

```bash
# macOS
rm "$HOME/Library/Application Support/QtCompany/QtCompany.ini"
pkill -SIGTERM QtSoftwareManagementService

# Linux
rm "$HOME/.local/share/QtCompany/QtCompany.ini"
pkill -SIGTERM QtSoftwareManagementService

# Windows (PowerShell)
Remove-Item "$env:LOCALAPPDATA\QtCompany\QtCompany.ini"
Stop-Process -Name QtSoftwareManagementService -ErrorAction SilentlyContinue
```

After restarting VS Code, the extension will re-download and install the
bootstrap automatically.

## Issues

If you encounter any issues with the extension, please [report the
issues](https://qt-project.atlassian.net/jira/software/c/projects/VSCODEEXT/issues).

## License

This extension can be licensed under the Qt Commercial License and the
LGPL 3.0. See the text of both licenses [here](LICENSE).
Loading