Skip to content

Commit 17b5584

Browse files
committed
Merge branch 'master' into v1.3
2 parents 09cf4be + e3f71e8 commit 17b5584

40 files changed

+375
-1808
lines changed

.config/dotnet-tools.json

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,8 @@
22
"version": 1,
33
"isRoot": true,
44
"tools": {
5-
"fake-cli": {
6-
"version": "5.19",
7-
"commands": [
8-
"fake"
9-
]
10-
},
115
"fable": {
12-
"version": "3.7.11",
6+
"version": "3.7.20",
137
"commands": [
148
"fable"
159
]
@@ -21,4 +15,4 @@
2115
]
2216
}
2317
}
24-
}
18+
}

.github/workflows/dotnetcore.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- name: Setup .NET Core
2626
uses: actions/setup-dotnet@v1
2727
with:
28-
dotnet-version: 6.0.201
28+
dotnet-version: 7.0.100
2929
- name: Restore
3030
run: git submodule update --init --recursive
3131
- name: Build with dotnet
@@ -38,7 +38,11 @@ jobs:
3838

3939
steps:
4040
- uses: actions/checkout@v2
41-
- name: Setup .NET Core
41+
- name: Setup .NET Core 7
42+
uses: actions/setup-dotnet@v1
43+
with:
44+
dotnet-version: 7.0.100
45+
- name: Setup .NET Core 6
4246
uses: actions/setup-dotnet@v1
4347
with:
4448
dotnet-version: 6.0.201
@@ -78,6 +82,10 @@ jobs:
7882
runs-on: windows-latest
7983
steps:
8084
- uses: actions/checkout@v2
85+
- name: Setup .NET Core 7
86+
uses: actions/setup-dotnet@v1
87+
with:
88+
dotnet-version: 7.0.100
8189
- name: Setup .NET Core 6
8290
uses: actions/setup-dotnet@v1
8391
with:

.github/workflows/fable.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@ jobs:
1313

1414
steps:
1515
- uses: actions/checkout@v2
16+
- name: Restore
17+
run: git submodule update --init --recursive
18+
- name: Remove global json
19+
run: rm global.json
1620
- name: Setup .NET Core
1721
uses: actions/setup-dotnet@v1
1822
with:
1923
dotnet-version: 6.0.201
20-
- name: Restore
21-
run: git submodule update --init --recursive
2224
- name: Restore tools
2325
run: dotnet tool restore
2426
- name: Use Node.js
@@ -37,12 +39,14 @@ jobs:
3739

3840
steps:
3941
- uses: actions/checkout@v2
42+
- name: Restore
43+
run: git submodule update --init --recursive
44+
- name: Remove global json
45+
run: rm global.json
4046
- name: Setup .NET Core
4147
uses: actions/setup-dotnet@v1
4248
with:
4349
dotnet-version: 6.0.201
44-
- name: Restore
45-
run: git submodule update --init --recursive
4650
- name: Restore tools
4751
run: dotnet tool restore
4852
# - name: Run tests (Fable2 subset but on .net)

DEVELOPER_GUIDE.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44

