diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 222d69af81..d6b5435816 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,10 +3,11 @@ "isRoot": true, "tools": { "fsdocs-tool": { - "version": "16.0.2", + "version": "21.0.0-beta-005", "commands": [ "fsdocs" - ] + ], + "rollForward": false } } -} +} \ No newline at end of file diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..8ce0230202 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,12 @@ +version: 2 +updates: + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + + - package-ecosystem: "nuget" + directory: "/" + schedule: + interval: "daily" diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 53ec80290b..74a94b1d2a 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -10,33 +10,43 @@ on: - main workflow_dispatch: +env: + FSHARP_DIR: fsharp + jobs: build: - runs-on: windows-latest + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Setup .NET Core - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 6.0.203 - - name: Setup .NET Core - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 7.0.100-preview.6.22352.1 - - name: Restore tools - run: dotnet tool restore - - name: Restore projects - run: dotnet restore FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj - - name: Checkout fsharp master - run: git clone https://github.com/dotnet/fsharp --depth 1 fsharp -b main - - name: Build fsharp master (turn of CI build status) - run: cd fsharp && eng\CIBuild.cmd -noVisualStudio - - name: Run fsdocs - run: dotnet fsdocs build --sourcefolder fsharp --input fsharp/docs - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 - with: - personal_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./output - publish_branch: gh-pages - force_orphan: true + - uses: actions/checkout@v4 + - name: Checkout fsharp main + uses: actions/checkout@v4 + with: + repository: dotnet/fsharp + path: ${{ env.FSHARP_DIR }} + ref: main + - name: Setup .NET for FSharp + uses: actions/setup-dotnet@v4 + with: + global-json-file: ${{ env.FSHARP_DIR }}/global.json + - name: Restore tools + run: dotnet tool restore + - name: Restore FSharp.Compiler.Service.fsproj + run: dotnet restore FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj + - name: Build FCS + run: dotnet build FSharp.Compiler.Service.sln + working-directory: ${{ env.FSHARP_DIR }} + + - name: Run fsdocs + env: + # allow roll forward to latest major version - this would happen for us if we invoked the fsdocs tool instead of invoking the binary directly + DOTNET_ROLL_FORWARD: "LatestMajor" + # need previews because .NET 8 is what's being used at runtime + DOTNET_ROLL_FORWARD_TO_PRERELEASE: "1" + run: dotnet fsdocs build --eval --sourcefolder fsharp --input fsharp/docs + - name: Deploy + uses: peaceiris/actions-gh-pages@v4 + with: + personal_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./output + publish_branch: gh-pages + force_orphan: true diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 68426085a4..f215d56de8 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -5,32 +5,37 @@ on: branches: - '**' +env: + FSHARP_DIR: fsharp + jobs: build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Checkout fsharp main + uses: actions/checkout@v4 + with: + repository: dotnet/fsharp + path: ${{ env.FSHARP_DIR }} + ref: main + - name: Setup .NET for FSharp + uses: actions/setup-dotnet@v4 + with: + global-json-file: ${{ env.FSHARP_DIR }}/global.json + - name: Restore tools + run: dotnet tool restore + - name: Restore FSharp.Compiler.Service.fsproj + run: dotnet restore FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj - strategy: - matrix: - os: [windows-latest] - dotnet: [6.0.203] - runs-on: ${{ matrix.os }} + - name: Build FCS + run: dotnet build FSharp.Compiler.Service.sln + working-directory: ${{ env.FSHARP_DIR }} - steps: - - uses: actions/checkout@v2 - - name: Setup .NET Core - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 6.0.203 - - name: Setup .NET Core - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 7.0.100-preview.6.22352.1 - - name: Restore tools - run: dotnet tool restore - - name: Restore projects - run: dotnet restore FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj - - name: Checkout fsharp master - run: git clone https://github.com/dotnet/fsharp --depth 1 fsharp -b main - - name: Build fsharp master (turn of CI build status) - run: cd fsharp && eng\CIBuild.cmd -noVisualStudio - - name: Run fsdocs - run: dotnet fsdocs build --sourcefolder fsharp --input fsharp/docs + - name: Run fsdocs + env: + # allow roll forward to latest major version - this would happen for us if we invoked the fsdocs tool instead of invoking the binary directly + DOTNET_ROLL_FORWARD: "LatestMajor" + # need previews because .NET 8 is what's being used at runtime + DOTNET_ROLL_FORWARD_TO_PRERELEASE: "1" + run: dotnet fsdocs build --eval --sourcefolder fsharp --input fsharp/docs diff --git a/.gitignore b/.gitignore index 6e2e1f7f49..0d5e6eea97 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ FSharp.Formatting/ .fsdocs/ FSharp.Compiler.Service/obj/ tmp/ - +output/ diff --git a/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj b/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj index f03f03d8d0..c7745d00d9 100644 --- a/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj +++ b/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj @@ -18,10 +18,10 @@ - $(MSBuildThisFileDirectory)..\..\fsharp\artifacts\bin\FSharp.Compiler.Service\Debug\netstandard2.0\FSharp.Compiler.Service.dll + $(MSBuildThisFileDirectory)..\..\fsharp\artifacts\bin\FSharp.Compiler.Service\Debug\netstandard2.0\FSharp.Compiler.Service.dll - $(MSBuildThisFileDirectory)..\fsharp\artifacts\bin\FSharp.Compiler.Service\Debug\netstandard2.0\FSharp.Compiler.Service.dll + $(MSBuildThisFileDirectory)..\fsharp\artifacts\bin\FSharp.Compiler.Service\Debug\netstandard2.0\FSharp.Compiler.Service.dll diff --git a/README.md b/README.md index d6934b1191..cd27934674 100644 --- a/README.md +++ b/README.md @@ -25,20 +25,21 @@ Eventually the build will just be For now, we make a fresh build of FSharp.Compiler.Service. - (start in fsharp-conpiler-docs) - dotnet restore fsharp-conpiler-docs + (start in fsharp-compiler-docs) + dotnet restore FSharp.Compiler.Service + dotnet tool restore - (make fsharp-conpiler-docs/fsharp) + (make fsharp-compiler-docs/fsharp) git clone https://github.com/dotnet/fsharp --depth 1 -b main - (build fsharp-conpiler-docs) + (build fsharp-compiler-docs/fsharp) pushd fsharp - .\build -noVisualStudio + dotnet build src/Compiler/FSharp.Compiler.Service.fsproj /p:BUILDING_USING_DOTNET=true popd Then do iterative development using: - (from fsharp-conpiler-docs) + (from fsharp-compiler-docs) dotnet fsdocs watch --sourcefolder fsharp --input fsharp/docs ## CI Pipeline