Skip to content
Open
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
9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ both drivers against the same live database and compares every response.
- [Known Limitations](#known-limitations)
- [Building from Source](#building-from-source)
- [Development](#development)
- [Contributing: PR Titles & Versioning](#contributing-pr-titles--versioning)
- [Changelog](#changelog)
- [Maintainers](#maintainers)
- [License](#license)

## Features
Expand Down Expand Up @@ -109,6 +109,8 @@ both drivers against the same live database and compares every response.
| **Other** | BOOLEAN, UUID, INET, CIDR, MACADDR |
| **JSON** | JSON, JSONB |
| **Binary** | BYTEA |
| **Ranges** | INT4RANGE, INT8RANGE, NUMRANGE, TSRANGE, TSTZRANGE, DATERANGE |
| **Arrays** | SMALLINT[], INTEGER[], BIGINT[], REAL[], DOUBLE PRECISION[], TEXT[], VARCHAR[], BOOLEAN[] |

## Installation

Expand Down Expand Up @@ -138,8 +140,8 @@ ingested this plugin's releases first.
| OS | Plugins Directory |
| --- | --- |
| **Linux** | `~/.local/share/tabularis/plugins/postgresql/` |
| **macOS** | `~/Library/Application Support/com.debba.tabularis/plugins/postgresql/` |
| **Windows** | `%APPDATA%\debba\tabularis\data\plugins\postgresql\` |
| **macOS** | `~/Library/Application Support/tabularis/plugins/postgresql/` |
| **Windows** | `%APPDATA%\tabularis\plugins\postgresql\` |

4. Restart Tabularis.

Expand All @@ -164,6 +166,7 @@ instead of reconnecting.

| Method | Description |
| --- | --- |
| `initialize` / `shutdown` | Plugin lifecycle hooks called on load and unload |
| `test_connection` / `ping` | Verify connectivity with a lightweight `SELECT 1` |
| `get_databases` | List databases on the server |
| `get_schemas` | List schemas in the connected database |
Expand Down
5 changes: 5 additions & 0 deletions docs/planning/02-phase-1-plugin-build.md
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,11 @@ Before declaring Phase 1 complete, verify:
- Users can install it alongside the built-in driver and test
- Feedback collection begins (does it work with their specific PG setups?)

**After CP-4, before Phase 2:** the plugin bakes on the beta channel
against Tabularis `0.20.0`+ until no new correctness bugs surface, then
ships `1.0.0` stable — independent of Phase 2 scope. See "Versioning" in
`docs/planning/03-phase-2-issue-16.md`.

**Verify at CP-4:**

- [ ] 80/80 parity tests GREEN (byte-perfect dual-driver comparison)
Expand Down
34 changes: 26 additions & 8 deletions docs/planning/03-phase-2-issue-16.md
Original file line number Diff line number Diff line change
Expand Up @@ -285,11 +285,18 @@ Sprint 6: Pub/Sub + Advisory locks (lower priority, quick wins)

---

## Checkpoint: CP-5 (Phase 2 Complete — Stable Release Gate)
## Checkpoint: CP-5 (Phase 2 Complete — Feature-Complete Milestone)

**When:** Core Phase 2 features complete (at minimum: sequences + JSONB + extensions).

**This IS a major release gate.** The plugin now exceeds the built-in driver.
**Note on versioning:** `1.0.0` stable ships at the end of Phase 1
stabilization (beta bake-in with no new correctness bugs surfacing), not
at Phase 2 completion — see the "Versioning" section below. CP-5 is a
feature-completeness milestone on top of an already-stable `1.x` release,
tracked via the normal PR-title semver bump (`feat` → minor).

**This IS a milestone worth communicating.** The plugin now exceeds the
built-in driver.

**Verify:**

Expand All @@ -298,7 +305,6 @@ Sprint 6: Pub/Sub + Advisory locks (lower priority, quick wins)
- [ ] Sequence management works end-to-end
- [ ] JSONB editing works with nested objects
- [ ] At least one extension type (PostGIS or pgvector) is handled
- [ ] Plugin published as **stable** (not beta) to Tabularium registry

**Communicate to team:**

Expand All @@ -308,14 +314,27 @@ Sprint 6: Pub/Sub + Advisory locks (lower priority, quick wins)

---

## Versioning

`1.0.0` ships at the end of Phase 1 stabilization — once the beta bake-in
period (post-`0.20.0` Tabularis release) shows no new correctness bugs
surfacing, independent of Phase 2 scope. Phase 2 features then version as
ordinary minor/patch bumps from `1.0.0` via the existing PR-title →
semver mapping (see the main README's "Contributing: PR Titles &
Versioning"): each Phase 2 feature (`feat:`) is a minor bump (`1.1.0`,
`1.2.0`, ...), not a second "promote to stable" event.

---

## Ship / Release Points

| After | What to ship | Channel |
| ----- | ------------ | ------- |
| Sequences done | Plugin update (minor version bump) | Beta → early adopters |
| JSONB editing done | Plugin update | Beta |
| All Phase 2 core done | Plugin promoted to **stable** | Public registry |
| Extensions done | Plugin update | Stable |
| Phase 1 stabilization | `1.0.0` | Stable → public registry |
| Sequences done | Plugin update (minor version bump) | Stable |
| JSONB editing done | Plugin update (minor version bump) | Stable |
| Extensions done | Plugin update (minor version bump) | Stable |
| All Phase 2 core done | CP-5 milestone reached | Stable |

The plugin architecture enables shipping each feature independently without
waiting for a Tabularis core release. This is a key advantage.
Expand All @@ -340,5 +359,4 @@ waiting for a Tabularis core release. This is a key advantage.
- [ ] Extensions: at least PostGIS + pgvector types detected and handled
- [ ] Partitions: hierarchy displayed, bounds shown
- [ ] All Phase 1 tests still GREEN (no regressions)
- [ ] Plugin published as stable release
- [ ] CP-5 sync completed with core team
17 changes: 8 additions & 9 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -50,19 +50,18 @@ dev-install: build

[macos]
dev-install: build
mkdir -p "$HOME/Library/Application Support/com.debba.tabularis/plugins/postgresql"
cp target/debug/postgresql-plugin "$HOME/Library/Application Support/com.debba.tabularis/plugins/postgresql/"
cp .tabularium "$HOME/Library/Application Support/com.debba.tabularis/plugins/postgresql/"
@echo "Installed to ~/Library/Application Support/com.debba.tabularis/plugins/postgresql"
mkdir -p "$HOME/Library/Application Support/tabularis/plugins/postgresql"
cp target/debug/postgresql-plugin "$HOME/Library/Application Support/tabularis/plugins/postgresql/"
cp .tabularium "$HOME/Library/Application Support/tabularis/plugins/postgresql/"
@echo "Installed to ~/Library/Application Support/tabularis/plugins/postgresql"
@echo "Restart Tabularis (or toggle the plugin in Settings) to pick up changes."

# Each recipe line runs in a fresh shell, so this must be one logical command.
# Tabularis resolves its plugin dir via the `directories` crate
# (ProjectDirs "com"/"debba"/"tabularis"), which on Windows is
# %APPDATA%\debba\tabularis\data.
# (ProjectDirs "", "", "tabularis"), which on Windows is %APPDATA%\tabularis.
[windows]
dev-install: build
$dest = Join-Path $env:APPDATA "debba\tabularis\data\plugins\postgresql"; \
$dest = Join-Path $env:APPDATA "tabularis\plugins\postgresql"; \
New-Item -ItemType Directory -Force -Path $dest | Out-Null; \
Copy-Item "target\debug\postgresql-plugin.exe" $dest; \
Copy-Item ".tabularium" $dest; \
Expand All @@ -75,9 +74,9 @@ uninstall:

[macos]
uninstall:
rm -rf "$HOME/Library/Application Support/com.debba.tabularis/plugins/postgresql"
rm -rf "$HOME/Library/Application Support/tabularis/plugins/postgresql"

[windows]
uninstall:
$dest = Join-Path $env:APPDATA "debba\tabularis\data\plugins\postgresql"; \
$dest = Join-Path $env:APPDATA "tabularis\plugins\postgresql"; \
if (Test-Path $dest) { Remove-Item -Recurse -Force $dest }
Loading