Conversation
Allow executable projects (OutputType=Exe or WinExe) to be included in API documentation generation when --allowExecutableProjects is set. Previously, fsdocs would unconditionally skip non-library projects. This adds a new CLI flag that relaxes that check so that programs (like FsAutoComplete) can have API docs generated for them. Closes #918 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
✅ Pull request created: #997 |
…rojects-cbba921211624626
|
@nojaf I think this should be a project file setting too right, like the other one. Agree with Repo Assist's assessment that it should be opt-in |
|
/repo-assist This should be a project file setting rather than a command line flag. Obviously opt-in. Make sure docs get updated. Update this PR |
…Project project file setting Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Commit pushed:
|
|
🤖 Repo Assist here. Done — I've updated this PR to use a per-project file setting instead of a CLI flag. What changed:
Usage: add to any (FsDocsAllowExecutableProject)true(/FsDocsAllowExecutableProject)
|
…rojects-cbba921211624626
🤖 This PR was created by Repo Assist, an automated AI assistant.
Fixes the constraint in
ProjectCracker.fsthat unconditionally skipped non-library projects from API documentation generation.Root cause: The
crackProjectsfunction filtered out any project whereOutputType != "library", with no way to opt in.Fix: Adds a new
--allowExecutableProjectsCLI flag. When set, theOutputTypecheck is skipped and executable projects (Exe/WinExe) are included in documentation generation alongside libraries.Changes:
ProjectCracker.fs: ExtendedcrackProjectssignature withallowExecutableProjectsparameter; added that parameter to the filter condition; improved the skip message to hint at the flag.BuildCommand.fs: Added--allowExecutableProjectsCLI option and wired it through tocrackProjects.RELEASE_NOTES.md: Added entry under[Unreleased].Trade-offs: This is opt-in via the flag so existing users are unaffected. Executable projects that expose public modules/types (like FsAutoComplete) work identically to libraries for API doc purposes.
Test Status
Build: ✅
dotnet build src/fsdocs-tool/fsdocs-tool.fsproj --configuration Release— succeeded with 0 errors.Format: ✅ Fantomas applied cleanly.
Closes #918