Merge pull request #10706 from Kilo-Org/jetbrains/release/v7.0.1-rc.4

release(jetbrains): v7.0.1-rc.4
This commit is contained in:
Kirill Kalishev
2026-05-29 12:42:33 -04:00
committed by GitHub
7 changed files with 48 additions and 26 deletions
+10 -6
View File
@@ -46,8 +46,10 @@ jobs:
GH_REPO: ${{ github.repository }}
PR_NUMBER: ${{ github.event.pull_request.number }}
- name: Save reviewed changelog
run: cp packages/kilo-jetbrains/CHANGELOG.md "$RUNNER_TEMP/jetbrains-CHANGELOG.md"
- name: Save reviewed release metadata
run: |
cp packages/kilo-jetbrains/CHANGELOG.md "$RUNNER_TEMP/jetbrains-CHANGELOG.md"
cp packages/kilo-jetbrains/gradle.properties "$RUNNER_TEMP/jetbrains-gradle.properties"
- name: Checkout release tag
uses: actions/checkout@v6
@@ -55,8 +57,10 @@ jobs:
fetch-depth: 0
ref: ${{ steps.release.outputs.tag }}
- name: Restore reviewed changelog
run: cp "$RUNNER_TEMP/jetbrains-CHANGELOG.md" packages/kilo-jetbrains/CHANGELOG.md
- name: Restore reviewed release metadata
run: |
cp "$RUNNER_TEMP/jetbrains-CHANGELOG.md" packages/kilo-jetbrains/CHANGELOG.md
cp "$RUNNER_TEMP/jetbrains-gradle.properties" packages/kilo-jetbrains/gradle.properties
- name: Setup Node
uses: actions/setup-node@v4
@@ -107,7 +111,7 @@ jobs:
- name: Verify plugin
working-directory: packages/kilo-jetbrains
run: ./gradlew verifyPlugin -Pproduction=true -Pkilo.version="$VERSION" -Pkilo.channel="$CHANNEL"
run: ./gradlew verifyPlugin -Pproduction=true -Pkilo.channel="$CHANNEL"
env:
VERSION: ${{ steps.release.outputs.version }}
CHANNEL: ${{ steps.release.outputs.marketplace_channel }}
@@ -125,7 +129,7 @@ jobs:
- name: Publish to JetBrains Marketplace
working-directory: packages/kilo-jetbrains
run: ./gradlew publishPlugin -Pproduction=true -Pkilo.version="$VERSION" -Pkilo.channel="$CHANNEL"
run: ./gradlew publishPlugin -Pproduction=true -Pkilo.channel="$CHANNEL"
env:
VERSION: ${{ steps.release.outputs.version }}
CHANNEL: ${{ steps.release.outputs.marketplace_channel }}
+7 -2
View File
@@ -2,7 +2,12 @@
## [Unreleased]
## [0.0.0-dev]
## [7.0.1-rc.4] - 2026-05-29
### Added
- Initial JetBrains plugin development builds.
- Initial JetBrains plugin release with a native Kilo Code tool window.
- Chat sessions with streamed responses, tool output, reasoning, markdown, todos, and plan follow-ups.
- Native mode/model selection, account sign-in, permission prompts, and question flows.
- Local and cloud session history with search, reopen, rename/delete local sessions, and repository filtering.
- Migration wizard for legacy JetBrains plugin settings and chat history.
- Bundled Kilo CLI runtime for macOS, Linux, and Windows.
+4 -4
View File
@@ -58,12 +58,12 @@ The PR updates:
| File | Purpose |
|---|---|
| `packages/kilo-jetbrains/package.json` | JetBrains plugin package version. |
| `packages/kilo-jetbrains/gradle.properties` | JetBrains plugin version in `kilo.jetbrains.version`. |
| `packages/kilo-jetbrains/CHANGELOG.md` | Release notes packaged into the plugin. |
Review and edit `packages/kilo-jetbrains/CHANGELOG.md` before merging. This changelog entry is rendered into JetBrains `<change-notes>`, so it appears on the Marketplace and inside IntelliJ plugin UI.
Review `packages/kilo-jetbrains/gradle.properties` and edit `packages/kilo-jetbrains/CHANGELOG.md` before merging. This changelog entry is rendered into JetBrains `<change-notes>`, so it appears on the Marketplace and inside IntelliJ plugin UI.
The PR can change release metadata such as `packages/kilo-jetbrains/package.json` and `packages/kilo-jetbrains/CHANGELOG.md`, but it does not change the tagged source code that will be built.
The PR can change release metadata such as `packages/kilo-jetbrains/gradle.properties` and `packages/kilo-jetbrains/CHANGELOG.md`, but it does not change the tagged source code that will be built.
## Merge and Publish
@@ -84,7 +84,7 @@ Publishing behavior:
| `x.y.z-rc.n` | `eap` | Prerelease |
| `x.y.z` | default | Stable release |
The workflow checks out `jetbrains/v<version>` for verification, signing, and Marketplace publishing. It overlays the reviewed `packages/kilo-jetbrains/CHANGELOG.md` from the merged PR before rendering release notes and before `publishPlugin`, so Marketplace metadata and the GitHub Release use the reviewed changelog.
The workflow checks out `jetbrains/v<version>` for verification, signing, and Marketplace publishing. It overlays the reviewed `packages/kilo-jetbrains/gradle.properties` and `packages/kilo-jetbrains/CHANGELOG.md` from the merged PR before rendering release notes and before `publishPlugin`, so the Marketplace plugin version, Marketplace notes, and GitHub Release use the reviewed metadata.
## Installing RC Builds
+5 -4
View File
@@ -42,10 +42,11 @@ fun gitTag(): String? {
val release = providers.gradleProperty("production").map { it.toBoolean() }.orElse(false).get()
val override = providers.gradleProperty("kilo.version").orNull?.trim()?.takeIf { it.isNotEmpty() }
val ver = override?.let(::checked) ?: if (release) checked(
gitTag()?.removePrefix("jetbrains/v")
?: error("Missing JetBrains plugin version. Publish builds must run from a jetbrains/v<version> tag."),
) else checked(gitTag()?.removePrefix("jetbrains/v") ?: "0.0.0-dev")
val prop = providers.gradleProperty("kilo.jetbrains.version").orNull?.trim()?.takeIf { it.isNotEmpty() }
val tag = gitTag()?.removePrefix("jetbrains/v")
val ver = override?.let(::checked) ?: prop?.let(::checked) ?: if (release) checked(
tag ?: error("Missing JetBrains plugin version. Publish builds must set kilo.jetbrains.version or run from a jetbrains/v<version> tag."),
) else checked(tag ?: "0.0.0-dev")
val channel = providers.gradleProperty("kilo.channel").map { it.trim() }.orElse("default")
val splitPort = providers.gradleProperty("kilo.splitModeServerPort").orNull?.let(::port) ?: fallback()
@@ -1,4 +1,5 @@
kotlin.stdlib.default.dependency=false
kilo.jetbrains.version=7.0.1-rc.4
org.gradle.configuration-cache=true
org.gradle.caching=true
org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m
+11 -8
View File
@@ -5,7 +5,7 @@ import { $ } from "bun"
import semver from "semver"
import { parseArgs } from "util"
const pkgfile = new URL("../packages/kilo-jetbrains/package.json", import.meta.url).pathname
const props = new URL("../packages/kilo-jetbrains/gradle.properties", import.meta.url).pathname
const log = new URL("../packages/kilo-jetbrains/CHANGELOG.md", import.meta.url).pathname
const repo = process.env.GH_REPO ?? process.env.GITHUB_REPOSITORY ?? "Kilo-Org/kilocode"
@@ -67,9 +67,9 @@ if (dry) {
}
await $`git checkout -B ${branch} ${sha}`
await writepkg(ver)
await writeprops(ver)
await writelog(ver, entry)
await $`git add packages/kilo-jetbrains/package.json packages/kilo-jetbrains/CHANGELOG.md`
await $`git add packages/kilo-jetbrains/gradle.properties packages/kilo-jetbrains/CHANGELOG.md`
const changed = await $`git diff --cached --quiet`.nothrow()
if (changed.exitCode !== 0) await $`git commit -m ${`release(jetbrains): v${ver}`}`
@@ -203,10 +203,13 @@ function entries(notes: string) {
return groups
}
async function writepkg(ver: string) {
const pkg = await Bun.file(pkgfile).json()
pkg.version = ver
await Bun.write(pkgfile, `${JSON.stringify(pkg, null, 2)}\n`)
async function writeprops(ver: string) {
const current = await Bun.file(props).text()
const line = `kilo.jetbrains.version=${ver}`
const next = current.match(/^kilo\.jetbrains\.version=/m)
? current.replace(/^kilo\.jetbrains\.version=.*$/m, line)
: `${current.trim()}\n${line}\n`
await Bun.write(props, next.endsWith("\n") ? next : `${next}\n`)
}
async function writelog(ver: string, entry: string) {
@@ -229,7 +232,7 @@ function regex(ver: string) {
function body(ver: string, kind: string, from: string, tag: string, sha: string, notes: string) {
return `## Summary
- Prepare JetBrains ${kind} release ${ver}.
- Review and edit \`packages/kilo-jetbrains/CHANGELOG.md\` before merging.
- Review \`packages/kilo-jetbrains/gradle.properties\` and edit \`packages/kilo-jetbrains/CHANGELOG.md\` before merging.
JetBrains-Version: ${ver}
JetBrains-Kind: ${kind}
+10 -2
View File
@@ -69,8 +69,8 @@ if (existing.exitCode !== 0) throw new Error(`${tag} does not exist`)
const sha = (await $`git rev-list -n 1 ${tag}`.text()).trim()
if (sha !== commit) throw new Error(`${tag} points at ${sha}, expected ${commit}`)
const pkg = await Bun.file("packages/kilo-jetbrains/package.json").json()
if (pkg.version !== ver) throw new Error(`packages/kilo-jetbrains/package.json version is ${pkg.version}, expected ${ver}`)
const prop = await props()
if (prop !== ver) throw new Error(`packages/kilo-jetbrains/gradle.properties kilo.jetbrains.version is ${prop}, expected ${ver}`)
const changelog = await Bun.file("packages/kilo-jetbrains/CHANGELOG.md").text()
if (!changelog.includes(`## [${ver}]`)) throw new Error(`CHANGELOG.md is missing section for ${ver}`)
@@ -102,3 +102,11 @@ function need(body: string, key: string) {
if (!value) throw new Error(`PR body is missing ${key}`)
return value
}
async function props() {
const text = await Bun.file("packages/kilo-jetbrains/gradle.properties").text()
const line = text.split(/\r?\n/).find((item) => item.startsWith("kilo.jetbrains.version="))
const value = line?.split("=", 2)[1]?.trim()
if (!value) throw new Error("packages/kilo-jetbrains/gradle.properties is missing kilo.jetbrains.version")
return value
}