Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.15.3] - 2026-10-07

### Fixed

- `devkit.bat` no longer fails with "Installer failed with exit code:
2147942512" when Visual Studio (e.g. Community) is already installed
without the C++ tools. It now adds the MSVC tools and Windows SDK to the
existing install through the Visual Studio Installer (`setup.exe modify`)
instead of installing a second Build Tools product next to it.
- When the winget install of Build Tools fails, `devkit.bat` now falls back
to the `vs_BuildTools.exe` bootstrapper instead of giving up.

## [0.15.1] - 2026-10-06

### Fixed
Expand Down Expand Up @@ -419,6 +431,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- Initial project scaffold from auto-gen-py-project

[0.15.3]: https://github.com/axcel-blade/DevKit/releases/tag/v0.15.3
[0.15.2]: https://github.com/axcel-blade/DevKit/releases/tag/v0.15.2
[0.15.1]: https://github.com/axcel-blade/DevKit/releases/tag/v0.15.1
[0.15.0]: https://github.com/axcel-blade/DevKit/releases/tag/v0.15.0
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "devkit"
version = "0.15.2"
version = "0.15.3"
edition = "2021"
description = "DevKit application — install developer SDKs and configure environment variables"
license = "MIT"
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# DevKit

[![Version](https://img.shields.io/badge/version-0.15.2-blue.svg)](CHANGELOG.md)
[![Version](https://img.shields.io/badge/version-0.15.3-blue.svg)](CHANGELOG.md)
[![CI](https://github.com/axcel-blade/DevKit/actions/workflows/ci.yml/badge.svg)](https://github.com/axcel-blade/DevKit/actions/workflows/ci.yml)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE.md)
[![Rust](https://img.shields.io/badge/rust-2021_edition-orange.svg?logo=rust)](https://www.rust-lang.org/)
Expand Down Expand Up @@ -31,7 +31,7 @@ Checking for available versions ...

DevKit
OS: Windows
Version: 0.15.2
Version: 0.15.3
# ID NAME STATUS INSTALLED AVAILABLE
--------------------------------------------------------------------------------------------------------
1 anaconda Anaconda not_installed - 2026.07-1
Expand Down
36 changes: 32 additions & 4 deletions devkit.bat
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ REM 2. Make sure the MSVC linker (link.exe from Visual Studio Build Tools with
REM the "Desktop development with C++" workload) is present. The msvc Rust
REM toolchain cannot link anything without it, and several dependencies
REM (ring, zstd-sys, lzma-sys, bzip2-sys) also need its C compiler. When
REM missing, install the Build Tools through winget, or through Microsoft's
REM vs_BuildTools.exe bootstrapper when winget is unavailable.
REM missing, first add the C++ tools to an existing Visual Studio install
REM (via its setup.exe modify); otherwise install the Build Tools through
REM winget, or through Microsoft's vs_BuildTools.exe bootstrapper when
REM winget is unavailable or fails.
REM 3. Rebuild the release binary (a no-op when it is already up to date), so
REM a stale binary from an older checkout never hides new features.
REM 4. Run it. With no arguments (e.g. double-clicking this file) the
Expand Down Expand Up @@ -161,11 +163,37 @@ echo Rust's msvc toolchain needs Visual Studio Build Tools with the C++ workload
echo Installing Visual Studio Build Tools ^(several minutes, asks for admin rights^)...
set "VS_ARGS=--quiet --wait --norestart --nocache --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"

REM An existing Visual Studio (Community, Professional, Build Tools, ...)
REM that only lacks the C++ tools: modify it through its own installer
REM instead of installing a second product next to it, which the VS
REM installer rejects (e.g. exit code 0x80070070 / 2147942512).
set "VS_SETUP=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\setup.exe"
set "VS_EXISTING="
if exist "%VSWHERE%" (
for /f "usebackq delims=" %%I in (`"%VSWHERE%" -latest -products * -property installationPath`) do set "VS_EXISTING=%%I"
)
if defined VS_EXISTING if exist "%VS_SETUP%" (
echo Adding the C++ tools to the existing Visual Studio at "!VS_EXISTING!"...
REM Start-Process -Verb RunAs raises the UAC prompt; -Wait blocks until done.
powershell -NoProfile -NonInteractive -Command ^
"$q = [char]34; $a = 'modify --installPath ' + $q + $env:VS_EXISTING + $q + ' --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Windows11SDK.22621 --includeRecommended --passive --norestart'; $p = Start-Process -FilePath $env:VS_SETUP -Verb RunAs -Wait -PassThru -ArgumentList $a; exit $p.ExitCode"
call :has_msvc
if not errorlevel 1 (
echo Visual Studio C++ tools installed.
exit /b 0
)
echo Modifying the existing Visual Studio did not add the C++ tools; trying Build Tools...
)

set "WINGET_OK="
where winget >nul 2>&1
if not errorlevel 1 (
winget install --id Microsoft.VisualStudio.2022.BuildTools -e --source winget --accept-package-agreements --accept-source-agreements --override "!VS_ARGS!"
) else (
REM No winget: fall back to Microsoft's Build Tools bootstrapper.
if not errorlevel 1 set "WINGET_OK=1"
)
REM No winget, or winget failed: fall back to Microsoft's Build Tools bootstrapper.
call :has_msvc
if errorlevel 1 if not defined WINGET_OK (
mkdir "%TEMP%\devkit" >nul 2>nul
set "VS_BOOT=%TEMP%\devkit\vs_BuildTools.exe"
powershell -NoProfile -NonInteractive -Command ^
Expand Down
4 changes: 2 additions & 2 deletions docs/architecture.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Architecture

DevKit **0.15.2** is a CLI application with a plugin pipeline.
DevKit **0.15.3** is a CLI application with a plugin pipeline.

```text
target/release/devkit (binary) / devkit.bat / devkit.sh
Expand Down Expand Up @@ -66,7 +66,7 @@ Checking for available versions ...

DevKit
OS: Windows
Version: 0.15.2
Version: 0.15.3
# ID NAME STATUS INSTALLED AVAILABLE
--------------------------------------------------------------------------------------------------------
1 anaconda Anaconda not_installed - 2026.07-1
Expand Down
8 changes: 5 additions & 3 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@
works if you export `CARGO_HOME` / `RUSTUP_HOME` first).
- Windows only: Visual Studio Build Tools with the "Desktop development with
C++" workload, which provides the MSVC linker (`link.exe`) and C compiler
the msvc Rust toolchain needs. `devkit.bat` installs them (winget, or the
`vs_BuildTools.exe` bootstrapper; asks for admin rights) when missing.
the msvc Rust toolchain needs. `devkit.bat` installs them when missing
(asks for admin rights): it first adds the C++ tools to an existing Visual
Studio install, otherwise installs Build Tools via winget, falling back to
the `vs_BuildTools.exe` bootstrapper.
- On Linux / WSL / macOS, a system C linker (`cc`). `devkit.sh` and the
Makefile install the distro toolchain (`build-essential`, `base-devel`, ...)
when it is missing.
Expand Down Expand Up @@ -69,7 +71,7 @@ Checking for available versions ...

DevKit
OS: Windows
Version: 0.15.2
Version: 0.15.3
# ID NAME STATUS INSTALLED AVAILABLE
--------------------------------------------------------------------------------------------------------
1 anaconda Anaconda not_installed - 2026.07-1
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Documentation

DevKit **0.15.2** documentation index.
DevKit **0.15.3** documentation index.

| Page | Description |
|------|-------------|
Expand Down
4 changes: 2 additions & 2 deletions docs/plugins.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Plugins

DevKit **0.15.2** ships these built-in plugins. The OS column is where the menu lists the plugin and where `devkit install` accepts it.
DevKit **0.15.3** ships these built-in plugins. The OS column is where the menu lists the plugin and where `devkit install` accepts it.

| ID | OS | Notes |
|----|----|-------|
Expand Down Expand Up @@ -107,7 +107,7 @@ Checking for available versions ...

DevKit
OS: Windows
Version: 0.15.2
Version: 0.15.3
# ID NAME STATUS INSTALLED AVAILABLE
--------------------------------------------------------------------------------------------------------
1 anaconda Anaconda not_installed - 2026.07-1
Expand Down
Loading