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
2 changes: 1 addition & 1 deletion .claude/rules/plugin-system.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ TableProPluginKit is built with Library Evolution, so an already-built plugin ke
## Structure

- PluginKit-free logic a plugin shares with the iOS app lives in a TableProCore product, such as `TableProMySQLCore`, `TableProPostgreSQLCore` or `TableProRedisCore`.
- A new driver needs: its `project.yml` target and an `AllPlugins` entry, a `DatabaseType` constant, an entry in `.github/plugin-registry.json` keyed by its tag slug, a curated snapshot in `PluginMetadataRegistry` (without it the type never appears in the New Connection picker), a row in `../tablepro-docs/databases/index.mdx` through a paired docs PR, and a CHANGELOG entry.
- A new driver needs: its `project.yml` target and a `RegistryPlugins` entry (`BundledPlugins` and the app's `copy: { destination: plugins }` dependency for a bundled one), a `DatabaseType` constant, an entry in `.github/plugin-registry.json` keyed by its tag slug, a curated snapshot in `PluginMetadataRegistry` (without it the type never appears in the New Connection picker), a row in `../tablepro-docs/databases/index.mdx` through a paired docs PR, and a CHANGELOG entry.
- A new engine ships as a registry plugin (`AGENTS.md`, Scope).
- Where a plugin's tests go, and how a test target is added in `project.yml`: `.claude/rules/tests.md`, Where a test goes and Adding a test target.

Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ Derived/

# Build artifacts
*.xcarchive
/dist/

# Static libraries (downloaded from GitHub Releases via scripts/download-libs.sh)
Libs/*.a
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Select the **TablePro** scheme and **My Mac**, then press `Cmd+R`.

### Static libraries

`scripts/download-libs.sh` fetches two archives from the `libs-v1` GitHub Release: the macOS `.a` files (libmariadb, libpq, libduckdb, libmongoc and the rest) and the iOS xcframeworks. None of it is in git, so a build that skips this step fails at link time. Every run, including one that downloads nothing, verifies `Libs/` against the checksums committed at `HEAD`. Publishing a rebuilt library is in `RELEASING.md`, Static libraries.
`scripts/download-libs.sh` fetches two archives from the `libs-<n>` GitHub release that `Libs/release` names: the macOS `.a` files (libmariadb, libpq, libduckdb, libmongoc and the rest) and the iOS xcframeworks. None of it is in git, so a build that skips this step fails at link time. Every run, including one that downloads nothing, verifies `Libs/` against the checksums committed at `HEAD`. Publishing a rebuilt library is in `RELEASING.md`, Static libraries.

## Building with a personal Apple team

Expand Down
7 changes: 2 additions & 5 deletions README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<p align="center">
<a href="https://tablepro.app">웹사이트</a> ·
<a href="https://docs.tablepro.app">문서</a> ·
<a href="https://github.com/TableProApp/TablePro/releases">다운로드</a> ·
<a href="https://github.com/TableProApp/TablePro/releases/latest">다운로드</a> ·
<a href="https://discord.gg/hCNmUUbnD4">Discord</a>
</p>

Expand Down Expand Up @@ -70,9 +70,6 @@ TablePro는 네 번째 선택지입니다. 네이티브이고 여러 데이터

## 지원 데이터베이스

- **내장**: MySQL, MariaDB, TiDB, OceanBase, Databend, PostgreSQL, Amazon Redshift, CockroachDB, PGlite, SQLite, ClickHouse, Redis
- **플러그인**: Microsoft SQL Server, MongoDB, Oracle Database, Snowflake, BigQuery, Spanner, DynamoDB, DuckDB, Cassandra, ScyllaDB, Elasticsearch, Kafka, Trino, Teradata, SAP HANA, Dameng DM8, SurrealDB, Typesense, Weaviate, etcd, Cloudflare D1, Cloudflare R2 SQL, libSQL, Turso, Beancount

내장 드라이버는 앱에 포함되어 있습니다. 플러그인 드라이버는 [플러그인 레지스트리](https://github.com/TableProApp/plugins)에서 필요할 때 설치됩니다. 최신 목록과 엔진별 지원 기능은 [tablepro.app/databases](https://tablepro.app/databases)에서 확인할 수 있습니다.

## 주요 기능
Expand Down Expand Up @@ -103,7 +100,7 @@ TablePro는 네 번째 선택지입니다. 네이티브이고 여러 데이터
brew install --cask tablepro
```

또는 [GitHub Releases](https://github.com/TableProApp/TablePro/releases)에서 다운로드하세요.
또는 [GitHub Releases](https://github.com/TableProApp/TablePro/releases/latest)에서 다운로드하세요.

## 빌드 방법

Expand Down
7 changes: 2 additions & 5 deletions README.vi.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<p align="center">
<a href="https://tablepro.app">Website</a> ·
<a href="https://docs.tablepro.app">Tài liệu</a> ·
<a href="https://github.com/TableProApp/TablePro/releases">Tải xuống</a> ·
<a href="https://github.com/TableProApp/TablePro/releases/latest">Tải xuống</a> ·
<a href="https://discord.gg/hCNmUUbnD4">Discord</a>
</p>

Expand Down Expand Up @@ -70,9 +70,6 @@ TablePro là mảnh thứ tư còn thiếu: native, đa database, và mã nguồ

## Database hỗ trợ

- **Tích hợp sẵn**: MySQL, MariaDB, TiDB, OceanBase, Databend, PostgreSQL, Amazon Redshift, CockroachDB, PGlite, SQLite, ClickHouse, Redis
- **Plugin**: Microsoft SQL Server, MongoDB, Oracle Database, Snowflake, BigQuery, Spanner, DynamoDB, DuckDB, Cassandra, ScyllaDB, Elasticsearch, Kafka, Trino, Teradata, SAP HANA, Dameng DM8, SurrealDB, Typesense, Weaviate, etcd, Cloudflare D1, Cloudflare R2 SQL, libSQL, Turso, Beancount

Driver tích hợp sẵn đi kèm app. Driver dạng plugin cài thêm khi cần từ [plugin registry](https://github.com/TableProApp/plugins). Danh sách hiện tại và những gì từng engine hỗ trợ có tại [tablepro.app/databases](https://tablepro.app/databases).

## Bên trong có gì
Expand Down Expand Up @@ -103,7 +100,7 @@ Các gói và giá có tại [tablepro.app/pricing](https://tablepro.app/pricing
brew install --cask tablepro
```

Hoặc tải về từ [GitHub Releases](https://github.com/TableProApp/TablePro/releases).
Hoặc tải về từ [GitHub Releases](https://github.com/TableProApp/TablePro/releases/latest).

## Tài liệu

Expand Down
7 changes: 2 additions & 5 deletions README.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<p align="center">
<a href="https://tablepro.app">官网</a> ·
<a href="https://docs.tablepro.app">文档</a> ·
<a href="https://github.com/TableProApp/TablePro/releases">下载</a> ·
<a href="https://github.com/TableProApp/TablePro/releases/latest">下载</a> ·
<a href="https://discord.gg/hCNmUUbnD4">Discord</a>
</p>

Expand Down Expand Up @@ -70,9 +70,6 @@ TablePro 补上缺失的第四类:原生、多数据库、开源。

## 支持的数据库

- **内置**:MySQL、MariaDB、TiDB、OceanBase、Databend、PostgreSQL、Amazon Redshift、CockroachDB、PGlite、SQLite、ClickHouse、Redis
- **插件**:Microsoft SQL Server、MongoDB、Oracle Database、Snowflake、BigQuery、Spanner、DynamoDB、DuckDB、Cassandra、ScyllaDB、Elasticsearch、Kafka、Trino、Teradata、SAP HANA、达梦 DM8、SurrealDB、Typesense、Weaviate、etcd、Cloudflare D1、Cloudflare R2 SQL、libSQL、Turso、Beancount

内置驱动随应用一起发布。插件驱动按需从[插件仓库](https://github.com/TableProApp/plugins)安装。最新列表以及每个引擎支持的功能见 [tablepro.app/databases](https://tablepro.app/databases)。

## 主要功能
Expand Down Expand Up @@ -103,7 +100,7 @@ TablePro 补上缺失的第四类:原生、多数据库、开源。
brew install --cask tablepro
```

或从 [GitHub Releases](https://github.com/TableProApp/TablePro/releases) 下载。
或从 [GitHub Releases](https://github.com/TableProApp/TablePro/releases/latest) 下载。

## 文档

Expand Down
26 changes: 10 additions & 16 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,27 +45,21 @@ notarizes the DMG too.

## Static libraries

The `.a` files under `Libs/` and the xcframeworks under `Libs/ios/` live on the `libs-v1` GitHub
release, not in git. Each set has a checksum baseline committed beside it, and
`scripts/download-libs.sh` verifies the working copy against the baseline at `HEAD` on every run,
including runs that download nothing. An archive and its baseline move together, so publish through
the scripts, which do both:
The `.a` files under `Libs/` and the xcframeworks under `Libs/ios/` live on the immutable
`libs-<n>` GitHub release that `Libs/release` names, not in git. `scripts/download-libs.sh` fetches
it and verifies every file against the checksums at `HEAD` on every run. Publish a rebuilt library
through the script, then commit what it writes:

```bash
scripts/publish-libs.sh libmongoc_arm64.a libmongoc_x86_64.a libmongoc_universal.a libmongoc.a
git add Libs/checksums.sha256 && git commit -m "build: update static library checksums"
git add Libs/release Libs/checksums.sha256 Libs/ios/checksums.sha256
git commit -m "build(libs): publish libs-<n>"
```

- Name every library you rebuilt. `publish-libs.sh` verifies each one you did not name against the
checksums at `HEAD`, regenerates `Libs/checksums.sha256` and uploads the archive with `--clobber`.
- The iOS xcframeworks go through `scripts/publish-ios-libs.sh`, then a commit of
`Libs/ios/checksums.sha256`. It takes `--dry-run` and refuses a publish that changes nothing.
- `libs-v1` predates release immutability, so GitHub keeps it mutable. Both scripts stop before
touching a checksum file if it ever reports immutable.
- Never write a checksum file by hand. Regenerating one from a stale `Libs/` reverts every library
you did not rebuild: that shipped a broken libmongoc and rolled DuckDB back a version.
- Never upload with a bare `tar` and `gh release upload`. That put 299 MB on the release with no
baseline behind it, and the next `download-libs.sh` run stopped on every machine and CI job.
- Name every library you rebuilt, added or removed. The script verifies every other one against the
checksums at `HEAD`, creates the next `libs-<n>` and rewrites `Libs/release` and both checksum files.
- `--dry-run` prints what it would publish.
- A published `libs-<n>` never changes; a fix is the next `<n>`.

## The release pipeline

Expand Down
Loading