Skip to content

Commit d85feaf

Browse files
committed
update readme
1 parent 3dd61a0 commit d85feaf

File tree

1 file changed

+60
-58
lines changed

1 file changed

+60
-58
lines changed

README.md

Lines changed: 60 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,65 @@
1-
# BioFSharp.BioContainers
1+
# BioFSharp.BioContainers
22

33
![Logo](docs/img/Logo_large.png)
44

55
A template repository for creating an extension package for BioFSharp.
66

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

Comments
 (0)