dirsql 0.0.12__tar.gz → 0.0.14__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. {dirsql-0.0.12 → dirsql-0.0.14}/.claude/CLAUDE.md +8 -5
  2. dirsql-0.0.14/.github/workflows/minor-release.yml +113 -0
  3. dirsql-0.0.14/.github/workflows/patch-release.yml +151 -0
  4. {dirsql-0.0.12 → dirsql-0.0.14}/.github/workflows/publish.yml +16 -6
  5. dirsql-0.0.14/.npmignore +23 -0
  6. {dirsql-0.0.12 → dirsql-0.0.14}/PKG-INFO +1 -1
  7. {dirsql-0.0.12 → dirsql-0.0.14}/pyproject.toml +12 -1
  8. dirsql-0.0.12/.github/workflows/minor-release.yml +0 -48
  9. dirsql-0.0.12/.github/workflows/patch-release.yml +0 -80
  10. dirsql-0.0.12/index.js +0 -5
  11. dirsql-0.0.12/justfile +0 -53
  12. dirsql-0.0.12/package.json +0 -8
  13. {dirsql-0.0.12 → dirsql-0.0.14}/.github/workflows/pr-monitor.yml +0 -0
  14. {dirsql-0.0.12 → dirsql-0.0.14}/.github/workflows/python-lint.yml +0 -0
  15. {dirsql-0.0.12 → dirsql-0.0.14}/.github/workflows/python-test.yml +0 -0
  16. {dirsql-0.0.12 → dirsql-0.0.14}/.github/workflows/rust-test.yml +0 -0
  17. {dirsql-0.0.12 → dirsql-0.0.14}/.gitignore +0 -0
  18. {dirsql-0.0.12 → dirsql-0.0.14}/Cargo.lock +0 -0
  19. {dirsql-0.0.12 → dirsql-0.0.14}/Cargo.toml +0 -0
  20. {dirsql-0.0.12 → dirsql-0.0.14}/LICENSE +0 -0
  21. {dirsql-0.0.12 → dirsql-0.0.14}/SUMMARY.md +0 -0
  22. {dirsql-0.0.12 → dirsql-0.0.14}/src/db.rs +0 -0
  23. {dirsql-0.0.12 → dirsql-0.0.14}/src/differ.rs +0 -0
  24. {dirsql-0.0.12 → dirsql-0.0.14}/src/lib.rs +0 -0
  25. {dirsql-0.0.12 → dirsql-0.0.14}/src/matcher.rs +0 -0
  26. {dirsql-0.0.12 → dirsql-0.0.14}/src/scanner.rs +0 -0
  27. {dirsql-0.0.12 → dirsql-0.0.14}/src/watcher.rs +0 -0
  28. {dirsql-0.0.12 → dirsql-0.0.14}/tests/__init__.py +0 -0
  29. {dirsql-0.0.12 → dirsql-0.0.14}/tests/conftest.py +0 -0
  30. {dirsql-0.0.12 → dirsql-0.0.14}/tests/integration/__init__.py +0 -0
  31. {dirsql-0.0.12 → dirsql-0.0.14}/tests/integration/test_dirsql.py +0 -0
@@ -10,6 +10,7 @@ Write scratch/temporary files to `/tmp` instead of asking permission. Use unique
10
10
  - **NEVER commit directly to main** - always create a PR
11
11
  - One PR per bead. Beads should be concise and small -- as small as possible while still being useful
12
12
  - Use `bd` (Beads) for task tracking: `bd list`, `bd show <id>`, `bd ready`
13
+ - **Bead first**: When starting new work, the first step is always to create a bead (`bd create`). No implementation work begins without a bead.
13
14
 
14
15
  ### Git Worktrees
15
16
 
@@ -47,14 +48,15 @@ git worktree remove .worktrees/my-feature
47
48
  ### Subagent Workflow
48
49
 
49
50
  New work on beads should be done via subagents in isolated worktrees. Each subagent:
