Skip to content

Commit 4a8a02d

Browse files
authored
Merge pull request #313 from ocsigen/upgrade-to-net6
Update to .NET 6
2 parents 1ef4938 + b52c8ea commit 4a8a02d

File tree

14 files changed

+1095
-403
lines changed

14 files changed

+1095
-403
lines changed

.config/dotnet-tools.json

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@
33
"isRoot": true,
44
"tools": {
55
"fable": {
6-
"version": "3.6.3",
7-
"commands": ["fable"]
8-
},
9-
"fake-cli": {
10-
"version": "5.20.4",
11-
"commands": ["fake"]
6+
"version": "4.1.4",
7+
"commands": [
8+
"fable"
9+
]
1210
}
1311
}
14-
}
12+
}

.github/workflows/ci.yml

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,14 @@ jobs:
1515
os:
1616
- ubuntu-latest
1717
dotnet:
18-
- 5.0.x
18+
- 6.0.x
1919
node-version:
20-
- 16.x
20+
- 20.x
2121
ocaml-compiler:
2222
- 4.08.x
23-
- 4.09.x
24-
- 4.10.x
25-
- 4.11.x
2623
- 4.12.x
27-
- 4.13.x
2824
- 4.14.x
25+
- 5.0.x
2926

3027
runs-on: ${{ matrix.os }}
3128

@@ -34,7 +31,7 @@ jobs:
3431
uses: actions/checkout@v3
3532

3633
- name: Use .NET ${{ matrix.dotnet }}
37-
uses: actions/setup-dotnet@v2
34+
uses: actions/setup-dotnet@v3
3835
with:
3936
dotnet-version: ${{ matrix.dotnet }}
4037

@@ -52,14 +49,14 @@ jobs:
5249

5350
- name: Install .NET Dependencies
5451
run: |
55-
dotnet restore
52+
dotnet restore ts2ocaml.sln
5653
dotnet tool restore
5754
5855
- name: Install OCaml Dependencies
5956
run: opam install . --deps-only
6057

61-
- name: Run FAKE
62-
run: dotnet fake build target Test
58+
- name: Run build.fs
59+
run: dotnet run target Test
6360

6461
auto-merge:
6562
name: Auto-Merge PRs by Dependabot
@@ -73,5 +70,5 @@ jobs:
7370
- uses: fastify/github-action-merge-dependabot@v3
7471
with:
7572
target: minor
76-
exclude: 'typescript'
73+
exclude: "typescript"
7774
merge-method: merge

.github/workflows/publish.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
os:
1313
- ubuntu-latest
1414
dotnet:
15-
- 5.0.x
15+
- 6.0.x
1616
node-version:
1717
- 16.x
1818
ocaml-compiler:
@@ -42,14 +42,14 @@ jobs:
4242
dune-cache: true
4343

4444
- name: Install .NET Dependencies
45-
run: dotnet restore
45+
run: dotnet restore ts2ocaml.sln
4646
| dotnet tool restore
4747

4848
- name: Install OCaml Dependencies
4949
run: opam install . --deps-only
5050

51-
- name: Run FAKE
52-
run: dotnet fake build target All
51+
- name: Run build.fs
52+
run: dotnet run target All
5353

5454
- name: Push js_of_ocaml standard library to jsoo-stdlib
5555
if: success()

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"files.exclude": {
33
"**/*.fs.js*": true
4-
}
4+
},
5+
"editor.inlayHints.enabled": "offUnlessPressed"
56
}

build.fsx renamed to build.fs

Lines changed: 93 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,4 @@
1-
#r "paket:
2-
nuget Fake.DotNet.Cli
3-
nuget Fake.DotNet.Paket
4-
nuget Fake.Core.Target
5-
nuget Fake.Core.Process
6-
nuget Fake.Core.String
7-
nuget Fake.Core.ReleaseNotes
8-
nuget Fake.IO.FileSystem
9-
nuget Fake.Tools.Git
10-
nuget Fake.JavaScript.Yarn
11-
//"
12-
#load ".fake/build.fsx/intellisense.fsx"
13-
14-
#nowarn "52"
1+
#nowarn "20" "52"
152

163
open Fake.Core
174
open Fake.Core.TargetOperators
@@ -20,7 +7,6 @@ open Fake.IO
207
open Fake.IO.Globbing.Operators
218
open Fake.IO.FileSystemOperators
229
open Fake.JavaScript
23-
2410
let rootDir = Path.getFullName "."
2511
let srcDir = "./src"
2612
let outputDir = "./output"
@@ -55,55 +41,56 @@ let dune args = run opamTool "./" (sprintf "exec -- dune %s" args)
5541

