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: CONTRIBUTING.md
+35-23Lines changed: 35 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,23 +39,24 @@ If you are contributing code to UDOIT, please follow the guidelines below.
39
39
40
40
### Forking
41
41
42
-
If you are an outside contributor, you will need to fork the UDOIT project in order to work on it. If you are familiar with Git, but are unsure of the forking process, read the [Forking Projects](https://guides.github.com/activities/forking/) guide. After you are finished fixing a bug or implementing a feature on your fork, submit a pull request using the appropriate [Dev branch](#dev-branches) as the `base`.
42
+
If you are an outside contributor, you will need to fork the UDOIT project in order to work on it. If you are familiar with Git, but are unsure of the forking process, read the [Forking Projects](https://guides.github.com/activities/forking/) guide. Make your changes in an appropriately-named [issue branch](#issue-branches) in your fork. After you are finished fixing a bug or implementing a feature on your fork, submit a pull request back to this repository.
43
43
44
44
The overall workflow is:
45
45
46
46
1. Choose an issue to work on, or submit a new one.
47
47
2.[Fork this project](https://guides.github.com/activities/forking/)
48
-
3. Make the changes necessary to resolve the issue.
49
-
4. Test the code in your own environment.
50
-
5. Create a pull request
51
-
1. Use the appropriate [Dev branch](#dev-branches) as the `base`
52
-
2. Write a description of what you did in the `description` field.
53
-
3.[Link the pull request to the issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
54
-
6. Pay attention to the pull request and respond to any questions others have about it. It may take a few back-and-forth communications and changes for your pull request to be approved and merged.
48
+
3. Create an [issue branch](#issue-branches).
49
+
4. Make the changes necessary to resolve the issue.
50
+
5. Test the code in your own environment.
51
+
6. Commit and push the code to your fork.
52
+
7. Create a pull request back to the ucfopen/UDOIT repository.
53
+
1. Write a description of what you did in the `description` field.
54
+
2.[Link the pull request to the issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
55
+
8. Pay attention to the pull request and respond to any questions others have about it. It may take a few back-and-forth communications and changes for your pull request to be approved and merged.
55
56
56
-
## Branching
57
+
###Branching
57
58
58
-
If you are a member of the UDOIT team, you can either fork the project (using the instructions above) or branch. Refer to the [Issue Branches](#issue-branches) section for the proper naming convention and pull request process.
59
+
If you are a member of the UDOIT team, you can either fork the project (using the instructions above) or create a new branch within this repository. Refer to the [Issue Branches](#issue-branches) section for the proper naming convention and pull request process.
59
60
60
61
## Explanation of Branches and Merging
61
62
@@ -64,28 +65,39 @@ UDOIT has a structured flow for how issues, branches, and releases are handled.
64
65
### Main Branch
65
66
66
67
* This is the default branch.
67
-
* It always points at the latest release, and thus always production ready.
68
+
* Issue branches merge into this branch.
69
+
* It represents the latest version of UDOIT, but it is not intended for production use.
68
70
69
-
### Dev Branches
71
+
### Stable Branches
70
72
71
-
* Naming Convention: `dev/v1-2-10` - a new one for every upcoming release version - following [SEMVER](http://semver.org/). (Note: Hyphens are used instead of periods to preserve compatibility with the Heroku button.)
72
-
* Issue branches merge into this branch (never main)
73
-
* When this dev branch is ready for release, it is merged into main and deleted
73
+
* Naming convention: `stable/major.minor.x`, following [Semantic Versioning](https://semver.org/)
74
+
* They represent the latest stable version of each minor release, including all bugfixes and patches up to that point.
75
+
* They are intended for production use.
76
+
* The current release and previous minor release will receive security vulnerability fixes.
77
+
* Only the current release will receive non-security bugfixes.
* The number is an issue number, and the text is a very short description of the issue.
81
+
* Naming Convention: `issue/####-short-description-of-issue`, where `####` is the issue number.
79
82
* All issue branches must be tied to an issue, even in your forked version of UDOIT.
80
83
* Make sure you update your forked version first, then create your issue branch from the current dev branch.
81
-
* After work is completed, create a pull request into the target dev branch (never main).
84
+
* After work is completed, create a pull request into `main`.
82
85
* After the pull request is merged, the issue branch should be deleted.
83
86
84
-
### Releases
87
+
### Hotfix Branches
88
+
89
+
* Naimg convention: `hotfix/short-description`
90
+
* They represent security vulnerability fixes for the current or previous release.
91
+
* After work is completed, create a pull request into the target `stable` branch.
92
+
* Also merge these changes into `main` and any other `stable` branch where the vulnerability exists.
93
+
94
+
## Releases
85
95
86
96
The steps in this section are performed by the project maintainers.
87
97
88
-
* After the dev branch for a release is merged into main, a [Release](https://github.com/ucfopen/UDOIT/releases) is created for it. [Article about managing releases](https://docs.github.com/en/github/administering-a-repository/releasing-projects-on-github/managing-releases-in-a-repository)
89
-
* Releases are named in the format `v1.2.10` (the same as the dev branch, but with periods instead of dashes).
90
-
* Each release gets a tag with the same name as the release after it's merged into main.
91
-
* It is suggested that you sign release tags for extra trust ([git tag](https://git-scm.com/book/tr/v2/Git-Tools-Signing-Your-Work)).
98
+
1. When `main` is ready for a new minor release, a new [stable branch](#stable-branches) is created.
99
+
* Patch releases for the current minor release are merged into the existing stable branch.
100
+
* Patch releases for previous minor releases are merged directly into the existing stable branch, not into `main`. The remaining steps below are still followed.
101
+
2. A new [Release](https://github.com/ucfopen/UDOIT/releases) is created for it, named in the format `major.minor.patch`[Article about managing releases](https://docs.github.com/en/github/administering-a-repository/releasing-projects-on-github/managing-releases-in-a-repository)
102
+
3. Each release gets a tag with the same name as the release. This tag points at the appropriate commit hash.
103
+
4. It is suggested that you sign release tags for extra trust ([git tag](https://git-scm.com/book/tr/v2/Git-Tools-Signing-Your-Work)).
0 commit comments