50
- 1. Creates a worktree and branch for its bead
51
- 2. Does the implementation work (red/green TDD)
52
- 3. Pushes the branch and opens a PR
53
- 4. Monitors the PR and proactively resolves:
51
+ 1. Claims the bead (`bd update <id> --claim`) before starting any work
52
+ 2. Creates a worktree and branch for its bead
53
+ 3. Does the implementation work (red/green TDD)
54
+ 4. Pushes the branch and opens a PR
55
+ 5. Monitors the PR and proactively resolves:
54
56
  - CI failures
55
57
  - GPG signing complaints
56
58
  - Merge conflicts
57
- 5. Continues monitoring until the PR is in a mergeable state
59
+ 6. Continues monitoring until the PR is in a mergeable state
58
60
 
59
61
  ### Orchestrator Responsibilities
60
62
 
@@ -64,6 +66,7 @@ The orchestrator (main Claude session) must proactively:
64
66
  3. **Handle post-merge cleanup** as soon as a PR merges (pull main, remove worktree, delete branch, close bead).
65
67
  4. **Keep the user informed** of PR status without being asked.
66
68
  5. **Use foreground monitoring** when waiting on CI and there's no other work to do. Background monitoring causes the conversation to go silent -- use it only when there's genuinely parallel work to perform.
69
+ 6. **Scripts to `/tmp`**: For polling/monitoring scripts (watching CI, waiting for merges), write the script to `/tmp` then run it via `bash /tmp/script.sh`. Do not use inline bash loops in tool calls.
67
70
 
68
71
  ### Post-Merge Cleanup
69
72
 
