Skip to content
This repository was archived by the owner on Apr 17, 2023. It is now read-only.

Commit 5c7f5e8

Browse files
committed
Updated some more markdown documents.
Updated 'Changelog' to list change in project's workflow model. Updated 'Contributing' to match new workflow model. Also rephrased a bit.
1 parent dce9d27 commit 5c7f5e8

File tree

2 files changed

+56
-57
lines changed

2 files changed

+56
-57
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ It mostly addressed *3rd Party Libraries*.
3030

3131
### Changes
3232

33+
* Updated project's workflow model, which mostly modifies the development branch from now on to be the **master** branch, instead of **develop**. More can be read in the **CONTRIBUTING.md** file.
34+
3335
* The `Find-SDK` module now searches for the **version.txt** file under a sub-directory named **lib**, which resides directly under SDK's root path. This file's path is common across all OSs, unlike the previously searched **arduino** program.
3436

3537
* The `find_arduino_library` function now searches under the following paths:

CONTRIBUTING.md

Lines changed: 54 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,22 @@
33
## Short Brief ##
44

55
### What is this file? ###
6-
It is a set of guidance rules for developers who'd like to contribute to this repo.
7-
Versions go forward, new features are added, the API can change, but sometimes - Documentation doesn't keep the pace, unfortunately.
6+
It is a set of guidance rules for developers who'd like to contribute to this repo.
7+
Versions go forward, new features are added, the API can change, but sometimes - Documentation doesn't keep the pace, unfortunately.
88
To address those issues and allow developers to contribute good, quality code - This file must exist and always be up to date.
99

1010
### Dear Contributors ###
11-
First of all, thank you for taking your time even considering contributing to this repo.
12-
It is extremely important to us that you, ordinary users or continuous collaborators,
13-
contribute to this project in a combined effort to make it greater, stable than ever before.
11+
First of all, thank you for taking your time even considering contributing to this repo.
12+
It is extremely important to us that you, ordinary users or continuous collaborators, contribute to this project in a combined effort to make it greater, stable than ever before.
1413

1514
## Submitting Issues ##
16-
New features and bug reports keep the project moving forward and getting better.
15+
New features and bug reports keep the project moving forward and getting better.
1716
This is partly your duty, the user, to request those features and report the bugs.
1817

1918
### Before you submit an issue ###
20-
* Please make sure your'e using the latest version of **Arduino CMake**.
21-
Generally it's the one in the [master](https://github.com/arduino-cmake/arduino-cmake) branch, unless said otherwise by any of the maintainers.
22-
* Go over the existing issues list (including closed ones) to make sure your issue hasn't already been reported.
19+
* Please make sure your'e using the latest version of **Arduino CMake**.
20+
Generally it's the [latest release](https://github.com/arduino-cmake/Arduino-CMake-NG/releases), unless said otherwise by any of the maintainers.
21+
* Go over the existing issue list (including closed ones) to make sure your issue hasn't already been reported or fixed.
2322

2423
### Submitting a good issue ###
2524
Issues can be submitted with a very short description, but that would make the life of the developers addressing it very hard, leading to unresolved issues due to lack of information.
@@ -54,111 +53,109 @@ Platform SDK Version: [Version]
5453
### Code Style
5554
Like most projects, **Arduino-CMake** uses its own coding style which ensures that everybody can easily read and change files without the hassle of reading 3 different indentation styles paired 4 ways of brace spacing.
5655

57-
While we believe that the coding style you are using benefits you, please try and stick to the project's accepted style as close as possible.
58-
For starters, make sure your editor supports `.editorconfig`.
59-
It will take care of the some of the greatest hassles like indentation, new lines and such.
60-
As for spacing, naming conventions, etc. - Please look at existing code to get an idea of the style.
56+
While we believe that the coding style you are using benefits you, please try and stick to the project's accepted style as close as possible.
57+
For starters, make sure your editor supports `.editorconfig`.
58+
It will take care of the some of the greatest hassles like indentation, new lines and such.
59+
As for spacing, naming conventions, etc. - Please look at existing code to get an idea of the style.
6160
If you use an Jetbrains `IDEA` based IDE (for example `CLion`), chances are that the auto formatting functionality will take care of things due to the project's `codeStyleSettings.xml` residing in the repository.
6261

