Skip to content

ci: fix docs workflow and remove duplicate net471 tests - #731

Merged
ooples merged 5 commits into
masterfrom
fix/comprehensive-docs-fixes
Jan 20, 2026
Merged

ooples merged 5 commits into
masterfrom
fix/comprehensive-docs-fixes

Conversation

@ooples

@ooples ooples commented Jan 20, 2026

Copy link
Copy Markdown
Owner

Summary

Documentation Workflow Fixes

  • Add condition to only download artifacts when triggered by workflow_run
  • Add continue-on-error to artifact download to prevent hard failures
  • When triggered via workflow_dispatch, fallback build will be used instead

Build & SonarCloud Workflow Optimization

  • Remove test-net471-sharded job (12 test shards)
  • Build verification for net471 is already done in the build-windows job
  • Only net10.0 tests run (they produce coverage for SonarCloud)
  • This cuts test jobs from ~24 to ~12, freeing up runners significantly

Why These Changes

  1. Docs workflow was failing when triggered via workflow_dispatch because artifact download couldn't find the workflow
  2. Duplicate testing was wasteful - running full tests for both net471 and net10.0 when build verification is sufficient for net471

Test Plan

  • Manually trigger Documentation workflow and verify it builds successfully
  • Verify net10.0 tests still run and produce coverage
  • Verify build-windows job still builds both frameworks

Generated with Claude Code

Copilot AI review requested due to automatic review settings January 20, 2026 00:24
@coderabbitai

coderabbitai Bot commented Jan 20, 2026 •

Copy link
Copy Markdown
Contributor

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Summary by CodeRabbit

  • Chores
    • Updated CI/CD workflow configurations for build artifact handling and conditional execution.
    • Streamlined testing pipeline by consolidating test execution strategy to reduce resource consumption.

✏️ Tip: You can customize this high-level summary in your review settings.

Walkthrough

GitHub Actions workflows updated to streamline CI operations. The docs workflow conditionally downloads build artifacts with fallback, while the SonarCloud workflow removes net471 testing in favor of net10.0 exclusively.

Changes

Cohort / File(s) Summary
GitHub Actions CI Workflows
.github/workflows/docs.yml, .github/workflows/sonarcloud.yml
docs.yml: Added conditional artifact download step from Build workflow that runs on workflow_run events with error continuation; renamed fallback restore step to include build. sonarcloud.yml: Removed all net471 test shards and artifact handling; consolidated to net10.0 tests only for SonarCloud coverage metrics.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

Poem

🐰 Hops of joy! The CI paths now flow,
Net471 takes a bow, net10 steals the show,
Artifacts dance when workflows call,
Faster tests and builds for all! 🚀

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the two main changes: fixing the docs workflow and removing duplicate net471 tests, matching the primary objectives of the pull request.
Description check ✅ Passed The description clearly explains the changes made to both workflows, provides rationale for the modifications, and outlines the test plan, all of which relate directly to the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/comprehensive-docs-fixes

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR optimizes CI workflows and adds comprehensive documentation structure to support DocFX-based documentation site generation.

Changes:

  • Removed duplicate net471 test job (12 shards) from CI workflow to reduce runner usage
  • Fixed docs workflow to handle both workflow_run and workflow_dispatch triggers with conditional artifact downloads
  • Added complete documentation structure with tutorials for Regression and Time Series, plus navigation files (toc.yml)
  • Updated links throughout documentation to use relative paths compatible with DocFX
  • Migrated GitHub Pages deployment to official GitHub Actions (configure-pages/upload-pages-artifact/deploy-pages)

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
.github/workflows/sonarcloud.yml Removed net471 test shards (lines 475-577), saving ~12 test jobs per run
.github/workflows/docs.yml Added conditional artifact download, switched to official GitHub Pages deployment actions, updated concurrency settings
toc.yml New root table of contents for DocFX navigation structure
docs/tutorials/toc.yml Added Regression and Time Series to tutorial navigation
docs/tutorials/time-series/index.md New tutorial covering 30+ time series models with examples
docs/tutorials/regression/index.md New tutorial covering 41+ regression algorithms with examples
docs/tutorials/index.md Removed Jekyll frontmatter, standardized relative links for DocFX
docs/reference/toc.yml New reference documentation navigation structure
docs/reference/index.md Removed Jekyll frontmatter for DocFX compatibility
docs/index.md Removed Jekyll frontmatter, updated links to relative paths
docs/getting-started/index.md Removed Jekyll frontmatter, updated .NET version requirement
docs/examples/toc.yml New examples navigation structure
docs/community/toc.yml New community section navigation structure
docs/community/index.md Removed Jekyll frontmatter, updated links to relative paths
api/index.md New comprehensive API reference landing page with namespace documentation
README.md Updated badges, comparison table, links to documentation site, .NET version requirements

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/docs.yml
Comment thread .github/workflows/docs.yml
Comment thread README.md
Comment thread .github/workflows/docs.yml
Comment thread .github/workflows/docs.yml
Comment thread .github/workflows/docs.yml

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/tutorials/index.md (1)

