Skip to content
Closed
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
8 changes: 6 additions & 2 deletions .github/workflows/azure-functions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,22 +23,26 @@ jobs:
- name: 'Checkout GitHub Action'
uses: actions/checkout@v6

- name: Enable Corepack
run: corepack enable

- name: Setup Node ${{ env.NODE_VERSION }} Environment
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'

- name: 'Install dependencies'
shell: bash
run: |
pushd './${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}'
npm install --production
pnpm install --prod --frozen-lockfile
popd

- name: 'Build TypeScript'
shell: bash
run: |
npm run build
pnpm run build

- name: 'Deploy to Azure Functions'
uses: Azure/functions-action@v1
Expand Down
15 changes: 9 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,26 +23,29 @@ jobs:
- name: Checkout code
uses: actions/checkout@v6

- name: Enable Corepack
run: corepack enable

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
cache: 'pnpm'

- name: Install dependencies
run: npm ci
run: pnpm install --frozen-lockfile

- name: Type check
run: npm run typecheck
run: pnpm run typecheck

- name: Build
run: npm run build
run: pnpm run build

- name: Run tests
run: npm test
run: pnpm test

- name: Decision ledger scan
run: npm run scan:rules
run: pnpm run scan:rules

- name: Upload contract index
uses: actions/upload-artifact@v6
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,20 +36,24 @@ jobs:
- name: Checkout code
uses: actions/checkout@v6

- name: Enable Corepack
run: corepack enable

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20.x'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'

- name: Install dependencies
run: npm ci
run: pnpm install --frozen-lockfile

- name: Build
run: npm run build
run: pnpm run build

- name: Publish to NPM
run: npm publish --access public
run: pnpm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,20 +38,24 @@ jobs:
ref: ${{ steps.determine_tag.outputs.tag }}
fetch-depth: 0

- name: Enable Corepack
run: corepack enable

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20.x'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'

- name: Install dependencies
run: npm ci
run: pnpm install --frozen-lockfile

- name: Build
run: npm run build
run: pnpm run build

- name: Run tests
run: npm test
run: pnpm test

- name: Get version from tag
id: get_version
Expand Down
32 changes: 16 additions & 16 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,16 @@ git clone https://github.com/YOUR_USERNAME/praxis.git
cd praxis

# Install dependencies
npm install
pnpm install

# Build the library
npm run build
pnpm run build

# Run tests
npm test
pnpm test

# Type check
npm run typecheck
pnpm run typecheck
```

### Deno Setup (Experimental)
Expand Down Expand Up @@ -106,9 +106,9 @@ Run `deno fmt` before committing to ensure consistent style.

```bash
# Node.js (Vitest)
npm test
npm run test:watch # Watch mode
npm run test:ui # UI mode
pnpm test
pnpm run test:watch # Watch mode
pnpm run test:ui # UI mode

# Deno
deno task test
Expand All @@ -128,9 +128,9 @@ If your change adds or modifies any rule or constraint:
4. **Run dogfood checks**:

```bash
npm run scan:rules
npm run build
npm run validate:contracts
pnpm run scan:rules
pnpm run build
pnpm run validate:contracts
```

See `docs/decision-ledger/DOGFOODING.md` for full guidance.
Expand Down Expand Up @@ -265,13 +265,13 @@ The repository uses npm workspaces. When developing:

```bash
# Install all dependencies (from root)
npm install
pnpm install

# Build all packages
npm run build
pnpm run build

# Test all packages
npm test
pnpm test

# Work on a specific package
cd packages/praxis-core
Expand Down Expand Up @@ -342,9 +342,9 @@ All core module changes require Decision Ledger compliance:
4. **Validation**: Run validation before submitting PR:

```bash
npm run scan:rules
npm run build
npm run validate:contracts
pnpm run scan:rules
pnpm run build
pnpm run validate:contracts
```

### Core Breaking Change Policy
Expand Down
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -577,7 +577,7 @@ Comprehensive example demonstrating all Praxis features in a single application:
- Constraints enforcing business rules

```bash
npm run build
pnpm run build
node dist/examples/hero-ecommerce/index.js
```

Expand Down Expand Up @@ -628,7 +628,7 @@ Demonstrates the terminal node feature for command execution:
- Both text and widget input modes

```bash
npm run build
pnpm run build
node examples/terminal-node/index.js
```

Expand All @@ -639,7 +639,7 @@ See [examples/terminal-node/README.md](./examples/terminal-node/README.md) and [
Login/logout with facts, rules, and constraints.

```bash
npm run build
pnpm run build
node dist/examples/auth-basic/index.js
```

Expand All @@ -648,7 +648,7 @@ node dist/examples/auth-basic/index.js
Shopping cart with multiple rules, constraints, and complex state management.

```bash
npm run build
pnpm run build
node dist/examples/cart/index.js
```

Expand All @@ -657,7 +657,7 @@ node dist/examples/cart/index.js
Counter example showing Svelte v5 integration with reactive stores.

```bash
npm run build
pnpm run build
node dist/examples/svelte-counter/index.js
```

Expand Down Expand Up @@ -697,11 +697,11 @@ Features:
- CLI integration for CI/CD pipelines

```bash
npm run build
pnpm run build
node examples/decision-ledger/index.js

# Validate contracts
npx praxis validate --registry examples/sample-registry.js
pnpm exec praxis validate --registry examples/sample-registry.js
```

See [examples/decision-ledger/README.md](./examples/decision-ledger/README.md)
Expand Down Expand Up @@ -1120,16 +1120,16 @@ See [CROSS_LANGUAGE_SYNC.md](./CROSS_LANGUAGE_SYNC.md) for details on keeping im

```bash
# Install dependencies
npm install
pnpm install

# Build
npm run build
pnpm run build

# Run tests
npm test
pnpm test

# Type check
npm run typecheck
pnpm run typecheck
```

### Deno Development
Expand Down
4 changes: 2 additions & 2 deletions docs/decision-ledger/contract-index.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"generatedAt": "2026-01-30T07:07:22.057Z",
"generatedAt": "2026-02-03T02:19:10.991Z",
"root": "/home/runner/work/praxis/praxis",
"summary": {
"rules": 45,
"constraints": 8,
"files": 117
"files": 128
},
"rules": [
{
Expand Down
Loading