Skip to content

Commit df7477f

Browse files
authored
Documentation improvements (BUNPC#88)
* Fix links to markdown files * Update CONTRIBUTING.md
1 parent a019e87 commit df7477f

File tree

4 files changed

+62
-10
lines changed

4 files changed

+62
-10
lines changed

CONTRIBUTING.md renamed to .github/CONTRIBUTING.md

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
11
# Contributing
22

3-
We welcome contributions to the Homer3 open-source software package from the fNIRS community! This document describes the preferred procedure for adding or editing code to the app.
3+
We welcome contributions to the Homer3 open-source software package from the fNIRS community! This document describes the procedures for adding and editing code as well as building releases of the application for distribution.
44

5-
It is recommended that contributors familiarize themselves with Git and GitHub before attempting to contribute to Homer3. Links to relevant documentation are included here for your convenience.
6-
7-
For a walkthrough of the contribution procedure, see [WORKFLOW.md](WORKFLOW.md). Version control software and contribution procedures are complicated, but there is no other way to achieve collaborative development. 😊
5+
It is recommended that contributors familiarize themselves with Git and GitHub before attempting to contribute to Homer3. Links to relevant documentation are included here for your convenience. For a walkthrough of the contribution procedure, see [WORKFLOW.md](WORKFLOW.md). Version control software and contribution procedures are complicated, but there is no other way to achieve collaborative development. 😊
86

97
> Note: As of October 2021, code shared with other applications in the openfnirs ecosystem such as the DataTree and Utils libraries are managed as submodule repositories. Submodules cannot be managed using GitHub desktop.
108
9+
## Release and versioning procedures
10+
11+
[Homer3 releases](https://github.com/BUNPC/Homer3/releases) are composed of frozen source code plus compiled versions of the software for use with the [MATLAB Runtime](https://www.mathworks.com/products/compiler/matlab-runtime.html) on Windows and MacOS.
12+
13+
Releases are to be built as often as important fixes and features are merged with the `master` branch and then tested.
14+
15+
Each release is associated with a [version tag](https://github.com/BUNPC/Homer3/tags), i.e. [`v1.32.3`](https://github.com/BUNPC/Homer3/releases/tag/v1.32.3).
16+
17+
As of November 2021, pull requests and commits need not increment the version tag, but version tags MUST be incremented before building a new release. The tag associated with a release CANNOT be changed unless the release is marked draft/is a pre-release.
18+
19+
For a description of how to generate and package a release for distribution, see [RELEASE.md](RELEASE.md).
20+
1121
## Fork and pull model
1222

1323
Following the [fork and pull model](https://docs.github.com/en/github/collaborating-with-pull-requests/getting-started/about-collaborative-development-models#fork-and-pull-model), contributors are expected to make their changes in their [fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) of the repository and to [create pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) to integrate these changes with a branch of the BUNPC repository after they are reviewed by the community.
@@ -23,13 +33,16 @@ Pull requests must meet the following requirements:
2333
- Commit messages or the pull request description must fully document the proposed changes
2434
- Relevant issues and milestones must be linked
2535
- Relevant submodule pull requests must be linked
36+
- Pull requests require review before they can be merged into `master` or `development`.
2637

2738
### Branches
2839

29-
The `master` branch should contain the most stable version of the working code. Releases are stable freezes of the master branch. Changes made directly to the master branch must address an issue.
40+
The `master` branch should contain the most stable version of the working code. Releases are stable freezes of the master branch. Changes made directly to the master branch must address an issue or bug and be relatively small.
3041

3142
The `development` branch integrates finished features and fixes. The development branch is synced with the master branch periodically.
3243

44+
No one can push to master without creating a PR. **Administrators may push to `development` but are but are strongly encouraged not to.**
45+
3346
Depending on the scale of the changes, it may be preferable to direct pull requests to a *feature branch*: this is a branch created to integrate related changes prior to merging them with the development code. This is especially useful when multiple developers are working on the same large feature, i.e. a new GUI panel being developed in `plotprobe-2`. [Creating a milestone](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/about-milestones) related to a feature branch can help to facilitate discussion about collaborative development.
3447

3548
## Submodules
@@ -50,9 +63,11 @@ An [intallation of Git](https://git-scm.com/book/en/v2/Getting-Started-Installin
5063

5164
Homer3 is a MATLAB applicaton. In order to support users who do not have MATLAB licenses, we release a compiled build of Homer3 for use with the [MATLAB Runtime environment](https://www.mathworks.com/products/compiler/matlab-runtime.html).
5265

53-
These builds target MATLAB R2017b (9.3). Therefore, the use of functions introduced to MATLAB after R2017b (9.3) is not supported.
66+
As of November 2021, these builds target MATLAB R2020b (9.9) as well as MATLAB R2017b (9.3). Therefore, the use of functions introduced to MATLAB after R2020b (9.9) is not supported.
67+
68+
The use of 2020b is therefore recommended for development purposes.
5469

55-
The use of 2017b is therefore recommended for development purposes.
70+
We compile these releases for Windows and MacOS. Linux is not supported.
5671

5772
## Walkthrough
5873

.github/RELEASE.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Homer3 Release Procedures
2+
3+
This document describes the procedure for building and hosting a release of Homer3. A release of Homer3 consists of the source code packaged with a MATLAB Runtime executable for both Windows and MacOS.
4+
5+
## Creating a GitHub release
6+
7+
GitHub releases is used to host the frozen source code and [MATLAB Runtime](https://www.mathworks.com/products/compiler/matlab-runtime.html) executables. Create a new release by clicking "Draft a new release" at the top of the [Releases page](https://github.com/BUNPC/Homer3/releases). Leave the release in draft state and in pre-release state until it can be tested. See the [GitHub docs](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) for more information about managing releases.
8+
9+
Release notes should be created from the commit messages logged since the last release was tagged.
10+
11+
## Packaging the latest source code
12+
13+
Create a .zip archive containing the latest source code from the master branch, making sure to include submodules. Remove all version control files from the `master` branch, including `.gitignore`. This can be accomplished with the following shell commands:
14+
15+
```bash
16+
git clone https://github.com/BUNPC/Homer3 --single-branch -b master --recurse-submodules
17+
rm -rf .git\
18+
rm .gitignore
19+
```
20+
21+
Rename the zip file `homer3_src_<version tag>_<platform>_<target MATLAB env>` i.e. `homer3_src_v1_26_0_win_R2017b.zip` or `homer3_src_v1_32_1_mac_R2020b.zip` and upload it to the GitHub release.
22+
23+
> Note: as of November 2021, unfortunately the automatically generated source code does NOT contain submodules! That is why we generate this archive manually.
24+
25+
## Creating MATLAB Runtime executables for Windows and Mac
26+
27+
Cross-compilation is not possible with the MATLAB compiler. The following must be repeated within both a Mac and Windows environment:
28+
29+
Linux is not supported.
30+
31+
1. Download and install MATLAB Runtime corresponding to the MATLAB version the build targets. **As of November 2020, this is MATLAB R2017b (9.3) and R2020b.**
32+
2. Download the latest version of the master branch. In the MATLAB command window, navigate to the Homer3 root folder.
33+
3. Execute `setpaths`
34+
4. Execute `createInstallFile()`
35+
5. Zip up the resulting install files which will be generated at `Homer3\Install\homer3_install`.
36+
6. Rename this zip file `homer3_install_<version tag>_<platform>_<target MATLAB env>` i.e. `homer3_install_v1_26_0_win_R2017b.zip` or `homer3_install_v1_32_1_mac_R2020b.zip`.
37+
7. Upload the renamed archive to the GitHub release.
File renamed without changes.

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ Homer3 is composed only of MATLAB scripts, so the installation process for MATLA
1515

1616
[Getting started with Homer3](https://github.com/BUNPC/Homer3/wiki/Getting-started-with-Homer3)
1717

18-
Note that cloning the repository or using the Download .zip button on the repository webpage will not download the submodule libraries that are a part of Homer3. Without these, the application will not run. These submodules must be downloaded manually from their respective repositories and placed in the \Homer3 folder.
18+
Note that cloning the repository or using the Download .zip button on the repository webpage WILL NOT download the submodule libraries that are a part of Homer3. Without these, the application will not run. These submodules must be downloaded manually from their respective repositories and placed in the \Homer3 folder.
1919

2020
## Support
21-
Support for users of Homer3 is available via the [Homer3 & AtlasViewer community forum](https://openfnirs.org/community/homer3-forum/) hosted on openfnirs.org. This forum is questions about how to use Homer3.
21+
Support for users of Homer3 is available via the [Homer3 & AtlasViewer community forum](https://openfnirs.org/community/homer3-forum/) hosted on openfnirs.org. This forum is for questions about how to use Homer3.
2222

2323
To report a bug or suggest a feature, please [create an issue](https://github.com/BUNPC/Homer3/issues/new/choose) here on GitHub.
2424

@@ -28,7 +28,7 @@ Homer3 documentation is hosted via the [GitHub wiki](https://github.com/BUNPC/Ho
2828

2929
## Contributing to Homer3
3030

31-
We welcome contributions to Homer3 from the fNIRS community. See [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines and [WORKFLOW.md](WORKFLOW.md) for a walkthrough of the cloning and version control procedures recommended for development.
31+
We welcome contributions to Homer3 from the fNIRS community. See [CONTRIBUTING.md](.github/CONTRIBUTING.md) for development guidelines and [WORKFLOW.md](.github/WORKFLOW.md) for a walkthrough of the cloning and version control procedures recommended for development.
3232

3333
## License
3434

0 commit comments

Comments
 (0)