9-28: Align tutorial list with the updated TOC.

Classification is still listed here, but PR notes say it was removed from the tutorials TOC. Please keep the categories/learning path in sync with the TOC (either re-add Classification to the TOC or remove it here).

🤖 Fix all issues with AI agents
In @.github/workflows/docs.yml:
- Around line 37-42: Update the GitHub Actions step named "Setup .NET 10.0" to
use actions/setup-dotnet@v5 (or the specific SHA
baa11fbfe1d6520db94683bd5c7a3818018e4309) instead of actions/setup-dotnet@v4;
modify the uses value in that step so the workflow aligns with sonarcloud.yml
and uses the v5 release of the setup-dotnet action for .NET 10.0.x.

In `@README.md`:
- Line 1147: Update the README link text "Full API documentation is available at
[ooples.github.io/AiDotNet](https://ooples.github.io/AiDotNet/)" so the URL
points directly to the API reference under /api/ (use
https://ooples.github.io/AiDotNet/api/); keep the visible link text the same but
replace the href to the /api/ path to ensure users land on the API docs
directly.
🧹 Nitpick comments (1)
api/index.md (1)

29-36: Add explicit usings so the Quick Start compiles.

The snippet uses NeuralNetwork<double> and AdamOptimizer<double>, which are in AiDotNet.NeuralNetworks and AiDotNet.Optimizers respectively. These namespaces are not included in the project's global usings, so explicit using statements are required.

♻️ Proposed fix
 using AiDotNet;
+using AiDotNet.NeuralNetworks;
+using AiDotNet.Optimizers;

Comment thread .github/workflows/docs.yml
Comment thread README.md
@ooples
ooples force-pushed the fix/comprehensive-docs-fixes branch from 0aa8974 to c4ef98b Compare January 20, 2026 02:04
franklinic and others added 5 commits January 19, 2026 21:09
- Upgrade docs workflow from .NET 8.0 to .NET 10.0
- Add restore and build steps before DocFX metadata extraction
- Update docfx.json to use net10.0 target framework
- Add noRestore: true since we build separately
- Focus API generation on main packages (AiDotNet, AiDotNet.Tensors)
- Add toc.yml files for proper DocFX navigation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create root toc.yml for DocFX navigation
- Create api/index.md for API reference landing page
- Create toc.yml files for reference, community, and examples sections
- Remove Jekyll-specific syntax from all docs markdown files
- Fix broken internal links in docs to use relative paths
- Update .NET version references from 8.0 to 10.0
- Remove workflow step that overwrote DocFX landing page with static HTML
- DocFX now properly generates full documentation site with navigation

The documentation site now includes:
- Home page with feature comparison (TorchSharp, TensorFlow.NET, ML.NET, Accord.NET)
- Getting Started guide
- Tutorials section
- Reference documentation
- API Reference (auto-generated)
- Community section
- Interactive Playground

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Franklin Moormann <cheatcountry@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Franklin Moormann <cheatcountry@gmail.com>
Documentation workflow:
- Add condition to only download artifacts when triggered by workflow_run
- Add continue-on-error to artifact download to prevent hard failures
- When triggered via workflow_dispatch, fallback build will be used

Build & SonarCloud workflow:
- Remove test-net471-sharded job (12 test shards)
- Build verification for net471 is done in build-windows job
- Only net10.0 tests run (they produce coverage for SonarCloud)
- This cuts test jobs from ~24 to ~12, freeing up runners significantly

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants