- Add TOML configuration section to plugins-library index explaining usage
- Add TOML config tables to all official plugin documentation files
- Standardize TOML section format across plugins with config_file_path parameter
- Update system-metrics plugin moved from examples to official
- Remove redundant config_file_path from individual parameter tables
- Ensure consistent placement before Installation/Requirements sections
- Fix linting: replace 'e.g.' with 'for example' in system-metrics.md
This completes the TOML configuration documentation updates from PR 6244
- Add plugin library structure for Core and
Enterprise products
- Create shared content directory for plugin
documentation
- Port 12 plugin documentation files from
influxdb3_plugins repository
- Add GitHub repository links in related frontmatter
for all plugins
- Remove emoji metadata tags and clean up content
structure
- Implement standardized support sections with
product-specific links
- Reorganize plugins navigation with dedicated
library section
- Include 2 example plugins and 10 official
InfluxData plugins
- Add if: false conditions to all jobs to prevent execution
- Add disabled-check job to indicate the workflow is disabled
- Preserves original conditions in comments for easy re-enabling
To re-enable: Remove the 'if: false' conditions and disabled-check job
=======================================
Cache hit rate: 100%
Cache hits: 54
Cache misses: 0
Total validations: 54
New entries stored: 0
✨ Cache optimization saved 54 link validations
This demonstrates that all 54 link validations were served from cache, which
greatly speeds up the test execution.
Summary
I've successfully fixed the cache statistics reporting issue in the Cypress link
validation tests. Here's what was implemented:
Changes Made:
1. Modified the Cypress test (cypress/e2e/content/article-links.cy.js):
- Added a new task call saveCacheStatsForReporter in the after() hook to save
cache statistics to a file that the main reporter can read
2. Updated Cypress configuration (cypress.config.js):
- Added the saveCacheStatsForReporter task that calls the reporter's
saveCacheStats function
- Imported the saveCacheStats function from the link reporter
3. Enhanced the link reporter (cypress/support/link-reporter.js):
- Improved the displayBrokenLinksReport function to show comprehensive cache
performance statistics
- Added better formatting and informative messages about cache optimization
benefits
4. Fixed missing constant (cypress/support/hugo-server.js):
- Added the missing HUGO_SHUTDOWN_TIMEOUT constant and exported it
- Updated the import in run-e2e-specs.js to include this constant
Result:
The cache statistics are now properly displayed in the terminal output after
running link validation tests, showing:
- Cache hit rate (percentage)
- Cache hits (number of cached validations)
- Cache misses (number of fresh validations)
- Total validations performed
- New entries stored in cache
- Expired entries cleaned (when applicable)
- Optimization message showing how many validations were saved by caching
- Add detailed cache statistics when all files are cached
- Improve Test Setup Validation messaging for cache scenarios
- Provide clearer information about why no validation is needed
- Address user concern about lack of helpful debugging information
- Enhance visibility into cache hit rates and file processing
- Fix Test Setup Validation to handle edge cases without false failures
- Remove unnecessary Cypress artifacts upload (screenshots/videos)
- Reduce verbose logging while maintaining debugging capability
- Add clear success/failure reporting with actionable messages
- Improve handling of empty test subjects and fallback scenarios
The test now only fails for genuine setup issues, not configuration
edge cases like empty subject lists or cache optimization scenarios.
- Fix GitHub Actions exit logic to only fail when broken links exist
- Improve Cypress test error handling with robust fallback mechanism
- Enhance Test Setup Validation to handle cache scenarios correctly
The workflow was incorrectly failing when generating success comments
with cache statistics, treating any comment generation as broken links.
Now properly distinguishes between success messages and actual failures.
Verification Results
- Direct module loading: ✅ Works perfectly
- Incremental validation: ✅ Processes files correctly
- Subprocess calls: ✅ No EPIPE errors
- Cache functionality: ✅ Operating normally
🔧 Technical Details
- All modules now use CommonJS require() statements
- Proper module.exports for compatibility
- File extensions changed to .cjs to work with type:
module in package.json
- Maintained all existing functionality and error
handling
during execution
- Resource management: Reducing memory pressure in
CI that causes process termination
- Signal handling: Properly cleaning up processes
on unexpected termination
- Timeout adjustments: Giving more time for
operations in CI environments
3. The Test Setup Validation Failure: This was
happening because the before() hook was failing when
it couldn't communicate with a dead Hugo process.
Your health monitoring will catch this earlier and
provide better error messages.
statements inside the async callback to ensure
subjects array is populated before accessing its
length
2. Proper Async Handling: Used
cy.wrap(Promise.all()) to handle multiple async
Cypress tasks correctly
3. Maintained Functionality: All existing GitHub
Actions workflows and Cypress tests will
continue to work
Both naming conventions are appropriate for
their use cases:
- filePathToUrl: Transforms content file paths
to URL paths
- fileURLToPath: Converts ES module file URLs to
file system paths
1. Script execution detection in matrix-generator.js -
Added fileURLToPath import and updated comparison
2. Script execution detection in incremental-validator.js -
Added fileURLToPath import and updated comparison
3. Script execution detection in link-extractor.js - Added
fileURLToPath import and updated comparison
4. Script execution detection in comment-generator.js -
Added fileURLToPath import and updated comparison
Medium Priority Issues (Fixed):
5. Extracted duplicated URL transformation logic - Created
shared utility module and updated both files to use it
6. Fixed cache key strategy - Updated GitHub workflow to
use content-based hashing instead of base SHA
Changes Made:
- 4 JavaScript files: Updated with robust script execution
detection using fileURLToPath
- 1 utility module: Created
/.github/scripts/utils/url-transformer.js for shared logic
- 2 files: Updated to use the shared URL transformation
utility
- 1 workflow file: Improved cache key strategy for better
cache hit rates
- Add GitHub Actions for automated link validation on PRs
- Implement incremental validation with caching (30-day TTL, configurable)
- Add matrix generator for parallel validation strategy
- Create comprehensive TESTING.md documentation
- Add cache manager with configurable TTL via env var or CLI
- Implement smart link extraction and validation
- Add PR comment generator for broken link reports
- Update Cypress tests to use incremental validation
- Consolidate testing docs from CONTRIBUTING.md to TESTING.md
Key improvements:
- Cache-aware validation only checks changed content
- Parallel execution for large changesets
- Detailed PR comments with broken link reports
- Support for LINK_CACHE_TTL_DAYS env var
- Local testing with yarn test:links
- Reduced false positives through intelligent caching