diff --git a/.changeset/thirty-cases-fail.md b/.changeset/thirty-cases-fail.md new file mode 100644 index 0000000000..cfa78e2102 --- /dev/null +++ b/.changeset/thirty-cases-fail.md @@ -0,0 +1,5 @@ +--- +"roo-cline": patch +--- + +Fix Posthog by correctly copying .env in the build process diff --git a/.github/workflows/marketplace-publish.yml b/.github/workflows/marketplace-publish.yml index d86be2083b..6e2dc09a01 100644 --- a/.github/workflows/marketplace-publish.yml +++ b/.github/workflows/marketplace-publish.yml @@ -45,15 +45,22 @@ jobs: run: | current_package_version=$(node -p "require('./src/package.json').version") pnpm build - package=$(unzip -l bin/roo-cline-${current_package_version}.vsix) - echo "$package" | grep -q "extension/package.json" || exit 1 - echo "$package" | grep -q "extension/package.nls.json" || exit 1 - echo "$package" | grep -q "extension/dist/extension.js" || exit 1 - echo "$package" | grep -q "extension/webview-ui/audio/celebration.wav" || exit 1 - echo "$package" | grep -q "extension/webview-ui/build/assets/index.js" || exit 1 - echo "$package" | grep -q "extension/assets/codicons/codicon.ttf" || exit 1 - echo "$package" | grep -q "extension/assets/vscode-material-icons/icons/3d.svg" || exit 1 - echo "$package" | grep -q ".env" || exit 1 + + # Save VSIX contents to a temporary file to avoid broken pipe issues. + unzip -l bin/roo-cline-${current_package_version}.vsix > /tmp/roo-code-vsix-contents.txt + + # Check for required files. + grep -q "extension/package.json" /tmp/roo-code-vsix-contents.txt || exit 1 + grep -q "extension/package.nls.json" /tmp/roo-code-vsix-contents.txt || exit 1 + grep -q "extension/dist/extension.js" /tmp/roo-code-vsix-contents.txt || exit 1 + grep -q "extension/webview-ui/audio/celebration.wav" /tmp/roo-code-vsix-contents.txt || exit 1 + grep -q "extension/webview-ui/build/assets/index.js" /tmp/roo-code-vsix-contents.txt || exit 1 + grep -q "extension/assets/codicons/codicon.ttf" /tmp/roo-code-vsix-contents.txt || exit 1 + grep -q "extension/assets/vscode-material-icons/icons/3d.svg" /tmp/roo-code-vsix-contents.txt || exit 1 + grep -q ".env" /tmp/roo-code-vsix-contents.txt || exit 1 + + # Clean up temporary file. + rm /tmp/roo-code-vsix-contents.txt - name: Create and Push Git Tag run: | current_package_version=$(node -p "require('./src/package.json').version") diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 7d8675f8cb..0000000000 --- a/.prettierignore +++ /dev/null @@ -1,6 +0,0 @@ -dist -build -out -.next -.venv -pnpm-lock.yaml diff --git a/.prettierrc.json b/.prettierrc.json index cd4329335c..520c1bd5f7 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -3,5 +3,6 @@ "useTabs": true, "printWidth": 120, "semi": false, - "bracketSameLine": true + "bracketSameLine": true, + "ignore": ["node_modules", "dist", "build", "out", ".next", ".venv", "pnpm-lock.yaml"] } diff --git a/apps/vscode-nightly/esbuild.mjs b/apps/vscode-nightly/esbuild.mjs index ccc999e78b..d4302fc100 100644 --- a/apps/vscode-nightly/esbuild.mjs +++ b/apps/vscode-nightly/esbuild.mjs @@ -67,6 +67,7 @@ async function main() { ["../README.md", "README.md"], ["../CHANGELOG.md", "CHANGELOG.md"], ["../LICENSE", "LICENSE"], + ["../.env", ".env", { optional: true }], [".vscodeignore", ".vscodeignore"], ["assets", "assets"], ["integrations", "integrations"], diff --git a/packages/build/src/esbuild.ts b/packages/build/src/esbuild.ts index e91275447d..ab76ca2ff7 100644 --- a/packages/build/src/esbuild.ts +++ b/packages/build/src/esbuild.ts @@ -29,7 +29,9 @@ function rmDir(dirPath: string, maxRetries: number = 3): void { return } catch (error) { const isLastAttempt = attempt === maxRetries - const isEnotemptyError = error instanceof Error && "code" in error && (error.code === 'ENOTEMPTY' || error.code === 'EBUSY') + + const isEnotemptyError = + error instanceof Error && "code" in error && (error.code === "ENOTEMPTY" || error.code === "EBUSY") if (isLastAttempt || !isEnotemptyError) { throw error // Re-throw if it's the last attempt or not a locking error. @@ -41,27 +43,42 @@ function rmDir(dirPath: string, maxRetries: number = 3): void { // Synchronous sleep for simplicity in build scripts. const start = Date.now() - while (Date.now() - start < delay) { /* Busy wait */ } + + while (Date.now() - start < delay) { + /* Busy wait */ + } } } } -export function copyPaths(copyPaths: [string, string][], srcDir: string, dstDir: string) { - copyPaths.forEach(([srcRelPath, dstRelPath]) => { - const stats = fs.lstatSync(path.join(srcDir, srcRelPath)) +type CopyPathOptions = { + optional?: boolean +} - if (stats.isDirectory()) { - if (fs.existsSync(path.join(dstDir, dstRelPath))) { - rmDir(path.join(dstDir, dstRelPath)) - } +export function copyPaths(copyPaths: [string, string, CopyPathOptions?][], srcDir: string, dstDir: string) { + copyPaths.forEach(([srcRelPath, dstRelPath, options = {}]) => { + try { + const stats = fs.lstatSync(path.join(srcDir, srcRelPath)) - fs.mkdirSync(path.join(dstDir, dstRelPath), { recursive: true }) + if (stats.isDirectory()) { + if (fs.existsSync(path.join(dstDir, dstRelPath))) { + rmDir(path.join(dstDir, dstRelPath)) + } - const count = copyDir(path.join(srcDir, srcRelPath), path.join(dstDir, dstRelPath), 0) - console.log(`[copyPaths] Copied ${count} files from ${srcRelPath} to ${dstRelPath}`) - } else { - fs.copyFileSync(path.join(srcDir, srcRelPath), path.join(dstDir, dstRelPath)) - console.log(`[copyPaths] Copied ${srcRelPath} to ${dstRelPath}`) + fs.mkdirSync(path.join(dstDir, dstRelPath), { recursive: true }) + + const count = copyDir(path.join(srcDir, srcRelPath), path.join(dstDir, dstRelPath), 0) + console.log(`[copyPaths] Copied ${count} files from ${srcRelPath} to ${dstRelPath}`) + } else { + fs.copyFileSync(path.join(srcDir, srcRelPath), path.join(dstDir, dstRelPath)) + console.log(`[copyPaths] Copied ${srcRelPath} to ${dstRelPath}`) + } + } catch (error) { + if (options.optional) { + console.warn(`[copyPaths] Optional file not found: ${srcRelPath}`) + } else { + throw error + } } }) } diff --git a/src/esbuild.mjs b/src/esbuild.mjs index d8c96b4ede..3f7986bfc5 100644 --- a/src/esbuild.mjs +++ b/src/esbuild.mjs @@ -52,6 +52,7 @@ async function main() { ["../README.md", "README.md"], ["../CHANGELOG.md", "CHANGELOG.md"], ["../LICENSE", "LICENSE"], + ["../.env", ".env", { optional: true }], ["node_modules/vscode-material-icons/generated", "assets/vscode-material-icons"], ["../webview-ui/audio", "webview-ui/audio"], ],