@@ -0,0 +1,113 @@
1
+ name: Minor Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ jobs:
7
+ detect-changes:
8
+ runs-on: ubuntu-latest
9
+ outputs:
10
+ rust_changed: ${{ steps.changes.outputs.rust_changed }}
11
+ python_changed: ${{ steps.changes.outputs.python_changed }}
12
+ js_changed: ${{ steps.changes.outputs.js_changed }}
13
+ docs_changed: ${{ steps.changes.outputs.docs_changed }}
14
+ steps:
15
+ - uses: actions/checkout@v6
16
+ with:
17
+ fetch-depth: 0
18
+
19
+ - name: Detect changed file types since last tag
20
+ id: changes
21
+ run: |
22
+ latest_tag=$(git tag --sort=-v:refname | grep -E '^v[0-9]' | head -n1)
23
+
24
+ if [ -z "$latest_tag" ]; then
25
+ # No tags yet -- treat everything as changed
26
+ echo "rust_changed=true" >> "$GITHUB_OUTPUT"
27
+ echo "python_changed=true" >> "$GITHUB_OUTPUT"
28
+ echo "js_changed=true" >> "$GITHUB_OUTPUT"
29
+ echo "docs_changed=true" >> "$GITHUB_OUTPUT"
30
+ exit 0
31
+ fi
32
+
33
+ changed_files=$(git diff --name-only "${latest_tag}..HEAD")
34
+
35
+ if [ -z "$changed_files" ]; then
36
+ echo "rust_changed=false" >> "$GITHUB_OUTPUT"
37
+ echo "python_changed=false" >> "$GITHUB_OUTPUT"
38
+ echo "js_changed=false" >> "$GITHUB_OUTPUT"
39
+ echo "docs_changed=false" >> "$GITHUB_OUTPUT"
40
+ exit 0
41
+ fi
42
+
43
+ rust_changed=false
44
+ python_changed=false
45
+ js_changed=false
46
+ docs_changed=false
47
+
48
+ while IFS= read -r file; do
49
+ case "$file" in
50
+ *.rs|Cargo.toml|Cargo.lock) rust_changed=true ;;
51
+ *.py|pyproject.toml|uv.lock) python_changed=true ;;
52
+ package.json|*.ts|*.js) js_changed=true ;;
53
+ README.md|*.md) docs_changed=true ;;
54
+ esac
55
+ done <<< "$changed_files"
56
+
57
+ echo "rust_changed=$rust_changed" >> "$GITHUB_OUTPUT"
58
+ echo "python_changed=$python_changed" >> "$GITHUB_OUTPUT"
59
+ echo "js_changed=$js_changed" >> "$GITHUB_OUTPUT"
60
+ echo "docs_changed=$docs_changed" >> "$GITHUB_OUTPUT"
61
+
62
+ echo "Rust: $rust_changed, Python: $python_changed, JS: $js_changed, Docs: $docs_changed"
63
+
64
+ release:
65
+ needs: detect-changes
66
+ uses: ./.github/workflows/publish.yml
67
+ with:
68
+ bump_type: minor
69
+ publish_pypi: ${{ needs.detect-changes.outputs.rust_changed == 'true' || needs.detect-changes.outputs.python_changed == 'true' || needs.detect-changes.outputs.docs_changed == 'true' }}
70
+ publish_crates: ${{ needs.detect-changes.outputs.rust_changed == 'true' || needs.detect-changes.outputs.docs_changed == 'true' }}
71
+ secrets: inherit
72
+ permissions:
73
+ contents: write
74
+ id-token: write
75
+
76
+ # npm publish inlined here because npm OIDC doesn't support reusable workflows
77
+ publish-npm:
78
+ needs: [detect-changes, release]
79
+ if: >-
80
+ always() &&
81
+ needs.release.outputs.tag_created == 'true' &&
82
+ (needs.detect-changes.outputs.rust_changed == 'true' ||
83
+ needs.detect-changes.outputs.js_changed == 'true' ||
84
+ needs.detect-changes.outputs.docs_changed == 'true')
85
+ runs-on: ubuntu-latest
86
+ permissions:
87
+ contents: read
88
+ id-token: write
89
+ steps:
90
+ - uses: actions/checkout@v6
91
+
92
+ - name: Check if package.json exists
93
+ id: check_npm
94
+ run: |
95
+ if [ -f package.json ]; then
96
+ echo "exists=true" >> $GITHUB_OUTPUT
97
+ else
98
+ echo "exists=false" >> $GITHUB_OUTPUT
99
+ fi
100
+
101
+ - name: Setup Node.js
102
+ if: steps.check_npm.outputs.exists == 'true'
103
+ uses: actions/setup-node@v4
104
+ with:
105
+ node-version: '24.x'
106
+
107
+ - name: Update package.json version
108
+ if: steps.check_npm.outputs.exists == 'true'
109
+ run: npm version "${{ needs.release.outputs.new_version }}" --no-git-tag-version
110
+
111
+ - name: Publish to npm
112
+ if: steps.check_npm.outputs.exists == 'true'
113
+ run: npm publish --provenance --access public
@@ -0,0 +1,151 @@
1
+ name: Patch Release
2
+
3
+ on:
4
+ schedule:
5
+ # Run at 2:00 AM UTC every day
6
+ - cron: '0 2 * * *'
7
+ push:
8
+ branches: [main]
9
+ workflow_dispatch:
10
+
11
+ jobs:
12
+ check:
13
+ runs-on: ubuntu-latest
14
+ outputs:
15
+ should_release: ${{ steps.decide.outputs.should_release }}
16
+ steps:
17
+ - id: decide
18
+ env:
19
+ EVENT: ${{ github.event_name }}
20
+ STRATEGY: ${{ vars.RELEASE_STRATEGY }}
21
+ COMMIT_MSG: ${{ github.event.head_commit.message }}
22
+ run: |
23
+ if [ "$EVENT" = "workflow_dispatch" ]; then
24
+ echo "should_release=true" >> "$GITHUB_OUTPUT"
25
+ elif [ "$EVENT" = "schedule" ] && [ "$STRATEGY" != "immediate" ]; then
26
+ echo "should_release=true" >> "$GITHUB_OUTPUT"
27
+ elif [ "$EVENT" = "push" ] && [ "$STRATEGY" = "immediate" ]; then
28
+ case "$COMMIT_MSG" in
29
+ *'[no-release]'*) echo "should_release=false" >> "$GITHUB_OUTPUT" ;;
30
+ *) echo "should_release=true" >> "$GITHUB_OUTPUT" ;;
31
+ esac
32
+ else
33
+ echo "should_release=false" >> "$GITHUB_OUTPUT"
34
+ fi
35
+
36
+ detect-changes:
37
+ needs: check
38
+ if: needs.check.outputs.should_release == 'true'
39
+ runs-on: ubuntu-latest
40
+ outputs:
41
+ rust_changed: ${{ steps.changes.outputs.rust_changed }}
42
+ python_changed: ${{ steps.changes.outputs.python_changed }}
43
+ js_changed: ${{ steps.changes.outputs.js_changed }}
44
+ docs_changed: ${{ steps.changes.outputs.docs_changed }}
45
+ steps:
46
+ - uses: actions/checkout@v6
47
+ with:
48
+ fetch-depth: 0
49
+
50
+ - name: Detect changed file types since last tag
51
+ id: changes
52
+ run: |
53
+ latest_tag=$(git tag --sort=-v:refname | grep -E '^v[0-9]' | head -n1)
54
+
55
+ if [ -z "$latest_tag" ]; then
56
+ # No tags yet -- treat everything as changed
57
+ echo "rust_changed=true" >> "$GITHUB_OUTPUT"
58
+ echo "python_changed=true" >> "$GITHUB_OUTPUT"
59
+ echo "js_changed=true" >> "$GITHUB_OUTPUT"
60
+ echo "docs_changed=true" >> "$GITHUB_OUTPUT"
61
+ exit 0
62
+ fi
63
+
64
+ changed_files=$(git diff --name-only "${latest_tag}..HEAD")
65
+
66
+ if [ -z "$changed_files" ]; then
67
+ echo "rust_changed=false" >> "$GITHUB_OUTPUT"
68
+ echo "python_changed=false" >> "$GITHUB_OUTPUT"
69
+ echo "js_changed=false" >> "$GITHUB_OUTPUT"
70
+ echo "docs_changed=false" >> "$GITHUB_OUTPUT"
71
+ exit 0
72
+ fi
73
+
74
+ rust_changed=false
75
+ python_changed=false
76
+ js_changed=false
77
+ docs_changed=false
78
+
79
+ while IFS= read -r file; do
80
+ case "$file" in
81
+ *.rs|Cargo.toml|Cargo.lock) rust_changed=true ;;
82
+ *.py|pyproject.toml|uv.lock) python_changed=true ;;
83
+ package.json|*.ts|*.js) js_changed=true ;;
84
+ README.md|*.md) docs_changed=true ;;
85
+ esac
86
+ done <<< "$changed_files"
87
+
88
+ echo "rust_changed=$rust_changed" >> "$GITHUB_OUTPUT"
89
+ echo "python_changed=$python_changed" >> "$GITHUB_OUTPUT"
90
+ echo "js_changed=$js_changed" >> "$GITHUB_OUTPUT"
91
+ echo "docs_changed=$docs_changed" >> "$GITHUB_OUTPUT"
92
+
93
+ echo "Rust: $rust_changed, Python: $python_changed, JS: $js_changed, Docs: $docs_changed"
94
+
95
+ release:
96
+ needs: [check, detect-changes]
97
+ if: >-
98
+ needs.check.outputs.should_release == 'true' &&
99
+ (needs.detect-changes.outputs.rust_changed == 'true' ||
100
+ needs.detect-changes.outputs.python_changed == 'true' ||
101
+ needs.detect-changes.outputs.docs_changed == 'true')
102
+ uses: ./.github/workflows/publish.yml
103
+ with:
104
+ bump_type: patch
105
+ publish_pypi: ${{ needs.detect-changes.outputs.rust_changed == 'true' || needs.detect-changes.outputs.python_changed == 'true' || needs.detect-changes.outputs.docs_changed == 'true' }}
106
+ publish_crates: ${{ needs.detect-changes.outputs.rust_changed == 'true' || needs.detect-changes.outputs.docs_changed == 'true' }}
107
+ secrets: inherit
108
+ permissions:
109
+ contents: write
110
+ id-token: write
111
+
112
+ # npm publish inlined here because npm OIDC doesn't support reusable workflows
113
+ # (it validates the caller workflow name, not the called workflow)
114
+ publish-npm:
115
+ needs: [check, detect-changes, release]
116
+ if: >-
117
+ always() &&
118
+ needs.check.outputs.should_release == 'true' &&
119
+ needs.release.outputs.tag_created == 'true' &&
120
+ (needs.detect-changes.outputs.rust_changed == 'true' ||
121
+ needs.detect-changes.outputs.js_changed == 'true' ||
122
+ needs.detect-changes.outputs.docs_changed == 'true')
123
+ runs-on: ubuntu-latest
124
+ permissions:
125
+ contents: read
126
+ id-token: write
127
+ steps:
128
+ - uses: actions/checkout@v6
129
+
130
+ - name: Check if package.json exists
131
+ id: check_npm
132
+ run: |
133
+ if [ -f package.json ]; then
134
+ echo "exists=true" >> $GITHUB_OUTPUT
135
+ else
136
+ echo "exists=false" >> $GITHUB_OUTPUT
137
+ fi
138
+
139
+ - name: Setup Node.js
140
+ if: steps.check_npm.outputs.exists == 'true'
141
+ uses: actions/setup-node@v4
142
+ with:
143
+ node-version: '24.x'
144
+
145
+ - name: Update package.json version
146
+ if: steps.check_npm.outputs.exists == 'true'
147
+ run: npm version "${{ needs.release.outputs.new_version }}" --no-git-tag-version
148
+
149
+ - name: Publish to npm
150
+ if: steps.check_npm.outputs.exists == 'true'
151
+ run: npm publish --provenance --access public
@@ -7,6 +7,16 @@ on:
7
7
  description: 'Version bump type: patch or minor'
