Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
TurTLE
TurTLE
Commits
f792b1ad
Commit
f792b1ad
authored
Dec 23, 2015
by
Chichi Lalescu
Browse files
add description of versioning guidelines
parent
d5d799e2
Changes
3
Hide whitespace changes
Inline
Side-by-side
README.rst
View file @
f792b1ad
...
...
@@ -13,6 +13,14 @@ in the repository), and it is working as expected. Parameters and
statistics are stored in HDF5 format, together with code information,
so simulation data should be "future proof".
Users of this code are expected to either use `NavierStokes` objects
directly, or construct their own class that inherits this class.
The way I use it is to I inherit and add custom statistics as necessary; I
also have private C++ code that can get added and used when needed.
I plan on adding documentation on the procedure as when other people
show interest in using the code, or when time permits.
Installation
------------
...
...
@@ -51,3 +59,52 @@ Comments
compatibility should be kept since mayavi (well, vtk actually) only
works on Python 2.
===========
Development
===========
`bfps` is using `git` for version tracking (see https://git-scm.com/
for description).
The branching model described at
http://nvie.com/posts/a-successful-git-branching-model/ should be
adhered to as strictly as possible.
The usable `VERSION` number will be constructed according to semantic
versioning rules (see http://semver.org/), `MAJOR.MINOR.PATCH`.
In principle, if you use `bfps` and you've created children of the
`NavierStokes` class, you should not need to rewrite your code unless
the `MAJOR` version changes.
Versioning guidelines
---------------------
There are 2 main branches, `master` and `develop`.
`setup.py` will call `git` to read in the `VERSION`: it will get the
latest available tag.
If the active branch name contains either of the strings `develop`,
`feature` or `bugfix`, then the full output of `git describe --tags`
will be used;
otherwise, only the string before the dash (if a dash exists) will be
used.
At the moment the following rules seem adequate.
Once I get feedback from someone who actually knows how to handle bigger
projects, these may change.
1. New features are worked on in branches forked from `develop`, with
the branch name of the form `feature/bla`.
Feature branches are merged back into `develop` only after all tests
pass.
2. Whenever the `develop` branch is merged into `master`, the last
commit on the `develop` branch is tagged with `MAJOR.MINOR`.
3. Whenever a bug is discovered in version X.Y, a new branch called `vX.Y`
is forked from the corresponding `master` merge point.
A new bugfix branch is forked from `vX.Y`, the bug is fixed, and then
this bugfix branch is merged into all affected branches (this includes
`vX.Y`).
After merging, the respective merge points are tagged adequately (`vX.Y`
gets the tag X.Y.1).
4. Whenever a bug is discovered in version X.Y.Z, a bugfix branch is
forked from `vX.Y`, and then rule 3 is adapted accordingly.
done.txt
View file @
f792b1ad
x 2015-12-04 make code py3 compatible @python3
x 2015-12-23 decide on versioning system +merge0
todo.txt
View file @
f792b1ad
(B) FFTW interpolator doesn't need its own field @optimization +
merge
0
(B) compute z polynomials only when needed @optimization +
merge
0
(B) get rid of temporal interpolation @optimization +
merge
0
(B) move get_grid coords to interpolator @optimization +
merge
0
(B) FFTW interpolator doesn't need its own field @optimization +
v1.
0
(B) compute z polynomials only when needed @optimization +
v1.
0
(B) get rid of temporal interpolation @optimization +
v1.
0
(B) move get_grid coords to interpolator @optimization +
v1.
0
(B) use less memory @optimization
(C) clean up machine_settings mess @design @documentation +
merge1
(C) clean up machine_settings mess @design @documentation +
v2.0
(C) code overview @documentation
(C) decide on versioning system +merge0
(C) move stat I/O to cpp lib @design @HDF5 +merge1
(C) set up mechanism for adding in new PDEs @design +merge1 +alternate_algorithms
(C) move stat I/O to cpp lib @design @HDF5
(C) set up mechanism for adding in new PDEs @design +v2.0 +alternate_algorithms
(C) test involving hydrodynamic similarity @tests
(C) use HDF5 io for fields @design @HDF5 +I/O
(D) test anisotropic grids @tests
...
...
Write
Preview
Supports
Markdown
0%
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!
Cancel
Please
register
or
sign in
to comment