PFHub REFACTor
Daniel Wheeler
11/02/2021
Current Difficulties
- Difficult for me to maintain and update
- Difficult to implement BM8 and BM9 due to data aggregation
- Frontend needs updating (JS / HTML dependency versions)
- Apps need maintenance (Staticman, data app)
- Difficult for collaborators to develop
- Data views impossible to amend
- Wiki is unreliable
Solutions
- Use Jupyter Notebooks pervasively
- Better upload procedure
- Fork example repository
- Use GitHub Actions / CI to update data views
- Stop using in-browser updates
- Remove apps / no more additional apps
Radical idea: no custom Website
USE Jupyter Notebooks
- Move comparison pages to Jupyter notebooks (in progress, implementing BM8)
- Auto-generated individual landing pages via notebooks
- Check notebooks on the CI
- instead of JS/HTML frontend views
Jupyter Example
Jupyter Example
PFHUb PYTHON MODule
- Python package that deals with all data transformations and aggregations (implemented)
- All data exported as Pandas dataframes
- Easy for others to augment, develop, change
- Everything in Python
- Plotly has improved Python support
- Everything working outside of website setting
UPLOAD Procedure
- Fork example repository
-
Edit pfhub.yaml in repository
- Store data in forked repository
- Git LFS for large data
- PFHub extracts metadata from forks
- GitHub Actions rebuilds website and notebooks after fork
-
github Actions / Git LFS
- Use GitHub Actions / CI
- Stop using Staticman, Data app, Box app
- Use Git LFS
- Very low barrier solution both for maintenance and for users
No custom website
- Notebooks for everything
- Nbviewer for display
- Binder / Jupyter Hub instance for all notebooks
- GitHub wiki for content
- GitHub Actions + CI for all automation
- Git LFS for larger data
- No more apps to maintain
- ...maybe keep small Jekyll front page?
Reduced maintenance, Easier to collaborate and Better Interactive user experience
pfhub-november-2021-workshop
By Daniel Wheeler
pfhub-november-2021-workshop
- 437