Skip to content

Commit d741173

Browse files
committed
upstream update and making libs publishable
1 parent 2611a1f commit d741173

80 files changed

Lines changed: 422 additions & 456 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.

.changeset/config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77
"access": "public",
88
"baseBranch": "master",
99
"updateInternalDependencies": "patch",
10-
"ignore": ["esm-player-test", "@pie-element/math-inline", "@pie-element/math-templated"]
10+
"ignore": ["esm-player-test"]
1111
}

.compatibility/report.json

Lines changed: 203 additions & 204 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ Use release labels to tag a coordinated release wave across packages while keepi
106106

107107
### Manual Publish Recovery (GitHub Actions)
108108

109+
`@pie-element/*` and `@pie-lib/*` packages are configured as publishable and are released through this workflow.
110+
109111
If a publish fails after the version PR was already merged, rerun the Release workflow manually:
110112

111113
1. Actions → **Release****Run workflow**

bun.lock

Lines changed: 0 additions & 50 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/ARCHITECTURE.md

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
This is a modern implementation of the PIE (Platform Independent Elements) specification, built with TypeScript, ESM, and contemporary tooling. The project currently syncs React-based elements from the upstream [pie-elements](https://github.com/PieLabs/pie-elements) repository while providing modern ESM packaging, Vite builds, and improved developer experience.
66

77
**Current Status**: Early development (v0.1.0)
8+
89
- 28 React elements synced from upstream
910
- Core infrastructure and build tooling established
10-
- Elements are private packages (not yet published to npm)
11+
- Element and lib packages are publish-enabled (versioned/released via Changesets + GitHub Actions)
1112
- Future plans include native Svelte 5 implementations and public npm releases
1213

1314
## Core Philosophy
@@ -434,20 +435,14 @@ $ git push
434435

435436
**Publishing strategy:**
436437

437-
**Current Status**: All packages are currently marked as `"private": true` and are not published to npm. This is an early development phase decision.
438-
439-
**Future Publishing Plan**:
438+
**Current Status**: `@pie-element/*` and `@pie-lib/*` packages are configured to be publishable and are managed by the Changesets release workflow.
440439

441-
Once the project reaches a stable release (v1.0.0+):
440+
**Release behavior**:
442441

443-
- **Element packages** (`@pie-element/*`) - Will be published for external consumption
444-
- **Library packages** (`@pie-lib/*`) - Will **NOT** be published independently
445-
- These are internal implementation details of the elements
446-
- Bundled into element packages during build
447-
- External consumers will never import `@pie-lib` packages directly
448-
- Simplifies the public API surface
442+
- **Element packages** (`@pie-element/*`) are versioned and published by CI.
443+
- **Library packages** (`@pie-lib/*`) are also versioned/publishable so internal dependency graphs stay coherent during coordinated releases.
449444

450-
This will differ from the legacy approach where `@pie-lib` packages were independently published and consumed. In pie-elements-ng, `@pie-lib` packages exist purely for internal code organization within the monorepo.
445+
This differs from earlier phases where most synced packages were intentionally private.
451446

452447
**Trade-offs:**
453448

@@ -581,7 +576,7 @@ The architecture consists of three main layers:
581576
**Key organizational decisions**:
582577

583578
- **@pie-lib integration**: The `@pie-lib/*` packages (formerly a separate repository) are now in `packages/lib-react/` for better version management and coordination
584-
- **Versioning**: Independent versioning using Changesets. Most synced packages are marked private; core packages like `@pie-element/core` are publishable
579+
- **Versioning**: Changesets-managed coordinated versioning and publishing for `@pie-element/*` and `@pie-lib/*` packages
585580
- **Workspaces**: Bun workspaces with `"workspace:*"` references ensure consistency across the monorepo
586581

587582
### Element Package Anatomy
@@ -1170,12 +1165,10 @@ Note: `'unsafe-inline'` for styles is required for Svelte scoped styles.
11701165

11711166
### NPM Publishing
11721167

1173-
**Current Status**: Packages are not yet published to npm (all marked as `"private": true`).
1174-
1175-
**Future Publishing Strategy**: Once ready for public release, packages will be published via GitHub Actions:
1168+
**Current Strategy**: Publishing is CI-driven via GitHub Actions and Changesets:
11761169

11771170
1. Developer creates changeset: `bun run changeset`
1178-
2. PR merged to main
1171+
2. PR merged to `master`
11791172
3. GitHub Action creates "Version Packages" PR
11801173
4. Maintainer merges Version PR
11811174
5. Packages automatically published to npm
@@ -1190,7 +1183,7 @@ See [PUBLISHING.md](./PUBLISHING.md) for details (when available).
11901183

11911184
This project is designed to use **workspace-wide versioning** where all packages share the same version number. This is a deliberate architectural decision that differs from the upstream pie-elements/pie-lib projects.
11921185

1193-
**Current Status**: All packages are at version `0.1.0` and marked as `"private": true` (not published). Workspace-wide versioning will be enforced when packages are published publicly.
1186+
**Current Status**: `@pie-element/*` and `@pie-lib/*` packages are publish-enabled and released through the Changesets CI flow.
11941187

11951188
See [section 8 above](#8-workspace-wide-versioning) for a detailed explanation of why this approach was chosen and the problems it solves.
11961189

@@ -1222,12 +1215,12 @@ $ bun run changeset
12221215
@pie-element/multiple-choice: 1.5.0 # Will be published to npm
12231216
@pie-element/drag-in-the-blank: 1.5.0 # Will be published to npm (even though unchanged)
12241217

1225-
# Internal packages are versioned but NOT published:
1226-
@pie-lib/render-ui: 1.5.0 # Internal only (bundled into elements)
1227-
@pie-lib/math-rendering: 1.5.0 # Internal only (bundled into elements)
1218+
# Lib packages are versioned in the same coordinated release:
1219+
@pie-lib/render-ui: 1.5.0
1220+
@pie-lib/math-rendering: 1.5.0
12281221
```
12291222

1230-
**Current Reality**: All packages are at `0.1.0` and private (not published).
1223+
**Current Reality**: Package releases are coordinated through the CI release workflow.
12311224

12321225
This ensures all packages are always compatible and tested together. External consumers only interact with `@pie-element/*` packages, which bundle all necessary dependencies.
12331226

0 commit comments

Comments
 (0)