* feat(ci): improve linting configuration for instruction files
- Add GitHub-flavored Markdown support with remark-gfm
- Create generic Vale config (.vale-instructions.ini) for instruction files
- Use pattern-based file inclusion instead of explicit file lists
- Mount repository to /workdir in remark-lint container to preserve node_modules
Changes:
- Add remark-gfm to .ci/remark-lint/package.json
- Create .remarkrc.yaml at repository root for instruction files
- Update content/.remarkrc.yaml to include remark-gfm
- Create .vale-instructions.ini for generic writing rules
- Update compose.yaml: mount repo to /workdir (preserves /app/node_modules)
- Update lefthook.yml: use glob patterns for uppercase .md files and .github/**/*.md
- Update DOCS-CONTRIBUTING.md: remove empty CONTRIBUTING.md directory reference
Benefits:
- Automatic inclusion of new instruction files without config updates
- Pattern matching for uppercase .md files (DOCS-*.md, CLAUDE.md, etc.)
- Coverage for .github/, .claude/, api-docs/ directories
- GFM features: tables, task lists, strikethrough, autolinks, footnotes
- Separate linting rules for instruction files vs product documentation
feat(lint): separate remark-lint auto-fix for instructions vs report-only for content
- Split lint-markdown into two hooks:
- lint-markdown-instructions: Auto-fixes README, DOCS-*.md, .github/**, .claude/**
- lint-markdown-content: Reports issues in content/**, api-docs/** without modifying
- Changed remark-lint volume mount from read_only: true to read_only: false
- Instruction files now behave like Prettier (auto-fix + stage)
- Content files report errors and block commits until manually fixed
* chore(instructions): Add content/shared details, husky/lefthook updates
* Release influxctl v2.10.3
* add influxctl 2.10.3 release notes and feature docs
---------
Co-authored-by: Scott Anderson <scott@influxdata.com>
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
- **Environment variable formatting** - Updated environment variable configuration from array format to object format to comply with Lefthook schema validation requirements.
- **Unified link testing** - Consolidated multiple product-specific link testing commands into a single `e2e-links` command that processes all staged Markdown and HTML files across content directories.
- **Package script integration** - Modified commands to use centralized yarn scripts instead of direct execution, improving maintainability and consistency.
- **Source information extraction** - Enhanced to correctly extract and report source information from frontmatter.
- **URL and source mapping** - Improved handling of URL to source path mapping for better reporting.
- **Ignored anchor links configuration** - Added proper exclusion of behavior-triggering anchor links (like tab navigation) to prevent false positives.
- **Request options correction** - Fixed Cypress request options to ensure `failOnStatusCode` is properly set when `retryOnStatusCodeFailure` is enabled.
- **Improved error reporting** - Enhanced error reporting with more context about broken links.
- **New test scripts added** - Added centralized testing scripts for link checking and codeblock validation.
- **Product-specific test commands** - Added commands for each product version (InfluxDB v2, v3 Core, Enterprise, Cloud, etc.).
- **API docs testing** - Added specialized commands for testing API documentation links.
- **Comprehensive test runners** - Added commands to run all tests of a specific type (`test:links:all`, `test:codeblocks:all`).
- Fix Docker build command and update CONTRIBUTING.
chore(js): JavaScript QoL improvements:
- Refactor main.js with a componentRegistry object and clear initialization of components and globals
- Add a standard index.js with all necessary exports.
- Update javascript.html to use the index.js
- Remove jQuery script tag from header javascript.html (remains in footer)
- Update package file to improve module discovery.
- Improve Hugo and ESLint config for module discovery and ES6 syntax
- Pre-commit hook:
- Redo test harness so commands can run in parallel
- Cleanup Vale command args
- Replace lint-staged and husky with Lefthook.
- Pre-push hook:
- Scan for package vulnerabilities
- Tests
- Run tests on demand, in parallel, or debugged using docker compose up, run, exec, etc.
- Each test container (service) runs the prepare-content script before running tests.
- Return to using Python instead of Docker to provide environment variables so they don't get exposed in Docker inspect.
- Bind mount influxctl config.toml and .env.test files
- Bind mount scripts for faster builds while iterating on test scripts.
- Vale:
- Override Acronyms style def--ignore acronym if it's linked.