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
5 changes: 3 additions & 2 deletions distribution/channels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ channels:
headless server package) is what FlatPark pins as extra-data.

- id: vscode-marketplace
name: VS Code extension (Visual Studio Marketplace, pre-release)
name: VS Code extension (Visual Studio Marketplace)
short_name: VS Code extension
status: live
category: os-desktop
Expand All @@ -324,7 +324,8 @@ channels:
docs: docs/DISTRIBUTION.md
pin:
strategy: none
note: Published 21 Oct 2026 as 0.1.0, a pre-release, under the publisher libredb. The extension has
note: Published 21 Oct 2026 as the 0.1.0 pre-release, under the publisher libredb; 0.2.0 is its first
release. The extension has
a version line of its own in vscode-extension/package.json, which the drift check's comparison
with the root package.json cannot read, so the listed version is checked by hand against the
listing.
Expand Down
8 changes: 5 additions & 3 deletions docs/DISTRIBUTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -1312,7 +1312,8 @@ bash scripts/build-standalone-payload.sh dist --smoke
## VS Code extension (Marketplace)

LibreDB Studio for VS Code lives in [`vscode-extension/`](../vscode-extension), an npm package of its own with a version line of its own.
Its 0.1.0 pre-release has been on the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=libredb.libredb-studio) since 21 October 2026, under the publisher `libredb`.
It has been on the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=libredb.libredb-studio) since 21 October 2026, under the publisher `libredb`: 0.1.0 and 0.1.1 as pre-releases, then 0.2.0 as its first release.
A listing with pre-releases only refuses a plain install (`code --install-extension libredb.libredb-studio` fails with "it has no release version"), which is why 0.2.0 is a release.
This section is its release runbook.
Its build, tests and CI job are in [docs/TOOLCHAIN.md, "VS Code extension"](TOOLCHAIN.md#vs-code-extension-vscode-extension).

Expand All @@ -1321,7 +1322,8 @@ Its build, tests and CI job are in [docs/TOOLCHAIN.md, "VS Code extension"](TOOL
The extension's version is the `version` of [`vscode-extension/package.json`](../vscode-extension/package.json), independent of the product's bare semver.
The Marketplace takes `major.minor.patch` only, with a pre-release as a flag rather than a suffix, and recommends an odd minor for pre-releases.
So every 0.1.x is a pre-release, 0.1.0 included, and the first release is 0.2.0.
`vscode-extension/test/unit/manifest.test.ts` holds the version to the odd-minor 0.x line, so the release that leaves it changes that case in the same PR.
A later pre-release takes the next odd minor, 0.3.x, and stays above the release users have, so only those who chose pre-releases get it.
`vscode-extension/test/unit/manifest.test.ts` holds the version to the 0.2.x line, so a version that leaves it changes that case in the same PR, and `test/unit/readme.test.ts` holds the README to calling itself a pre-release exactly on an odd minor.

### Cutting a version

Expand All @@ -1348,7 +1350,7 @@ Until a publish job exists, the owner uploads the VSIX the gates tested; nothing
1. Download the `vscode-extension-vsix` artifact of the tag's `vscode-extension-release.yml` run, or of `main`'s `vscode-extension.yml` run at the tagged commit, and check that its manifest names `Publisher="libredb"`, the version, and, on an odd minor, the `PreRelease` property.
2. Install it into a fresh VS Code profile (`code --user-data-dir <dir> --extensions-dir <dir> --install-extension <file>`) and run one query on each v0 engine.
3. On https://marketplace.visualstudio.com/manage/publishers/libredb, upload it as a new version of LibreDB Studio, or through **New extension** > **Visual Studio Code** for a new extension.
4. When the Marketplace has verified it, check that `code --install-extension libredb.libredb-studio --pre-release` installs that version in another fresh profile.
4. When the Marketplace has verified it, check that `code --install-extension libredb.libredb-studio` installs that version in another fresh profile, with `--pre-release` on an odd minor.

A version number can be uploaded once, so a fix to a published version is the next patch.
The listing's text and images come from the packed `README.md`; the management page has no field for them, so changing them is a new version.
Expand Down
6 changes: 3 additions & 3 deletions vscode-extension/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# LibreDB Studio for VS Code

LibreDB Studio for VS Code is a pre-release that browses and queries PostgreSQL, SQL Server, MySQL and MongoDB databases from the editor.
LibreDB Studio for VS Code browses and queries PostgreSQL, SQL Server, MySQL and MongoDB databases from the editor.
It needs no account and no login.
It requires VS Code 1.123 or later.

Expand Down Expand Up @@ -35,7 +35,7 @@ A MongoDB command cannot be cancelled once it is sent.

## Keyboard shortcut

This pre-release binds no key to **Run Query**.
LibreDB binds no key to **Run Query**.
To add one, put an entry like this in your `keybindings.json`:

```json
Expand All @@ -56,7 +56,7 @@ In Restricted Mode, every connection opens with external file access denied.
- `libredb.connections`: the saved connections, written by **Add Connection** and **Remove Connection**.
- `libredb.query.rowLimit`: the number of rows each page of results holds, 500 by default, from 1 to 10000.

## Not in this pre-release
## Not in this version

- Editing a saved connection: when a sign-in fails, LibreDB offers Enter Credentials instead.
- Exporting results.
Expand Down
4 changes: 2 additions & 2 deletions vscode-extension/package-lock.json

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

2 changes: 1 addition & 1 deletion vscode-extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"publisher": "libredb",
"displayName": "LibreDB Studio",
"description": "Browse and query PostgreSQL, SQL Server, MySQL and MongoDB databases with LibreDB Studio.",
"version": "0.1.1",
"version": "0.2.0",
"private": true,
"license": "MIT",
"repository": {
Expand Down
4 changes: 2 additions & 2 deletions vscode-extension/test/unit/manifest.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,10 @@ describe("the manifest", () => {
assert.equal(lock.packages[""].version, manifest.version);
});

it("is on the pre-release line: 0.1.x, an odd minor below the first release 0.2.0", () => {
it("is on the release line: 0.2.x, an even minor, the first release after the 0.1.x pre-releases", () => {
const [major, minor] = triple(manifest.version);
assert.equal(major, 0);
assert.equal(minor % 2, 1);
assert.equal(minor, 2);
});

it("pins vscode-jsonrpc exactly, as the bundles' one runtime package", () => {
Expand Down
6 changes: 3 additions & 3 deletions vscode-extension/test/unit/readme.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ describe("the Marketplace README", () => {
for (const [, form] of others) assert.ok(!new RegExp(`\\b${escape(form.label)}\\b`).test(readme), form.label);
});

it("says it is a pre-release, as the odd minor of the manifest's version makes it", () => {
assert.equal(Number(manifest.version.split(".")[1]) % 2, 1);
assert.match(readme, /pre-release/);
it("calls itself a pre-release exactly when the manifest's version has an odd minor", () => {
const preRelease = Number(manifest.version.split(".")[1]) % 2 === 1;
assert.equal(/pre-release/i.test(readme), preRelease);
});

it("names the floor VS Code version the manifest asks for", () => {
Expand Down
Loading