Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
R
Rugged
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Orekit
Rugged
Commits
da3d97d8
Commit
da3d97d8
authored
6 years ago
by
Guylaine Prat
Browse files
Options
Downloads
Patches
Plain Diff
Add explanations about branch management workflow (git flow)
parent
c7c4a554
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/site/markdown/guidelines.md
+49
-0
49 additions, 0 deletions
src/site/markdown/guidelines.md
with
49 additions
and
0 deletions
src/site/markdown/guidelines.md
+
49
−
0
View file @
da3d97d8
...
@@ -81,6 +81,55 @@ difficult to catch bugs are caused by mutable objects that are changed in some d
...
@@ -81,6 +81,55 @@ difficult to catch bugs are caused by mutable objects that are changed in some d
buried code and have an impact on user code that forgot to perform a defensive copy.
buried code and have an impact on user code that forgot to perform a defensive copy.
Orbits, dates, vectors, and rotations are all immutable objects.
Orbits, dates, vectors, and rotations are all immutable objects.
## Source Control Management
The source code control management system used is
[
Git
](
http://git-scm.com/
)
. The
main Rugged repository is located at
[
https://gitlab.orekit.org/orekit/rugged
](
https://gitlab.orekit.org/orekit/rugged
)
.
Starting after version 2.0, the branch management workflow is adapted from
both
[
git flow
](
http://nvie.com/posts/a-successful-git-branching-model/
)
and
from the
[
Orfeo ToolBox Workflow
](
https://wiki.orfeo-toolbox.org/index.php/Git#Workflow
)
.
It is the same as chosen for
[
Orekit branch management workflow
](
https://gitlab.orekit.org/orekit/orekit/blob/master/src/site/markdown/guidelines.md
)
.

This implies that development occurs on a develop branch only.
Developers create feature branches, and merge them on the develop
branch when ready. The develop branch should always be functional
so people wanting to be on the bleeding edge can use it (for example
to create nightly builds or to prepare their application for upcoming
features before the official release).
In order to improve traceability, when a feature branch is merged into
develop, it should use
git merge ---no-ff
the --no-ff flag prevents fast-forward so the history makes it clear there
was a feature branch at this point.
Feature branches are temporary, they are deleted when they are not useful anymore.
Feature branches may be present only in one developer workspace and never appear
in the main repository, however, they may also be pushed on the main repository
if the developer wants to share work or needs community feedback.
When a release is desired, a dedicated branch should be created, with a name
following the pattern release-x.y. These branches are created from the
develop branch. When the release is ready, the branch is merged both into the
master branch and into the develop branch. Once a release branch has been set
up, it will remain. This allows users relying on this specific version to be
able to retrieve the fixes published afterward (i.e. x.y.1, x.y.2...).
After a release has been published and pushed to master, it may be necessary
to publish an urgent bugfix if a serious problem in the released version is
found. Short-lived bugfix branches that are created directly from master are
devoted to this. These bugfix branches are merged back into master and develop.
The master branch always refer to the latest stable release performed. No
direct work is done on this branch. It is updated only by merging either
release branches or bugfix branches branches to it.
## Style Rules
## Style Rules
For reading ease and consistency, the existing code style should be
For reading ease and consistency, the existing code style should be
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment