|
1 |
| -# BioFSharp.BioContainers |
| 1 | +# BioFSharp.BioContainers |
2 | 2 |
|
3 | 3 | 
|
4 | 4 |
|
5 | 5 | A template repository for creating an extension package for BioFSharp.
|
6 | 6 |
|
7 |
| -## Content |
8 |
| - |
9 |
| -- `src/BioFSharp.BioContainers`: The main project folder. Contains a library with BioFSharp core dependency. |
10 |
| -- `tests/BioFSharp.BioContainers.Tests`: The test project folder. Contains a XUnit test project |
11 |
| -- `build/build.fsproj`: A FAKE build project that handles building, testing, packaging, publishing, etc. |
12 |
| -- `docs`: the docs folder contains an example index.fsx file with simple documentation boilerplate. |
13 |
| - |
14 |
| -## Setup |
15 |
| - |
16 |
| -Here is a list of things you should/might want to do after setting up a repo with this template: |
17 |
| - |
18 |
| -> [!IMPORTANT] |
19 |
| -> Whenever you change a project file name or folder, make sure to fix the solution registration afterwards. |
20 |
| -
|
21 |
| -- Rename some things: Replace `XYZ` with the name of your package |
22 |
| - - `PackageTemplate.sln` |
23 |
| - - `src/BioFSharp.BioContainers` |
24 |
| - - `src/BioFSharp.BioContainers/BioFSharp.BioContainers.fsproj` |
25 |
| - - Rename and add nuget package metadata |
26 |
| - - `tests/BioFSharp.BioContainers` |
27 |
| - - `tests/BioFSharp.BioContainers.Tests/BioFSharp.BioContainers.Tests.fsproj` |
28 |
| - - Also make sure to fix the project reference to BioFSharp.BioContainers when renamed |
29 |
| - - in `build/ProjectInfo.fs`: |
30 |
| - - Set project name: |
31 |
| - ```fsharp |
32 |
| - let project = "BioFSharp.BioContainers" // replace with the name of your project |
33 |
| - ``` |
34 |
| - - Set git owner: |
35 |
| - ```fsharp |
36 |
| - let gitOwner = "BioFSharp" // replace with github account name or organization where repo is hosted if necessary |
37 |
| - ``` |
38 |
| - - fix test project path: |
39 |
| - ```fsharp |
40 |
| - let testProjects = |
41 |
| - [ |
42 |
| - "tests/BioFSharp.BioContainers.Tests/BioFSharp.BioContainers.Tests.fsproj" // replace with the name of your test project |
43 |
| - ] |
44 |
| - ``` |
45 |
| - - in `.github/workflows/build-and-test.yml`: change codecov slug |
46 |
| -- If needed, change the target framework of the project. it currently targets `.netstandard2.0` for maximum backwards compatibility, might want to target a newer `.net` version if you need a specific API. |
47 |
| -
|
48 |
| -## Build |
49 |
| -
|
50 |
| -This repo contains a buildproject that can be called either via `build.cmd`, `build.sh`, or directly via `dotnet run`. |
51 |
| -
|
52 |
| -Find all build targets in `build/Build.fs`. |
53 |
| -
|
54 |
| -Examples: |
55 |
| -
|
56 |
| -- run the default build target (`Build`) via build.cmd: |
57 |
| - ```bash |
58 |
| - ./build.cmd |
59 |
| - ``` |
60 |
| -- run the `RunTests` target in build.sh: |
61 |
| - ```bash |
62 |
| - ./build.sh RunTests |
63 |
| - ``` |
| 7 | +## Development |
| 8 | + |
| 9 | +### General |
| 10 | + |
| 11 | +BioFSharp repositories usually folllow this structure: |
| 12 | + |
| 13 | +``` |
| 14 | +root |
| 15 | +│ 📄<project name>.sln |
| 16 | +│ 📄build.cmd |
| 17 | +│ 📄build.sh |
| 18 | +├───📁build |
| 19 | +├───📁docs |
| 20 | +├───📁src |
| 21 | +| └───📁<project name> |
| 22 | +└───tests |
| 23 | + └───📁<testproject name> |
| 24 | +``` |
| 25 | + |
| 26 | +- <project name>.sln is the root solution file. |
| 27 | +- `build` contains a [FAKE](https://fake.build/) build project with targets for building, testing and packaging the project. |
| 28 | +- `build/sh` and `build.cmd` in the root are shorthand scripts to execute the buildproject. |
| 29 | +- `docs` contains the documentation in form of literate scripts and notebooks. |
| 30 | +- `src` contains folders with the source code of the project(s). |
| 31 | +- `tests` contains folders with test projects. |
| 32 | + |
| 33 | +### Build |
| 34 | + |
| 35 | +just call `build.sh` or `build.cmd` depending on your OS. |
| 36 | + |
| 37 | +### Test |
| 38 | + |
| 39 | +```bash |
| 40 | +build.sh runtests |
| 41 | +``` |
| 42 | + |
| 43 | +```bash |
| 44 | +build.cmd runtests |
| 45 | +``` |
| 46 | + |
| 47 | +### Create Nuget package |
| 48 | + |
| 49 | +```bash |
| 50 | +build.sh pack |
| 51 | +``` |
| 52 | +```bash |
| 53 | +build.cmd pack |
| 54 | +``` |
| 55 | + |
| 56 | +### Docs |
| 57 | + |
| 58 | +You can watch locally with hot reload via |
| 59 | + |
| 60 | +```bash |
| 61 | +build.sh watchdocs |
| 62 | +``` |
| 63 | +```bash |
| 64 | +build.cmd watchdocs |
| 65 | +``` |
0 commit comments