Skip to content

Commit 963a427

Browse files
authored
Merge pull request #42 from ryanbas21/feat/effect-subtree-reference
chore: vendor Effect repo as git subtree reference
2 parents a15ebd5 + b8cb7f4 commit 963a427

2,213 files changed

Lines changed: 636736 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.vscode/settings.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"typescript.preferences.autoImportFileExcludePatterns": ["repos/**"],
3+
"javascript.preferences.autoImportFileExcludePatterns": ["repos/**"],
4+
"files.exclude": {
5+
"repos/**": true
6+
},
7+
"files.watcherExclude": {
8+
"repos/**": true
9+
},
10+
"search.exclude": {
11+
"repos/**": true
12+
}
13+
}

CLAUDE.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,13 @@ Uses default label vocabulary. See `docs/agents/triage-labels.md`.
1111
### Domain docs
1212

1313
Single-context layout — one `CONTEXT.md` and `docs/adr/` at the repo root. See `docs/agents/domain.md`.
14+
15+
### Effect reference source
16+
17+
The Effect repository is vendored at `repos/effect/` as a git subtree (read-only reference material). Use it to explore APIs, find usage examples, and understand implementation details. **Never modify files under `repos/`.**
18+
19+
To update the vendored source:
20+
21+
```bash
22+
git subtree pull --prefix=repos/effect https://github.com/Effect-TS/effect.git main --squash
23+
```

eslint.config.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export default [
2525
'**/functions/**',
2626
'**/codegen/**',
2727
'apps/**',
28+
'repos/**',
2829
],
2930
},
3031
...compat.extends('plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended'),
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"$schema": "https://unpkg.com/@changesets/config@1.6.4/schema.json",
3+
"changelog": ["@changesets/changelog-github", { "repo": "Effect-TS/effect" }],
4+
"commit": false,
5+
"linked": [],
6+
"access": "restricted",
7+
"baseBranch": "main",
8+
"updateInternalDependencies": "patch",
9+
"ignore": ["scratchpad"],
10+
"snapshot": {
11+
"useCalculatedVersion": false,
12+
"prereleaseTemplate": "{tag}-{commit}"
13+
}
14+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@effect/cli": patch
3+
---
4+
5+
fix(cli): replace all hyphens in shell completion command names

repos/effect/.envrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
use flake;