8
8
  required: true
9
9
  type: string
10
+ publish_pypi:
11
+ description: 'Whether to publish to PyPI'
12
+ required: false
13
+ type: boolean
14
+ default: true
15
+ publish_crates:
16
+ description: 'Whether to publish to crates.io'
17
+ required: false
18
+ type: boolean
19
+ default: true
10
20
  outputs:
11
21
  tag_created:
12
22
  description: 'Whether a tag was created'
@@ -127,7 +137,7 @@ jobs:
127
137
 
128
138
  build:
129
139
  needs: [check-python, tag]
130
- if: needs.check-python.outputs.has_python == 'true' && needs.tag.outputs.created == 'true'
140
+ if: needs.check-python.outputs.has_python == 'true' && needs.tag.outputs.created == 'true' && inputs.publish_pypi
131
141
  runs-on: ${{ matrix.os }}
132
142
  strategy:
133
143
  fail-fast: false
@@ -164,7 +174,7 @@ jobs:
164
174
 
165
175
  sdist:
166
176
  needs: [check-python, tag]
167
- if: needs.check-python.outputs.has_python == 'true' && needs.tag.outputs.created == 'true'
177
+ if: needs.check-python.outputs.has_python == 'true' && needs.tag.outputs.created == 'true' && inputs.publish_pypi
168
178
  runs-on: ubuntu-latest
