mirror of https://gitlab.com/QEF/q-e.git
Add some development instructions
This commit is contained in:
parent
7ddd3e2293
commit
afb64fce21
|
@ -1,32 +1,35 @@
|
|||
# How to contribute
|
||||
You can contribute to this project in many ways:
|
||||
# How to contribute
|
||||
You can contribute to this project in many ways:
|
||||
|
||||
* [contributing new features or improving existing ones;](#development)
|
||||
* [subscribing and partecipating to the users mailing list;](https://lists.quantum-espresso.org/mailman/listinfo/users)
|
||||
* [contributing new features or improving existing ones;](#development)
|
||||
* [subscribing and partecipating to the users mailing list;](https://lists.quantum-espresso.org/mailman/listinfo/users)
|
||||
* [reporting bugs and proposing changes in the Issue section of the gitlab repository;](#creating-issues)
|
||||
* [preparing new tests for the test suite](#adding tests)
|
||||
|
||||
## Development
|
||||
## Development
|
||||
If you want to contribute serious and non-trivial stuff ( or even simple and trivial stuff ) you just have to *fork* this repository; keep it updated;
|
||||
when your contribution is ready, submit a merge request to the development branch of this repository.
|
||||
After some basic tests ran by gitlab CI and approval your changes will be merged in develop.
|
||||
When the whole test-suite has been tested your contribution will be merged to the master branch.
|
||||
|
||||
A basic guide on how to work with `git` can be found [here](https://docs.gitlab.com/ce/gitlab-basics/README.html). A more thorough introduction to `git` is provided by [proGit](https://git-scm.com/book/en/v2) online e-book
|
||||
when your contribution is ready, submit a merge request to the development branch of this repository.
|
||||
After some basic tests ran by gitlab CI and approval your changes will be merged in develop.
|
||||
When the whole test-suite has been tested your contribution will be merged to the master branch.
|
||||
|
||||
#### Proposed workflow
|
||||
A basic guide on how to work with `git` can be found [here](https://docs.gitlab.com/ce/gitlab-basics/README.html). A more thorough introduction to `git` is provided by [proGit](https://git-scm.com/book/en/v2) online e-book
|
||||
|
||||
- register on [gitlab](https://gitlab.com/users/sign_in);
|
||||
|
||||
|
||||
#### Proposed workflow
|
||||
|
||||
- register on [gitlab](https://gitlab.com/users/sign_in);
|
||||
- [fork the QEF/q-e project](https://docs.gitlab.com/ce/gitlab-basics/fork-project.html);
|
||||
- [create a local copy of __your__ repository on your workstation(s)](https://docs.gitlab.com/ce/gitlab-basics/command-line-commands.html#clone-your-project);
|
||||
- [once your contribution is ready push it into __your__ repository](https://docs.gitlab.com/ce/gitlab-basics/start-using-git.html#send-changes-to-gitlab-com);
|
||||
- [once your contribution is ready push it into __your__ repository](https://docs.gitlab.com/ce/gitlab-basics/start-using-git.html#send-changes-to-gitlab-com);
|
||||
- [create a merge request to the `develop` branch of QEF/q-e](https://docs.gitlab.com/ce/gitlab-basics/add-merge-request.html#how-to-create-a-merge-request)
|
||||
|
||||
|
||||
|
||||
|
||||
## Development tools
|
||||
[Here](dev-tools/) you can find several tools that will assist you while contributing to the QE source code.
|
||||
|
||||
## Creating Issues
|
||||
|
||||
You can report bugs and propose new developments posting on the [issue]( https://gitlab.com/QEF/q-e/issues)
|
||||
section of this repository. Partecipation to the issue discussions are also a welcome contribution.
|
||||
When reporting bugs try to help other partecipant to reproduce the problem by providing input and output files.
|
||||
You can report bugs and propose new developments posting on the [issue]( https://gitlab.com/QEF/q-e/issues)
|
||||
section of this repository. Partecipation to the issue discussions are also a welcome contribution.
|
||||
When reporting bugs try to help other partecipant to reproduce the problem by providing input and output files.
|
||||
|
|
14
README.md
14
README.md
|
@ -33,11 +33,15 @@ http://www.quantum-espresso.org/
|
|||
## Modular libraries
|
||||
The following libraries have been isolated and partially encapsulated in view of their release for usage in other codes as well:
|
||||
|
||||
- UtilXlib performing basic MPI handling, error handling, timing handling.
|
||||
- FFTXlib parallel (MPI and OpenMP) distributed three-dimensional FFTs, performing also load-balanceddistribution of data (plane waves, G-vectors and real-space grids) across processors.
|
||||
- LAXlib parallel distributed dense-matrix diagonalization, using ELPA, SCALapack, or a custom algorithm.
|
||||
- KS Solver parallel iterative diagonalization for the Kohn-Sham Hamiltonian (represented as an operator),using block Davidson and band-by-band Conjugate-Gradient algorithms.
|
||||
- LRlib performs a variety of tasks connected with (time-dependent) DFPT, to be used also in connectionwith Many-Body Perturbation Theory.
|
||||
- UtilXlib: performing basic MPI handling, error handling, timing handling.
|
||||
- FFTXlib: parallel (MPI and OpenMP) distributed three-dimensional FFTs, performing also load-balanced distribution of data (plane waves, G-vectors and real-space grids) across processors.
|
||||
- LAXlib: parallel distributed dense-matrix diagonalization, using ELPA, SCALapack, or a custom algorithm.
|
||||
- KS Solver: parallel iterative diagonalization for the Kohn-Sham Hamiltonian (represented as an operator),using block Davidson and band-by-band Conjugate-Gradient algorithms.
|
||||
- LRlib: performs a variety of tasks connected with (time-dependent) DFPT, to be used also in connection with Many-Body Perturbation Theory.
|
||||
|
||||
## Contributing
|
||||
Before contributing please read the [Contribution Guidelines](CONTRIBUTING.MD)
|
||||
|
||||
|
||||
|
||||
## LICENSE
|
||||
|
|
|
@ -1,29 +1,41 @@
|
|||
# Dev Tools
|
||||
|
||||
This directory contains several tools that may be useful for developers
|
||||
|
||||
- `mem_counter`. A script that tracks all calls to `allocate` and `deallocate`,
|
||||
appending a call to subroutine `UtilXlib/mem_counter.f90`.
|
||||
Calls python script `mem_counter.py`, written by Pietro Bonfà (CINECA).
|
||||
`mem_counter -h` gives information on how to use it.
|
||||
- `src-normal`. A script that "normalizes" the fortran syntax to QE style.
|
||||
- `src-normal`. A script that "normalizes" the fortran syntax to [QE style](#style).
|
||||
Calls python script `src-normal.py`, written by Norbert Nemec.
|
||||
|
||||
Usage: `src-normal file1.f90 [file2.f90 ...]` or `src-normal`
|
||||
|
||||
- `calltree.pl`
|
||||
A perl script, to be run from the root QE directory, producing in the
|
||||
standard output the tree of called routines
|
||||
standard output the tree of called routines
|
||||
- `callhtml.pl`
|
||||
As above, producing a html page with the tree of called routines
|
||||
As above, producing a html page with the tree of called routines
|
||||
- `release.sh`
|
||||
Script for packaging releases - obsolete, to be adapted to git
|
||||
- utilities for PWgui:
|
||||
- Utilities for PWgui:
|
||||
* `check_gui` (called via `Makefile`)
|
||||
* `diff_gui_help`
|
||||
* `guihelp.xsl`
|
||||
* `update_gui_help`
|
||||
- utilities for helpdoc (see `README.helpdoc`):
|
||||
- Utilities for helpdoc (see `README.helpdoc`):
|
||||
* `helpdoc`
|
||||
* `helpdoc.d`
|
||||
* `helpdoc.schema`
|
||||
* `input_xx.xsl`
|
||||
- utilities for emacs_mode:
|
||||
- Utilities for emacs_mode:
|
||||
* `gen-emacs-mode`
|
||||
* `gen-emacs-mode.tcl`
|
||||
|
||||
## Coding style
|
||||
This are some basic rules to follow when writting Fortran code.
|
||||
* Use spaces for indentation instead of tabs (tab width 8 characters).
|
||||
* Trailing whitespaces at the end the line should be removed.
|
||||
* Normalize multiword keywords.
|
||||
* Use capitalize version of the intrisic keywords (IF, DO, SUBROUTINE, etc.).
|
||||
* Perefer the newest version of the relational (==, >, etc.) instead of the old one (.eq., .gt., etc.)
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
# USAGE: src-normal.py < input.f90 > output.f90
|
||||
#
|
||||
# Script to normalize Fortran source code:
|
||||
# a) expand tabs to spaces (tab width 8 characters
|
||||
# a) expand tabs to spaces (tab width 8 characters)
|
||||
# b) remove trailing space
|
||||
# c) normalize multiword keywords
|
||||
# d) normalize capitalization of keywords and intrinsics
|
||||
|
|
Loading…
Reference in New Issue