...
Make sure you have a version of git and python 2.7 installed and have a github account. Also install please pandoc from https://pandoc.org/installing.html (or via your operating system's package manager if such a one exists).
Download
First obtain a copy of the current Einstein Toolkit website and tool to transfer trac tickets to github:
Code Block | ||
---|---|---|
| ||
mkdir spin_exercise cd spin_exercise virtualenv -p python2.7 $PWD source bin/activate pip install PyGithub git clone https://bitbucket.org/einsteintoolkit/www.git website git clone https://github.com/str4d/migrate-trac-issues-to-github.git |
which downloads a copy of the Einstein Toolkit's website as well as tools to transfer ticktets from trac to github. I have put everything into a python virtualenv to avoid adding extra software outside of the spin_exercise directory.
Exercise
The exercise is to re-create the front-page of the Einstein Toolkit website as a github pages page in a repository of your own on github and to transfer some tickets from trac to github's issue system.
- First create a new github repository
et_spin2018
in your account, - clone it to your laptop and
- copy and commit the files required to render the Einstein Toolkit front page http://www.einsteintoolkit.org into a branch gh-pages.
Push your gh-pages branch to github using
Code Block language cpp git push --set-upstream origin gh-pages
modify the foo loop in
migrate-trac-issues-to-github/migrate.py
in line 175 by adding a break so that only one ticket is processed (instead of all of them)run the migration script with your new repository as the targetCreate a wiki for your github repo and clone the wiki repo to your laptop
Code Block language cpp migrate-trac-issues-to-github/migrate.py --trac-url=https://trac.einsteintoolkit.org --github-api-url=git clone https://github.com/api/v3 --github-project=YOURGITHUBUSERNAME/YOUR_USERNAME/et_spin2018
./simfactory/bin/sim build --mdbkey make 'make -j2'
Code Block | ||
---|---|---|
| ||
exe/cactus_sim arrangements/CactusExamples/WaveMoL/par/gaussian.par |
Hint
You can access the value of phi
as phi[index]
and check that your code produces the same results as found in phi_maximum.xg
.
If you prefer to use C++ instead of plain C you can rename the file WaveMoL.c
to WaveMoL.cc
, update the file arrangements/CactusExamples/WaveMoL/src/make.code.defn
to list WaveMoL.cc
and recompile.
This fragment outputs time:
...
language | bash |
---|
...
.wiki.git
use pandoc to convert the ET wiki starting page https://docs.einsteintoolkit.org to github flavored markdown and commit and push it as a page
index.md
to the wiki repo. To do so, first copy and paste the source code of the wiki page into a fileindex.wiki
then run that file through pandoc.
Once done, please send me URL to your repository on github using my rhaas@ncsa.illinois.edu email address.
Hint
pandoc can tell you what you need to do using its --help
option.
You can preview the ET website that you cloned, as well as your proposed one for github-pages, by opening the file index.html
as a local file in your web-browser.
Solution
If you get stumped with the exercise, here's a worked out solutionwhat my repository looks like. Obviously you cannot send me this one before the interview .
...