diff --git a/AUTHORS b/AUTHORS index 7236e8939d41be4157e063796c475fd62341e96c..81d02020d8d83361bb7a7c64569504440d643466 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,5 +1,8 @@ Leiden University Medical Center department of Human Genetics <humgen@lumc.nl> Jeroen Laros <j.f.j.laros@lumc.nl> -Gerben Stouten +Martijn Vermaat <martijn@vermaat.name> +Jonathan Vis <jvis@liacs.nl> +Gerben Stouten <gstouten@gmail.com> Gerard Schaafsma <g.c.p.schaafsma@lumc.nl> -Martijn Vermaat <m.vermaat.hg@lumc.nl> +Daria Dvorkina <dasha@dvorkina.ru> +Alisa Muraveva <alisa391213725@yandex.ru> diff --git a/README b/DEVELOPMENT.md similarity index 68% rename from README rename to DEVELOPMENT.md index 9b32aa2f769bb4d9e5373bb5f37ddc6c4e3fa8cc..b62dbd47965dc144231af40b3e3224f9ec99a11b 100644 --- a/README +++ b/DEVELOPMENT.md @@ -1,19 +1,16 @@ -Mutalyzer, a HGVS variant nomenclature checker -============================================== +Mutalyzer development +===================== +Development of Mutalyzer happens on the GitLab server: +https://git.lumc.nl/mutalyzer/mutalyzer -Documentation -------------- -See the doc/ directory for (possibly outdated) developer documentation and -presentation slides related to Mutalyzer. See http://www.mutalyzer.nl for -user documentation. - - -Installation +Coding style ------------ -See the INSTALL file for installation instructions. +In general, try to follow the [PEP 8](http://www.python.org/dev/peps/pep-0008) +guidelines for Python code and +[PEP 257](http://www.python.org/dev/peps/pep-0257/) for docstrings. Unit tests @@ -34,85 +31,76 @@ Or, if you are in a hurry, skip the long-running tests with: MUTALYZER_ENV=test MUTALYZER_QUICK_TEST=1 nosetests -v -Release management ------------------- +Working with feature branches +----------------------------- -The current Mutalyzer version is recorded in `mutalyzer/__init__.py`. See the -comments in that file for more info of the versioning scheme. +New features are best implemented in their own branches, isolating the work +from unrelated developments. In fact, it's good practice to **never work +directly on the master branch** but always in a separate branch. For this +reason, the master branch on the GitLab server is locked. Feature branches can +be merged back into master via a **merge request** in GitLab. -On the event of a new release, the following is done: +Before starting work on your feature, create a branch for it: - emacs mutalyzer/__init__.py + git checkout -b your-feature -Update `__date__`, remove `'dev'` from `__version_info__` and set `RELEASE` to -`True`. +Commit changes on this branch. If you're happy with it, push to GitLab: - svn commit -m 'Release 2.0.beta-11' - svn cp https://humgenprojects.lumc.nl/svn/mutalyzer/trunk \ - https://humgenprojects.lumc.nl/svn/mutalyzer/tags/mutalyzer-2.0.beta-11 \ - -m 'Tag 2.0.beta-11' - emacs mutalyzer/__init__.py + git push origin your-feature -u -Set `__version_info__` to a new version ending with `'dev'` and set `RELEASE` -to `FALSE`. +Now create a merge request to discuss the implementation with your +colleagues. This might involve adding additional commits which are included in +the merge request by pushing your branch again: - svn commit -m 'Open development for 2.0.beta-12' - -Be sure to upgrade your installations to the new version as described in the -INSTALL file (e.g. `sudo python setup.py develop` for development checkouts). + git commit + git push +You may also be asked to rebase your branch on the master branch if it has +changed since you started your work. This will require a forced push: -Working with feature branches ------------------------------ + git fetch + git rebase origin/master + git push -f -Some features are best developed isolated in a separate branch (a 'feature -branch') before being merged into trunk. To make it easier to switch between -branches, don't checkout the entire repository tree from its root. Instead, -checkout the branch subdirectory (or trunk) directly and use `svn switch` to -switch between them. Otherwise, you might need to update you Apache config and -run `sudo python setup.py develop` every time you switch branches. +If the work is done, a developer can merge your branch and close the merge +request. After the branch was merged you can safely delete it: -To create the branch from current trunk: + git branch -d your-feature - svn cp https://humgenprojects.lumc.nl/svn/mutalyzer/trunk \ - https://humgenprojects.lumc.nl/svn/mutalyzer/branches/my-feature-branch \ - -m 'Create my-feature-branch from trunk' -To work from this branch, switch your checkout to there: +Release management +------------------ - svn switch https://humgenprojects.lumc.nl/svn/mutalyzer/branches/my-feature-branch +The current Mutalyzer version is recorded in `mutalyzer/__init__.py`. See the +comments in that file for more info of the versioning scheme. -To make it easier to reintegrate long-running branches, you can periodically -merge trunk into them: +On the event of a new release, the following is done: - svn merge https://humgenprojects.lumc.nl/svn/mutalyzer/trunk + emacs mutalyzer/__init__.py -Use `mergeinfo` to see which revisions are already merged. You can cherry-pick -revisions to merge by using the `-c` option: +Update `__date__`, remove `dev` from `__version_info__` and set `RELEASE` to +`True`. - svn mergeinfo https://humgenprojects.lumc.nl/svn/mutalyzer/trunk \ - --show-revs eligible - svn merge -c 354 https://humgenprojects.lumc.nl/svn/mutalyzer/trunk + git commit -am 'Bump version to 2.0.beta-XX' + git tag -a 'mutalyzer-2.0.beta-XX' + git push --tags -If you just want to mark a revision as being merged, you can use the -`--record-only` switch. + emacs mutalyzer/__init__.py -Reintegrating a branch into trunk is done from the trunk checkout: +Set `__version_info__` to a new version ending with `'dev'` and set `RELEASE` +to `FALSE`. - svn switch https://humgenprojects.lumc.nl/svn/mutalyzer/trunk - svn merge --reintegrate \ - https://humgenprojects.lumc.nl/svn/mutalyzer/branches/my-feature-branch - svn rm https://humgenprojects.lumc.nl/svn/mutalyzer/branches/my-feature-branch \ - -m 'Delete refactor-mutalyzer-branch' + git commit -am 'Open development for 2.0.beta-YY' -All `merge` operations taken an optional `--dry-run` switch. Use it to see -what would happen without having to actually applying. +Be sure to upgrade your installations to the new version as described in the +INSTALL file (e.g. `sudo python setup.py develop` for development checkouts). Development notes ----------------- Todo list: + - Improve the web interface design :) - Test all uses of mkstemp(). - Use naming conventions for modules Crossmap, Db, File, GenRecord, Retriever @@ -154,6 +142,7 @@ Todo list: - Be more explicit in all the type of descriptions we don't currently support. Code style guide: + - Follow PEP 8 (code) and PEP 257 (docstrings). http://www.python.org/dev/peps/pep-0008/ http://www.python.org/dev/peps/pep-0257/ @@ -174,6 +163,7 @@ Code style guide: effort. Obsoleted features: + - On eu.liacs.nl: /etc/apache2/mods-enabled/rewrite.load contains a rewrite rule that converts "Variant_info.php" to "Variant_info". @@ -188,6 +178,7 @@ Dependencies ------------ Mutalyzer depends on the following (Debian/Ubuntu) packages: + - mysql-server >= 5.1 - python >= 2.6 - python-mysqldb >= 1.2.2 @@ -202,6 +193,7 @@ Mutalyzer depends on the following (Debian/Ubuntu) packages: - python-suds >= 0.3.9-1 The web and SOAP interfaces depend on the following packages: + - apache2 >= 2.2.11 - libapache2-mod-wsgi >= 2.8 - python-webpy >= 0.33 @@ -209,9 +201,11 @@ The web and SOAP interfaces depend on the following packages: - python-simpletal >= 4.1-6 Automatic remote deployment depends on Fabric: + - fabric >= 0.9.0-2 The unit tests depend on the following packages: + - python-nose >= 0.11 - python-webtest >= 1.2.3 diff --git a/INSTALL b/INSTALL.md similarity index 96% rename from INSTALL rename to INSTALL.md index fe72b61625073c44d66ed1aa91bfff68513fe557..b74fc19a2839f53055434f26da4b83efba601fe2 100644 --- a/INSTALL +++ b/INSTALL.md @@ -39,7 +39,8 @@ Short version Run the following commands: - svn co https://www.mutalyzer.nl/svn/mutalyzer2/trunk . + git clone https://git.lumc.nl/mutalyzer/mutalyzer + cd mutalyzer sudo bash extras/pre-install.sh sudo python setup.py install sudo bash extras/post-install.sh @@ -76,9 +77,9 @@ your hands on a tarball and: tar -zxvf mutalyzer-XXX.tar.gz cd mutalyzer-XXX -Or get the source from SVN directly: +Or get the source from GitLab directly: - svn https://www.mutalyzer.nl/svn/mutalyzer2/trunk mutalyzer + git clone https://git.lumc.nl/mutalyzer/mutalyzer cd mutalyzer diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..334fd4a5a08584bda0e05086b3accdaac73962d3 --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +Mutalyzer, an HGVS variant nomenclature checker +=============================================== + +The canonical Mutalyzer installation can be found at https://mutalyzer.nl + + +Documentation and issue tracker +------------------------------- + +See the doc directory for (possibly outdated) developer documentation and +presentation slides related to Mutalyzer. See the +[Mutalyzer Trac](https://humgenprojects.lumc.nl/trac/mutalyzer) for user +documentation and issue tracker. + + +Installation +------------ + +See the INSTALL.md file for installation instructions. + + +Development +----------- + +The DEVELOPMENT.md file has more information for developers working on +Mutalyzer.