repos/effect/.github/CODEOWNERS

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/packages/effect/ @mikearnaldi
2+
3+
/packages/effect/src/Arbitrary.ts @gcanti
4+
/packages/effect/src/JSONSchema.ts @gcanti
5+
/packages/effect/src/ParseResult.ts @gcanti
6+
/packages/effect/src/Pretty.ts @gcanti
7+
/packages/effect/src/Schema.ts @gcanti
8+
/packages/effect/src/SchemaAST.ts @gcanti
9+
/packages/effect/src/internal/schema/ @gcanti
10+
/packages/effect/test/Schema/ @gcanti
11+
12+
/packages/ai/ @IMax153
13+
14+
/packages/cli/ @IMax153
15+
16+
/packages/cluster/ @tim-smart
17+
18+
/packages/experimental/ @tim-smart
19+
20+
/packages/opentelemetry/ @tim-smart
21+
22+
/packages/platform/ @tim-smart
23+
/packages/platform-browser/ @tim-smart
24+
/packages/platform-bun/ @tim-smart
25+
/packages/platform-node/ @tim-smart
26+
/packages/platform-node-shared/ @tim-smart
27+
28+
/packages/printer/ @IMax153
29+
/packages/printer-ansi/ @IMax153
30+
31+
/packages/rpc/ @tim-smart
32+
33+
/packages/sql/ @tim-smart
34+
/packages/sql-clickhouse/ @tim-smart
35+
/packages/sql-d1/ @tim-smart
36+
/packages/sql-drizzle/ @tim-smart
37+
/packages/sql-kysely/ @tim-smart
38+
/packages/sql-libsql/ @tim-smart
39+
/packages/sql-mssql/ @tim-smart
40+
/packages/sql-mysql2/ @tim-smart
41+
/packages/sql-pg/ @tim-smart
42+
/packages/sql-sqlite-bun/ @tim-smart
43+
/packages/sql-sqlite-do/ @tim-smart
44+
/packages/sql-sqlite-node/ @tim-smart
45+
/packages/sql-sqlite-react-native/ @tim-smart
46+
/packages/sql-sqlite-wasm/ @tim-smart
47+
48+
/packages/typeclass/ @gcanti
49+
50+
/packages/vitest/ @mikearnaldi
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Setup
2+
description: Perform standard setup and install dependencies using pnpm.
3+
inputs:
4+
node-version:
5+
description: The version of Node.js to install
6+
required: true
7+
default: 23.7.0
8+
registry-url:
9+
description: Optional registry to set up for auth.
10+
11+
runs:
12+
using: composite
13+
steps:
14+
- name: Install pnpm
15+
uses: pnpm/action-setup@v3
16+
- name: Install node
17+
uses: actions/setup-node@v4
18+
with:
19+
cache: pnpm
20+
node-version: ${{ inputs.node-version }}
21+
registry-url: ${{ inputs.registry-url }}
22+
- name: Install dependencies
23+
shell: bash
24+
run: pnpm install
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: Check
2+
on:
3+
workflow_dispatch:
4+
pull_request:
5+
branches: [main, next-minor, next-major]
6+
push:
7+
branches: [main, next-minor, next-major]
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
permissions: {}
14+
15+
jobs:
16+
types:
17+
name: Types
18+
runs-on: ubuntu-latest
19+
timeout-minutes: 10
20+
steps:
21+
- uses: actions/checkout@v4
22+
- name: Install dependencies
23+
uses: ./.github/actions/setup
24+
- run: pnpm check
25+
- run: pnpm test-types --target '>=5.4'
26+
27+
lint:
28+
name: Lint
29+
runs-on: ubuntu-latest
30+
timeout-minutes: 10
31+
steps:
32+
- uses: actions/checkout@v4
33+
- name: Install dependencies
34+
uses: ./.github/actions/setup
35+
- run: pnpm circular
36+
- run: pnpm lint
37+
- run: pnpm codegen
38+
- name: Check for codegen changes
39+
run: git diff --exit-code
40+
41+
test:
42+
name: Test (${{ matrix.runtime }} ${{ matrix.shard }})
43+
runs-on: ubuntu-latest
44+
timeout-minutes: 10
45+
strategy:
46+
fail-fast: false
47+
matrix:
48+
shard: [1/4, 2/4, 3/4, 4/4]
49+
# runtime: [Node, Bun] # TODO: Re-enable bun test suite after https://github.com/oven-sh/bun/issues/4145 is resolved
50+
runtime: [Node]
51+
steps:
52+
- uses: actions/checkout@v4
53+
- name: Install dependencies
54+
uses: ./.github/actions/setup
55+
- uses: oven-sh/setup-bun@v1
56+
if: matrix.runtime == 'Bun'
57+
with:
58+
bun-version: 1.0.25
59+
- name: Test
60+
run: pnpm vitest --shard ${{ matrix.shard }}
61+
if: matrix.runtime == 'Node'
62+
- name: Test
63+
run: bun vitest --shard ${{ matrix.shard }}
64+
if: matrix.runtime == 'Bun'
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Pages
2+
on:
3+
workflow_dispatch:
4+
pull_request:
5+
branches: [main, next-minor, next-major]
6+
push:
7+
branches: [main, next-minor, next-major]
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
permissions: {}
14+
15+
jobs:
16+
build:
17+
name: Build
18+
runs-on: ubuntu-latest
19+
timeout-minutes: 30
20+
steps:
21+
- uses: actions/checkout@v4
22+
- name: Install dependencies
23+
uses: ./.github/actions/setup
24+
- run: pnpm docgen
25+
- name: Build pages Jekyll
26+
if: github.repository_owner == 'Effect-Ts' && github.event_name == 'push' && github.ref == 'refs/heads/main'
27+
uses: actions/jekyll-build-pages@v1
28+
with:
29+
source: ./docs
30+
destination: ./_site
31+
- name: Upload pages artifact
32+
if: github.repository_owner == 'Effect-Ts' && github.event_name == 'push' && github.ref == 'refs/heads/main'
33+
uses: actions/upload-pages-artifact@v3
34+
35+
deploy:
36+
if: github.repository_owner == 'Effect-Ts' && github.event_name == 'push' && github.ref == 'refs/heads/main'
37+
name: Deploy
38+
runs-on: ubuntu-latest
39+
timeout-minutes: 10
40+
needs: build
41+
permissions:
42+
pages: write # To deploy to GitHub Pages
43+
id-token: write # To verify the deployment originates from an appropriate source
44+
environment:
45+
name: github-pages
46+
url: ${{ steps.deployment.outputs.page_url }}
47+
steps:
48+
- name: Deploy to GitHub Pages
49+
id: deployment
50+
uses: actions/deploy-pages@v4

0 commit comments

Comments
 (0)