169
179
  steps:
170
180
  - uses: actions/checkout@v6
@@ -187,7 +197,7 @@ jobs:
187
197
 
188
198
  publish-pypi:
189
199
  needs: [tag, build, sdist]
190
- if: always() && needs.tag.outputs.created == 'true' && needs.sdist.result == 'success'
200
+ if: always() && needs.tag.outputs.created == 'true' && needs.sdist.result == 'success' && inputs.publish_pypi
191
201
  runs-on: ubuntu-latest
192
202
  permissions:
193
203
  id-token: write
@@ -211,7 +221,7 @@ jobs:
211
221
 
212
222
  publish-crates:
213
223
  needs: tag
214
- if: needs.tag.outputs.created == 'true'
224
+ if: needs.tag.outputs.created == 'true' && inputs.publish_crates
215
225
  runs-on: ubuntu-latest
216
226
  steps:
217
227
  - uses: actions/checkout@v6
@@ -269,8 +279,8 @@ jobs:
269
279
  if: |
270
280
  always() &&
271
281
  needs.tag.outputs.created == 'true' &&
272
- needs.publish-pypi.result != 'success' &&
273
- needs.publish-crates.result != 'success'
282
+ (needs.publish-pypi.result == 'failure' ||
283
+ needs.publish-crates.result == 'failure')
274
284
  runs-on: ubuntu-latest
275
285
  permissions:
276
286
  contents: write
