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
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.15.4] - 2026-10-07

### Fixed

- `devkit.bat` now recognizes Visual Studio Installer exit code
`0x80070070` (-2147024784 / 2147942512) as ERROR_DISK_FULL (the
installer's `SizePreCheckEvaluator` failed) and stops with a clear
"not enough free disk space" message, instead of retrying Build Tools,
which failed the same way. 0.15.3 had misread this code as a
product conflict.
- `devkit.bat` checks that the system drive has about 7 GB free before
installing the C++ Build Tools.

## [0.15.3] - 2026-10-07

### Fixed
Expand Down Expand Up @@ -431,6 +444,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.4]: https://github.com/axcel-blade/DevKit/releases/tag/v0.15.4
[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
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.3"
version = "0.15.4"
edition = "2021"
description = "DevKit application — install developer SDKs and configure environment variables"
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Checking for available versions ...

DevKit
OS: Windows
Version: 0.15.3
Version: 0.15.4
# ID NAME STATUS INSTALLED AVAILABLE
--------------------------------------------------------------------------------------------------------
1 anaconda Anaconda not_installed - 2026.07-1
Expand Down
37 changes: 35 additions & 2 deletions devkit.bat
Original file line number Diff line number Diff line change
Expand Up @@ -161,12 +161,20 @@ if not errorlevel 1 exit /b 0
echo The Microsoft C++ linker ^(link.exe^) was not found.
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^)...
REM The C++ tools plus Windows SDK need roughly 7 GB on the system drive
REM (packages are cached there even when VS lives elsewhere). Warn early.
call :check_disk_space
if errorlevel 1 exit /b 1
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).
REM installer rejects.
REM
REM Exit code 0x80070070 (-2147024784 / 2147942512) is ERROR_DISK_FULL: the
REM installer's SizePreCheckEvaluator found too little free space. Retrying
REM with Build Tools would fail the same way, so stop with a clear message.
set "VS_SETUP=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\setup.exe"
set "VS_EXISTING="
if exist "%VSWHERE%" (
Expand All @@ -177,6 +185,8 @@ if defined VS_EXISTING if exist "%VS_SETUP%" (
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"
set "VS_RC=!ERRORLEVEL!"
if "!VS_RC!"=="-2147024784" goto :msvc_disk_full
call :has_msvc
if not errorlevel 1 (
echo Visual Studio C++ tools installed.
Expand All @@ -189,7 +199,10 @@ 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!"
if not errorlevel 1 set "WINGET_OK=1"
set "VS_RC=!ERRORLEVEL!"
if "!VS_RC!"=="0" set "WINGET_OK=1"
REM winget surfaces the installer's disk-full code (0x80070070).
if "!VS_RC!"=="-2147024784" goto :msvc_disk_full
)
REM No winget, or winget failed: fall back to Microsoft's Build Tools bootstrapper.
call :has_msvc
Expand All @@ -216,6 +229,26 @@ echo Install "Build Tools for Visual Studio" from https://visualstudio.microsoft
echo with the "Desktop development with C++" workload, then run DevKit again.
exit /b 1

REM Installer reported ERROR_DISK_FULL (0x80070070).
:msvc_disk_full
echo.
echo Error: not enough free disk space to install the C++ Build Tools ^(0x80070070^).
echo The Visual Studio installer needs about 7 GB free on %SystemDrive%.
echo Free up space ^(e.g. Disk Cleanup, empty the Recycle Bin, clear %TEMP%^), then run DevKit again.
exit /b 1

REM Fails when the system drive has less than ~7 GB free, since the VS
REM installer caches packages there and its pre-check rejects low space.
:check_disk_space
set "FREE_GB="
for /f "usebackq delims=" %%F in (`powershell -NoProfile -NonInteractive -Command "[math]::Floor((Get-PSDrive -Name $env:SystemDrive.TrimEnd(':')).Free / 1GB)"`) do set "FREE_GB=%%F"
if not defined FREE_GB exit /b 0
if !FREE_GB! LSS 7 (
echo Only !FREE_GB! GB free on %SystemDrive%; the C++ Build Tools need about 7 GB.
goto :msvc_disk_full
)
exit /b 0

:cargo_build
"%CARGO_EXE%" build --release --quiet --manifest-path "%ROOT%Cargo.toml" > "%BUILD_LOG%" 2>&1
exit /b %ERRORLEVEL%
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.3** is a CLI application with a plugin pipeline.
DevKit **0.15.4** 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.3
Version: 0.15.4
# ID NAME STATUS INSTALLED AVAILABLE
--------------------------------------------------------------------------------------------------------
1 anaconda Anaconda not_installed - 2026.07-1
Expand Down
5 changes: 3 additions & 2 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
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.
the `vs_BuildTools.exe` bootstrapper. It needs about 7 GB free on the
system drive; installer exit code `0x80070070` means the disk is full.
- 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 @@ -71,7 +72,7 @@ Checking for available versions ...

DevKit
OS: Windows
Version: 0.15.3
Version: 0.15.4
# 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.3** documentation index.
DevKit **0.15.4** 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.3** ships these built-in plugins. The OS column is where the menu lists the plugin and where `devkit install` accepts it.
DevKit **0.15.4** 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.3
Version: 0.15.4
# ID NAME STATUS INSTALLED AVAILABLE
--------------------------------------------------------------------------------------------------------
1 anaconda Anaconda not_installed - 2026.07-1
Expand Down
Loading