Skip to content

Commit 8bb52a8

Browse files
authored
docs: point at the app's apple/ paths (#44)
1 parent afe2665 commit 8bb52a8

9 files changed

Lines changed: 23 additions & 22 deletions

File tree

‎AGENTS.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Run the three scripts against an app checkout at the `main` the change describes
4040

4141
- **A change that documents an app change** opens as a draft pull request whose description names the app pull request (`TableProApp/TablePro#1234`). CI checks against the app's `main`, so it goes green once the app pull request merges; mark it ready then.
4242
- **The daily run** catches an app change that broke a claim here. Fix the page, not the check.
43-
- **Releases.** For each stable release, the app's `release` skill opens a `docs(changelog): vX.Y.Z` pull request whose `<Update>` block in `changelog.mdx` is written by the app's `scripts/release/notes.py docs`, and merges it once the release is published. Every version in the app's `CHANGELOG.md` must be on that page.
43+
- **Releases.** For each stable release, the app's `release` skill opens a `docs(changelog): vX.Y.Z` pull request whose `<Update>` block in `changelog.mdx` is written by the app's `apple/scripts/release/notes.py docs`, and merges it once the release is published. Every version in the app's `apple/CHANGELOG.md` must be on that page.
4444

4545
## Writing style
4646

‎STYLE.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ Verbs: **click** a button, **choose** a menu item, **select** a row or a checkbo
251251
**deselect** a checkbox. Never "click on", never "uncheck".
252252

253253
**Menu paths** are one bold run with ` > `: `**File > Import from Other App…**`, never
254-
`**File** > **X**`. Verify the leaf against `TablePro/Core/Menu/*MenuBuilder.swift` every time. Eight
254+
`**File** > **X**`. Verify the leaf against `apple/TablePro/Core/Menu/*MenuBuilder.swift` every time. Eight
255255
paths were wrong at once because the Database menu shipped and nobody re-checked.
256256

257257
**Shortcuts** in backticks, modifiers spelled out, joined with `+`: `` `Cmd+Option+F` ``. Never bold,

‎development/overview.mdx‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ description: Build TablePro from source, contribute a change, or write a databas
55

66
Building and contributing to the app is documented in the app repository, next to the code it describes:
77

