You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/CONTRIBUTING.md
+22-7Lines changed: 22 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,23 @@
1
1
# Contributing
2
2
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.
4
4
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. 😊
8
6
9
7
> 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.
10
8
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
+
11
21
## Fork and pull model
12
22
13
23
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:
23
33
- Commit messages or the pull request description must fully document the proposed changes
24
34
- Relevant issues and milestones must be linked
25
35
- Relevant submodule pull requests must be linked
36
+
- Pull requests require review before they can be merged into `master` or `development`.
26
37
27
38
### Branches
28
39
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.
30
41
31
42
The `development` branch integrates finished features and fixes. The development branch is synced with the master branch periodically.
32
43
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
+
33
46
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.
34
47
35
48
## Submodules
@@ -50,9 +63,11 @@ An [intallation of Git](https://git-scm.com/book/en/v2/Getting-Started-Installin
50
63
51
64
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).
52
65
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.
54
69
55
-
The use of 2017b is therefore recommended for development purposes.
70
+
We compile these releases for Windows and MacOS. Linux is not supported.
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:
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.
Copy file name to clipboardExpand all lines: README.md
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -15,10 +15,10 @@ Homer3 is composed only of MATLAB scripts, so the installation process for MATLA
15
15
16
16
[Getting started with Homer3](https://github.com/BUNPC/Homer3/wiki/Getting-started-with-Homer3)
17
17
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.
19
19
20
20
## 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.
22
22
23
23
To report a bug or suggest a feature, please [create an issue](https://github.com/BUNPC/Homer3/issues/new/choose) here on GitHub.
24
24
@@ -28,7 +28,7 @@ Homer3 documentation is hosted via the [GitHub wiki](https://github.com/BUNPC/Ho
28
28
29
29
## Contributing to Homer3
30
30
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.
0 commit comments