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.0] - 2026-10-06

### Added

- `devkit install`, `devkit uninstall`, and the new `devkit update` accept
several plugin ids, space- or comma-separated (`devkit install git go,node`).
Each plugin runs in turn, failures don't stop the rest, and a summary lists
what failed (exit code 1 if anything did).
- `devkit update <ids>` reinstalls a plugin only when a newer release exists;
`--all` updates every installed plugin and `--force` reinstalls regardless.
- The interactive menu accepts several numbers (`1 3 5`, `1,3`, or a range
`2-4`) to install/uninstall each, and `u <numbers>` to update several.

## [0.14.0] - 2026-10-06

### Added
Expand Down Expand Up @@ -390,6 +403,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.0]: https://github.com/axcel-blade/DevKit/releases/tag/v0.15.0
[0.14.0]: https://github.com/axcel-blade/DevKit/releases/tag/v0.14.0
[0.13.0]: https://github.com/axcel-blade/DevKit/releases/tag/v0.13.0
[0.12.1]: https://github.com/axcel-blade/DevKit/releases/tag/v0.12.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.14.0"
version = "0.15.0"
edition = "2021"
description = "DevKit application — install developer SDKs and configure environment variables"
license = "MIT"
Expand Down
22 changes: 18 additions & 4 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.14.0-blue.svg)](CHANGELOG.md)
[![Version](https://img.shields.io/badge/version-0.15.0-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.14.0
Version: 0.15.0
# ID NAME STATUS INSTALLED AVAILABLE
--------------------------------------------------------------------------------------------------------
1 anaconda Anaconda not_installed - 2026.07-1
Expand All @@ -42,10 +42,10 @@ Version: 0.14.0
...
32 rust Rust installed 1.98.1 1.99.0 (update available)

Enter a number to install/uninstall, 'u <number>' to update one, 'a' to update all, 'r' to refresh versions, or 'q' to quit:
Enter number(s) to install/uninstall (e.g. '1 3 5' or '2-4'), 'u <number(s)>' to update, 'a' to update all, 'r' to refresh versions, or 'q' to quit:
```

On macOS and Linux the OS line is `OS: macOS` or `OS: Linux`. Chocolatey and MSYS2 are Windows-only, so those rows are left out there. Pick a number to install or uninstall, `u <number>` to update that plugin, `a` to update every installed plugin that has a newer release, `r` to re-check versions, `q` to quit.
On macOS and Linux the OS line is `OS: macOS` or `OS: Linux`. Chocolatey and MSYS2 are Windows-only, so those rows are left out there. Pick one or more numbers (`1 3 5`, `1,3`, or a range `2-4`) to install or uninstall each, `u <numbers>` to update those plugins, `a` to update every installed plugin that has a newer release, `r` to re-check versions, `q` to quit.

**Windows**

Expand Down Expand Up @@ -85,6 +85,20 @@ cargo run --release -- install kubectl
cargo run --release -- install docker
```

**Several plugins at once**

`install`, `update`, and `uninstall` take any number of plugin ids, space- or
comma-separated. Each plugin runs in turn; a failure doesn't stop the rest, and
a summary is printed at the end.

```bash
devkit install git go node
devkit install jdk,maven,gradle
devkit update git go # reinstall only if a newer release exists
devkit update --all # every installed plugin (--force to reinstall)
devkit uninstall go node
```

## Built-in plugins

Every plugin below is added to the same shared user `PATH` — DevKit does not
Expand Down
2 changes: 1 addition & 1 deletion SUPPORT.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

## What to include in a bug report

- DevKit version (`cargo run --release -- --version`) — current is **0.14.0**
- DevKit version (`cargo run --release -- --version`) — current is **0.15.0**
- OS and architecture
- Command you ran
- Full error output
Expand Down
6 changes: 3 additions & 3 deletions docs/architecture.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Architecture

DevKit **0.14.0** is a CLI application with a plugin pipeline.
DevKit **0.15.0** is a CLI application with a plugin pipeline.

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

DevKit
OS: Windows
Version: 0.14.0
Version: 0.15.0
# ID NAME STATUS INSTALLED AVAILABLE
--------------------------------------------------------------------------------------------------------
1 anaconda Anaconda not_installed - 2026.07-1
5 chocolatey Chocolatey installed 2.7.4 2.7.4 (up to date)
32 rust Rust installed 1.98.1 1.99.0 (update available)

Enter a number to install/uninstall, 'u <number>' to update one, 'a' to update all, 'r' to refresh versions, or 'q' to quit:
Enter number(s) to install/uninstall (e.g. '1 3 5' or '2-4'), 'u <number(s)>' to update, 'a' to update all, 'r' to refresh versions, or 'q' to quit:
```

`devkit doctor` reports `Rustc` and `Cargo` the same way `where rustc` / `where cargo` would (PATH first, then `<dev>/rust/cargo/bin`).
Expand Down
7 changes: 4 additions & 3 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Checking for available versions ...

DevKit
OS: Windows
Version: 0.14.0
Version: 0.15.0
# ID NAME STATUS INSTALLED AVAILABLE
--------------------------------------------------------------------------------------------------------
1 anaconda Anaconda not_installed - 2026.07-1
Expand All @@ -76,10 +76,10 @@ Version: 0.14.0
...
32 rust Rust installed 1.98.1 1.99.0 (update available)

Enter a number to install/uninstall, 'u <number>' to update one, 'a' to update all, 'r' to refresh versions, or 'q' to quit:
Enter number(s) to install/uninstall (e.g. '1 3 5' or '2-4'), 'u <number(s)>' to update, 'a' to update all, 'r' to refresh versions, or 'q' to quit:
```

On macOS and Linux the OS line is `OS: macOS` or `OS: Linux`. Chocolatey and MSYS2 are Windows-only and those rows are omitted there. An installed plugin that matches the newest release prints `up to date` in the AVAILABLE column; a newer release prints `update available`. Pick a number to install or uninstall, `u <number>` to update that one, or `a` to update every plugin that shows `update available` (`r` re-checks available versions, `q` quits). The launchers
On macOS and Linux the OS line is `OS: macOS` or `OS: Linux`. Chocolatey and MSYS2 are Windows-only and those rows are omitted there. An installed plugin that matches the newest release prints `up to date` in the AVAILABLE column; a newer release prints `update available`. Pick one or more numbers (`1 3 5`, `1,3`, or `2-4`) to install or uninstall each, `u <numbers>` to update those, or `a` to update every plugin that shows `update available` (`r` re-checks available versions, `q` quits). The launchers
rebuild DevKit on every run (instant when nothing changed), so the menu is
always the one from your current checkout. On Windows, if a previous DevKit
window still has `devkit.exe` open, the launcher renames that copy aside and
Expand Down Expand Up @@ -175,6 +175,7 @@ cargo run --release -- install git

```bash
cargo run --release -- uninstall git
cargo run --release -- uninstall go node # several at once
```

Removes files under the `dev` folder and reverses PATH/env entries DevKit added.
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.14.0** documentation index.
DevKit **0.15.0** documentation index.

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

DevKit **0.14.0** ships these built-in plugins. The OS column is where the menu lists the plugin and where `devkit install` accepts it.
DevKit **0.15.0** 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,15 +107,15 @@ Checking for available versions ...

DevKit
OS: Windows
Version: 0.14.0
Version: 0.15.0
# ID NAME STATUS INSTALLED AVAILABLE
--------------------------------------------------------------------------------------------------------
1 anaconda Anaconda not_installed - 2026.07-1
5 chocolatey Chocolatey installed 2.7.4 2.7.4 (up to date)
12 git Git not_installed - 2.56.0.windows.1
32 rust Rust installed 1.98.1 1.99.0 (update available)

Enter a number to install/uninstall, 'u <number>' to update one, 'a' to update all, 'r' to refresh versions, or 'q' to quit:
Enter number(s) to install/uninstall (e.g. '1 3 5' or '2-4'), 'u <number(s)>' to update, 'a' to update all, 'r' to refresh versions, or 'q' to quit:
```

On macOS and Linux the OS line is `OS: macOS` or `OS: Linux`. Chocolatey and MSYS2 are omitted there. A matching install prints `up to date`. A newer release prints `update available`. `u <number>` reinstalls that plugin at the available version. `a` does the same for every row that shows `update available`.
Expand Down
Loading
Loading