mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
fix: remove unrelated scope creep files from PR
Reverts formatting-only changes to .roo commands/skills, README, pricing page, and locale READMEs. Removes flake.nix/flake.lock which belong in a separate PR.
This commit is contained in:
parent
3c09ec5bd5
commit
51f14979e2
25 changed files with 74 additions and 515 deletions
|
|
@ -11,10 +11,10 @@ Resolve merge conflicts for a specific pull request by analyzing git history, co
|
|||
1. **Provide a PR number** (e.g., `#123` or just `123`)
|
||||
|
||||
2. The workflow will automatically:
|
||||
- Fetch PR information (title, description, branches)
|
||||
- Checkout the PR branch
|
||||
- Rebase onto the target branch to reveal conflicts
|
||||
- Analyze and resolve conflicts using git history
|
||||
- Fetch PR information (title, description, branches)
|
||||
- Checkout the PR branch
|
||||
- Rebase onto the target branch to reveal conflicts
|
||||
- Analyze and resolve conflicts using git history
|
||||
|
||||
## Workflow Steps
|
||||
|
||||
|
|
@ -39,7 +39,6 @@ git status --porcelain | grep "^UU"
|
|||
### 3. Analyze Each Conflict
|
||||
|
||||
For each conflicted file:
|
||||
|
||||
- Read the conflict markers
|
||||
- Run `git blame` on conflicting sections
|
||||
- Fetch commit messages for context
|
||||
|
|
@ -48,7 +47,6 @@ For each conflicted file:
|
|||
### 4. Apply Resolution Strategy
|
||||
|
||||
Based on the analysis:
|
||||
|
||||
- **Bugfixes** generally take precedence over features
|
||||
- **Recent changes** are often more relevant (unless older is a security fix)
|
||||
- **Combine** non-conflicting changes when possible
|
||||
|
|
|
|||
|
|
@ -9,35 +9,32 @@ Perform translation and localization tasks for the Roo Code extension. This comm
|
|||
## Quick Start
|
||||
|
||||
1. **Identify the translation scope:**
|
||||
|
||||
- If a specific language code is provided (e.g., `de`, `zh-CN`), focus on that language
|
||||
- If `all` is specified, translate to all supported languages
|
||||
- If a string key is provided, locate and translate that specific string
|
||||
- If a file path is provided, work with that translation file
|
||||
- If a specific language code is provided (e.g., `de`, `zh-CN`), focus on that language
|
||||
- If `all` is specified, translate to all supported languages
|
||||
- If a string key is provided, locate and translate that specific string
|
||||
- If a file path is provided, work with that translation file
|
||||
|
||||
2. **Supported languages:** ca, de, en, es, fr, hi, id, it, ja, ko, nl, pl, pt-BR, ru, tr, vi, zh-CN, zh-TW
|
||||
|
||||
3. **Translation locations:**
|
||||
- Core Extension: `src/i18n/locales/`
|
||||
- WebView UI: `webview-ui/src/i18n/locales/`
|
||||
- Core Extension: `src/i18n/locales/`
|
||||
- WebView UI: `webview-ui/src/i18n/locales/`
|
||||
|
||||
## Workflow
|
||||
|
||||
1. If adding new strings:
|
||||
|
||||
- Add the English string first
|
||||
- Ask for confirmation before translating to other languages
|
||||
- Use `apply_diff` for efficient file updates
|
||||
- Add the English string first
|
||||
- Ask for confirmation before translating to other languages
|
||||
- Use `apply_diff` for efficient file updates
|
||||
|
||||
2. If updating existing strings:
|
||||
|
||||
- Identify all affected language files
|
||||
- Update English first, then propagate changes
|
||||
- Identify all affected language files
|
||||
- Update English first, then propagate changes
|
||||
|
||||
3. Validate your changes:
|
||||
```bash
|
||||
node scripts/find-missing-translations.js
|
||||
```
|
||||
```bash
|
||||
node scripts/find-missing-translations.js
|
||||
```
|
||||
|
||||
## Key Guidelines
|
||||
|
||||
|
|
|
|||
|
|
@ -105,16 +105,16 @@ Verify the resolution and prepare for commit:
|
|||
|
||||
## Git Commands Reference
|
||||
|
||||
| Command | Purpose |
|
||||
| ---------------------------------------------------------------- | ------------------------------------------------- |
|
||||
| `gh pr checkout [PR_NUMBER] --force` | Force checkout the PR branch |
|
||||
| `git fetch origin main` | Get the latest main branch |
|
||||
| `GIT_EDITOR=true git rebase origin/main` | Rebase current branch onto main (non-interactive) |
|
||||
| `git blame -L [start],[end] [commit] -- [file]` | Get commit information for specific lines |
|
||||
| `git show --format="%H%n%an%n%ae%n%ad%n%s%n%b" --no-patch [sha]` | Get commit metadata |
|
||||
| `git show [sha] -- [file]` | Get the actual changes made in a commit |
|
||||
| `git ls-files -u` | List unmerged files with stage information |
|
||||
| `GIT_EDITOR=true git rebase --continue` | Continue rebase after resolving conflicts |
|
||||
| Command | Purpose |
|
||||
|---------|---------|
|
||||
| `gh pr checkout [PR_NUMBER] --force` | Force checkout the PR branch |
|
||||
| `git fetch origin main` | Get the latest main branch |
|
||||
| `GIT_EDITOR=true git rebase origin/main` | Rebase current branch onto main (non-interactive) |
|
||||
| `git blame -L [start],[end] [commit] -- [file]` | Get commit information for specific lines |
|
||||
| `git show --format="%H%n%an%n%ae%n%ad%n%s%n%b" --no-patch [sha]` | Get commit metadata |
|
||||
| `git show [sha] -- [file]` | Get the actual changes made in a commit |
|
||||
| `git ls-files -u` | List unmerged files with stage information |
|
||||
| `GIT_EDITOR=true git rebase --continue` | Continue rebase after resolving conflicts |
|
||||
|
||||
## Best Practices
|
||||
|
||||
|
|
@ -141,12 +141,12 @@ Look beyond the immediate conflict to understand related changes in tests, docum
|
|||
|
||||
## Resolution Heuristics
|
||||
|
||||
| Category | Rule | Exception |
|
||||
| ------------------- | -------------------------------------------------- | --------------------------------------- |
|
||||
| Bugfix vs Feature | Bugfixes generally take precedence | When features include the fix |
|
||||
| Recent vs Old | More recent changes are often more relevant | When older changes are security patches |
|
||||
| Test Updates | Changes with test updates are likely more complete | - |
|
||||
| Formatting vs Logic | Logic changes take precedence over formatting | - |
|
||||
| Category | Rule | Exception |
|
||||
|----------|------|-----------|
|
||||
| Bugfix vs Feature | Bugfixes generally take precedence | When features include the fix |
|
||||
| Recent vs Old | More recent changes are often more relevant | When older changes are security patches |
|
||||
| Test Updates | Changes with test updates are likely more complete | - |
|
||||
| Formatting vs Logic | Logic changes take precedence over formatting | - |
|
||||
|
||||
## Common Pitfalls
|
||||
|
||||
|
|
|
|||
|
|
@ -29,10 +29,10 @@ Localize all strings into the following locale files: ca, de, en, es, fr, hi, id
|
|||
|
||||
The VSCode extension has two main areas that require localization:
|
||||
|
||||
| Component | Path | Purpose |
|
||||
| ------------------ | ------------------------------ | ------------------------- |
|
||||
| **Core Extension** | `src/i18n/locales/` | Extension backend strings |
|
||||
| **WebView UI** | `webview-ui/src/i18n/locales/` | User interface strings |
|
||||
| Component | Path | Purpose |
|
||||
|-----------|------|---------|
|
||||
| **Core Extension** | `src/i18n/locales/` | Extension backend strings |
|
||||
| **WebView UI** | `webview-ui/src/i18n/locales/` | User interface strings |
|
||||
|
||||
## Brand Voice, Tone, and Word Choice
|
||||
|
||||
|
|
@ -77,19 +77,17 @@ This guidance file is loaded at runtime and should be consulted for the latest b
|
|||
### Trans Component Example
|
||||
|
||||
Translation string:
|
||||
|
||||
```json
|
||||
"changeSettings": "You can always change this at the bottom of the <settingsLink>settings</settingsLink>"
|
||||
```
|
||||
|
||||
React component usage:
|
||||
|
||||
```tsx
|
||||
<Trans
|
||||
i18nKey="welcome:telemetry.changeSettings"
|
||||
components={{
|
||||
settingsLink: <VSCodeLink href="#" onClick={handleOpenSettings} />,
|
||||
}}
|
||||
i18nKey="welcome:telemetry.changeSettings"
|
||||
components={{
|
||||
settingsLink: <VSCodeLink href="#" onClick={handleOpenSettings} />
|
||||
}}
|
||||
/>
|
||||
```
|
||||
|
||||
|
|
@ -107,21 +105,19 @@ React component usage:
|
|||
|
||||
1. First add or modify English strings, then ask for confirmation before translating to all other languages
|
||||
2. Use this process for each localization task:
|
||||
|
||||
1. Identify where the string appears in the UI/codebase
|
||||
2. Understand the context and purpose of the string
|
||||
3. Update English translation first
|
||||
4. Use the `search_files` tool to find JSON keys that are near new keys in English translations but do not yet exist in the other language files for `apply_diff` SEARCH context
|
||||
5. Create appropriate translations for all other supported languages utilizing the `search_files` result using `apply_diff` without reading every file
|
||||
6. Do not output the translated text into the chat, just modify the files
|
||||
7. Validate your changes with the missing translations script
|
||||
1. Identify where the string appears in the UI/codebase
|
||||
2. Understand the context and purpose of the string
|
||||
3. Update English translation first
|
||||
4. Use the `search_files` tool to find JSON keys that are near new keys in English translations but do not yet exist in the other language files for `apply_diff` SEARCH context
|
||||
5. Create appropriate translations for all other supported languages utilizing the `search_files` result using `apply_diff` without reading every file
|
||||
6. Do not output the translated text into the chat, just modify the files
|
||||
7. Validate your changes with the missing translations script
|
||||
|
||||
3. Flag or comment if an English source string is incomplete ("please see this...") to avoid truncated or unclear translations
|
||||
|
||||
4. For UI elements, distinguish between:
|
||||
|
||||
- Button labels: Use short imperative commands ("Save", "Cancel")
|
||||
- Tooltip text: Can be slightly more descriptive
|
||||
- Button labels: Use short imperative commands ("Save", "Cancel")
|
||||
- Tooltip text: Can be slightly more descriptive
|
||||
|
||||
5. Preserve the original perspective: If text is a user command directed at the software, ensure the translation maintains this direction
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](locales/zh-CN/README.md)
|
||||
- [繁體中文](locales/zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -291,7 +291,11 @@ export default function PricingPage() {
|
|||
<li>To pay for Cloud Agents running time (${PRICE_CREDITS}/hour)</li>
|
||||
<li>
|
||||
To pay for AI model inference costs (
|
||||
<a href="/provider" target="_blank" rel="noopener noreferrer" className="underline">
|
||||
<a
|
||||
href="/provider"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="underline">
|
||||
varies by model
|
||||
</a>
|
||||
)
|
||||
|
|
|
|||
61
flake.lock
generated
61
flake.lock
generated
|
|
@ -1,61 +0,0 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1768564909,
|
||||
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
375
flake.nix
375
flake.nix
|
|
@ -1,375 +0,0 @@
|
|||
# Roo Code Nix Flake
|
||||
#
|
||||
# Provides a reproducible development environment
|
||||
#
|
||||
# Usage:
|
||||
# nix develop # Enter dev shell
|
||||
# nix run # Show welcome banner
|
||||
# nix fmt # Format nix files
|
||||
# nix flake check # Run all checks (lint, typecheck, test)
|
||||
#
|
||||
# Build and install extension:
|
||||
# nix build .#vsix && code --install-extension result/*.vsix
|
||||
#
|
||||
# Inside dev shell:
|
||||
# pnpm install # Install npm packages
|
||||
# pnpm build # Build the project
|
||||
# pnpm test # Run tests
|
||||
# pnpm vsix # Create VS Code extension
|
||||
# eslint <file> # Lint files (eslint and eslint_d available)
|
||||
# pnpm lint # Run linting via pnpm scripts
|
||||
#
|
||||
# Maintenance:
|
||||
# nix run .#update-deps # Update flake.lock and pnpmDeps hash
|
||||
#
|
||||
# If flakes aren't enabled, prefix commands with:
|
||||
# nix --extra-experimental-features 'nix-command flakes' <command>
|
||||
#
|
||||
# See README.md section "Nix Flake" for more information
|
||||
|
||||
{
|
||||
description = "Roo Code - AI-Powered Dev Team, Right in Your Editor";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
}:
|
||||
let
|
||||
versionFromPackageJson = (builtins.fromJSON (builtins.readFile ./src/package.json)).version;
|
||||
|
||||
in
|
||||
flake-utils.lib.eachDefaultSystem (
|
||||
system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
lib = pkgs.lib;
|
||||
|
||||
nodejs = pkgs.nodejs_20;
|
||||
# Use pnpm_9 if available, otherwise fall back to pnpm
|
||||
# pnpm 10.26.1 is available and newer than required 10.8.1, so we'll use that
|
||||
pnpm = pkgs.pnpm;
|
||||
|
||||
ignoredPaths = [
|
||||
".direnv"
|
||||
"result"
|
||||
"result-dev"
|
||||
"node_modules"
|
||||
".turbo"
|
||||
"dist"
|
||||
"bin"
|
||||
".vscode"
|
||||
".cursor"
|
||||
];
|
||||
|
||||
src = lib.cleanSourceWith {
|
||||
src = lib.cleanSource ./.;
|
||||
filter =
|
||||
path: type:
|
||||
let
|
||||
baseName = builtins.baseNameOf path;
|
||||
in
|
||||
!(builtins.elem baseName ignoredPaths);
|
||||
};
|
||||
|
||||
# Chromium is only available on Linux in nixpkgs
|
||||
chromiumPath = if pkgs.stdenv.isLinux then "${pkgs.chromium}/bin/chromium" else null;
|
||||
|
||||
basePnpmAttrs = {
|
||||
inherit src;
|
||||
strictDeps = true;
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
pnpm
|
||||
pkgs.pnpmConfigHook
|
||||
];
|
||||
pnpmDeps = self.packages.${system}.pnpmDeps;
|
||||
};
|
||||
|
||||
roo-code-welcome = pkgs.writeShellApplication {
|
||||
name = "roo-code-welcome";
|
||||
runtimeInputs = [
|
||||
pkgs.jp2a
|
||||
nodejs
|
||||
pnpm
|
||||
];
|
||||
text = ''
|
||||
echo ""
|
||||
if [ -f "./src/assets/images/roo.png" ]; then
|
||||
jp2a --colors --width=40 ./src/assets/images/roo.png 2>/dev/null || echo "🦘 Roo Code"
|
||||
else
|
||||
echo "🦘 Roo Code Development Environment"
|
||||
fi
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "Node.js: $(node --version)"
|
||||
echo "pnpm: $(pnpm --version)"
|
||||
echo ""
|
||||
echo "📦 pnpm install - Install dependencies"
|
||||
echo "🔧 pnpm build - Build the project"
|
||||
echo "📋 pnpm test - Run tests (from root)"
|
||||
echo "📦 pnpm vsix - Create VS Code extension"
|
||||
echo ""
|
||||
echo "💡 Tip: For webview-ui tests, run from webview-ui directory:"
|
||||
echo " cd webview-ui && pnpm test <test-file>"
|
||||
echo ""
|
||||
echo "For VS Code debugging: Press F5"
|
||||
echo ""
|
||||
'';
|
||||
};
|
||||
|
||||
mkPnpmCheck =
|
||||
name: script: extraAttrs:
|
||||
pkgs.stdenvNoCC.mkDerivation (
|
||||
basePnpmAttrs
|
||||
// {
|
||||
name = "roo-code-${name}";
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
export HOME=$TMPDIR
|
||||
# Disable pnpm self-management (pnpm is provided by Nix)
|
||||
echo "manage-package-manager-versions=false" >> .npmrc
|
||||
pnpm run ${script}
|
||||
runHook postBuild
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
echo "${name} passed" > $out/result
|
||||
'';
|
||||
}
|
||||
// extraAttrs
|
||||
);
|
||||
|
||||
in
|
||||
{
|
||||
formatter = pkgs.nixfmt-tree;
|
||||
|
||||
devShells.default = pkgs.mkShell {
|
||||
name = "roo-code-dev";
|
||||
|
||||
packages =
|
||||
with pkgs;
|
||||
[
|
||||
nodejs
|
||||
pnpm
|
||||
git
|
||||
python3
|
||||
pkg-config
|
||||
gnumake
|
||||
# turbo is installed via pnpm as a devDependency (version 2.7.6 in package.json)
|
||||
# We don't include system turbo to avoid version conflicts
|
||||
# Users should run 'pnpm install' first to get the correct turbo version
|
||||
ripgrep
|
||||
jp2a
|
||||
nodePackages.typescript-language-server
|
||||
nodePackages.eslint
|
||||
nodePackages.eslint_d
|
||||
nil
|
||||
]
|
||||
++ lib.optionals stdenv.isLinux [
|
||||
chromium
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
with pkgs;
|
||||
[
|
||||
openssl
|
||||
]
|
||||
++ lib.optionals stdenv.isLinux [
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
env = {
|
||||
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = "1";
|
||||
RIPGREP_PATH = "${pkgs.ripgrep}/bin/rg";
|
||||
NODE_ENV = "development";
|
||||
}
|
||||
// lib.optionalAttrs pkgs.stdenv.isLinux {
|
||||
PUPPETEER_EXECUTABLE_PATH = chromiumPath;
|
||||
};
|
||||
|
||||
shellHook = ''
|
||||
${lib.getExe roo-code-welcome}
|
||||
'';
|
||||
};
|
||||
|
||||
packages =
|
||||
let
|
||||
version = versionFromPackageJson;
|
||||
in
|
||||
{
|
||||
# Pre-fetch pnpm dependencies (for reproducible builds)
|
||||
# Update hash when pnpm-lock.yaml changes:
|
||||
# 1. Set hash = lib.fakeHash;
|
||||
# 2. Run: nix build .#pnpmDeps
|
||||
# 3. Copy the "got:" hash from the error message
|
||||
pnpmDeps = pkgs.fetchPnpmDeps {
|
||||
pname = "roo-code-pnpm-deps";
|
||||
inherit version src;
|
||||
fetcherVersion = 2;
|
||||
hash = "sha256-l6MAzyVUiiqiKLvacP0tZZs4WNlcmm3TrtRwauE3TLE=";
|
||||
};
|
||||
|
||||
vsix = pkgs.stdenvNoCC.mkDerivation (
|
||||
basePnpmAttrs
|
||||
// {
|
||||
pname = "roo-code-vsix";
|
||||
inherit version;
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
export HOME=$TMPDIR
|
||||
# Disable pnpm self-management (pnpm is provided by Nix)
|
||||
echo "manage-package-manager-versions=false" >> .npmrc
|
||||
pnpm run vsix
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out
|
||||
cp -v bin/*.vsix $out/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "AI-powered autonomous coding agent that lives in your editor";
|
||||
homepage = "https://github.com/RooCodeInc/Roo-Code";
|
||||
license = licenses.asl20;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
default = self.packages.${system}.vsix;
|
||||
};
|
||||
|
||||
apps = {
|
||||
welcome = {
|
||||
type = "app";
|
||||
program = lib.getExe roo-code-welcome;
|
||||
};
|
||||
|
||||
build-vsix = {
|
||||
type = "app";
|
||||
program = lib.getExe (
|
||||
pkgs.writeShellApplication {
|
||||
name = "build-vsix";
|
||||
text = ''
|
||||
echo "Building VSIX..."
|
||||
nix build .#vsix --print-out-paths
|
||||
'';
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
update-deps = {
|
||||
type = "app";
|
||||
program = lib.getExe (
|
||||
pkgs.writeShellApplication {
|
||||
name = "update-deps";
|
||||
runtimeInputs = [
|
||||
pkgs.gnused
|
||||
pkgs.gnugrep
|
||||
];
|
||||
text = ''
|
||||
# Safety check: ensure flake.nix has no uncommitted changes
|
||||
if ! git diff --quiet flake.nix 2>/dev/null; then
|
||||
echo "Error: flake.nix has uncommitted changes. Commit or stash them first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "==> Updating flake inputs (nixpkgs, flake-utils)..."
|
||||
nix flake update
|
||||
|
||||
echo ""
|
||||
echo "==> Updating pnpmDeps hash..."
|
||||
|
||||
# Set hash to empty to trigger rebuild
|
||||
sed -i 's|hash = "sha256-[^"]*";|hash = "";|' flake.nix
|
||||
|
||||
# Build and capture the error output
|
||||
if output=$(nix build .#pnpmDeps 2>&1); then
|
||||
echo "Build succeeded - hash unchanged"
|
||||
# Restore the original hash since build succeeded
|
||||
git checkout flake.nix 2>/dev/null || true
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Extract the correct hash from "got: sha256-..." (with fallback patterns)
|
||||
new_hash=$(echo "$output" | grep -oP 'got:\s+\Ksha256-[A-Za-z0-9+/=]+' | head -1)
|
||||
|
||||
# Fallback: try alternative pattern if first didn't match
|
||||
if [ -z "$new_hash" ]; then
|
||||
new_hash=$(echo "$output" | grep -oE 'sha256-[A-Za-z0-9+/=]+' | tail -1)
|
||||
fi
|
||||
|
||||
if [ -z "$new_hash" ]; then
|
||||
echo "Error: Could not extract hash from build output"
|
||||
echo "$output"
|
||||
# Restore flake.nix since we failed
|
||||
git checkout flake.nix 2>/dev/null || true
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Update flake.nix with the new hash
|
||||
sed -i "s|hash = \"\";|hash = \"$new_hash\";|" flake.nix
|
||||
|
||||
echo "Updated pnpmDeps hash to: $new_hash"
|
||||
echo ""
|
||||
echo "Run 'nix fmt' to format, then commit flake.nix and flake.lock"
|
||||
'';
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
default = self.apps.${system}.welcome;
|
||||
};
|
||||
|
||||
checks = {
|
||||
lint = mkPnpmCheck "lint" "lint" { };
|
||||
typecheck = mkPnpmCheck "typecheck" "check-types" { };
|
||||
test = mkPnpmCheck "test" "test" (
|
||||
{
|
||||
CI = "true";
|
||||
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = "1";
|
||||
}
|
||||
// lib.optionalAttrs pkgs.stdenv.isLinux {
|
||||
nativeBuildInputs = basePnpmAttrs.nativeBuildInputs ++ [ pkgs.chromium ];
|
||||
PUPPETEER_EXECUTABLE_PATH = chromiumPath;
|
||||
}
|
||||
);
|
||||
|
||||
format = pkgs.stdenvNoCC.mkDerivation {
|
||||
name = "roo-code-format-check";
|
||||
src = ./.;
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [ pkgs.nixfmt-tree ];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
nixfmt --check flake.nix
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
echo "Format check passed" > $out/result
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
)
|
||||
// {
|
||||
overlays.default = final: prev: {
|
||||
roo-code-vsix = self.packages.${final.system}.vsix;
|
||||
};
|
||||
};
|
||||
}
|
||||
2
locales/ca/README.md
generated
2
locales/ca/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/de/README.md
generated
2
locales/de/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/es/README.md
generated
2
locales/es/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/fr/README.md
generated
2
locales/fr/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/hi/README.md
generated
2
locales/hi/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/id/README.md
generated
2
locales/id/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/it/README.md
generated
2
locales/it/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/ja/README.md
generated
2
locales/ja/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/ko/README.md
generated
2
locales/ko/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/nl/README.md
generated
2
locales/nl/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/pl/README.md
generated
2
locales/pl/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/pt-BR/README.md
generated
2
locales/pt-BR/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/ru/README.md
generated
2
locales/ru/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/tr/README.md
generated
2
locales/tr/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/vi/README.md
generated
2
locales/vi/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/zh-CN/README.md
generated
2
locales/zh-CN/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
2
locales/zh-TW/README.md
generated
2
locales/zh-TW/README.md
generated
|
|
@ -35,7 +35,7 @@
|
|||
- [简体中文](../zh-CN/README.md)
|
||||
- [繁體中文](../zh-TW/README.md)
|
||||
- ...
|
||||
</details>
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue