Fixing failing tasks in ci workflow (#394)

* fixing jest config

* fixing eslint errors for react-form

* fixing script lints

* configuring prettier to ignore built files

* updating eslint deps

* updating pnpm lockfile

* updating dep install step in pr workflow

* rm reference to custom validatePackages script

* fixing code sandbox failure

* attempting to fix frozen locfile issue

* fixing install:csb step

* removing unnecessary type assignment
This commit is contained in:
Zachary DeRose
2023-04-25 21:59:49 -07:00
committed by GitHub
parent eac18858f0
commit 449f5ee806
12 changed files with 1340 additions and 425 deletions

View File

@@ -22,7 +22,7 @@ jobs:
node-version: 16.14.2 node-version: 16.14.2
cache: 'pnpm' cache: 'pnpm'
- name: Install dependencies - name: Install dependencies
run: pnpm --filter "./packages/**" --filter form --prefer-offline install run: pnpm --filter "./packages/**" --filter form --prefer-offline install --no-frozen-lockfile
- name: Run Tests - name: Run Tests
uses: nick-fields/retry@v2.8.3 uses: nick-fields/retry@v2.8.3
with: with:
@@ -48,7 +48,7 @@ jobs:
node-version: 16.14.2 node-version: 16.14.2
cache: 'pnpm' cache: 'pnpm'
- name: Install dependencies - name: Install dependencies
run: pnpm --filter "./packages/**" --filter form --prefer-offline install run: pnpm --filter "./packages/**" --filter form --prefer-offline install --no-frozen-lockfile
- run: pnpm run test:eslint --base=${{ github.event.pull_request.base.sha }} - run: pnpm run test:eslint --base=${{ github.event.pull_request.base.sha }}
typecheck: typecheck:
name: 'Typecheck' name: 'Typecheck'
@@ -67,7 +67,7 @@ jobs:
node-version: 16.14.2 node-version: 16.14.2
cache: 'pnpm' cache: 'pnpm'
- name: Install dependencies - name: Install dependencies
run: pnpm --filter "./packages/**" --filter form --prefer-offline install run: pnpm --filter "./packages/**" --filter form --prefer-offline install --no-frozen-lockfile
- run: pnpm run test:types --base=${{ github.event.pull_request.base.sha }} - run: pnpm run test:types --base=${{ github.event.pull_request.base.sha }}
format: format:
name: 'Format' name: 'Format'
@@ -86,7 +86,7 @@ jobs:
node-version: 16.14.2 node-version: 16.14.2
cache: 'pnpm' cache: 'pnpm'
- name: Install dependencies - name: Install dependencies
run: pnpm --filter "./packages/**" --filter form --prefer-offline install run: pnpm --filter "./packages/**" --filter form --prefer-offline install --no-frozen-lockfile
- run: pnpm run test:format --base=${{ github.event.pull_request.base.sha }} - run: pnpm run test:format --base=${{ github.event.pull_request.base.sha }}
test-react-17: test-react-17:
name: 'Test React 17' name: 'Test React 17'
@@ -105,7 +105,7 @@ jobs:
node-version: 16.14.2 node-version: 16.14.2
cache: 'pnpm' cache: 'pnpm'
- name: Install dependencies - name: Install dependencies
run: pnpm --filter "./packages/**" --filter form --prefer-offline install run: pnpm --filter "./packages/**" --filter form --prefer-offline install --no-frozen-lockfile
- name: Run Tests - name: Run Tests
uses: nick-fields/retry@v2.8.3 uses: nick-fields/retry@v2.8.3
with: with:
@@ -127,7 +127,7 @@ jobs:
node-version: 16.14.2 node-version: 16.14.2
cache: 'pnpm' cache: 'pnpm'
- name: Install dependencies - name: Install dependencies
run: pnpm --filter "./packages/**" --filter form --prefer-offline install run: pnpm --filter "./packages/**" --filter form --prefer-offline install --no-frozen-lockfile
- run: pnpm run test:build - run: pnpm run test:build
env: env:
BUNDLEWATCH_GITHUB_TOKEN: ${{ secrets.BUNDLEWATCH_GITHUB_TOKEN }} BUNDLEWATCH_GITHUB_TOKEN: ${{ secrets.BUNDLEWATCH_GITHUB_TOKEN }}

View File

@@ -1 +1,2 @@
/packages/svelte-form/.svelte-kit /packages/svelte-form/.svelte-kit
/packages/*/build

View File

@@ -6,7 +6,7 @@
"nx-reset": "nx reset", "nx-reset": "nx reset",
"clean": "pnpm --filter \"./packages/**\" run clean", "clean": "pnpm --filter \"./packages/**\" run clean",
"preinstall": "node -e \"if(process.env.CI == 'true') {console.log('Skipping preinstall...'); process.exit(1)}\" || npx -y only-allow pnpm", "preinstall": "node -e \"if(process.env.CI == 'true') {console.log('Skipping preinstall...'); process.exit(1)}\" || npx -y only-allow pnpm",
"install:csb": "pnpm install --frozen-lockfile", "install:csb": "pnpm --filter \"./packages/**\" --prefer-offline install --no-frozen-lockfile",
"test": "pnpm run test:ci", "test": "pnpm run test:ci",
"test:ci": "nx affected --targets=test:lib,test:types,test:eslint,test:format --parallel=5", "test:ci": "nx affected --targets=test:lib,test:types,test:eslint,test:format --parallel=5",
"test:react:17": "nx affected --target=test:lib --parallel=5", "test:react:17": "nx affected --target=test:lib --parallel=5",
@@ -66,21 +66,21 @@
"chalk": "^4.1.2", "chalk": "^4.1.2",
"concurrently": "^7.1.0", "concurrently": "^7.1.0",
"current-git-branch": "^1.1.0", "current-git-branch": "^1.1.0",
"eslint": "7.x", "eslint": "8.34.0",
"eslint-config-prettier": "^6.11.0", "eslint-config-prettier": "^8.6.0",
"eslint-config-react-app": "^5.2.1", "eslint-config-react-app": "^7.0.1",
"eslint-config-standard": "^14.1.1", "eslint-config-standard": "^17.0.0",
"eslint-config-standard-react": "^9.2.0", "eslint-config-standard-react": "^13.0.0",
"eslint-import-resolver-typescript": "^2.7.1", "eslint-import-resolver-typescript": "^3.5.3",
"eslint-plugin-flowtype": "5.x", "eslint-plugin-flowtype": "8.0.3",
"eslint-plugin-import": "^2.22.1", "eslint-plugin-import": "^2.27.5",
"eslint-plugin-jsx-a11y": "6.x", "eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^3.1.3", "eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-promise": "^4.2.1", "eslint-plugin-promise": "^6.1.1",
"eslint-plugin-react": "7.20.0", "eslint-plugin-react": "7.32.2",
"eslint-plugin-react-hooks": "^4.3.0", "eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-standard": "^4.0.1", "eslint-plugin-standard": "^5.0.0",
"git-log-parser": "^1.2.0", "git-log-parser": "^1.2.0",
"jest": "^27.5.1", "jest": "^27.5.1",
"jsonfile": "^6.1.0", "jsonfile": "^6.1.0",

View File

@@ -1,6 +0,0 @@
{
"parserOptions": {
"project": "./tsconfig.json",
"sourceType": "module"
}
}

View File

@@ -0,0 +1,13 @@
// @ts-check
/** @type {import('eslint').Linter.Config} */
const config = {
parser: '@typescript-eslint/parser',
parserOptions: {
tsconfigRootDir: __dirname,
project: './tsconfig.eslint.json',
sourceType: 'module',
},
}
module.exports = config

View File

@@ -1,6 +1,5 @@
export default { export default {
displayName: 'react-form', displayName: 'react-form',
preset: '../../jest-preset.js', preset: '../../jest-preset.js',
setupFilesAfterEnv: ['./jest.setup.ts'],
testMatch: ['<rootDir>/src/**/*.test.tsx', '<rootDir>/codemods/**/*.test.js'], testMatch: ['<rootDir>/src/**/*.test.tsx', '<rootDir>/codemods/**/*.test.js'],
} }

View File

@@ -1,7 +1,7 @@
import { FormApi } from '@tanstack/form-core' import type { FormApi } from '@tanstack/form-core'
import * as React from 'react' import * as React from 'react'
export const formContext = React.createContext<FormApi<any>>(null!) export const formContext = React.createContext<FormApi<any> | null>(null)
export function useFormContext(customFormApi?: FormApi<any>) { export function useFormContext(customFormApi?: FormApi<any>) {
const formApi = React.useContext(formContext) const formApi = React.useContext(formContext)

View File

@@ -0,0 +1,7 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"noEmit": true
},
"include": ["**/*.ts", "**/*.tsx", "./.eslintrc.cjs"]
}

1641
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -17,11 +17,7 @@
"dependsOn": ["rollup", "^build:types", "^build"] "dependsOn": ["rollup", "^build:types", "^build"]
}, },
"test:build": { "test:build": {
"executor": "nx:run-commands", "command": "bundlewatch"
"options": {
"commands": ["bundlewatch", "pnpm run validatePackages"],
"parallel": true
}
} }
}, },
"implicitDependencies": ["@tanstack/form-core", "@tanstack/react-form"] "implicitDependencies": ["@tanstack/form-core", "@tanstack/react-form"]

