Host a crowd-sourced AthenaHub for sharing problem generators, athinputs, results, papers, and plotting + etc. utilities
felker opened this issue ยท 5 comments
Another widely-discussed topic from the 2nd Athena++ Workshop. We have not had a "Gallery" or "Papers" page for the community since it requires significant manual upkeep, and deciding what goes in might be arbitrary. Therefore, we seek a solution for an AthenaHub that is more community-driven and low-maintenance.
Features and concerns/questions:
- Lightly moderated
- Low barrier, easy to submit to
- Supports Markdown and LaTeX
- Can host small ~MB files? Or just link to external hosting? Hosted at Princeton/IAS/ANL?
- nbviewer-esque rendering capabilities for sharing Jupyter notebooks? Binder and BinderHub
- Will require accounts and logins. Tie into GitHub/Google OAuth
- Shared by Athena (C) / Athena++ / AthenaK / AthenaPK?
- Include instructions for generating, sharing, and applying a Git patchfile so that we effectively have Athena++ plugins
If we just want to cultivate a somewhat-grassroots list of papers that used Athena++ and more well-established repositories containing forked codes and/or utilities, then the simplest thing would be create a new GitHub repository like https://github.com/PrincetonUniversity/athena-community
consisting of a single README.md with a list of links that we accept PRs to. This has become commonplace on GitHub, examples:
Does anyone have examples of such a Gallery or Hub site from other astro (or etc) codes? https://girder.hub.yt/# is close to what I was envisioning, but it seems harder to maintain and possibly defunct.
- Link to it on
README.md
and https://www.athena-astro.app/ - Also it would be great to someday have an "Athena++ Tests" static page that is a more modern equivalent to https://www.astro.princeton.edu/~jstone/Athena/tests/index.html
- Manually update https://www.athena-astro.app/publications.html; restrict this to "Code method papers" for features merged to master?.
- GR-Athena++ paper? Or wait until merged?
- Implicit Newtonian radiation paper?
- Mullen, Hanawa, Gammie (2021) self-gravity paper?
Please post any relevant code method papers that I should include here.
A more complete list of code papers:
- Athena++: Stone et al. 2020, already included
- 4th order: Felker & Stone 2018, already included
- Stationary GR: White et al. 2016, already included
- Multigrid: Tomida & Stone 2023, merged
- Self-gravity: Mullen et al. 2021, merged
- General EOS: Coleman 2020, merged
- Chemistry: Gong et al. 2023 sub., merging
- Stationary GR-radiation: White et al. 2023, merging
- Multigroup Newtonian radiation: Jiang 2022, merging
- Implicit Newtonian radiation: Jiang 2021, merging
- Newtonian radiation: Jiang et al. 2014, merging, paper is technically for Athena 4.2
- MHD-PIC: Sun & Bai 2023 sub., not merged
- Multifluid dust: Huang & Bai 2022, not merged
- GR-Athena++: Daszuta et al. 2021, not merged
- Coscaling grid: Habegger & Heitsch 2021, not merged, independent of core developers?
- Cosmic rays: Jiang & Peng 2018, not merged
I think that sth on GitHub would be the option that has the lowest barrier (as everyone already has a GitHub account and knows how to use it).
An awesome list (as mentioned above) could be an option or alternatively sth sphinx (even with mardown backend) based so that that it can be published on github.io.
Posting smaller amounts of data (say images or similar), code blocks, or math could all be handled this way.
I wonder if just customizing the https://github.com/PrincetonUniversity/athena/discussions page might be the easiest solution that gets us 90% of what we would want. When we turned on the feature a few years ago, we didn't customize any of the categories and left the defaults. I am playing around with the settings now. Also we already get a couple dozen of views on the Discussions page per week.
We could:
- Add an "AthenaHub" section for scripts, code+feature modifications/extensions, plots and animations, blog-esque posts with incomplete/in-progress results including support for LaTeX, etc.
- Add "User papers", "Getting started", "Demos/guides" section
- People are frequently using Athena++ for instructional purposes; we should share these (Amazon AWS, summer schools, UNLV courses?)
- Delete Polls category? Categories can also be organized into sections
- Direct people to these sections from the repo README, website and seed them with some Athena++ user papers, scripts, features. Add instructions for sharing patches, etc.
- Pin (up to 4 posts) new and high quality user-guides, papers, etc. at the top of Discussions
Homebrew has a good example of a curated (organization-level) Discussions section (they moved from Discourse on 2021-01-01): https://github.com/orgs/Homebrew/discussions/categories/linux
This wouldn't preclude eventually curating "awesome lists" of papers and code extensions in new repos, even pulling from the Discussions if it gets traction in the community. But this is a fast way to get started with low effort.
Depending on the content of a post, files can either be uploaded directly to the Discussions, or you can link out to external repo and/or file hosting.
https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/attaching-files
The maximum file size is:
- 10MB for images and gifs
- 10MB for videos uploaded to a repository owned by a user or organization on a free GitHub plan
- 100MB for videos uploaded to a repository owned by a user or organization on a paid GitHub plan
- 25MB for all other files
Unclear what we are entitled to under the PrincetonUniversity
org; I haven't kept up with the status of their paid license since leaving.
Thoughts? Do we have any volunteers to share some utility/plotting scripts to seed this thing?
Other options:
Hub-type software and examples
Wiki-esque solutions:
- https://github.com/awesome-selfhosted/awesome-selfhosted#wikis
- Some discussion here
- DokuWiki
- MediaWiki: https://www.mediawiki.org/wiki/Manual:Installing_MediaWiki
- BookStack: https://www.bookstackapp.com/#demo
I agree that just customizing GitHub is probably the best option, if it works. At least we can try it first. Having a separate system is tedious and may easily fade away (do you remember we once tried trillo?).