55
- Consistency: the design of this library should maximize consistency, this is relation between group of functions, argument types, types and abstractions they represent. By doing this, it's easier for the user to guess what are the expectations instead of relaying all the time to check docs and/or source code. Therefore naming should be carefully considered in order achieve this goal.
66
- Non intrusive: all additions to this library should not change existing functionality of F# language and FSharp.Core and in cases we they do change, we force the use to open a specific module/namespace
7-
- Non opinionated: as much as possible we're not trying to force the user to solve problems in a specific way, instead we try to give generic ways to approach a problem from different angles. We think that specific ways of using this library should be eventually defined by a company what wants to use it to solve problems in a specific way and in order to achieve that goal, a small set of functions, type aliases can be added on top of F#+ for that purpose, but we try to keep the library as neutral as possible.
7+
- Non opinionated: as much as possible we're not trying to force the user to solve problems in a specific way, instead we try to give generic ways to approach a problem from different angles. We think that specific ways of using this library should be eventually defined by a company that wants to use it to solve problems in a specific way and in order to achieve that goal, a small set of functions, type aliases can be added on top of F#+ for that purpose, but we try to keep the library as neutral as possible.
88
- Trust users: we don't apply the principle of "removing functions that could be used in a wrong way", we assume the user has enough skills to decide what's a good use and what is a bad use of a specific function, we're not trying to educate users by hiding stuff, that's not the goal of this library, though there's a lot to learn, but for that there are general guidelines and normally there should be also specific ones for each company. This doesn't mean that we'll provide poor docs.
99
- Coding style: we don't have a specific set of rules, but we try to stick to general coding conventions with some relaxation in order be able to align code in places where this is convenient. For instance when there's a big set of overloads, this makes it easier to read but also easier to edit the code with multiline editor support. The best advice is to try to copy existing style. For signatures, we try to follow FSharp.Core design, ie `'T` not `'a`.
10-
- PR's: try to keep them as atomic as possible, if a PR is found that touches many unrelated areas it will be asked to split in different PRs. A typical example is a PR that adds a specific functionality but also fix bugs, or typos in the docs. If we eventually revert that functionality, the other changes will be reverted as well which might not be desired. Draft PRs are encouraged and feel free to ask for advice in the middle of the code writing process.
10+
- Naming commits: Use a very short and descriptive sentence in imperative mood, as if completing the sentence "If applied, this commit will ...". For more details [use this](https://cbea.ms/git-commit) as a reference.
11+
- PR's: try to keep them as atomic as possible, if a PR is found that touches many unrelated areas it will be asked to split in different PRs. A typical example is a PR that adds a specific functionality but also fix bugs, or typos in the docs. If we eventually revert that functionality, the other changes will be reverted as well which might not be desired. Draft PRs are encouraged and feel free to ask for advice in the middle of the code writing process. Use the same naming convention as for commits.
12+
1113
- This is F#: although F#+ contains some abstractions inspired in libraries used in other languages, those concepts are translated to F# standards and eventually adapted to fit better in F#.
1214

1315
### Extensions

FSharpPlus.sln

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "content", "content", "{8E6D
6464
docsrc\content\type-mult.fsx = docsrc\content\type-mult.fsx
6565
docsrc\content\type-nonempty.fsx = docsrc\content\type-nonempty.fsx
6666
docsrc\content\type-optiont.fsx = docsrc\content\type-optiont.fsx
67+
docsrc\content\type-valueoptiont.fsx = docsrc\content\type-valueoptiont.fsx
6768
docsrc\content\type-parallelarray.fsx = docsrc\content\type-parallelarray.fsx
6869
docsrc\content\type-reader.fsx = docsrc\content\type-reader.fsx
6970
docsrc\content\type-readert.fsx = docsrc\content\type-readert.fsx

build.proj

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,12 @@
2222
<Target Name="AllDocs">
2323
<Exec Command='dotnet tool restore' WorkingDirectory="$(RepoRootDir)" IgnoreStandardErrorWarningFormat="true" />
2424
<Exec Command='dotnet build FSharpPlus.sln -c Release' WorkingDirectory="$(RepoRootDir)" IgnoreStandardErrorWarningFormat="true" />
25-
<Exec Command='./docsrc/tools/download_nugets.cmd' WorkingDirectory="$(RepoRootDir)" IgnoreStandardErrorWarningFormat="true" Condition=" '$(OS)' == 'Windows_NT' " />
26-
<Exec Command='./docsrc/tools/download_nugets.sh' WorkingDirectory="$(RepoRootDir)" IgnoreStandardErrorWarningFormat="true" Condition=" '$(OS)' != 'Windows_NT' " />
2725
<Exec Command='dotnet run -c Release --project ./docsrc/tools' WorkingDirectory="$(RepoRootDir)" IgnoreStandardErrorWarningFormat="true" />
2826
</Target>
2927

3028
<Target Name="ReleaseDocs">
3129
<Exec Command='dotnet tool restore' WorkingDirectory="$(RepoRootDir)" IgnoreStandardErrorWarningFormat="true" />
3230
<Exec Command='dotnet build FSharpPlus.sln -c Release' WorkingDirectory="$(RepoRootDir)" IgnoreStandardErrorWarningFormat="true" />
33-
<Exec Command='./docsrc/tools/download_nugets.cmd' WorkingDirectory="$(RepoRootDir)" IgnoreStandardErrorWarningFormat="true" Condition=" '$(OS)' == 'Windows_NT' " />
34-
<Exec Command='./docsrc/tools/download_nugets.sh' WorkingDirectory="$(RepoRootDir)" IgnoreStandardErrorWarningFormat="true" Condition=" '$(OS)' != 'Windows_NT' " />
3531
<Exec Command='dotnet run -c Release --project ./docsrc/tools ReleaseDocs' WorkingDirectory="$(RepoRootDir)" IgnoreStandardErrorWarningFormat="true" />
3632
</Target>
3733

docsrc/content/abstraction-applicative.fsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ From F#
5858
- ``'T [,,]``
5959
- ``'T [,,,]``
6060
- ``option<'T>``
61+
- ``voption<'T>``
6162
- ``IObservable<'T>``
6263
- ``Lazy<'T>``
6364
- ``Async<'T>``
@@ -82,6 +83,7 @@ From F#+
8283
- [``State<'S,'T * 'S>``](type-state.html)
8384
- [``StateT<'S,'Monad<'T * 'S>>``](type-statet.html)
8485
- [``OptionT<'Monad<option<'T>>``](type-optiont.html)
86+
- [``ValueOptionT<'Monad<voption<'T>>``](type-valueoptiont.html)
8587
- [``SeqT<'Monad<seq<'T>>``](type-seqt.html)
8688
- [``ListT<'Monad<list<'T>>``](type-listt.html)
8789
- [``ResultT<'Monad<Result<'T,'TError>>``](type-resultt.html)

docsrc/content/abstraction-foldable.fsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ From .Net/F#
5959
- ``list<'T>``
6060
- ``'T []``
6161
- ``option<'T>``
62+
- ``voption<'T>``
6263
- ``ResizeArray<'T>``
6364
- ``ReadOnlyCollection<'T>``
6465
- ``IReadOnlyCollection<'T>``

docsrc/content/abstraction-functor.fsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ From F#
4848
- ``'T [,,]``
4949
- ``'T [,,,]``
5050
- ``option<'T>``
51+
- ``voption<'T>``
5152
- ``IObservable<'T>``
5253
- ``Lazy<'T>``
5354
- ``Async<'T>``
@@ -75,6 +76,7 @@ From F#+
7576
- [``State<'S,'T * 'S>``](type-state.html)
7677
- [``StateT<'S,'Monad<'T * 'S>>``](type-statet.html)
7778
- [``OptionT<'Monad<option<'T>>``](type-optiont.html)
79+
- [``ValueOptionT<'Monad<voption<'T>>``](type-valueoptiont.html)
7880
- [``SeqT<'Monad<seq<'T>>``](type-seqt.html)
7981
- [``ListT<'Monad<list<'T>>``](type-listt.html)
8082
- [``ResultT<'Monad<Result<'T,'TError>>``](type-resultt.html)

docsrc/content/abstraction-monad.fsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ From F#
6868
- ``list<'T>``
6969
- ``array<'T>``
7070
- ``option<'T>``
71+
- ``voption<'T>``
7172
- ``Lazy<'T>``
7273
- ``Async<'T>``
7374
- ``Result<'T,'U>``
@@ -90,6 +91,7 @@ From F#+
9091
- [``State<'S,'T * 'S>``](type-state.html)
9192
- [``StateT<'S,'Monad<'T * 'S>>``](type-statet.html)
9293
- [``OptionT<'Monad<option<'T>>``](type-optiont.html)
94+
- [``ValueOptionT<'Monad<voption<'T>>``](type-valueoptiont.html)
9395
- [``SeqT<'Monad<seq<'T>>``](type-seqt.html)
9496
- [``ListT<'Monad<list<'T>>``](type-listt.html)
9597
- [``ResultT<'Monad<Result<'T,'TError>>``](type-resultt.html)

0 commit comments

Comments
 (0)