View File

@@ -31,7 +31,7 @@ async function run() {
// (process.env.PR_NUMBER ? `pr-${process.env.PR_NUMBER}` : currentGitBranch()) // (process.env.PR_NUMBER ? `pr-${process.env.PR_NUMBER}` : currentGitBranch())
currentGitBranch() currentGitBranch()
const branchConfig: BranchConfig = branchConfigs[branchName] const branchConfig = branchConfigs[branchName]
if (!branchConfig) { if (!branchConfig) {
console.log(`No publish config found for branch: ${branchName}`) console.log(`No publish config found for branch: ${branchName}`)
@@ -136,12 +136,14 @@ async function run() {
// Pares the commit messsages, log them, and determine the type of release needed // Pares the commit messsages, log them, and determine the type of release needed
let recommendedReleaseLevel: number = commitsSinceLatestTag.reduce( let recommendedReleaseLevel: number = commitsSinceLatestTag.reduce(
(releaseLevel, commit) => { (releaseLevel, commit) => {
if (['fix', 'refactor', 'perf'].includes(commit.parsed.type!)) { if (commit.parsed) {
if (['fix', 'refactor', 'perf'].includes(commit.parsed.type || '')) {
releaseLevel = Math.max(releaseLevel, 0) releaseLevel = Math.max(releaseLevel, 0)
} }
if (['feat'].includes(commit.parsed.type!)) { if (['feat'].includes(commit.parsed.type || '')) {
releaseLevel = Math.max(releaseLevel, 1) releaseLevel = Math.max(releaseLevel, 1)
} }
}
if (commit.body.includes('BREAKING CHANGE')) { if (commit.body.includes('BREAKING CHANGE')) {
releaseLevel = Math.max(releaseLevel, 2) releaseLevel = Math.max(releaseLevel, 2)
} }
@@ -173,14 +175,14 @@ async function run() {
const changedPackages = RELEASE_ALL const changedPackages = RELEASE_ALL
? packages ? packages
: changedFiles.reduce((changedPackages, file) => { : changedFiles.reduce((changedPackagesAcc: Package[], file) => {
const pkg = packages.find((p) => const pkg = packages.find((p) =>
file.startsWith(path.join('packages', p.packageDir, p.srcDir)), file.startsWith(path.join('packages', p.packageDir, p.srcDir)),
) )
if (pkg && !changedPackages.find((d) => d.name === pkg.name)) { if (pkg && !changedPackagesAcc.find((d) => d.name === pkg.name)) {
changedPackages.push(pkg) changedPackagesAcc.push(pkg)
} }
return changedPackages return changedPackagesAcc
}, [] as Package[]) }, [] as Package[])
// If a package has a dependency that has been updated, we need to update the // If a package has a dependency that has been updated, we need to update the
@@ -244,7 +246,7 @@ async function run() {
: await Promise.all( : await Promise.all(
Object.entries( Object.entries(
commitsSinceLatestTag.reduce((acc, next) => { commitsSinceLatestTag.reduce((acc, next) => {
const type = next.parsed.type.toLowerCase() ?? 'other' const type = next.parsed?.type?.toLowerCase() ?? 'other'
return { return {
...acc, ...acc,
@@ -275,7 +277,7 @@ async function run() {
if (process.env.GH_TOKEN) { if (process.env.GH_TOKEN) {
const query = `${ const query = `${
commit.author.email ?? commit.committer.email commit.author?.email ?? commit.committer.email
}` }`
const res = await axios.get( const res = await axios.get(
@@ -293,19 +295,19 @@ async function run() {
username = res.data.items[0]?.login username = res.data.items[0]?.login
} }
const scope = commit.parsed.scope const scope = commit.parsed?.scope
? `${commit.parsed.scope}: ` ? `${commit.parsed.scope}: `
: '' : ''
const subject = commit.parsed.subject ?? commit.subject const subject = commit.parsed?.subject ?? commit.subject
// const commitUrl = `${remoteURL}/commit/${commit.commit.long}`; // const commitUrl = `${remoteURL}/commit/${commit.commit.long}`;
return `- ${scope}${subject} (${commit.commit.short}) ${ return `- ${scope}${subject} (${commit.commit.short}) ${
username username
? `by @${username}` ? `by @${username}`
: `by ${commit.author.name ?? commit.author.email}` : `by ${commit.author?.name ?? commit.author?.email}`
}` }`
}), }),
).then((commits) => [type, commits] as const) ).then((commitDescriptions) => [type, commitDescriptions] as const)
}), }),
).then((groups) => { ).then((groups) => {
return groups return groups
@@ -409,7 +411,7 @@ async function run() {
} }
console.info('Testing packages...') console.info('Testing packages...')
execSync(`pnpm test:ci ${SKIP_TESTS ? '|| exit 0' : ''}`, { execSync(`pnpm test:ci ${(SKIP_TESTS as boolean) ? '|| exit 0' : ''}`, {
encoding: 'utf8', encoding: 'utf8',
}) })
console.info('') console.info('')

View File

@@ -1,11 +1,11 @@
export type Commit = { export type Commit = {
commit: CommitOrTree commit: CommitOrTree
tree: CommitOrTree tree: CommitOrTree
author: AuthorOrCommitter author?: AuthorOrCommitter
committer: AuthorOrCommitter committer: AuthorOrCommitter
subject: string subject: string
body: string body: string
parsed: Parsed parsed?: Parsed
} }
export type CommitOrTree = { export type CommitOrTree = {
@@ -14,13 +14,13 @@ export type CommitOrTree = {
} }
export type AuthorOrCommitter = { export type AuthorOrCommitter = {
name: string name?: string
email: string email: string
date: string date: string
} }
export type Parsed = { export type Parsed = {
type: string type?: string
scope?: string | null scope?: string | null
subject: string subject: string
merge?: null merge?: null