Conversation
Reorganize docs from suffix-based (.pt.md) to folder-based structure:
- docs/en/ contains all English source content
- docs/{lang}/ contains translations with inheritance from English
- Language configs use INHERIT: ../en/mkdocs.yml for DRY setup
Add translation tooling:
- _scripts/translate.py: Claude-powered translation CLI
- _scripts/docs.py: Parallel multi-language build CLI
- _scripts/translation_fixer.py: Post-translation cleanup
- _scripts/mkdocs_hooks.py: Warning banner for untranslated content
Add CI workflows:
- translate.yml: Manual workflow to trigger translations
- Updated docs-dev.yml and docs-release.yml for multi-language builds
Add language picker JavaScript for mike versioning compatibility.
Add TRANSLATING.md contributor guide.
… comments - Update MODEL to use 'claude-sonnet-4-5' alias for auto-updates - Add check_api_key() with helpful error message and setup instructions - Add multi-line /* */ comment support for Groovy/Nextflow/Java - Replace hardcoded SUPPORTED_LANGS with get_supported_langs() reading from language_names.yml as single source of truth
Update references to mkdocs.yml and docs/ paths in: - CONTRIBUTING.md - CLAUDE.md - preview_release.py - .claude/ skills and commands
- Remove requirements.txt and _scripts/pyproject.toml - Add MkDocs dependencies to docs.py inline script - Update netlify.toml to use uv run - Update CONTRIBUTING.md with uv instructions
- Fix Netlify uv PATH (use export instead of source env) - Update mkdocs.Dockerfile to install plugins directly (no requirements.txt) - Remove requirements.txt trigger from docker-mkdocs workflow - Add -w /docs/docs/en to all Docker commands in docs - Update preview commands to use uv
- Remove pillow, cairosvg, mkdocs-static-i18n from docs.py (not used) - Remove CARDS=false references from docs (social cards plugin not configured) - Fix image paths in LICENSE.md and README.md for new docs structure - Add better error capture for parallel builds - Update pip install instruction to use uv in CONTRIBUTING.md
- Add resolve_en_path() to handle paths relative to CWD, repo root, or EN_DOCS_PATH - Add --include/-i option to add_missing for filtering by pattern (e.g., 'hello_nextflow')
…ules - Add note that terms like channel/process/workflow may be translated in prose - Clarify that language-specific llm-prompt.md takes precedence for prose - Code blocks always use English for executable code
… files - Added Translation Context Rules section explaining code vs prose distinction - Code blocks: keep ALL Nextflow syntax in English (must be executable) - Prose text: follow language-specific glossary for translations - Added language-specific examples for each
TRANSLATING.md: - Added clear workflow diagrams for automatic updates - Documented how to review and approve translation PRs - Added guide for fixing existing translations - Added guide for adding missing courses - Added guide for adding new languages - Improved script reference documentation .github/workflows/translate-auto.yml: - New workflow that triggers on push to master when docs/en/docs/*.md changes - Detects which languages have outdated translations - Updates translations in parallel (max 2 to limit API load) - Creates PRs automatically for review
TRANSLATING.md: - Explicitly discourage manual translations (will be overwritten) - Add detailed review guidelines with Mermaid flow diagram - Clarify that prompt updates are the ONLY way to fix translations - Remove all manual translation instructions - Add clear workflow for reporting issues CONTRIBUTING.md: - Expand translation section with rationale for AI-only approach - Add instructions for readers finding errors - Add instructions for contributors improving prompts _scripts/general-llm-prompt.md: - Massively expand from ~80 to ~300 lines - Add detailed code block examples for Groovy, Bash, config files - Add console output rules (never translate) - Add comprehensive admonition documentation - Add heading anchor preservation rules - Add link translation rules with examples - Add tab block documentation - Add frontmatter rules - Add special elements (kbd, icons, placeholders, snippets) - Add formatting preservation guidelines - Add common mistakes to avoid section - Add quality checklist
- Use GitHub [!WARNING] and [!CAUTION] admonition syntax - Move CLI reference to bottom (requires API key most don't have) - Clarify that prompt updates trigger regeneration in same PR - Promote GitHub Actions workflow as primary method - Add [!NOTE] for CLI section explaining API key requirement - Update CONTRIBUTING.md to match (warning admonition, GH Actions first)
- Update language list to include pl, tr - Add note that translations are AI-generated - Add TRANSLATING.md to resources section
Translated files: - docs/pt/docs/index.md - Main landing page - docs/pt/docs/help.md - Help page - docs/pt/docs/envsetup/ - Environment setup (4 files) - docs/pt/docs/hello_nextflow/ - Complete Hello Nextflow course (10 files) Also updated: - docs/pt/llm-prompt.md - Translation glossary with informal tone (você) and context-dependent rules (prose vs code) Build verified successfully. Transcripts folder excluded per spec.
Translate all documentation files to Italian: - Main index and help pages - Environment setup guide (envsetup/) - Complete Hello Nextflow course (hello_nextflow/) All 6 parts of Hello Nextflow are now translated: - Part 1: Hello World - Part 2: Hello Channels - Part 3: Hello Workflow - Part 4: Hello Modules - Part 5: Hello Containers - Part 6: Hello Config Translations follow the guidelines in docs/it/llm-prompt.md
Translated files: - Main index and help pages - Environment setup guides (3 files) - Hello Nextflow course (10 files including all 6 parts) Translation guidelines followed: - Formal polite Korean (합쇼체/하십시오체) - Code blocks kept in English (executable code) - Technical terms translated per glossary in docs/ko/llm-prompt.md - Admonition titles translated (Note→참고, Tip→팁, Warning→경고, etc.)
Translated files: - docs/fr/docs/index.md - Main landing page - docs/fr/docs/help.md - Help page - docs/fr/docs/envsetup/ - Environment setup (4 files) - docs/fr/docs/hello_nextflow/ - Complete Hello Nextflow course (10 files) Translation uses formal tone (vous) with French quotation marks. Technical terms translated in prose, kept in English in code blocks.
Second review pass fixing: - Untranslated code comments in pt, es, it, ko, de, fr, hi, tr - Italian formal Lei → informal voi tone corrections - Hindi section headers (Takeaway → सीख) - Korean image alt text translations - German code comments in nf4_science and hello_nf-core - French code comments in side_quests and hello_nf-core - Turkish console output consistency fix - Spanish code comments in side_quests and nf4_science 67 files modified across 9 languages
Third pass fixing remaining issues: Portuguese (pt): All checks pass - no issues Spanish (es): Fixed 'Hola' → 'Hello' in course names (7 instances) Italian (it): Fixed remaining Lei→voi forms (47+ files), translated code comments Korean (ko): Fixed 'Part' → '파트' in 12 files, translated code comments German (de): Fixed 15 admonition keywords (Warnung→warning, Tipp→tip) French (fr): Translated remaining code comments (6 instances) Hindi (hi): Translated remaining code comments (5 instances) Polish (pl): All checks pass - no issues Turkish (tr): Fixed 'Merhaba' → 'Hello' in course names, translated code comments 73 files changed
- Italian: 18 comments in nf4_science/genomics, nf4_science/rnaseq, side_quests/debugging - Turkish: 12 comments in side_quests/debugging
Co-authored-by: Matthias Hörtenhuber <mashehu@users.noreply.github.com>
- German: Capitalize 'Deutsch' in language_names.yml - German: Add gender-star guidance (e.g., Entwickler*innen) - Polish: Switch to informal tone (Ty/Wy instead of Pan/Pani) - Polish: Add declension rules with apostrophe endings - Polish: Add translations for core terms (channel, process, etc.) - Polish: Clarify when to use inline code for keywords Co-authored-by: mashehu <mashehu@users.noreply.github.com> Co-authored-by: itrujnara <itrujnara@users.noreply.github.com>
- standalone: 독립 → 단독 (avoid political independence connotation) - mini-course: 미니 과정 → 단기 과정 (more formal/professional) - wrap: 래핑하다 → 적용하다 (avoid physical packaging connotation) Co-authored-by: jhlee0637 <jhlee0637@users.noreply.github.com>
This addresses reviewer feedback about untranslated headings on course landing pages (e.g. 'Course Summary', 'Additional information') and cookie consent text. Changes: - Create ui-strings.yml files for all 9 languages with translated: - Course landing page section headings - Default content for technical requirements and videos - Modify index_page_hook.py to load translations from ui-strings.yml - Add translated cookie consent to each language's mkdocs.yml - Update new_lang command to copy ui-strings.yml and include consent template - Document ui-strings.yml in general-llm-prompt.md for future translations Tested: Korean, English, and German builds show correct translations.
Missed Hindi language in the previous commit. This adds: - docs/hi/ui-strings.yml with translated course landing page strings - Cookie consent translation in docs/hi/mkdocs.yml
The original sentence 'wissenschaftlichen Rechenanforderungen' was overly complex and sounded dated. Simplified to be more direct and tutorial-appropriate. Co-authored-by: mashehu <mashehu@users.noreply.github.com>
- Simplify complex sentence in nextflow_run/index.md (same fix as hello_nextflow) - Add Writing Style section to German LLM prompt with guidance on: - Keeping sentences short and direct - Avoiding dated/formal phrasing - Breaking complex sentences into simpler ones - Change 'Deutsch' to 'deutsch' in language selector to match other languages - Add note to German LLM prompt to preserve lowercase 'deutsch' Co-authored-by: mashehu <mashehu@users.noreply.github.com>
The YouTube playlist link was hardcoded in English. Now loaded from ui-strings.yml with translations for all 10 languages.
German (29 files): - Remove 'Reise' (journey) metaphors throughout - Simplify overly complex sentences with multiple subordinate clauses - Replace 'wirst du in der Lage sein' with simpler 'kannst du' - Remove dated academic phrasing - Shorten verbose survey introduction texts Korean (17 files): - Replace '미니 과정/미니 코스' with '단기 과정' (mini-course) - Replace '독립형/독립 과정' with '단독형/단독 과정' (standalone) - Replace '래핑' with '적용' (wrap → apply in Nextflow context) Polish (17 files): - Capitalize second-person pronouns (ci→Ci, twój→Twój, etc.) - Change formal 'Państwa' to informal 'Twoje'
…icker - scripts/build-multilang.sh: Discover languages from docs/ directories instead of hardcoded list - _scripts/docs.py: Add sync-language-picker command to update extra.alternate from language_names.yml - docs/en/mkdocs.yml: Regenerated language picker (now alphabetically sorted)
- Enhance frontmatter descriptions with usage context for preview, stop-preview, new-module, new-lesson, and add-exercise skills - Add shared repo-conventions.md reference to 7 skills that lacked it - Remove redundant "When to Use" section from check-highlights body - Move deep review checklist from validate/SKILL.md to separate reference file at validate/references/deep-review-checklist.md - Reduce verbosity in run-tutorial and find-todos output examples Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add prompt precedence rule to general prompt (language-specific overrides general) - Consolidate technical term lists in general prompt (operators, directives, tools) - Add output validation section to general prompt - Standardize structure across all 9 language prompts - Add Common Mistakes section to each language with specific examples - Remove duplicated "Terms to Keep in English" lists from language prompts - Resolve glossary conflicts (French workflow, Italian input/output) - Add contribution guide to TRANSLATING.md Net result: -370 lines (deduplication), clearer structure, better error prevention. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
✅ Deploy Preview for nextflow-training ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Contributor
|
Nextflow linting complete! ❌ 1 files had 1 errors 💡 Tip: Click filename locations to go directly to that code. View all 1 issues
View formatting changes
|
Member
Author
|
Sadly seems that docker-in-docker is still problematic in Studios: Example Nextflow CLI output with errorroot@ip-172-31-40-73:~/training/hello-nextflow# nextflow run solutions/5-hello-containers/hello-containers-2.nf -c solutions/5-hello-containers/nextflow.config
Nextflow 25.10.3 is available - Please consider updating your version to it
N E X T F L O W ~ version 25.10.2
Launching `solutions/5-hello-containers/hello-containers-2.nf` [silly_davinci] DSL2 - revision: 7fb7d4ac03
executor > local (8)
[c3/e4267e] process > sayHello (2) [100%] 3 of 3 ✔
[12/eba44b] process > convertToUpper (3) [100%] 3 of 3 ✔
[7e/2f1416] process > collectGreetings [100%] 1 of 1 ✔
[75/4b73aa] process > cowpy [ 0%] 0 of 1
ERROR ~ Error executing process > 'cowpy'
Caused by:
Process `cowpy` terminated with an error exit status (125)
Command executed:
cat COLLECTED-batch-output.txt | cowpy -c "turkey" > cowpy-COLLECTED-batch-output.txt
Command exit status:
125
Command output:
(empty)
Command error:
Unable to find image 'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273' locally
1.1.5--3db457ae1977a273: Pulling from library/cowpy
dafa2b0c44d2: Pulling fs layer
f88da01cff0b: Pulling fs layer
92dc97a3ef36: Pulling fs layer
4f4fb700ef54: Pulling fs layer
403f74b0f85e: Pulling fs layer
0ea1a16bbe82: Pulling fs layer
dec6b097362e: Pulling fs layer
17dc7ea432cc: Pulling fs layer
10b8c00c10a5: Pulling fs layer
4f4fb700ef54: Pulling fs layer
030a47592a0a: Pulling fs layer
e1686ff32a11: Pulling fs layer
c23bdb422167: Pulling fs layer
bb36d6c3110d: Pulling fs layer
403f74b0f85e: Download complete
f88da01cff0b: Download complete
4f4fb700ef54: Download complete
bb36d6c3110d: Download complete
030a47592a0a: Download complete
dec6b097362e: Download complete
92dc97a3ef36: Download complete
0ea1a16bbe82: Download complete
17dc7ea432cc: Download complete
10b8c00c10a5: Download complete
c23bdb422167: Download complete
dafa2b0c44d2: Download complete
e1686ff32a11: Download complete
dec6b097362e: Pull complete
dafa2b0c44d2: Pull complete
403f74b0f85e: Pull complete
f88da01cff0b: Pull complete
4f4fb700ef54: Pull complete
bb36d6c3110d: Pull complete
92dc97a3ef36: Pull complete
17dc7ea432cc: Pull complete
10b8c00c10a5: Pull complete
030a47592a0a: Pull complete
0ea1a16bbe82: Pull complete
c23bdb422167: Pull complete
e1686ff32a11: Pull complete
Digest: sha256:1ebc0043e8cafa61203bf42d29fd05bd14e7b4298e5e8cf986504c15f5aa4160
Status: Downloaded newer image for community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273
docker: Error response from daemon: failed to mount /tmp/containerd-mount2111467694: mount source: "overlay", target: "/tmp/containerd-mount2111467694", fstype: overlay, flags: 0, data: "workdir=/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/15/work,upperdir=/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/15/fs,lowerdir=/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/14/fs:/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/13/fs:/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/12/fs:/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/11/fs:/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/10/fs:/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/9/fs:/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/8/fs:/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/7/fs:/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/6/fs:/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/5/fs:/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/4/fs:/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/3/fs:/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/2/fs:/var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/1/fs,index=off", err: invalid argument
Run 'docker run --help' for more information
Work dir:
/workspace/training/hello-nextflow/work/75/4b73aa65b79bacccefa14b265b5999
Container:
community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273
Tip: you can replicate the issue by changing to the process work dir and entering the command `bash .command.run`
-- Check '.nextflow.log' file for details
ERROR ~ Cannot access first() element from an empty List
-- Check '.nextflow.log' file for details
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.