- Org: INCF (International Neuroinformatics Coordinating Facility)
- Project: OpenWorm (@OpenWorm)
- Technical Writer: Casper da Costa-Luis (@casperdcl)
Meetings were held on Hangouts and/or Slack, and notes are posted in the Team Discussion page.
The GSoD19 project board contains issues and pull requests which have been completed, are currently in progress, and are still to do. As the board is dynamically updated, this is a static and concise summary of the current state:
- creation of machine user @openworm-bot for fine-grained permission control
- including
ssh
&gpg
keys, email address, API keys - handover of all credentials
- including
- creation of org-wide team & project board
- creation of CircleCI projects/users
- setup of org permissions
- creating and linking a new project to the docs repo
- posting notifications to org's slack team channel
Most work was done on the existing documentation, docs.openworm.org, where the source code may be found at openworm/openworm_docs.
Create a fully-controlled CI/build/deploy env for the docs subdomain
This was mostly openworm_docs#56 -> openworm_docs#57, openworm_docs#58
Notable external helper PRs were PyGithub#1270 and igraph/python-igraph#255.
- add CI tests for documentation
- includes all branches and PRs
- automatically build documentation including pulling in metadata (from
.openworm.yml
files in the root ofmaster
branches) from all the organisation's other repos - automatically re-pull metadata every hour
- automatically deploy
master
if changes are detected - add an interactive graph of relations for all the org's repos
- configure GitHub pages to serve the site (circumventing readthedocs)
- build & deploy to
gh-pages
(openworm_docs#61)
- build & deploy to
- add badges and document how to maintain the documentation (meta! - see README at openworm/openworm_docs)
- remove redundant old unused files (openworm_docs#59)
git
's history can be used to restore these files if needed. Cluttering the production branch with backups is not needed
- discuss & fix isolated docs pages (openworm_docs#63)
- stop unneeded hourly docs updates (openworm_docs#73)
- use Jinja templates to ease injecting calculated metadata into docs (openworm_docs#71 -> openworm_docs#72)
A screenshot of the newly-created interactive repository graph:
Screenshot of some of the metadata automatically pulled in from https://github.com/OpenWorm/*/master/.openworm.yml
:
- automate subproject metadata parsing (openworm_docs#55)
- this is mostly done, the (optional) use of full markdown files (rather than short yaml files) is likely not needed
- update list of repos (openworm_docs#32) - essentially done but need to discuss merging http://docs.openworm.org/en/latest/projects/, http://docs.openworm.org/en/latest/Community/repositories/, and http://docs.openworm.org/en/latest/Resources/resources/ as well as the newly generated https://htmlpreview.github.io/?https://github.com/openworm/openworm_docs/blob/gh-pages/gsod19/repos/index.html
- automate dynamic list of issues & PRs (openworm_docs#33)
- might just be solved with a simple
<iframe />
embedding GitHub issues pages
- might just be solved with a simple
- migrate from
readthedocs
togithub-pages
(openworm_docs#60)- this is complete and is simply waiting for a CNAME update (change CNAME of docs.openworm.org to openworm.github.io (openworm/openworm_docs#64))
- stop unneeded daily builds caused by timestamp updates (openworm_docs#75)
- make the graph of repos more interactive/friendly/informative (openworm_docs#76)
- always display repo names next to nodes
- allow draggin nodes around to make them more visible
- hovering/clicking on nodes to pop-up more info/hyperlink to extended description
Most of these are organisation-wide tasks requiring multiple people
- preview PR builds in a nicer way than CI artifacts (openworm_docs#66)
- the build artifacts is the static html site folder produced by each CI job
- Circle CI makes no guarantees about how long the artifacts will remain available
- the artifacts are "fake" hosted (so hyperlinked pages will only render properly if index.html is appended and/or the CI artifact root is prefixed)
- update outdated references (openworm_docs#65)
PyOpenWorm
has been renamedOWMeta
and the docs should be updated to reflect this
- update all repos metadata (openworm_docs#70)
- check that the metadata automatically pulled in by the new docs site is up-to-date
- add missing repo metadata (openworm_docs#69)
- add metadata to more of the org's repos so that they show up in the new docs site
- replace heavyweight
igraph
withnetworkx
(openworm_docs#74)- A graphing package is used to display the relationships/links between the org's repos.
igraph
-- while it may have better output algorithms -- can be difficult to install and is not as widespread asnetworkx
- A graphing package is used to display the relationships/links between the org's repos.
- tidy up/increase accessibility of openworm.org, source at openworm/openworm.github.io
- the root website could do with some redesigning, making useful links/resources more prominent and intuitively accessible
- coordinating across 3 timezones
- coordinating & unifying documentation processing with a plethora of subprojects with separate leads
- the hardest issue to debug ever (GitHub API rate of 5k/hr exceeded - required opening tickets with CircleCI, GitHub, TravisCI, conda-forge, affects ~9k open source repos (!) and still has not been fully resolved: conda-forge/conda-forge.github.io#908)
- coordination, discussion and meta docs (documenting the documentation) can be time consuming!
- trade-off between different free CI providers (e.g. CircleCI allows scheduling jobs every minute; TravisCI can only do daily at most)
- fine-grained access permission management with machine users and restricted API keys
- before the project began
- openworm/openworm_docs was actually not automatically served to docs.openworm.org (openworm_docs#64)
- openworm/openworm_docs contained isolated (openworm_docs#63) as well as out-of-date pages, as well as an entire copy of the old version of the site (openworm_docs#59)
.opemworm.yml
metadata files in repos were not always used/updated, and this requires active participation and acknowledgement by the entire community
- original private wrap-up draft & discussion: https://github.com/orgs/openworm/teams/google-season-of-documentation/discussions/6