The first day there will be some lots training sessions, some discussions, working on open issues/new ones, some hacking, and the COSIMA Annual Bocce Tournament.
The second day we hack! All day!
We’ve had interest from many people and like last year we decided to split the participants into four different groups: G1, G2, G3, G4. These groups are mostly relevant for the Monday day with the training sessions.
What follows is the agenda and where each group fits in…
Monday, Sep 8th
(pre-party)
9:00–10:00 G1, G2, G3, G4: Coffee , chit-chat, people arriving, some start working on issues, some start catching up, hugs, laughs, etc
(hackathon time)
10:00–10:10 G1, G2, G3, G4 @ Room Forum 3: Welcome, Outline of hackathon, then disperse into groups
10:15–11:15 G1 @ RoomM13/14: Training on git, Github, cloning and editing the recipes for own use. [Training lead: ACCESS-NRI] G2 @ Room M01/02. Training session on editing recipes and submitting PRs. [Training lead: ACCESS-NRI] G3 @ Room M07: Training session on reviewing PRs + good coding practices. [Training leads: @taimoorsohail and @navidcy] G4 @ Room Forum 3: Work on issues (update/close/issue new ones) [leading: @JuliaN and @adele-morrison]
11.15-11:45 G1, G2, G3, G4: Morning tea, coffee, and cake
The GitHub project for the Hackathon v5.0 is online! Feel free to browse and find an issue that you’d like to work on. Feel even more free to assign yourself to that issue!
If you have a new idea of something you’d like to do that is not already include in the project then just open a new issue about it in the COSIMA Recipes and add it on the Hackathon v5.0 project. (Ask here and we’ll help you do that if you don’t know how.)
The vision for the Cookbook which we would like to be the backbone of this hackathon (and moving forward) is summarised below:
Who are the COSIMA Cookbook Recipes for?
Everyone! But often the people who need them most are students and ECRs learning how to analyse COSIMA output for the first time. Thus we aim to keep the code as easy to understand as possible; pedagogy is top priority.
For example: use in-line commenting, use variable and function names that are self-explanatory, limit use of additional layers of coding complexity (dictionaries, cf-xarray, etc) that are not essential.
Action items:
Make clear instructions for where new users should start and which tutorials we recommend completing before they begin tackling any of the Recipes. Suggested tutorial order:
a) COSIMA_CookBook_Tutorial
b) ACCESS-NRI_Intake_Catalog
c) Making_Maps_with_Cartopy
d) [New] Tutorial_on_model_grids_and_xgcm
Add more in-line commenting, and use variable and function names that are self-explanatory.
Remove cf-xarray & pint.
What is the assumed knowledge for users?
Python, xarray and Jupyter notebooks.
How to find and solve bugs in code when adapting for own use.
Action items:
Ensure that we link to basic Python and xarray material somewhere in the Tutorials/Wiki/Cookbook Docs.
Overall philosophy we are aiming for:
We would like the Recipes to be educational rather than black boxes for people to copy-paste code. This means that we don’t need examples of every use case, and there needs to be enough documentation for users to understand code so they can adapt it to different use cases. e.g. We don’t need every recipe to have code for both MOM5/MOM6.
Action items:
Add a tutorial explaining grid basics and grid differences between MOM5/MOM6 to help users understand how models work under the hood and also enable them to convert Recipes to a different model for their own use.
Remove model agnosticity, so that each recipe works only for either MOM5 or MOM6 (prioritise MOM6). At the top of each Recipe, add instructions for converting to the other model. (In most cases it’s just the different variable/coord names, but in some cases grid differences come into play.)
Some Recipes may need more documentation.
Add tags / labels to Recipes so people can find specific pieces of code within the larger recipe (e.g. how to use the GibbSeaWater package, how to save intermediate output files etc).