From fc59f561f70645f27f139d47fafab11791b93411 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 9 May 2026 13:08:44 +0000 Subject: [PATCH 1/7] remove: Dockerfile and mybinder badge/documentation Remove the docs/Dockerfile (used for mybinder.org Binder integration) and all mybinder badge links from the six documentation .fsx pages. Also remove the mybinder documentation section from content.fsx and the mybinder recommendation from upgrade.md. The Binder integration relied on a deprecated .NET 7 SDK image and a deprecated Microsoft.dotnet-interactive version; mybinder.org support is discontinued per maintainer decision. Closes #1178 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- RELEASE_NOTES.md | 3 +++ docs/Dockerfile | 29 ----------------------------- docs/apidocs.fsx | 1 - docs/codeformat.fsx | 1 - docs/content.fsx | 6 ------ docs/evaluation.fsx | 1 - docs/img/badge-binder.svg | 1 - docs/literate.fsx | 1 - docs/markdown.fsx | 1 - docs/upgrade.md | 4 +--- 10 files changed, 4 insertions(+), 44 deletions(-) delete mode 100644 docs/Dockerfile delete mode 100644 docs/img/badge-binder.svg diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index f89754c71..2d64ae192 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -2,6 +2,9 @@ ## [Unreleased] +### Removed +* Remove `docs/Dockerfile` (used for mybinder.org Binder integration) and mybinder badge links from documentation pages. The Binder integration relied on a deprecated .NET 7 SDK image and a deprecated `Microsoft.dotnet-interactive` version; mybinder.org support is discontinued. + ## [22.0.1] - 2026-04-19 ### Changed diff --git a/docs/Dockerfile b/docs/Dockerfile deleted file mode 100644 index 989c9abb2..000000000 --- a/docs/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM mcr.microsoft.com/dotnet/sdk:7.0 - -RUN apt-get update \ - && apt-get -y upgrade \ - && apt-get -y install python3 python3-pip python3-dev ipython3 - -RUN python3 -m pip install --no-cache-dir notebook jupyterlab - -ARG NB_USER=fsdocs-user -ARG NB_UID=1000 -ENV USER ${NB_USER} -ENV NB_UID ${NB_UID} -ENV HOME /home/${NB_USER} - -RUN adduser --disabled-password \ - --gecos "Default user" \ - --uid ${NB_UID} \ - ${NB_USER} - -COPY . ${HOME} -USER root -RUN chown -R ${NB_UID} ${HOME} -USER ${NB_USER} - -ENV PATH="${PATH}:$HOME/.dotnet/tools/" - -RUN dotnet tool install --global Microsoft.dotnet-interactive --version 1.0.410202 - -RUN dotnet-interactive jupyter install diff --git a/docs/apidocs.fsx b/docs/apidocs.fsx index e2fc1636c..653fad783 100644 --- a/docs/apidocs.fsx +++ b/docs/apidocs.fsx @@ -27,7 +27,6 @@ index: 7 let root = "C:\\" (** -[![Binder](img/badge-binder.svg)](https://mybinder.org/v2/gh/fsprojects/fsharp.formatting/gh-pages?filepath={{fsdocs-source-basename}}.ipynb)  [![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  [![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) diff --git a/docs/codeformat.fsx b/docs/codeformat.fsx index fe55d5274..249993443 100644 --- a/docs/codeformat.fsx +++ b/docs/codeformat.fsx @@ -22,7 +22,6 @@ index: 1 #endif // IPYNB (** -[![Binder](img/badge-binder.svg)](https://mybinder.org/v2/gh/fsprojects/fsharp.formatting/gh-pages?filepath={{fsdocs-source-basename}}.ipynb)  [![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  [![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) diff --git a/docs/content.fsx b/docs/content.fsx index 3b682e069..364ffe158 100644 --- a/docs/content.fsx +++ b/docs/content.fsx @@ -23,7 +23,6 @@ index: 6 (** -[![Binder](img/badge-binder.svg)](https://mybinder.org/v2/gh/fsprojects/fsharp.formatting/gh-pages?filepath={{fsdocs-source-basename}}.ipynb)  [![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  [![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) @@ -225,11 +224,6 @@ of the document is placed. To generate .ipynb output for each script and markdown file, add a `_template.ipynb`, usually empty. Substitutions are applied to this template. -To add a `mybinder` badge to your generated notebook, ensure you have a `Dockerfile` and `NuGet.config` -in your `docs` directory and use text like this: - - [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/fsprojects/FSharp.Formatting/gh-pages?filepath=literate.ipynb) - ## Generating Script outputs To generate .fsx output for each script and markdown file, add a `_template.fsx`, usually empty. Substitutions are diff --git a/docs/evaluation.fsx b/docs/evaluation.fsx index 34895aee7..5a1b20859 100644 --- a/docs/evaluation.fsx +++ b/docs/evaluation.fsx @@ -22,7 +22,6 @@ index: 8 #endif // IPYNB (** -[![Binder](img/badge-binder.svg)](https://mybinder.org/v2/gh/fsprojects/fsharp.formatting/gh-pages?filepath={{fsdocs-source-basename}}.ipynb)  [![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  [![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) diff --git a/docs/img/badge-binder.svg b/docs/img/badge-binder.svg deleted file mode 100644 index 8df9f49a7..000000000 --- a/docs/img/badge-binder.svg +++ /dev/null @@ -1 +0,0 @@ -Run in BinderRun in Binder \ No newline at end of file diff --git a/docs/literate.fsx b/docs/literate.fsx index f456d0d00..d698c4b8f 100644 --- a/docs/literate.fsx +++ b/docs/literate.fsx @@ -23,7 +23,6 @@ index: 4 (** -[![Binder](img/badge-binder.svg)](https://mybinder.org/v2/gh/fsprojects/fsharp.formatting/gh-pages?filepath={{fsdocs-source-basename}}.ipynb)  [![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  [![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) diff --git a/docs/markdown.fsx b/docs/markdown.fsx index 13953676b..bc97780dd 100644 --- a/docs/markdown.fsx +++ b/docs/markdown.fsx @@ -20,7 +20,6 @@ index: 2 (** -[![Binder](img/badge-binder.svg)](https://mybinder.org/v2/gh/fsprojects/fsharp.formatting/gh-pages?filepath={{fsdocs-source-basename}}.ipynb)  [![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  [![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) diff --git a/docs/upgrade.md b/docs/upgrade.md index c65a4980a..2b110a758 100644 --- a/docs/upgrade.md +++ b/docs/upgrade.md @@ -47,9 +47,7 @@ Here are the typical steps to upgrade a repo based on `ProjectScaffold` to use ` 7. Consider creating `docs\_template.fsx` and `docs\_template.ipynb` to enable co-generation of F# scripts and F# notebooks. - If you add support for notebooks and scripts, consider adding mybinder links to each of your literate executable content pages. For example [like this](https://github.com/fsprojects/FSharp.Formatting/blob/master/docs/literate.fsx#L19). - - Also add load sections to make sure your notebooks and scripts contain the right content to load packages out of repo. For example [like this](https://github.com/fsprojects/FSharp.Formatting/blob/master/docs/literate.fsx#L1). + Add load sections to make sure your notebooks and scripts contain the right content to load packages out of repo. For example [like this](https://github.com/fsprojects/FSharp.Formatting/blob/master/docs/literate.fsx#L1). Sample commands: From da3e92f775283a6daa35ae778af3488c1d1765ba Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 9 May 2026 13:08:48 +0000 Subject: [PATCH 2/7] ci: trigger checks From b8feb7fd720b2f3be9675e7aad8b5607787ffd3a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 23:39:08 +0000 Subject: [PATCH 3/7] fix: remove Dockerfile reference from fsdocs-tool.fsproj The docs/Dockerfile was deleted as part of the mybinder removal, but the NuGet pack content reference in fsdocs-tool.fsproj was not updated, causing NU5019 build failure. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/fsdocs-tool/fsdocs-tool.fsproj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/fsdocs-tool/fsdocs-tool.fsproj b/src/fsdocs-tool/fsdocs-tool.fsproj index a95ff4927..e3168ad0b 100644 --- a/src/fsdocs-tool/fsdocs-tool.fsproj +++ b/src/fsdocs-tool/fsdocs-tool.fsproj @@ -33,7 +33,6 @@ - From 01374c720137aa3b8f0615df7da924caa8e38eca Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 13 May 2026 23:39:10 +0000 Subject: [PATCH 4/7] ci: trigger checks From 426e2dd870017b9ec4561f007e17399d81d6f510 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 15:30:23 +0000 Subject: [PATCH 5/7] Remove .ipynb notebook badge links and badge-notebook.svg from docs .NET Interactive is deprecated and there is no current replacement. The badge links served no practical purpose. The .ipynb output format itself is unchanged. Requested by @dsyme in response to suggestion by @nhirschey. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- RELEASE_NOTES.md | 1 + docs/apidocs.fsx | 6 +----- docs/codeformat.fsx | 4 +--- docs/content.fsx | 4 +--- docs/evaluation.fsx | 5 +---- docs/img/badge-notebook.svg | 1 - docs/literate.fsx | 4 +--- docs/markdown.fsx | 5 +---- 8 files changed, 7 insertions(+), 23 deletions(-) delete mode 100644 docs/img/badge-notebook.svg diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 2d64ae192..c228c569a 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -4,6 +4,7 @@ ### Removed * Remove `docs/Dockerfile` (used for mybinder.org Binder integration) and mybinder badge links from documentation pages. The Binder integration relied on a deprecated .NET 7 SDK image and a deprecated `Microsoft.dotnet-interactive` version; mybinder.org support is discontinued. +* Remove `.ipynb` (Jupyter Notebook) "run in notebook" badge links from all documentation pages and delete `docs/img/badge-notebook.svg`. The links linked to `.ipynb` outputs generated by fsdocs, but .NET Interactive (which powered those notebooks) is deprecated and has no current replacement. The `.ipynb` output format itself is unchanged. ## [22.0.1] - 2026-04-19 diff --git a/docs/apidocs.fsx b/docs/apidocs.fsx index 653fad783..4ec506723 100644 --- a/docs/apidocs.fsx +++ b/docs/apidocs.fsx @@ -27,8 +27,7 @@ index: 7 let root = "C:\\" (** -[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  -[![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) +[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx) API Documentation Generation ==================================== @@ -193,7 +192,6 @@ module Forest = /// let findSquirrels (limit : int) = [] - (** You can find the correct value for `cref` in the generated `.xml` documentation file (this will be generated alongside the assembly's `.dll``). You can also omit the `cref`'s arguments, and `fsdocs` will make an attempt to find the first member that matches. @@ -206,7 +204,6 @@ For example: If the member cannot be found, a link to the containing module/type will be used instead. *) - (** ### Classic XMl Doc Comments: Excluding APIs from the docs @@ -362,7 +359,6 @@ module Bar2 = (** - ## Building library documentation programmatically You can build library documentation programmatically using the functionality diff --git a/docs/codeformat.fsx b/docs/codeformat.fsx index 249993443..23361d528 100644 --- a/docs/codeformat.fsx +++ b/docs/codeformat.fsx @@ -22,8 +22,7 @@ index: 1 #endif // IPYNB (** -[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  -[![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) +[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx) Code formatting ============================== @@ -76,7 +75,6 @@ A single source file can include multiple snippets using the same formatting tag as those used on [fssnip.net](http://www.fssnip.net) as documented in the [about page](http://www.fssnip.net/pages/About). - Working with returned tokens ---------------------------- diff --git a/docs/content.fsx b/docs/content.fsx index 364ffe158..e3f8af45f 100644 --- a/docs/content.fsx +++ b/docs/content.fsx @@ -21,10 +21,8 @@ index: 6 #r "nuget: FSharp.Formatting,{{fsdocs-package-version}}" #endif // IPYNB - (** -[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  -[![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) +[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx) Creating Content =================================== diff --git a/docs/evaluation.fsx b/docs/evaluation.fsx index 5a1b20859..a55483f21 100644 --- a/docs/evaluation.fsx +++ b/docs/evaluation.fsx @@ -22,12 +22,10 @@ index: 8 #endif // IPYNB (** -[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  -[![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) +[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx) # Embedding script output - For literate F# scripts, you may embed the result of running the script as part of the literate output. This is a feature of the functions discussed in [literate programming](literate.html) and it is implemented using the [F# Compiler service](http://fsharp.github.io/FSharp.Compiler.Service/). @@ -50,7 +48,6 @@ To include the a formatted value use ``include-it``: (*** include-it ***) - To include the meta output of F# Interactive processing such as type signatures use `(*** include-fsi-output ***)`: let test = 40 + 3 diff --git a/docs/img/badge-notebook.svg b/docs/img/badge-notebook.svg deleted file mode 100644 index a001b5449..000000000 --- a/docs/img/badge-notebook.svg +++ /dev/null @@ -1 +0,0 @@ -Download notebookDownload notebook \ No newline at end of file diff --git a/docs/literate.fsx b/docs/literate.fsx index d698c4b8f..a22907a23 100644 --- a/docs/literate.fsx +++ b/docs/literate.fsx @@ -21,10 +21,8 @@ index: 4 #r "nuget: FSharp.Formatting,{{fsdocs-package-version}}" #endif // IPYNB - (** -[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  -[![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) +[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx) Literate Scripts ================ diff --git a/docs/markdown.fsx b/docs/markdown.fsx index bc97780dd..7a80ab73e 100644 --- a/docs/markdown.fsx +++ b/docs/markdown.fsx @@ -18,10 +18,8 @@ index: 2 #r "nuget: FSharp.Formatting,{{fsdocs-package-version}}" #endif // IPYNB - (** -[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx)  -[![Notebook](img/badge-notebook.svg)]({{root}}/{{fsdocs-source-basename}}.ipynb) +[![Script](img/badge-script.svg)]({{root}}/{{fsdocs-source-basename}}.fsx) Markdown parser ============================== @@ -36,7 +34,6 @@ First, we need to load the assembly and open the necessary namespaces: open FSharp.Formatting.Markdown open FSharp.Formatting.Common - (** Parsing documents ----------------- From f7285f82a143e4baf9464a3f8ccd8f2647681582 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 18 May 2026 15:30:25 +0000 Subject: [PATCH 6/7] ci: trigger checks From f9f83f071b64a88ffd79c28120e08d50c1adcc64 Mon Sep 17 00:00:00 2001 From: nojaf Date: Wed, 27 May 2026 15:00:11 +0200 Subject: [PATCH 7/7] Move to unreleased --- RELEASE_NOTES.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 44afc16f7..db104a87d 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,15 +1,17 @@ # Changelog +## [Unreleased] + +### Removed +* Remove `docs/Dockerfile` (used for mybinder.org Binder integration) and mybinder badge links from documentation pages. The Binder integration relied on a deprecated .NET 7 SDK image and a deprecated `Microsoft.dotnet-interactive` version; mybinder.org support is discontinued. +* Remove `.ipynb` (Jupyter Notebook) "run in notebook" badge links from all documentation pages and delete `docs/img/badge-notebook.svg`. The links linked to `.ipynb` outputs generated by fsdocs, but .NET Interactive (which powered those notebooks) is deprecated and has no current replacement. The `.ipynb` output format itself is unchanged. + ## [22.1.0] - 2026-05-22 ### Changed * Improve `ProjectCracker` project resolution to handle `*.slnf` and `*.slnx`. [#1213](https://github.com/fsproject s/FSharp.Formatting/pull/1213) -### Removed -* Remove `docs/Dockerfile` (used for mybinder.org Binder integration) and mybinder badge links from documentation pages. The Binder integration relied on a deprecated .NET 7 SDK image and a deprecated `Microsoft.dotnet-interactive` version; mybinder.org support is discontinued. -* Remove `.ipynb` (Jupyter Notebook) "run in notebook" badge links from all documentation pages and delete `docs/img/badge-notebook.svg`. The links linked to `.ipynb` outputs generated by fsdocs, but .NET Interactive (which powered those notebooks) is deprecated and has no current replacement. The `.ipynb` output format itself is unchanged. - ## [22.0.1] - 2026-04-19 ### Changed