Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • paulmc/fslpy
  • ndcn0236/fslpy
  • seanf/fslpy
3 results
Show changes
Showing
with 185 additions and 17 deletions
......@@ -9,10 +9,10 @@ Development model
-----------------
- The master branch should always be stable and ready to release. All
development occurs on the master branch.
- The main branch should always be stable and ready to release. All
development occurs on the main branch.
- All changes to the master branch occur via merge requests. Individual
- All changes to the main branch occur via merge requests. Individual
developers are free to choose their own development workflow in their own
repositories.
......@@ -34,7 +34,7 @@ the following labels (this convention has been inherited from `nibabel
* *BF* : bug fix
* *RF* : refactoring
* *NF* : new feature
* *ENH*: enhancement/new feature
* *BW* : addresses backward-compatibility
* *OPT* : optimization
* *BK* : breaks something and/or tests fail
......@@ -66,10 +66,10 @@ numbers::
backwards-incompatible changes.
The version number in the ``master`` branch should be of the form
``major.minor.patch.dev``, to indicate that any releases made from this branch
are development releases (although development releases are not part of the
release model).
The version number in the ``main`` branch should be of the form
``major.minor.patch.dev0``, to indicate that any releases made from this
branch are development releases (although development releases are not part of
the release model).
Releases
......@@ -83,7 +83,7 @@ name for minor release ``1.0`` would be ``v1.0``.
Patches and bugfixes may be added to these release branches as ``patch``
releases. These changes should be made on the master branch like any other
releases. These changes should be made on the main branch like any other
change (i.e. via merge requests), and then cherry-picked onto the relevant
release branch(es).
......@@ -94,6 +94,44 @@ example, the first release off the ``v1.0`` branch would be tagged with
``1.0.1``, ``1.0.2``, etc.
Major/minor releases
^^^^^^^^^^^^^^^^^^^^
Follow this process for major and minor releases. Steps 1 and 2 should be
performed via a merge request onto the main branch, and step 4 via a merge
request onto the relevant minor branch.
1. Update the changelog on the main branch to include the new version number
and release date.
2. On the main branch, update the version number in ``fsl/version.py`` to
a development version of **the next** minor release number. For example,
if you are about to release version ``1.3.0``, the version in the main
branch should be ``1.4.0.dev0``.
3. Create the new minor release branch off the main branch.
4. Update the version number on the release branch. If CI tests fail on the
release branch, postpone the release until they are fixed.
5. Tag the new release on the minor release branch.
Bugfix/patch releases
^^^^^^^^^^^^^^^^^^^^^
Follow this process for patch releases. Step 1 should be performed via
a merge request onto the main branch, and step 2 via a merge request onto
the relevant minor branch.
1. Add the fix to the main branch, along with an updated changelog including
the version number and date for the bugfix release.
2. Cherry-pick the relevant commit(s) from the main branch onto the minor
release branch, and update the version number on the minor release branch.
If CI tests fail on the release branch, go back to step 1.
3. Tag the new release on the minor release branch.
Testing
-------
......@@ -102,7 +140,7 @@ Unit and integration tests are currently run with ``py.test`` and
``coverage``.
- Aim for 100% code coverage.
- Tests must pass on python 2.7, 3.4, 3.5, and 3.6
- Tests must pass on python 3.5, 3.6, and 3.7.
Coding conventions
......@@ -144,6 +182,7 @@ for a list of error codes):
- E302: expected 2 blank lines, found 0
- E303: too many blank lines (3)
- E701: multiple statements on one line (colon)
- W504: line break after binary operator
The ``pylint`` tool can be *very* opinionated about how you write your code,
......@@ -162,7 +201,7 @@ refactoring and convention messages, and a few select warnings (type ``pylint
To check code with ``flake8`` and ``pylint``, I use the following commands::
flake8 --ignore=E127,E201,E203,E221,E222,E241,E271,E272,E301,E302,E303,E701 fsl
flake8 --ignore=E127,E201,E203,E221,E222,E241,E271,E272,E301,E302,E303,E701,W504 fsl
pylint --extension-pkg-whitelist=numpy,wx \
--generated-members=np.int8,np.uint8,np.int16,np.uint16,np.int32,np.uint32,np.int64,np.uint64,np.float32,np.float64,np.float128,wx.PyDeadObjectError \
--disable=R,C,W0511,W0703,W1202 fsl
``fsl.data.bitmap``
===================
.. automodule:: fsl.data.bitmap
:members:
:undoc-members:
:show-inheritance:
``fsl.data.cifti``
==================
.. automodule:: fsl.data.cifti
:members:
:undoc-members:
:show-inheritance:
......@@ -5,6 +5,8 @@
:hidden:
fsl.data.atlases
fsl.data.bitmap
fsl.data.cifti
fsl.data.constants
fsl.data.dicom
fsl.data.dtifit
......@@ -20,6 +22,7 @@
fsl.data.melodicimage
fsl.data.mesh
fsl.data.mghimage
fsl.data.utils
fsl.data.vest
fsl.data.volumelabels
fsl.data.vtk
......
``fsl.data.utils``
==================
.. automodule:: fsl.data.utils
:members:
:undoc-members:
:show-inheritance:
``fsl.scripts.Text2Vest``
=========================
.. automodule:: fsl.scripts.Text2Vest
:members:
:undoc-members:
:show-inheritance:
``fsl.scripts.Vest2Text``
=========================
.. automodule:: fsl.scripts.Vest2Text
:members:
:undoc-members:
:show-inheritance:
``fsl.scripts.fsl_abspath``
===========================
.. automodule:: fsl.scripts.fsl_abspath
:members:
:undoc-members:
:show-inheritance:
``fsl.scripts.fsl_apply_x5``
============================
.. automodule:: fsl.scripts.fsl_apply_x5
:members:
:undoc-members:
:show-inheritance:
``fsl.scripts.fsl_convert_x5``
==============================
.. automodule:: fsl.scripts.fsl_convert_x5
:members:
:undoc-members:
:show-inheritance:
``fsl.scripts.imln``
====================
.. automodule:: fsl.scripts.imln
:members:
:undoc-members:
:show-inheritance:
``fsl.scripts.imrm``
====================
.. automodule:: fsl.scripts.imrm
:members:
:undoc-members:
:show-inheritance:
``fsl.scripts.imtest``
======================
.. automodule:: fsl.scripts.imtest
:members:
:undoc-members:
:show-inheritance:
``fsl.scripts.remove_ext``
==========================
.. automodule:: fsl.scripts.remove_ext
:members:
:undoc-members:
:show-inheritance:
``fsl.scripts.resample_image``
==============================
.. automodule:: fsl.scripts.resample_image
:members:
:undoc-members:
:show-inheritance:
......@@ -5,12 +5,26 @@
:hidden:
fsl.scripts.atlasq
fsl.scripts.fsl_abspath
fsl.scripts.fsl_apply_x5
fsl.scripts.fsl_convert_x5
fsl.scripts.fsl_ents
fsl.scripts.imcp
fsl.scripts.imglob
fsl.scripts.imln
fsl.scripts.immv
fsl.scripts.imrm
fsl.scripts.imtest
fsl.scripts.remove_ext
fsl.scripts.resample_image
fsl.scripts.Text2Vest
fsl.scripts.Vest2Text
.. automodule:: fsl.scripts
:members:
:undoc-members:
:show-inheritance:
The ``fsl.scripts`` package contains all of the executable scripts provided by
``fslpy``, and other python-based FSL packages.
The ``fsl.scripts`` package is a `native namespace package
<https://packaging.python.org/guides/packaging-namespace-packages/>`_, which
means that it can be used by other Python libraries.
``fsl.transform.affine``
========================
.. automodule:: fsl.transform.affine
:members:
:undoc-members:
:show-inheritance:
``fsl.utils.transform``
``fsl.transform.flirt``
=======================
.. automodule:: fsl.utils.transform
.. automodule:: fsl.transform.flirt
:members:
:undoc-members:
:show-inheritance:
``fsl.transform.fnirt``
=======================
.. automodule:: fsl.transform.fnirt
:members:
:undoc-members:
:show-inheritance:
``fsl.transform.nonlinear``
===========================
.. automodule:: fsl.transform.nonlinear
:members:
:undoc-members:
:show-inheritance: