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
+29-10Lines changed: 29 additions & 10 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:
@@ -79,19 +83,34 @@ Coverage reports are:
79
83
80
84
View the coverage report locally by opening `coverage/index.html` in your browser.
81
85
82
-
## Releasing
86
+
## Packaging the legacy `transloadit` package
83
87
84
-
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:
88
+
The `packages/transloadit` folder is a generated legacy wrapper. The `src` directory and top-level `README.md`, `CHANGELOG.md`, and `LICENSE`are produced during packing by `scripts/prepare-transloadit.ts` and are not tracked in git. If you need to validate the legacy package contents, run:
85
89
86
-
1. Update `CHANGELOG.md` with a new entry describing the release. And `git add CHANGELOG.md && git commit -m "Update CHANGELOG.md"`.
87
-
2. Update the version using npm. This will update the version in the `package.json` file and create a git tag. E.g.:
90
+
```sh
91
+
yarn pack
92
+
```
88
93
89
-
-`npm version patch`
90
-
- OR, for pre-releases: `npm version prerelease`
94
+
## Releasing
91
95
92
-
3. Push the tag to GitHub: `git push origin main --tags`
93
-
4. If the tests pass, GitHub actions will now publish the new version to npm.
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:
97
+
98
+
1. Create a changeset:
99
+
-`yarn changeset`
100
+
2. Version packages (updates `CHANGELOG.md` + workspace `package.json` files):
101
+
-`yarn changeset version`
102
+
-`git add -A && git commit -m "chore: version packages"`
103
+
3. Push the version commit and tags:
104
+
-`git push origin main`
105
+
4. Publish (maintainers only; GitHub Actions handles the release):
106
+
-`yarn changeset publish`
94
107
5. When successful add [release notes](https://github.com/transloadit/node-sdk/releases).
95
-
6. If this was a pre-release, remember to run this 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):
110
+
-`npm dist-tag add transloadit@X.Y.Z latest`
111
+
112
+
### Release FAQ
96
113
97
-
-`npm dist-tag add transloadit@X.Y.Z latest`
114
+
-**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.
0 commit comments