Skip to content

Commit 6796a3a

Browse files
committed
updated versioning and release post
1 parent 2ea86ce commit 6796a3a

2 files changed

Lines changed: 54 additions & 1 deletion

File tree

_posts/2016-05-17-versioning.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: post
33
title: Versioning and Releases
44
author: Elsa Gonsiorowski
5-
category: ross-dev
5+
category: old
66
---
77

88
Is the history of your repository safe?
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
layout: post
3+
title: Versioning and Releases
4+
author: Elsa Gonsiorowski
5+
category: ross-dev
6+
---
7+
8+
In addition to the [git branching workflow](https://nvie.com/posts/a-successful-git-branching-model/) development model, the ROSS project uses the [Semantic Versioning](https://semver.org/) model for version numbers.
9+
This helps with reproducibility of experiments detailed in publications and helps users ensure that they are using the correct version of ROSS, especially when using other software that depends on ROSS.
10+
11+
## Versioning
12+
13+
According to the [Semantic Versioning](https://semver.org/) model, we increment the major/minor/patch numbers in the version depending on the type of changes.
14+
15+
- **Major** version is incremented when an incompatible API change is made. This can happen when an API function has a change in function signature or when an API function is removed entirely. This could also happen when new features are released.
16+
- **Minor** version is incremented when a backward-compatible API change is made. This can happen when a API function is added or a function is marked as deprecated (but is not removed).
17+
- **Patch** version is incremented when other patches or bug-fixes are made.
18+
19+
## Release Process
20+
21+
As partially outlined in the [workflow blog post](https://ross-org.github.io/ross-dev/git-branching-workflow.html), the release process is as follows:
22+
1. A new branch, named `release-x.y.z` is created from `develop` (where `x.y.z` is the new version number).
23+
2. This branch may exist for a short time and may have some patches or bug-fixes added to it. No new/major changes should be made to this branch. This branch is pushed to GitHub.
24+
3. Through PRs, the release branch is merged into both `master` and `develop`. This should be a regular merge, *not* a squash-on-merge. If there have been no fixes to the release branch, a merge to `develop` may not be necessary.
25+
4. Once the merge is complete, a new release is tagged on the [GitHub releases](https://github.com/ROSS-org/ROSS/releases) page.
26+
27+
## Development Process
28+
29+
For development, we will continue to utilize *squash commits* to merge any PRs on the `develop` branch.
30+
Squash commits have several implications:
31+
32+
1. *The squash-on-merge option must be selected by the person doing the merge.*
33+
1. The individual commits are not placed in the history of the master branch.
34+
However, they do remain available through the pull request page.
35+
2. One positive outcome is that the blame on any file will be simplified since there is now only one commit associated with the entire change.
36+
3. Once a feature branch is merged into master, it should be **deleted from any local repositories**.
37+
There are possible issues if someone attempts to re-merge the branch (including commits previously added in a squash).
38+
39+
## Historical ROSS Releases
40+
41+
Prior to 2018, ROSS has only had a few "official" releases:
42+
43+
- **ROSS 5.0** *Oct 15, 2009*: <br />
44+
In late 2009, after 10 years of development, ROSS was made open source and released on SourceForge.net.
45+
- **RNF 1.1** *Nov 6, 2012*: <br />
46+
ROSS Net Framework was a model for network simulation built within ROSS itself.
47+
- **ROSS Legacy** *Jan 21, 2015*: <br />
48+
This was more of a tagged-version rather than a release.
49+
It was supposed to mark the last stable commit before Simplified ROSS begun to be merged.
50+
- **Simplified ROSS** *Jan 23, 2015*: <br />
51+
This release came after the gonsie/SR version was completely and successfully merged.
52+
- **ROSS 7.0.0** *August 14, 2018*: <br />
53+
This release kicked off the beginning of ROSS's semantic versioning.

0 commit comments

Comments
 (0)