@@ -0,0 +1,23 @@
1
+ # Source and build artifacts
2
+ src/
3
+ target/
4
+ Cargo.*
5
+ *.rs
6
+ *.toml
7
+ *.lock
8
+
9
+ # Dev/CI infrastructure
10
+ .claude/
11
+ .github/
12
+ tests/
13
+ python/
14
+ .beads
15
+ .dolt/
16
+
17
+ # Docs and notes
18
+ AGENTS.md
19
+ SUMMARY.md
20
+ notes/
21
+
22
+ # Build tools
23
+ justfile
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dirsql
3
- Version: 0.0.12
3
+ Version: 0.0.14
4
4
  Requires-Dist: pytest>=8 ; extra == 'dev'
5
5
  Requires-Dist: pytest-describe>=2 ; extra == 'dev'
6
6
  Requires-Dist: pytest-asyncio>=0.23 ; extra == 'dev'
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "dirsql"
7
- version = "0.0.12"
7
+ version = "0.0.14"
8
8
  description = "Ephemeral SQL index over a local directory"
9
9
  license = "MIT"
10
10
  requires-python = ">=3.12"
@@ -25,3 +25,14 @@ dev = [
25
25
 
26
26
  [tool.maturin]
27
27
  features = ["pyo3/extension-module"]
28
+ exclude = [
29
+ ".github/",
30
+ ".claude/",
31
+ "tests/",
32
+ "notes/",
33
+ "index.js",
34
+ "package.json",
35
+ ".beads",
36
+ "AGENTS.md",
37
+ "justfile",
38
+ ]
@@ -1,48 +0,0 @@
1
- name: Minor Release
2
-
3
- on:
4
- workflow_dispatch:
5
-
6
- jobs:
7
- release:
8
- uses: ./.github/workflows/publish.yml
9
- with:
10
- bump_type: minor
11
- secrets: inherit
12
- permissions:
13
- contents: write
14
- id-token: write
15
-
16
- # npm publish inlined here because npm OIDC doesn't support reusable workflows
17
- publish-npm:
18
- needs: release
19
- if: always() && needs.release.outputs.tag_created == 'true'
20
- runs-on: ubuntu-latest
21
- permissions:
22
- contents: read
23
- id-token: write
24
- steps:
25
- - uses: actions/checkout@v6
26
-
27
- - name: Check if package.json exists
28
- id: check_npm
29
- run: |
30
- if [ -f package.json ]; then
31
- echo "exists=true" >> $GITHUB_OUTPUT
32
- else
33
- echo "exists=false" >> $GITHUB_OUTPUT
34
- fi
35
-
36
- - name: Setup Node.js
37
- if: steps.check_npm.outputs.exists == 'true'
38
- uses: actions/setup-node@v4
39
- with:
40
- node-version: '24.x'
41
-
42
- - name: Update package.json version
43
- if: steps.check_npm.outputs.exists == 'true'
44
- run: npm version "${{ needs.release.outputs.new_version }}" --no-git-tag-version
45
-
46
- - name: Publish to npm
47
- if: steps.check_npm.outputs.exists == 'true'
48
- run: npm publish --provenance --access public
@@ -1,80 +0,0 @@
1
- name: Patch Release
2
-
3
- on:
4
- schedule:
5
- # Run at 2:00 AM UTC every day
6
- - cron: '0 2 * * *'
7
- push:
8
- branches: [main]
9
- workflow_dispatch:
10
-
11
- jobs:
12
- check:
13
- runs-on: ubuntu-latest
14
- outputs:
15
- should_release: ${{ steps.decide.outputs.should_release }}
16
- steps:
17
- - id: decide
18
- env:
19
- EVENT: ${{ github.event_name }}
20
- STRATEGY: ${{ vars.RELEASE_STRATEGY }}
21
- COMMIT_MSG: ${{ github.event.head_commit.message }}
22
- run: |
23
- if [ "$EVENT" = "workflow_dispatch" ]; then
24
- echo "should_release=true" >> "$GITHUB_OUTPUT"
25
- elif [ "$EVENT" = "schedule" ] && [ "$STRATEGY" != "immediate" ]; then
26
- echo "should_release=true" >> "$GITHUB_OUTPUT"
27
- elif [ "$EVENT" = "push" ] && [ "$STRATEGY" = "immediate" ]; then
28
- case "$COMMIT_MSG" in
29
- *'[no-release]'*) echo "should_release=false" >> "$GITHUB_OUTPUT" ;;
30
- *) echo "should_release=true" >> "$GITHUB_OUTPUT" ;;
31
- esac
32
- else
33
- echo "should_release=false" >> "$GITHUB_OUTPUT"
34
- fi
35
-
36
- release:
37
- needs: check
38
- if: needs.check.outputs.should_release == 'true'
39
- uses: ./.github/workflows/publish.yml
40
- with:
41
- bump_type: patch
42
- secrets: inherit
43
- permissions:
44
- contents: write
45
- id-token: write
46
-
47
- # npm publish inlined here because npm OIDC doesn't support reusable workflows
48
- # (it validates the caller workflow name, not the called workflow)
49
- publish-npm:
50
- needs: [check, release]
51
- if: always() && needs.check.outputs.should_release == 'true' && needs.release.outputs.tag_created == 'true'
52
- runs-on: ubuntu-latest
53
- permissions:
54
- contents: read
55
- id-token: write
56
- steps:
57
- - uses: actions/checkout@v6
58
-
59
- - name: Check if package.json exists
60
- id: check_npm
61
- run: |
62
- if [ -f package.json ]; then
63
- echo "exists=true" >> $GITHUB_OUTPUT
64
- else
65
- echo "exists=false" >> $GITHUB_OUTPUT
66
- fi
67
-
68
- - name: Setup Node.js
69
- if: steps.check_npm.outputs.exists == 'true'
70
- uses: actions/setup-node@v4
71
- with:
72
- node-version: '24.x'
73
-
74
- - name: Update package.json version
75
- if: steps.check_npm.outputs.exists == 'true'
76
- run: npm version "${{ needs.release.outputs.new_version }}" --no-git-tag-version
77
-
78
- - name: Publish to npm
79
- if: steps.check_npm.outputs.exists == 'true'
80
- run: npm publish --provenance --access public
dirsql-0.0.12/index.js DELETED
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- module.exports = {
4
- message: "dirsql TypeScript SDK is not yet implemented. See https://github.com/thekevinscott/dirsql for status.",
5
- };
dirsql-0.0.12/justfile DELETED
@@ -1,53 +0,0 @@
1
- # Run all lints
2
- lint:
3
- ruff check .
4
-
5
- # Check formatting
6
- format-check:
7
- ruff format --check .
8
-
9
- # Auto-format
10
- format:
11
- ruff format .
12
-
13
- # Fix lint issues
14
- fix:
15
- ruff check --fix .
16
- ruff format .
17
-
18
- # Run Python unit tests (colocated)
19
- test-unit:
20
- pytest python/ -x -q
21
-
22
- # Run integration tests
23
- test-integration:
24
- pytest tests/integration/ -x -q
25
-
26
- # Run e2e tests (local only, not CI)
27
- test-e2e:
28
- pytest tests/e2e/ -x -q
29
-
30
- # CI test target (unit + integration, no e2e)
31
- test-ci:
32
- pytest python/ tests/integration/ -x -q --tb=short 2>/dev/null || echo "No tests found yet"
33
-
34
- # Run Rust tests
35
- test-rust:
36
- cargo test
37
-
38
- # Run Rust clippy
39
- clippy:
40
- cargo clippy -- -D warnings
41
-
42
- # Run Rust format check
43
- fmt-check:
44
- cargo fmt -- --check
45
-
46
- # Full local CI
47
- ci:
48
- just lint
49
- just format-check
50
- just clippy
51
- just fmt-check
52
- just test-rust
53
- just test-ci
@@ -1,8 +0,0 @@
1
- {
2
- "name": "dirsql",
3
- "version": "0.0.1",
4
- "description": "Ephemeral SQL index over a local directory",
5
- "license": "MIT",
6
- "repository": "https://github.com/thekevinscott/dirsql",
7
- "main": "index.js"
8
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes