Skip to content

Commit 276aeb1

Browse files
chore: prepare 0.6.0 release branch
1 parent a68e022 commit 276aeb1

35 files changed

Lines changed: 389 additions & 14339 deletions

.eslintrc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ env:
33
extends:
44
- eslint:recommended
55
- plugin:@typescript-eslint/recommended
6-
- plugin:plugin:vue/vue3-recommended
6+
- plugin:vue/vue3-recommended
77
parserOptions:
88
ecmaVersion: latest
99
parser: "@typescript-eslint/parser"

.github/workflows/release.yml

Lines changed: 59 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,73 @@ on:
55
tags:
66
- "v*"
77

8+
permissions:
9+
contents: write
10+
id-token: write
11+
812
jobs:
9-
release:
13+
publish:
1014
runs-on: ubuntu-latest
11-
permissions:
12-
contents: write
1315
steps:
1416
- uses: actions/checkout@v4
1517
with:
1618
fetch-depth: 0
1719

20+
- uses: pnpm/action-setup@v4
21+
with:
22+
version: 9.10.0
23+
1824
- uses: actions/setup-node@v4
1925
with:
20-
node-version: lts/*
26+
node-version: "20"
27+
cache: pnpm
28+
registry-url: "https://registry.npmjs.org"
29+
30+
- name: Update npm for trusted publishing
31+
run: npm install -g npm@latest
32+
33+
- name: Determine npm tag
34+
id: publish-meta
35+
run: |
36+
TAG_NAME=${GITHUB_REF#refs/tags/}
37+
VERSION=${TAG_NAME#v}
38+
39+
if [[ "$VERSION" =~ (^|[-.])next([.-]|$) ]]; then
40+
NPM_TAG="next"
41+
elif [[ "$VERSION" =~ (^|[-.])dev([.-]|$) ]]; then
42+
NPM_TAG="dev"
43+
else
44+
NPM_TAG="latest"
45+
fi
46+
47+
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
48+
echo "npm_tag=$NPM_TAG" >> "$GITHUB_OUTPUT"
49+
50+
- name: Verify branch for @latest releases
51+
if: steps.publish-meta.outputs.npm_tag == 'latest'
52+
run: |
53+
if ! git branch -r --contains HEAD | grep -q 'origin/main'; then
54+
echo "ERROR: @latest releases can only be published from main"
55+
exit 1
56+
fi
57+
58+
- name: Install dependencies
59+
run: pnpm install --frozen-lockfile
60+
61+
- name: Build package
62+
run: pnpm run build
63+
64+
- name: Validate package
65+
working-directory: dist
66+
run: npx publint
67+
68+
- name: Publish package
69+
working-directory: dist
70+
env:
71+
NPM_TAG: ${{ steps.publish-meta.outputs.npm_tag }}
72+
run: pnpm publish --access public --no-git-checks --tag "$NPM_TAG"
2173

22-
- run: npx changelogithub
74+
- name: Create GitHub release notes
75+
run: npx changelogithub
2376
env:
24-
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
77+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ pnpm-debug.log*
88
lerna-debug.log*
99

1010
node_modules
11+
dist
1112
dist-ssr
1213
*.local
1314

README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,4 @@ Check out the docs here!
1515

1616
Created by the <a href="https://formkit.com">FormKit team</a>.
1717

18-
> [!NOTE]
19-
> Unlike many projects this repository includes the `dist` directory since the documentation extracts TypeScript types from the build source code.
20-
2118
## About this repository

build.ts

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ const __dirname = dirname(__filename);
5858
outExtension: ({ format }) => ({ js: format === "cjs" ? ".cjs" : ".mjs" }),
5959
});
6060

61-
async function replaceImports(fileName) {
61+
async function replaceImports(fileName: string) {
6262
const format = fileName.endsWith("mjs") ? "mjs" : "cjs";
6363
const file = await readFile(resolve(__dirname, `${fileName}`), "utf8");
6464
const updatedFile = file.replace(
@@ -77,9 +77,54 @@ const __dirname = dirname(__filename);
7777

7878
console.log("Rewriting package.json...");
7979

80+
const publishExports = {
81+
"./vue": {
82+
require: {
83+
types: "./vue/index.d.cts",
84+
default: "./vue/index.cjs",
85+
},
86+
import: {
87+
types: "./vue/index.d.ts",
88+
default: "./vue/index.mjs",
89+
},
90+
},
91+
"./react": {
92+
require: {
93+
types: "./react/index.d.cts",
94+
default: "./react/index.cjs",
95+
},
96+
import: {
97+
types: "./react/index.d.ts",
98+
default: "./react/index.mjs",
99+
},
100+
},
101+
"./solid": {
102+
require: {
103+
types: "./solid/index.d.cts",
104+
default: "./solid/index.cjs",
105+
},
106+
import: {
107+
types: "./solid/index.d.ts",
108+
default: "./solid/index.mjs",
109+
},
110+
},
111+
".": {
112+
require: {
113+
types: "./index.d.cts",
114+
default: "./index.cjs",
115+
},
116+
import: {
117+
types: "./index.d.ts",
118+
default: "./index.mjs",
119+
},
120+
},
121+
};
122+
80123
const packageJson = {
81-
name: "@formkit/drag-and-drop",
82124
...JSON.parse(await readFile(resolve(__dirname, `package.json`), "utf8")),
125+
main: "./index.cjs",
126+
types: "./index.d.cts",
127+
exports: publishExports,
83128
};
84129
delete packageJson.devDependencies;
85130
delete packageJson.private;

dist/LICENSE

Lines changed: 0 additions & 21 deletions
This file was deleted.

dist/README.md

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)