5642
// Build targets
5743

58-
Target.create "Clean" <| fun _ ->
59-
!! "src/bin"
60-
++ "src/obj"
61-
++ distDir
62-
++ "src/.fable"
63-
|> Seq.iter Shell.cleanDir
44+
let setup () =
45+
Target.create "Clean" <| fun _ ->
46+
!! "src/bin"
47+
++ "src/obj"
48+
++ distDir
49+
++ "src/.fable"
50+
|> Seq.iter Shell.cleanDir
6451

65-
!! "src/**/*fs.js"
66-
++ "src/**/*fs.js.map"
67-
|> Seq.iter Shell.rm
52+
!! "src/**/*fs.js"
53+
++ "src/**/*fs.js.map"
54+
|> Seq.iter Shell.rm
6855

69-
Target.create "Restore" <| fun _ ->
70-
DotNet.restore
71-
(DotNet.Options.withWorkingDirectory __SOURCE_DIRECTORY__)
72-
"ts2ocaml.sln"
56+
Target.create "Restore" <| fun _ ->
57+
DotNet.restore
58+
(DotNet.Options.withWorkingDirectory __SOURCE_DIRECTORY__)
59+
"ts2ocaml.sln"
7360

74-
Target.create "YarnInstall" <| fun _ ->
75-
Yarn.installFrozenLockFile (fun ``params`` ->
76-
{ ``params`` with WorkingDirectory = "./" })
61+
Target.create "YarnInstall" <| fun _ ->
62+
Yarn.installFrozenLockFile (fun ``params`` ->
63+
{ ``params`` with WorkingDirectory = "./" })
7764

78-
Target.create "Prepare" ignore
65+
Target.create "Prepare" ignore
7966

80-
Target.create "BuildForPublish" <| fun _ ->
81-
dotnetExec "fable" $"{srcDir} --sourceMaps --run webpack --mode=production"
67+
Target.create "BuildForPublish" <| fun _ ->
68+
dotnetExec "fable" $"{srcDir} --sourceMaps --run webpack --mode=production"
8269

83-
Target.create "BuildForTest" <| fun _ ->
84-
dotnetExec "fable" $"{srcDir} --sourceMaps --define DEBUG --run webpack --mode=development"
70+
Target.create "BuildForTest" <| fun _ ->
71+
dotnetExec "fable" $"{srcDir} --sourceMaps --define DEBUG --run webpack --mode=development"
8572

86-
Target.create "Build" ignore
73+
Target.create "Build" ignore
8774

88-
Target.create "Watch" <| fun _ ->
89-
dotnetExec "fable" $"watch {srcDir} --sourceMaps --define DEBUG --run webpack -w --mode=development"
75+
Target.create "Watch" <| fun _ ->
76+
dotnetExec "fable" $"watch {srcDir} --sourceMaps --define DEBUG --run webpack -w --mode=development"
9077

91-
Target.create "TestComplete" ignore
78+
Target.create "TestComplete" ignore
9279

93-
"Clean"
94-
==> "YarnInstall"
95-
==> "Restore"
96-
==> "Prepare"
97-
==> "Build"
80+
"Clean"
81+
==> "YarnInstall"
82+
==> "Restore"
83+
==> "Prepare"
84+
==> "Build"
9885

99-
"Prepare"
100-
?=> "BuildForTest"
101-
?=> "TestComplete"
102-
?=> "BuildForPublish"
103-
==> "Build"
86+
"Prepare"
87+
?=> "BuildForTest"
88+
?=> "TestComplete"
89+
?=> "BuildForPublish"
90+
==> "Build"
10491

105-
"Prepare"
106-
?=> "Watch"
92+
"Prepare"
93+
?=> "Watch"
10794

10895
// Test targets
10996

@@ -157,24 +144,25 @@ module Test =
157144
printfn "* copied to %s" file
158145
inDirectory testDir <| fun () -> dune "build"
159146

160-
Target.create "TestJsooClean" <| fun _ -> Test.Jsoo.clean ()
161-
Target.create "TestJsooGenerateBindings" <| fun _ -> Test.Jsoo.generateBindings ()
162-
Target.create "TestJsooBuild" <| fun _ -> Test.Jsoo.build ()
163-
Target.create "TestJsoo" ignore
147+
let setup () =
148+
Target.create "TestJsooClean" <| fun _ -> Jsoo.clean ()
149+
Target.create "TestJsooGenerateBindings" <| fun _ -> Jsoo.generateBindings ()
150+
Target.create "TestJsooBuild" <| fun _ -> Jsoo.build ()
151+
Target.create "TestJsoo" ignore
164152

