2022-02-17 22:58:35 +01:00
|
|
|
[![build](https://github.com/TRIQS/app4triqs/workflows/build/badge.svg)](https://github.com/TRIQS/app4triqs/actions?query=workflow%3Abuild)
|
|
|
|
|
|
|
|
# app4triqs - A skeleton for a TRIQS application
|
|
|
|
|
|
|
|
Initial Setup
|
|
|
|
-------------
|
|
|
|
|
|
|
|
To adapt this skeleton for a new TRIQS application, the following steps are necessary:
|
|
|
|
|
|
|
|
* Create a repository, e.g. https://github.com/username/appname
|
|
|
|
|
|
|
|
* Run the following commands in order after replacing **appname** accordingly
|
|
|
|
|
|
|
|
```bash
|
|
|
|
git clone https://github.com/triqs/app4triqs --branch unstable appname
|
|
|
|
cd appname
|
|
|
|
./share/squash_history.sh
|
|
|
|
./share/replace_and_rename.py appname
|
|
|
|
git add -A && git commit -m "Adjust app4triqs skeleton for appname"
|
|
|
|
```
|
|
|
|
|
|
|
|
You can now add your github repository and push to it
|
|
|
|
|
|
|
|
```bash
|
|
|
|
git remote add origin https://github.com/username/appname
|
|
|
|
git remote update
|
|
|
|
git push origin unstable
|
|
|
|
```
|
|
|
|
|
|
|
|
If you prefer to use the [SSH interface](https://help.github.com/en/articles/connecting-to-github-with-ssh)
|
|
|
|
to the remote repository, replace the http link with e.g. `git@github.com:username/appname`.
|
|
|
|
|
|
|
|
### Merging app4triqs skeleton updates ###
|
|
|
|
|
|
|
|
You can merge future changes to the app4triqs skeleton into your project with the following commands
|
|
|
|
|
|
|
|
```bash
|
|
|
|
git remote update
|
2023-08-02 21:13:45 +02:00
|
|
|
git merge app4triqs_remote/unstable -X ours -m "Merge latest app4triqs skeleton changes"
|
2022-02-17 22:58:35 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
If you should encounter any conflicts resolve them and `git commit`.
|
|
|
|
Finally we repeat the replace and rename command from the initial setup.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
./share/replace_and_rename.py appname
|
|
|
|
git commit --amend
|
|
|
|
```
|
|
|
|
|
2023-08-02 21:13:45 +02:00
|
|
|
Now you can compare against the previous commit with:
|
|
|
|
```bash
|
|
|
|
git diff prev_git_hash
|
|
|
|
````
|
|
|
|
|
2022-02-17 22:58:35 +01:00
|
|
|
Getting Started
|
|
|
|
---------------
|
|
|
|
|
|
|
|
After setting up your application as described above you should customize the following files and directories
|
|
|
|
according to your needs (replace app4triqs in the following by the name of your application)
|
|
|
|
|
|
|
|
* Adjust or remove the `README.md` and `doc/ChangeLog.md` file
|
|
|
|
* In the `c++/app4triqs` subdirectory adjust the example files `app4triqs.hpp` and `app4triqs.cpp` or add your own source files.
|
|
|
|
* In the `test/c++` subdirectory adjust the example test `basic.cpp` or add your own tests.
|
|
|
|
* In the `python/app4triqs` subdirectory add your Python source files.
|
|
|
|
Be sure to remove the `app4triqs_module_desc.py` file unless you want to generate a Python module from your C++ source code.
|
|
|
|
* In the `test/python` subdirectory adjust the example test `Basic.py` or add your own tests.
|
|
|
|
* Adjust any documentation examples given as `*.rst` files in the doc directory.
|
|
|
|
* Adjust the sphinx configuration in `doc/conf.py.in` as necessary.
|
|
|
|
* The build and install process is identical to the one outline [here](https://triqs.github.io/app4triqs/unstable/install.html).
|
|
|
|
|
|
|
|
### Optional ###
|
|
|
|
----------------
|
|
|
|
|
|
|
|
* If you want to wrap C++ classes and/or functions provided in the `c++/app4triqs/app4triqs.hpp` rerun the `c++2py` tool with
|
|
|
|
```bash
|
|
|
|
c++2py -r app4triqs_module_desc.py
|
|
|
|
```
|
|
|
|
* Add your email address to the bottom section of `Jenkinsfile` for Jenkins CI notification emails
|
|
|
|
```
|
|
|
|
End of build log:
|
|
|
|
\${BUILD_LOG,maxLines=60}
|
|
|
|
""",
|
|
|
|
to: 'user@domain.org',
|
|
|
|
```
|