You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+13-2Lines changed: 13 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,6 +20,10 @@ To check for updates, run:
20
20
yarn upgrade-interactive
21
21
```
22
22
23
+
## Tooling requirements
24
+
25
+
Local tooling (the TypeScript scripts in `scripts/` and package tests) requires Node 22.18+ so `node file.ts` works without flags. The published packages still support Node 20+ at runtime.
26
+
23
27
## Linting
24
28
25
29
This project is linted using Biome. You can lint the project by running:
@@ -89,7 +93,7 @@ yarn pack
89
93
90
94
## Releasing
91
95
92
-
Only maintainers can make releases. Releases to [npm](https://www.npmjs.com) are automated using GitHub actions. To make a release, perform the following steps:
96
+
Only maintainers can make releases. Releases to [npm](https://www.npmjs.com) are automated using GitHub actions and Changesets (including the legacy `transloadit` package). To make a release, perform the following steps:
93
97
94
98
1. Create a changeset:
95
99
-`yarn changeset`
@@ -101,5 +105,12 @@ Only maintainers can make releases. Releases to [npm](https://www.npmjs.com) are
101
105
4. Publish (maintainers only; GitHub Actions handles the release):
102
106
-`yarn changeset publish`
103
107
5. When successful add [release notes](https://github.com/transloadit/node-sdk/releases).
104
-
6. If this was a pre-release, remember to reset the [npm `latest` tag](https://www.npmjs.com/package/transloadit?activeTab=versions) to the previous version (replace `x.y.z` with previous version):
108
+
6. Scoped packages publish with the `experimental` dist-tag by default. If you need to promote a scoped package to `latest`, update the tag manually.
109
+
7. If this was a pre-release, remember to reset the [npm `latest` tag](https://www.npmjs.com/package/transloadit?activeTab=versions) to the previous version (replace `x.y.z` with previous version):
-**Lockstep versions:** Changesets use a fixed group, so version bumps and releases are always in lock‑step across `transloadit`, `@transloadit/node`, `@transloadit/types`, and `@transloadit/zod`.
115
+
-**Legacy parity:**`transloadit` is generated from `@transloadit/node` artifacts via `scripts/prepare-transloadit.ts`, then verified with `yarn parity:transloadit`. Only `package.json` metadata drift is allowed; any other drift fails.
116
+
-**Experimental packages:** Scoped packages (`@transloadit/node`, `@transloadit/types`, `@transloadit/zod`) publish with the `experimental` dist-tag. The unscoped `transloadit` package remains stable.
Copy file name to clipboardExpand all lines: docs/monorepo-architecture.md
+13-1Lines changed: 13 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,6 +38,7 @@ node-sdk/
38
38
- Publishes the legacy package name.
39
39
- Built from the same runtime artifacts as `@transloadit/node`.
40
40
- Compatibility is verified via tarball fingerprinting.
41
+
- Allowed drift is limited to `package.json` metadata and is reported explicitly.
41
42
42
43
### @transloadit/types
43
44
- Pure type package; no Zod runtime dependency.
@@ -84,14 +85,25 @@ The `@transloadit/zod` `check` script runs `sync`, `tsc`, and runtime parity.
84
85
85
86
## Node & TypeScript execution
86
87
87
-
All internal scripts are TypeScript and run via Node 24’s erasable syntax support (no `--experimental-strip-types` in the zod package). Other packages may still use the flag where needed.
88
+
All internal scripts are TypeScript and rely on Node’s built-in type stripping. Tooling expects Node 22.18+ (or newer) so scripts can run directly via `node script.ts` without flags.
88
89
89
90
## Publishing strategy
90
91
91
92
-`@transloadit/node` is canonical.
92
93
-`transloadit` is generated from the same artifacts and fingerprinted.
93
94
-`@transloadit/types` and `@transloadit/zod` are versioned in lock‑step (changesets).
94
95
96
+
### Parity verification
97
+
98
+
The `transloadit` tarball is compared against a recorded baseline:
99
+
100
+
-`scripts/fingerprint-pack.ts` creates a tarball fingerprint.
101
+
-`scripts/verify-fingerprint.ts` compares fingerprints and reports drift.
102
+
-`docs/fingerprint/transloadit-baseline.json` is the baseline fingerprint.
103
+
-`docs/fingerprint/transloadit-baseline.package.json` is used to diff `package.json`.
104
+
105
+
Only `package.json` metadata drift is currently allowed; any other file difference fails the check.
106
+
95
107
## Future extensions
96
108
97
109
- Add JSON Schema export for v4 (`@transloadit/jsonschema` or subpath) once v4 tooling is stable.
0 commit comments