165-
"BuildForTest"
166-
==> "TestJsooClean"
167-
==> "TestJsooGenerateBindings"
168-
==> "TestJsooBuild"
169-
==> "TestJsoo"
153+
"BuildForTest"
154+
==> "TestJsooClean"
155+
==> "TestJsooGenerateBindings"
156+
==> "TestJsooBuild"
157+
==> "TestJsoo"
170158

171-
Target.create "Test" ignore
172-
Target.create "TestOnly" ignore
159+
Target.create "Test" ignore
160+
Target.create "TestOnly" ignore
173161

174-
"TestJsoo"
175-
==> "TestOnly"
176-
==> "TestComplete"
177-
==> "Test"
162+
"TestJsoo"
163+
==> "TestOnly"
164+
==> "TestComplete"
165+
==> "Test"
178166

179167
// Publish targets
180168

@@ -222,33 +210,49 @@ module Publish =
222210
let testBuild () =
223211
inDirectory targetDir <| fun () -> dune "build"
224212

225-
Target.create "Publish" <| fun _ -> ()
226-
Target.create "PublishOnly" <| fun _ -> ()
213+
let setup () =
214+
Target.create "Publish" <| fun _ -> ()
215+
Target.create "PublishOnly" <| fun _ -> ()
216+
217+
Target.create "PublishNpm" <| fun _ ->
218+
Npm.updateVersion ()
219+
220+
Target.create "PublishJsoo" <| fun _ ->
221+
Jsoo.copyArtifacts ()
222+
Jsoo.updateVersion ()
223+
Jsoo.testBuild ()
227224

228-
Target.create "PublishNpm" <| fun _ ->
229-
Publish.Npm.updateVersion ()
225+
"BuildForPublish"
226+
==> "PublishNpm"
227+
==> "PublishJsoo"
228+
==> "PublishOnly"
229+
==> "Publish"
230230

231-
Target.create "PublishJsoo" <| fun _ ->
232-
Publish.Jsoo.copyArtifacts ()
233-
Publish.Jsoo.updateVersion ()
234-
Publish.Jsoo.testBuild ()
231+
"TestJsoo" ==> "PublishJsoo"
235232

236-
"BuildForPublish"
237-
==> "PublishNpm"
238-
==> "PublishJsoo"
239-
==> "PublishOnly"
240-
==> "Publish"
233+
"Build" ?=> "Test" ?=> "Publish"
241234

242-
"TestJsoo" ==> "PublishJsoo"
235+
[<EntryPoint>]
236+
let main argv =
237+
Shell.cd __SOURCE_DIRECTORY__
243238

244-
"Build" ?=> "Test" ?=> "Publish"
239+
argv
240+
|> Array.toList
241+
|> Context.FakeExecutionContext.Create false "build.fsx"
242+
|> Context.RuntimeContext.Fake
243+
|> Context.setExecutionContext
245244

246-
Target.create "All" ignore
245+
setup ()
246+
Test.setup ()
247+
Publish.setup ()
247248

248-
"Build"
249-
==> "Test"
250-
==> "Publish"
251-
==> "All"
249+
Target.create "All" ignore
250+
"Build"
251+
==> "Test"
252+
==> "Publish"
253+
==> "All"
252254

253-
// start build
254-
Target.runOrDefault "Build"
255+
// start build
256+
Target.runOrDefault "All"
257+
258+
0

build.fsproj

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net6.0</TargetFramework>
6+
</PropertyGroup>
7+
8+
<ItemGroup>
9+
<Compile Include="build.fs" />
10+
</ItemGroup>
11+
12+
<ItemGroup>
13+
<PackageReference Include="Fake.Core.Process" Version="6.0.0" />
14+
<PackageReference Include="Fake.Core.ReleaseNotes" Version="6.0.0" />
15+
<PackageReference Include="Fake.Core.String" Version="6.0.0" />
16+
<PackageReference Include="Fake.Core.Target" Version="6.0.0" />
17+
<PackageReference Include="Fake.DotNet.Cli" Version="6.0.0" />
18+
<PackageReference Include="Fake.IO.FileSystem" Version="6.0.0" />
19+
<PackageReference Include="Fake.JavaScript.Yarn" Version="6.0.0" />
20+
<PackageReference Include="Fake.Tools.Git" Version="6.0.0" />
21+
</ItemGroup>
22+
23+
</Project>

0 commit comments

Comments
 (0)