8-
- [CONTRIBUTING.md](https://github.com/TableProApp/TablePro/blob/main/CONTRIBUTING.md): setup, building, tests, code style, architecture, pull requests and translation.
9-
- [AGENTS.md](https://github.com/TableProApp/TablePro/blob/main/AGENTS.md): the invariants and rules every change has to meet.
10-
- [RELEASING.md](https://github.com/TableProApp/TablePro/blob/main/RELEASING.md): release builds, notarization and the release tag.
8+
- [apple/CONTRIBUTING.md](https://github.com/TableProApp/TablePro/blob/main/apple/CONTRIBUTING.md): setup, building, tests, code style, architecture, pull requests and translation.
9+
- [AGENTS.md](https://github.com/TableProApp/TablePro/blob/main/AGENTS.md) and [apple/AGENTS.md](https://github.com/TableProApp/TablePro/blob/main/apple/AGENTS.md): the invariants and rules every change has to meet.
10+
- [apple/RELEASING.md](https://github.com/TableProApp/TablePro/blob/main/apple/RELEASING.md): release builds, notarization and the release tag.
1111

1212
These pages live in [TableProApp/docs](https://github.com/TableProApp/docs). A docs change that goes with an app change is a pull request there.
1313

‎development/plugin-development.mdx‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Plugin Development
33
description: Write a database driver plugin, implement the PluginKit protocols, and package it as a .tableplugin bundle
44
---
55

6-
Start from a plugin that already works. `Plugins/SurrealDBDriverPlugin/` is the compact reference: no C bridge, an HTTP transport, the schema-aware query hooks filled in, and an editor language of its own.
6+
Start from a plugin that already works. `apple/Plugins/SurrealDBDriverPlugin/` is the compact reference: no C bridge, an HTTP transport, the schema-aware query hooks filled in, and an editor language of its own.
77

88
Two protocols do the work. `DriverPlugin` describes the database (name, port, capabilities, SQL dialect) and creates driver instances; `PluginDatabaseDriver` is the connection itself. Implement both in a `.tableplugin` bundle linked against **TableProPluginKit**, and `PluginDriverAdapter` bridges your driver to the app's internal `DatabaseDriver`. A driver that connects and lists tables gets the whole UI without asking: connection form, sidebar, data grid, editor, import, export.
99

@@ -48,7 +48,7 @@ The host also injects three reserved `additionalFields` keys before it creates a
4848

4949
A `.number` field takes a whole number of 0 or more. The form keeps ASCII digits only and will not save anything else. Use `.stepper(range:)` for a bounded or signed integer, and `.text` for a value with a decimal point.
5050

51-
The remaining fifty-odd statics all have defaults: connection mode, URL schemes, brand color, editor language, `sqlDialect` (keywords, functions, completions), navigation model, system database names, and two dozen `supports*` capability flags. Override the ones that differ. `Plugins/TableProPluginKit/DriverPlugin.swift` is the full list.
51+
The remaining fifty-odd statics all have defaults: connection mode, URL schemes, brand color, editor language, `sqlDialect` (keywords, functions, completions), navigation model, system database names, and two dozen `supports*` capability flags. Override the ones that differ. `apple/Plugins/TableProPluginKit/DriverPlugin.swift` is the full list.
5252

5353
## Implementing PluginDatabaseDriver
5454

@@ -100,7 +100,7 @@ Two changes look additive and are not. Both have shipped, and both surface the s
100100
[`.claude/rules/plugin-system.md`](https://github.com/TableProApp/TablePro/blob/main/.claude/rules/plugin-system.md) in the app repository carries the full additive-versus-breaking list and the checklist a breaking bump obliges you to run, including re-releasing every registry plugin before the app ships.
101101

102102
```bash
103-
scripts/check-pluginkit-abi.sh [base-ref]
103+
apple/scripts/check-pluginkit-abi.sh [base-ref]
104104
```
105105

106-
Run it before merging any change under `Plugins/TableProPluginKit/`. It builds the framework at your tree and at the base ref with one toolchain and diffs the two public interfaces, so a Swift version difference between machines can never fake a diff. The base ref defaults to `origin/main`; pass the merge base when reviewing a branch. Commit or stash first, since it refuses a dirty working tree.
106+
Run it before merging any change under `apple/Plugins/TableProPluginKit/`. It builds the framework at your tree and at the base ref with one toolchain and diffs the two public interfaces, so a Swift version difference between machines can never fake a diff. The base ref defaults to `origin/main`; pass the merge base when reviewing a branch. Commit or stash first, since it refuses a dirty working tree.

‎development/plugin-registry.mdx‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ The app reads the manifest to install a driver when someone picks a database typ
99

1010
## Getting a plugin into the registry
1111

12-
Contribute it to TablePro's repository, as a target in the `RegistryPlugins` aggregate of `project.yml` and an entry in `.github/plugin-registry.json` that gives its display name. The next release publishes it: a beta tag publishes to the `beta` channel, a stable tag to `stable`. A fix to a plugin ships the same way, in the next beta or patch.
12+
Contribute it to TablePro's repository, as a target in the `RegistryPlugins` aggregate of `apple/project.yml` and an entry in `.github/plugin-registry.json` that gives its display name. The next release publishes it: a beta tag publishes to the `beta` channel, a stable tag to `stable`. A fix to a plugin ships the same way, in the next beta or patch.
1313

1414
Bundled plugins ship inside the app and never appear in the manifest. The app never installs a registry copy over a bundled one.
1515

1616
## The manifest
1717

18-
`https://updates.tablepro.app/plugins/v3.json`, served by GitHub Pages from the `feeds` branch that the release workflow writes through `scripts/release/registry.py`. The schema version is part of the path, so a later schema ships beside this one instead of replacing it. Within v3, changes only add fields.
18+
`https://updates.tablepro.app/plugins/v3.json`, served by GitHub Pages from the `feeds` branch that the release workflow writes through `apple/scripts/release/registry.py`. The schema version is part of the path, so a later schema ships beside this one instead of replacing it. Within v3, changes only add fields.
1919

2020
```json
2121
{
@@ -75,7 +75,7 @@ Plugins are sorted by `id`, and each plugin's releases by `build`, highest first
7575
Releases whose `minimumSystemVersion` is above the running macOS are skipped.
7676
</Step>
7777
<Step title="PluginKit">
78-
`pluginKit` has to fall between `TABLEPRO_PLUGINKIT_MINIMUM_VERSION` and `TABLEPRO_PLUGINKIT_VERSION` in `Configs/PluginKit.xcconfig`.
78+
`pluginKit` has to fall between `TABLEPRO_PLUGINKIT_MINIMUM_VERSION` and `TABLEPRO_PLUGINKIT_VERSION` in `apple/Configs/PluginKit.xcconfig`.
7979
</Step>
8080
<Step title="Build">
8181
The highest `build` left wins.

‎development/testing-plugins.mdx‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Do not reuse a built-in plugin's bundle ID. Installing over one fails outright,
2323
## Install with the dev script
2424

2525
```bash
26-
scripts/install-plugin-dev.sh MyDriverPlugin
26+
apple/scripts/install-plugin-dev.sh MyDriverPlugin
2727
```
2828

2929
It finds the newest `MyDriverPlugin.tableplugin` under DerivedData and copies it into the user plugins directory. Relaunch TablePro to load it. Build from Xcode first: the script reads DerivedData, and a command-line `xcodebuild` writes to `build/Debug` instead, where the script never looks.
@@ -34,7 +34,7 @@ Never edit the copied bundle, `Info.plist` included. Any change invalidates the
3434

3535
## Bundle it into the app instead
3636

37-
A plugin embedded in `PlugIns/` skips the signature check entirely, which is the shortest path when the team check is the thing in your way. Add the target to the app's dependency list in `project.yml`:
37+
A plugin embedded in `PlugIns/` skips the signature check entirely, which is the shortest path when the team check is the thing in your way. Add the target to the app's dependency list in `apple/project.yml`:
3838

3939
```yaml
4040
targets:
@@ -46,10 +46,10 @@ targets:
4646
destination: plugins
4747
```
4848
49-
Then run `scripts/generate-project.sh` and build. XcodeGen puts the bundle in an **Embed Dependencies** copy phase with `CodeSignOnCopy`, so it is re-signed with your debug identity on the way in.
49+
Then run `apple/scripts/generate-project.sh` and build. XcodeGen puts the bundle in an **Embed Dependencies** copy phase with `CodeSignOnCopy`, so it is re-signed with your debug identity on the way in.
5050

5151
<Warning>
52-
`TablePro.xcodeproj` is generated and gitignored, so adding the plugin through the Xcode UI survives exactly until the next `scripts/generate-project.sh`. Edit `project.yml`. Take the entry back out before you open a pull request, or the plugin rides into a release build.
52+
`apple/TablePro.xcodeproj` is generated and gitignored, so adding the plugin through the Xcode UI survives exactly until the next `apple/scripts/generate-project.sh`. Edit `apple/project.yml`. Take the entry back out before you open a pull request, or the plugin rides into a release build.
5353
</Warning>
5454

5555
## Skip the signature check

‎features/acknowledgements.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Pick one and the detail pane gives its exact shipped version, its SPDX identifie
99

1010
Two labels carry meaning:
1111

12-
- **Modified** marks a library TablePro patches before building. The patches live in `scripts/patches/` in the public repository, next to the build script that pins the version. FreeTDS is patched for federated authentication and libssh2 for backported security fixes; nothing else is.
12+
- **Modified** marks a library TablePro patches before building. The patches live in `apple/scripts/patches/` in the public repository, next to the build script that pins the version. FreeTDS is patched for federated authentication and libssh2 for backported security fixes; nothing else is.
1313
- **License Not Yet Confirmed** is a separate section for libraries whose own project publishes no license file. TablePro cannot state one for them, and lists them anyway so the gap stays visible.
1414

1515
TablePro's own source is available under the AGPL v3 at [github.com/TableProApp/TablePro](https://github.com/TableProApp/TablePro). If a library is missing, credited wrongly, or attributed to the wrong license, [open an issue](https://github.com/TableProApp/TablePro/issues).

‎installation.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,4 @@ rm ~/Library/Preferences/com.TablePro.plist
5050

5151
Connection passwords are in the macOS Keychain and survive both commands. Delete them in Keychain Access by searching for `com.TablePro`. Data already synced through iCloud stays in your iCloud account.
5252

53-
Building from source is in [CONTRIBUTING.md](https://github.com/TableProApp/TablePro/blob/main/CONTRIBUTING.md#setup). A launch that fails or a connection that will not open is in [Troubleshooting](/troubleshooting).
53+
Building from source is in [apple/CONTRIBUTING.md](https://github.com/TableProApp/TablePro/blob/main/apple/CONTRIBUTING.md#setup). A launch that fails or a connection that will not open is in [Troubleshooting](/troubleshooting).

‎scripts/check-docs-against-source.py‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,10 @@ def leaf_forms(leaf: str) -> set[str]:
7474

7575

7676
def app_root(path: str) -> Path:
77-
root = Path(path).resolve()
77+
# Every claim checked here is about the macOS app, which lives in the checkout's apple/.
78+
root = Path(path).resolve() / "apple"
7879
if not (root / "TablePro" / "Core" / "Menu").is_dir():
79-
sys.exit(f"{path} is not a TablePro app checkout")
80+
sys.exit(f"{path} is not a TablePro app checkout: it has no apple/TablePro/Core/Menu")
8081
return root
8182

8283

@@ -197,7 +198,7 @@ def check_pluginkit_version(root: Path, docs: Path) -> list[str]:
197198
config = (root / "Configs" / "PluginKit.xcconfig").read_text()
198199
current = re.search(r"^TABLEPRO_PLUGINKIT_VERSION\s*=\s*(\d+)\s*$", config, re.M)
199200
if not current:
200-
return ["Configs/PluginKit.xcconfig no longer sets TABLEPRO_PLUGINKIT_VERSION"]
201+
return ["apple/Configs/PluginKit.xcconfig no longer sets TABLEPRO_PLUGINKIT_VERSION"]
201202
expected = current.group(1)
202203

203204
failures = []
@@ -220,7 +221,7 @@ def check_pluginkit_version(root: Path, docs: Path) -> list[str]:
220221
def check_changelog_parity(root: Path, docs: Path) -> list[str]:
221222
"""Every release in CHANGELOG.md must appear on the changelog page.
222223
223-
The app's scripts/release/notes.py docs writes each stable's block from its CHANGELOG.md
224+
The app's apple/scripts/release/notes.py docs writes each stable's block from its CHANGELOG.md
224225
section. The check stays one-way: the page may carry a version the file does not, which is
225226
how 0.39.0 is documented. It shipped, failed to launch with errno 163, and 0.39.1 replaced it
226227
the same day.

0 commit comments

Comments
 (0)