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
7 changes: 7 additions & 0 deletions .changeset/date-defaults-pipe-self.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"effect-app": patch
---

Fix `Date` / `DateValid` default helpers to pipe from their own schema.

`withConstructorDefault` and `withDecodingDefaultType` on `DateValid` previously piped from `DateFromString`, dropping the `isDateValid()` check (and, after the recent identifier split, the `DateValid` annotations) from the resulting defaulted schema. Both `Date` and `DateValid` now use `extendM` so the helpers attach to the underlying schema (`DateFromString` / `DateValidFromString`).
8 changes: 8 additions & 0 deletions .changeset/date-identifier-split.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"effect-app": patch
---

Distinguish `Date` and `DateValid` in JSON Schema output.

- `Date` now emits identifier `DateOrInvalid` with description noting the value may be invalid.
- `DateValid` now emits its own annotated string (identifier `Date`) with description stating a valid ISO 8601 date is required.
7 changes: 7 additions & 0 deletions .changeset/update-effect-pkgprnew.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"effect-app": patch
"@effect-app/infra": patch
"@effect-app/vue": patch
---

Update to effect `pkg.pr.new` snapshot at `a42ef66` (4.0.0-beta.66). Remove `Yieldable` and `asEffect()` (service tags are now `Effect` directly).
112 changes: 106 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,7 @@ on:
pull_request:
branches: [main]
workflow_call:
inputs:
run_build:
required: false
type: boolean
default: true
workflow_dispatch:

env:
CI: true
Expand All @@ -19,6 +15,10 @@ concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read
pull-requests: write

jobs:
lint:
name: Lint
Expand Down Expand Up @@ -60,7 +60,6 @@ jobs:

build:
name: Build
if: ${{ github.event_name != 'workflow_call' || inputs.run_build }}
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
Expand Down Expand Up @@ -97,6 +96,14 @@ jobs:
- name: Run build
run: pnpm build

- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-output
path: packages/*/dist
retention-days: 1
if-no-files-found: error

test:
name: Test
runs-on: ubuntu-latest
Expand Down Expand Up @@ -134,3 +141,96 @@ jobs:

- name: Run tests
run: pnpm test

snapshot:
name: Publish Snapshot
needs: [build]
if: |
(github.event_name == 'push' && github.ref == 'refs/heads/main' && github.actor != 'github-actions[bot]' && !contains(github.event.head_commit.message, 'chore: update versions')) ||
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) ||
github.event_name == 'workflow_dispatch'
timeout-minutes: 20
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: latest

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
run_install: false

- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT

- name: Setup pnpm cache
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-

- name: Install dependencies
run: pnpm install --frozen-lockfile
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-output
path: packages/

- name: Publish snapshots to pkg.pr.new
id: publish
run: pnpm exec pkg-pr-new publish ./packages/*

- name: Write snapshot usage summary
id: usage
shell: bash
run: |
PACKAGE_LOCATORS="${{ steps.publish.outputs.packages }}"
PACKAGE_URLS="${{ steps.publish.outputs.urls }}"
PUBLISHED_SHA="${{ steps.publish.outputs.sha }}"
if [ -z "$PACKAGE_LOCATORS" ] || [ -z "$PACKAGE_URLS" ] || [ -z "$PUBLISHED_SHA" ]; then
echo "pkg-pr-new did not return expected outputs (packages/urls/sha)" >&2
exit 1
fi

{
echo "## Snapshot publish complete"
echo
echo "- SHA: \`${PUBLISHED_SHA}\`"
echo
echo "Published via pkg.pr.new."
echo
echo "### Install package locators"
echo "\`\`\`bash"
echo "$PACKAGE_LOCATORS"
echo "\`\`\`"
echo
echo "### Package URLs"
echo "\`\`\`text"
echo "$PACKAGE_URLS"
echo "\`\`\`"
} >> "$GITHUB_STEP_SUMMARY"

{
echo "package_locators<<EOF"
echo "$PACKAGE_LOCATORS"
echo "EOF"
echo "package_urls<<EOF"
echo "$PACKAGE_URLS"
echo "EOF"
echo "published_sha=$PUBLISHED_SHA"
} >> "$GITHUB_OUTPUT"
138 changes: 0 additions & 138 deletions .github/workflows/snapshot.yml

This file was deleted.

15 changes: 12 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,15 @@
"@tanstack/query-core": "patches/@tanstack__query-core.patch",
"typescript@6.0.3": "patches/typescript.patch",
"@sendgrid/mail": "patches/@sendgrid__mail.patch"
},
"overrides": {
"effect": "https://pkg.pr.new/Effect-TS/effect-smol/effect@a42ef66",
"@effect/vitest": "https://pkg.pr.new/Effect-TS/effect-smol/@effect/vitest@a42ef66",
"@effect/platform-node": "https://pkg.pr.new/Effect-TS/effect-smol/@effect/platform-node@a42ef66",
"@effect/platform-node-shared": "https://pkg.pr.new/Effect-TS/effect-smol/@effect/platform-node-shared@a42ef66",
"@effect/platform-browser": "https://pkg.pr.new/Effect-TS/effect-smol/@effect/platform-browser@a42ef66",
"@effect/sql-sqlite-node": "https://pkg.pr.new/Effect-TS/effect-smol/@effect/sql-sqlite-node@a42ef66",
"@effect/atom-vue": "https://pkg.pr.new/Effect-TS/effect-smol/@effect/atom-vue@a42ef66"
}
},
"engines": {
Expand Down Expand Up @@ -65,8 +74,8 @@
"@effect-app/eslint-codegen-model": "workspace:*",
"@effect-app/infra": "workspace:*",
"@effect/language-service": "0.85.1",
"@effect/platform-node": "^4.0.0-beta.66",
"@effect/vitest": "^4.0.0-beta.66",
"@effect/platform-node": "https://pkg.pr.new/Effect-TS/effect-smol/@effect/platform-node@a42ef66",
"@effect/vitest": "https://pkg.pr.new/Effect-TS/effect-smol/@effect/vitest@a42ef66",
"@tsconfig/strictest": "^2.0.8",
"@types/lodash": "^4.17.24",
"@types/node": "25.6.0",
Expand All @@ -77,7 +86,7 @@
"@vue/eslint-config-typescript": "^14.7.0",
"concurrently": "^9.2.1",
"dprint": "^0.54.0",
"effect": "^4.0.0-beta.66",
"effect": "https://pkg.pr.new/Effect-TS/effect-smol/effect@a42ef66",
"effect-app": "workspace:*",
"enhanced-resolve": "^5.21.0",
"eslint": "^10.3.0",
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
"effect-app-cli": "./bin.js"
},
"dependencies": {
"@effect/platform-node": "^4.0.0-beta.66",
"effect": "^4.0.0-beta.66",
"@effect/platform-node": "https://pkg.pr.new/Effect-TS/effect-smol/@effect/platform-node@a42ef66",
"effect": "https://pkg.pr.new/Effect-TS/effect-smol/effect@a42ef66",
"js-yaml": "4.1.1",
"node-watch": "^0.7.4"
},
Expand Down
Loading
Loading