6362
### Versioning
64-
This project follows [semantic versioning](http://semver.org/spec/v2.0.0.html).
65-
It also allows easy integration with Git's classic [Workflow Model](http://nvie.com/posts/a-successful-git-branching-model), which is described next.
63+
This project follows the [semantic versioning](http://semver.org/spec/v2.0.0.html).
64+
It also allows easy integration with our [Workflow Model](#Project Workflow), which is described next.
6665

6766
### Project Workflow
6867

69-
This project follows Git's classic [Workflow Model](http://nvie.com/posts/a-successful-git-branching-model), allowing developers to work on multiple features simultaneously without clashing. This model is a bit different than suggested by **GitHub**, intended mostly for offline Git repositories. However, both models can be easily integrated together to form a single model.
68+
Up to version *0.6*, included, this project followed Git's [Classic Workflow Model](http://nvie.com/posts/a-successful-git-branching-model), allowing developers to work on multiple features simultaneously without clashing. This model is a bit different than suggested by **GitHub**, intended mostly for offline Git repositories.
69+
For this reason the project has adapted the model to GitHub's model from version *0.6.x* and above.
7070

71-
The elements of the model are thoroughly described in the following sections.
71+
The elements of the adapted model are thoroughly described in the following sections.
7272

7373
#### Bug Fixes
74-
Bug fixes can be found in the *stable* release or in a *developed* feature.
74+
Bug fixes can be found in the *stable release* or in a *developed feature*.
7575
The way we treat them is different, described in the next sections.
7676

7777
**Note:** Before claiming to find a bug, make sure you are on the latest commit of that branch.
7878

7979
##### Release Bugs/Critical Bugs
8080

81-
Those are the ones with the highest priority to fix. If you encounter such a bug you should immediately submit a new issue. Before you submit, please see [Submitting Issues](#Submitting-Issues).
81+
Those are the ones with the highest priority to fix. If you encounter such a bug you should immediately submit a new issue. Before you submit, please see [Submitting Issues](#Submitting-Issues).
8282
If you'd like to fix the bug yourself, please **state that** in the issue.
8383

84-
Fixes to such bugs should be made on a separate branch named `hotfix/B` where `B` is a short description of the bug being solved, separated with a hyphen (`-`) between every word.
85-
Do note that even though it should describe the bug, it's just a name, thus it shouldn't be too long.
84+
Fixes to such bugs should be made on a separate branch named `hotfix/B` where `B` is a short description of the bug being solved, separated with a hyphen (`-`) between every word.
85+
Do note that even though it should describe the bug, it's just a name, thus it shouldn't be too long.
8686
For example the name `hotfix/cmake-not-reloading-when-platform-libraries-are-used` is a bad name, because even though it fits the naming standard and describes the bug, it is way too long for a name.
8787
A better name would be `hotfix/platform-libraries-reloading`.
8888

8989
According to our [Workflow model](#Project-Workflow), once the hotfix is finished one should:
9090

91-
1. Merge directly to **master**
92-
* Add a tag to the *merge-commit* named after the patched version.
93-
e.g If the current stable version is v2.1.0, the hotfix should make it v2.1.1 (Bump the patch number).
94-
2. Merge directly to **develop**
95-
3. Use the `--no-ff` flag when merging
91+
1. Add a tag to the *merge-commit* named after the patched version.
92+
e.g If the current stable version is v2.1.0, the hotfix should make it v2.1.1 (Bump the patch number).
93+
2. Pull-Request directly to **master**
9694

97-
However, **GitHub**'s model support *Pull-Request*s instead of simple *merges*.
98-
To comply with the steps listed above, 2 PRs should be made: One to the **master** branch and another to the **develop** branch.
99-
Instead, we accept a single PR to the **master** branch, and will manually merge the rest once the hotfix is finished. Converting that to a list would look like this:
100-
101-
1. Pull-Request directly to **master**
102-
* Once accepted, the merging maintainer will add a tag to the *merge-commit* and bump the patch version (Further described in the previous list).
103-
2. A maintainer will merge to **develop** or **current release** (Note on that below)
104-
3. The `--no-ff` flag will be used when merging
95+
The [Classic Workflow Model](http://nvie.com/posts/a-successful-git-branching-model) lists that a hotfix should be *merged* to both **master** and **develop**, however, GitHub doesn't play nicely with this exact model and basically allows only one of the branches to exist in such a workflow that respects *Pull-Requests* (Instead of *merges*) on one side, and the Workflow model on another.
10596

10697
**Note to Maintainers/Collaborators:**
107-
If an active **release** branch exists when the hotfix is integrated, meaning there's an on-going release, the hotfix should be merged directly to the **release** branch instead of the **develop** branch, unless the hotfix fixes a truly critical bug that affects development as well.
98+
If an active **release** branch exists when the hotfix is integrated, meaning there's an on-going release, the hotfix should be also be *merged* to the **release** branch, optionally from the **master** branch if a *merge* from the hotfix branch isn't possible.
10899

109100
##### Development Bugs
110101

111-
Those are easier to find and fix since they exist only in **feature** branches, planned for future releases and considered in development. However, these still need to be reported by submitting relevant issues, also specifying if your'e attempting to fix them.
102+
These exist in **feature** branches or the **master** branch - Code that's planned for future releases and considered in development.
103+
However, these still need to be reported by submitting relevant issues. You should also specify if your'e attempting to fix them.
112104

113-
Fixes to such bugs should be made on a separate branch, preferably in a forked version, named after the bug. Once finished, you should PR it to the appropriate **feature** branch.
114-
If the **feature** branch has already been merged to **develop**, the merging maintainer will take care of merging the branch to develop again.
105+
Fixes to such bugs should be made on a separate branch, preferably in a forked version, named after the bug. Once finished, you should PR it to the appropriate **feature** branch or directly to the **master** branch - depending on where you found them.
106+
If the **feature** branch has already been merged to **master**, you should simply PR directly to **master**.
115107

116108
#### New Features
117-
To ensure your contribution makes it into the mainline codebase, always check the **develop** branch for the next targeted release.
118-
Make sure your contribution is on par with that branch and PR features back into **develop**.
119-
This strategy should be the right one for most users.
109+
To ensure your contribution makes it into the mainline codebase, always check the **master** branch for the next targeted release.
110+
Make sure your contribution is on par with that branch, then PR directly into **master**.
111+
This strategy should be the right one for most users.
120112
If you want to make further additions to a feature currently under development, you can also PR into the corresponding **feature** branch.
121113

122114
##### Feature Branch Naming
123115

124116
**Feature** branch names should be short and descriptive, each word separated by a single hyphen (`-`).
125-
e.g A branch named `feature/blacklisting-libraries-to-avoid-automatic-inclusion-when-reloading-cmake` is a bad branch name because it's too long, even though it's very descriptive.
126-
A better name would be `feature/library-blacklist` because it's short and generally descriptive.
127-
Any further description would be written in commit messages or the final PR to the **develop** branch.
117+
e.g A branch named `feature/blacklisting-libraries-to-avoid-automatic-inclusion-when-reloading-cmake` is a bad branch name because it's too long, even though it's very descriptive.
118+
A better name would be `feature/library-blacklist` because it's short and generally descriptive.
119+
120+
Any further description would be written in commit messages or the final PR to the **master** branch.
128121

129122
#### Releases
130123

131124
When a handful of features is complete, the developed product is ready for release.
132-
According to our [Workflow model](#Project-Workflow), every release should start with a branch named after the about-to-be-released version. e.g `release/2.0.0`.
125+
According to our [Workflow model](#Project-Workflow), every release should start with a branch named after the *about-to-be-released* version. e.g `release/2.0.0`.
133126

134127
There are some strict rules we apply to our releases:
135128

136129
* At any given moment there should be a <u>single release</u> **or** <u>no release at all</u>.
137130
We're not working Agile on this project, thus there's no need for multiple simultaneous releases.
138-
* Once existing, any hotfix should be merged to the **release** branch instead of the **develop** branch (See [Release Bugs](#Release-Bugs/Critical-Bugs)).
131+
* Once existing, any hotfix should be merged to the **release** branch as well as to the **master** branch (See [Release Bugs](#Release-Bugs/Critical-Bugs)).
139132
* Any last-minute bug-fixes should be made directly on the **release** branch.
140-
They will be merged later to the **develop** branch once the release is completed.
141-
* New features developed after the release has been started are intended for the <u>**next** release</u>.
142-
* Before completing the release, the `CHANGELOG.md` file should be updated accordingly.
143-
144-
Once the release is complete it is merged to the **master** branch and to the **develop** branch.
133+
They will be merged later to the **master** branch once the release is completed.
134+
* New features developed after the release has been started are intended for the <u>**next** release</u> - They should be merged only to the **master** branch!
135+
* Before completing the release:
136+
* Documentation should be up-to-date (Currently maintained in GitHub Wiki)
137+
* **Changelog** file should be updated accordingly
138+
* **Authors** file should be updated accordingly
139+
140+
Once the release is complete it is merged to the **master** branch.
145141
A tag with the final release version is also added to the *merge-commit* on **master**.
146142

147143
### Pull Requests
148144

149-
At GitHub we support merging by Pull-Requesting.
145+
At GitHub we support merging by Pull-Requesting.
150146
It helps us document code better, as well as discussing and reviewing a change before it gets into the mainline codebase.
147+
151148
Please make a Pull Request for every change you'd like to make, yes, <u>even if your'e an maintainer or a collaborator</u>.
152149

153-
Also note that we do have a strict rule about the branch your'e PRing from - Once it gets merged, it will be deleted. This is done to avoid unnecessary cluttering of the project.
150+
Also note that we do have a strict rule about the branch your'e PRing from - Once it gets merged, it will be probably get deleted. This is done to avoid unnecessary cluttering of the project.
154151
If you need to keep the branch for some reason, please state it in **bold** in the PR's description, so that the merging user will notice it.
155152

156153
### Breaking Changes
157-
Breaking changes require the release of a new major version according to *semver* rules.
154+
Breaking changes require the release of a new major version according to [semantic versioning](#Versioning) rules.
158155
If your'e making changes to the **public** interface (API) that are not backwards-compatible, make sure it is **absolutely** necessary.
159156

160157
### Changelog
161-
All project changes, new features and bug fixes are documented in `CHANGELOG.md`.
162-
For any contribution, please add a corresponding changelog entry.
163-
Bump the patch version for bug fixes and the minor version for feature additions.
158+
All project changes, new features and bug fixes are documented in `CHANGELOG.md`.
159+
<u>**Maintainers**</u> - For any contribution, please add a corresponding changelog entry.
160+
Bump the patch version for bug fixes and the minor version for feature additions.
164161
Don't **ever** bump the major version on your behalf - It should be done only by the maintainers of the project.

0 commit comments

Comments
 (0)