-- mode: markdown; mode: auto-fill; fill-column: 100 -- Time-stamp: <Ven 2014-11-14 00:42 svarrette>
_ _ _ _ _ ____ ____ __ __ _ _
| | | | | | | | | _ \ / ___| | \/ | ___ __| |_ _| | ___ ___
| | | | | | |_| | |_) | | | |\/| |/ _ \ / _` | | | | |/ _ \/ __|
| |_| | |___ | _ | __/| |___ | | | | (_) | (_| | |_| | | __/\__ \
\___/|_____| |_| |_|_| \____| |_| |_|\___/ \__,_|\__,_|_|\___||___/
Copyright (c) 2014 UL HPC Management Team
Environment Modules / LMod / Easybuild configuration available on the UL HPC platform.
This repository host all elements required to manage the Modules environment available on the UL HPC platform.
Mostly, our workflow relies on Easybuild.
You should become familiar (if not yet) with Git. Consider these resources:
At least, you shall configure the following exported variables within your favorite shell (adapt accordingly):
# Bash configuration
# Set your git user info
export GIT_AUTHOR_NAME='<firstname> <name>'
export GIT_AUTHOR_EMAIL='<email>'
export GIT_COMMITTER_NAME="${GIT_AUTHOR_NAME}"
export GIT_COMMITTER_EMAIL="${GIT_AUTHOR_EMAIL}"
You can also use the following commands:
$> git config --global user.name "Your Name Comes Here"
$> git config --global user.email you@yourdomain.example.com
# configure colors
$> git config --global color.diff auto
$> git config --global color.status auto
$> git config --global color.branch auto
The Git branching model for this repository follows the guidelines of gitflow. In particular, the central repository holds two main branches with an infinite lifetime:
production
: the production-ready branchdevel
: the main branch where the latest developments intervene. This is the default branch you get when you clone the repo
The various operations that can be conducted from this repository are piloted
from a Rakefile
and assumes you have a running Ruby installation.
If you hate RVM and run Debian, you can bootstrap this repository as follows:
$> sudo apt-get install build-essential ruby1.9.3 $> sudo gem install bundler
$> bundle
You should now be able to access the list of available tasks by running:
$> rake -T
The bootstrapping of your repository is normally based on RVM, thus ensure this tools are installed on your system -- see installation notes.
The ruby stuff part of this repository corresponds to the following files:
.ruby-{version,gemset}
: RVM configuration, use the name of the project as gemset nameGemfile[.lock]
: used by[bundle](http://bundler.io/)
You should now be able to access the list of available tasks by running:
$> rake -T
You probably wants to activate the bash-completion for rake tasks. I personnaly use the one provided here
This repository is hosted on out GitHub. Once cloned, initiate your local copy of the repository by running:
$> cd modules
$> rake setup
The operation consisting of releasing a new version of this repository is automated by a set of tasks within the Rakefile
.
In this context, a version number have the following format:
<major>.<minor>.<patch>-b<build>
where:
< major >
corresponds to the major version number< minor >
corresponds to the minor version number< patch >
corresponds to the patching version number< build >
states the build number i.e. the total number of commits within thedevelop
branch.
Example: 1.0.0-b28
The current version number is stored in the file VERSION
. /!\ NEVER MAKE ANY MANUAL CHANGES TO THIS FILE
For more information on the version, run:
$> rake version:info
If a new version number such be bumped, you simply have to run:
$> rake version:bump:{major,minor,patch}
This will start the release process for you using git-flow
.
Probably after that, the first things to do is to change within the main LaTeX document the version number and commit this change.
Then, to make the release effective, just run:
$> rake version:release
it will finish the release using git-flow
, create the appropriate tag in the prod
branch and merge all things the way they should be.