Skip to content

Commit a873206

Browse files
authored
Merge pull request #11 from BioFSharp/developer
Upgrade to BioFSharp 2.0.0 and modernize the build setup
2 parents 35944b9 + 83d898a commit a873206

185 files changed

Lines changed: 629 additions & 163074 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.config/dotnet-tools.json‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
"version": 1,
33
"isRoot": true,
44
"tools": {
5-
"fake-cli": {
6-
"version": "5.20.3",
5+
"fsdocs-tool": {
6+
"version": "20.0.0",
77
"commands": [
8-
"fake"
8+
"fsdocs"
99
]
1010
},
11-
"fsharp.formatting.commandtool": {
12-
"version": "11.1.0",
11+
"dotnet-repl": {
12+
"version": "0.1.216",
1313
"commands": [
14-
"fsdocs"
14+
"dotnet-repl"
1515
]
1616
}
1717
}

‎.github/CONTRIBUTING.md‎

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,17 @@ Here is a brief overview of our main projects (also available [here](https://git
8989

9090
### Build process
9191

92-
Our F# projects use the [ProjectScaffold](https://github.com/fsprojects/ProjectScaffold) layout. To build our projects, you will need [.NET Core SDK](https://dotnet.microsoft.com/download) and an installation of [FAKE5 CLI]().
92+
The build is driven by a [FAKE](https://fake.build/) build project in `build/`, invoked through the `build.cmd` / `build.sh` wrappers. You need the [.NET SDK](https://dotnet.microsoft.com/download) version pinned in `global.json`.
9393

94-
All projects have at least the following build targets:
94+
The most important build targets:
9595

96-
|Target|Description|Command Line Arguments|
96+
|Target|Description|Command Line|
9797
|---|---|---|
98-
|Build|Builds the binaries and docs|fake build|
99-
|ReleaseLocal|Uses Build. Afterwards creates a folder structure so you can see the docs with proper style and relative paths in temp/localDocs. Use this to test documentation. | fake build --target releaselocal|
98+
|BuildSolution (default)|Cleans and builds the solution|`./build.cmd`|
99+
|RunTests|Builds and runs the test suite|`./build.cmd runtests`|
100+
|RunTestsWithCodeCov|Runs the tests with AltCover coverage (writes `codeCov.xml`)|`./build.cmd runtestswithcodecov`|
101+
|BuildDocs|Builds the documentation site into `output/` (run `dotnet tool restore` once first)|`./build.cmd builddocs`|
102+
|WatchDocs|Serves the docs locally with live reload (run `dotnet tool restore` once first). Use this to test documentation.|`./build.cmd watchdocs`|
100103

101104
## How can i contribute?
102105

@@ -196,11 +199,11 @@ One of our biggest weakness at the moment are unit tests. We will love everyone
196199

197200
### Documentation guidelines
198201

199-
The docs in our repos are built by the [F# Formatting Documentation tools](http://fsprojects.github.io/FSharp.Formatting/) which parse `.fsx` files in the docsrc/content folder to generate html files. Again, no strict rules here, just a few minor guidelines:
202+
The docs in our repos are built by [fsdocs](https://fsprojects.github.io/FSharp.Formatting/) (the `fsdocs-tool` pinned in `.config/dotnet-tools.json`), which turns `.md` and `.fsx` files in the `docs/` folder into the html site and generates the API reference from the compiled assemblies. Again, no strict rules here, just a few minor guidelines:
200203

201-
* If you add or change functionality to a project, please consider adding/changing the respective documentation script. If you dont have time to do that, please comment it on your pull request.
204+
* If you add or change functionality to a project, please consider adding/changing the respective documentation page. If you dont have time to do that, please comment it on your pull request.
202205

203-
* Most documentation is written in a tutorial-style manner. If you use external files in your examples, put them into docsrc/content/data.
206+
* Most documentation is written in a tutorial-style manner. If you use external files in your examples, put them under `docs/`.
204207

205208
* API References are built from triple frontslash comments (`///`), please consider adding those above the functions/types/classes you are adding.
206209

‎.github/workflows/build-test.yml‎

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Build and test
2+
3+
on:
4+
push:
5+
branches: [ developer, main ]
6+
pull_request:
7+
branches: [ developer, main ]
8+
9+
jobs:
10+
build-and-test-linux:
11+
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- uses: actions/checkout@v4
16+
- name: Setup .NET
17+
uses: actions/setup-dotnet@v4
18+
with:
19+
dotnet-version: |
20+
8.x
21+
10.x
22+
- name: make script executable
23+
run: chmod u+x build.sh
24+
- name: Build and test
25+
working-directory: ./
26+
run: ./build.sh runtests
27+
28+
build-and-test-windows:
29+
30+
runs-on: windows-latest
31+
32+
steps:
33+
- uses: actions/checkout@v4
34+
- name: Setup .NET
35+
uses: actions/setup-dotnet@v4
36+
with:
37+
dotnet-version: |
38+
8.x
39+
10.x
40+
- name: Build and test
41+
working-directory: ./
42+
run: ./build.cmd runtestswithcodecov
43+
- name: Upload coverage to Codecov
44+
uses: codecov/codecov-action@v4
45+
with:
46+
fail_ci_if_error: false # requires the CODECOV_TOKEN secret to be configured
47+
files: ./codeCov.xml
48+
name: codecov-umbrella # optional
49+
token: ${{ secrets.CODECOV_TOKEN }} # required
50+
verbose: true # optional (default = false)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Deploy Docs
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
paths:
7+
- 'docs/**'
8+
9+
permissions:
10+
contents: write
11+
12+
jobs:
13+
deploy:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v4
18+
- name: make script executable
19+
run: chmod u+x build.sh
20+
- name: Setup .NET
21+
uses: actions/setup-dotnet@v4
22+
with:
23+
dotnet-version: |
24+
8.x
25+
10.x
26+
- name: restore tools
27+
run: dotnet tool restore
28+
- name: Build Docs
29+
working-directory: ./
30+
run: ./build.sh builddocs
31+
- name: Deploy
32+
uses: JamesIves/github-pages-deploy-action@v4
33+
with:
34+
folder: output # The folder the action should deploy.

‎.github/workflows/deploy.yml‎

Lines changed: 0 additions & 36 deletions
This file was deleted.

‎.gitignore‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
[Dd]ebug/
1717
[Rr]elease/
1818
x64/
19-
build/
2019
[Bb]in/
2120
[Oo]bj/
2221

@@ -185,3 +184,8 @@ temp
185184
/codeCov.xml
186185
/.fsdocs
187186
/output
187+
docs/.fsdocs/
188+
docs/tmp/watch/
189+
tmp/watch/
190+
.fsdocs
191+
/tests/BioFSharp.Mz.Tests/coverage.xml

‎BioFSharp.Mz.sln‎

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,16 @@
22
# Visual Studio Version 16
33
VisualStudioVersion = 16.0.29806.167
44
MinimumVisualStudioVersion = 10.0.40219.1
5-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{63297B98-5CED-492C-A5B7-A5B4F73CF142}"
6-
ProjectSection(SolutionItems) = preProject
7-
paket.dependencies = paket.dependencies
8-
paket.lock = paket.lock
9-
paket.references = paket.references
10-
EndProjectSection
11-
EndProject
12-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{A6A6AF7D-D6E3-442D-9B1E-58CC91879BE1}"
13-
EndProject
145
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "BioFSharp.Mz", "src\BioFSharp.Mz\BioFSharp.Mz.fsproj", "{C11E9782-6300-40E5-AE37-32197AD9F78D}"
156
EndProject
7+
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "build", "build\build.fsproj", "{A3C577D1-8E42-4A6B-9F30-6C5D21B0E7A4}"
8+
EndProject
169
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "project", "project", "{BF60BC93-E09B-4E5F-9D85-95A519479D54}"
1710
ProjectSection(SolutionItems) = preProject
1811
README.md = README.md
1912
RELEASE_NOTES.md = RELEASE_NOTES.md
2013
EndProjectSection
2114
EndProject
22-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{83F16175-43B1-4C90-A1EE-8E351C33435D}"
23-
ProjectSection(SolutionItems) = preProject
24-
docsrc\files\styles\CSBStyles.css = docsrc\files\styles\CSBStyles.css
25-
docsrc\tools\generate.fsx = docsrc\tools\generate.fsx
26-
docsrc\tools\templates\template.cshtml = docsrc\tools\templates\template.cshtml
27-
EndProjectSection
28-
EndProject
29-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "content", "content", "{8E6D5255-776D-4B61-85F9-73C37AA1FB9A}"
30-
ProjectSection(SolutionItems) = preProject
31-
docsrc\content\index.fsx = docsrc\content\index.fsx
32-
docsrc\content\tutorial.fsx = docsrc\content\tutorial.fsx
33-
EndProjectSection
34-
EndProject
3515
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{ED8079DD-2B06-4030-9F0F-DC548F98E1C4}"
3616
EndProject
3717
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "git", "git", "{078A9C52-DDC1-46F4-9235-9E6C89C87AFD}"
@@ -48,11 +28,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "git", "git", "{078A9C52-DDC
4828
EndProject
4929
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".build", ".build", "{7C6D08E7-3EAC-4335-8F4B-252C193C27C9}"
5030
ProjectSection(SolutionItems) = preProject
51-
.travis.yml = .travis.yml
52-
appveyor.yml = appveyor.yml
5331
build.cmd = build.cmd
54-
build.fsx = build.fsx
55-
build.proj = build.proj
5632
build.sh = build.sh
5733
EndProjectSection
5834
EndProject
@@ -78,13 +54,15 @@ Global
7854
{D83DA3EA-3EBB-42EF-99AB-2E0DDC5A5E70}.Debug|Any CPU.Build.0 = Debug|Any CPU
7955
{D83DA3EA-3EBB-42EF-99AB-2E0DDC5A5E70}.Release|Any CPU.ActiveCfg = Release|Any CPU
8056
{D83DA3EA-3EBB-42EF-99AB-2E0DDC5A5E70}.Release|Any CPU.Build.0 = Release|Any CPU
57+
{A3C577D1-8E42-4A6B-9F30-6C5D21B0E7A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
58+
{A3C577D1-8E42-4A6B-9F30-6C5D21B0E7A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
59+
{A3C577D1-8E42-4A6B-9F30-6C5D21B0E7A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
60+
{A3C577D1-8E42-4A6B-9F30-6C5D21B0E7A4}.Release|Any CPU.Build.0 = Release|Any CPU
8161
EndGlobalSection
8262
GlobalSection(SolutionProperties) = preSolution
8363
HideSolutionNode = FALSE
8464
EndGlobalSection
8565
GlobalSection(NestedProjects) = preSolution
86-
{83F16175-43B1-4C90-A1EE-8E351C33435D} = {A6A6AF7D-D6E3-442D-9B1E-58CC91879BE1}
87-
{8E6D5255-776D-4B61-85F9-73C37AA1FB9A} = {A6A6AF7D-D6E3-442D-9B1E-58CC91879BE1}
8866
{D83DA3EA-3EBB-42EF-99AB-2E0DDC5A5E70} = {ED8079DD-2B06-4030-9F0F-DC548F98E1C4}
8967
EndGlobalSection
9068
GlobalSection(ExtensibilityGlobals) = postSolution

‎RELEASE_NOTES.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
#### 0.2.0 (Released 2026-08-29)
2+
3+
* Upgrade to BioFSharp 2.0.0 (bundles the former BioFSharp.IO package) and migrate the codebase over the breaking API changes
4+
* Align the dependency stack: FSharpAux / FSharpAux.IO 2.1.0, FSharp.Stats 0.6.0, Newtonsoft.Json 13.0.4, Plotly.NET 6.0.0-preview.2
5+
* Replace the legacy FAKE 5 build script with the FAKE 6 build project ported from BioFSharp (build.cmd / build.sh wrappers, GitHub Actions build-test and gh-pages docs deployment, fsdocs 20 documentation pipeline)
6+
17
#### 0.1.5 - Friday, February 19, 2021
28
* SignalDetection: add option for peak summation and intensity weighted based mz refinement
39

‎appveyor.yml‎

Lines changed: 0 additions & 31 deletions
This file was deleted.

‎build.cmd‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1-
dotnet tool restore
2-
dotnet fake build %*
1+
@echo off
2+
cls
3+
4+
dotnet run --project ./build/build.fsproj %*

0 commit comments

Comments
 (0)