mojaloop / project

Repo to track product development issues for the Mojaloop project.
Other
24 stars 15 forks source link

Demo new documentation platform #1594

Closed lewisdaly closed 3 years ago

lewisdaly commented 4 years ago

Goal:

As a new community member I want to read beautiful and easy to read docs so that it's easy to learn about mojaloop

This is an investigation ticket:

Background:

GitBook has now moved to a fully hosted service (with free OSS plans: https://www.gitbook.com/pricing)

This means that our current documentation pipeline is a little out of date, and will no longer receive updates or improvements. What's more, the hosted version features:

Acceptance Criteria:

Complexity: <High|Medium|Low> > A short comment to remind the reason for the rating

Uncertainty: <High|Medium|Low> > A short comment to remind the reason for the rating


Tasks:

Done

Pull Requests:

Follow-up:

Dependencies:

Accountability:

elnyry-sam-k commented 4 years ago

@lewisdaly do you think this is a good time to bring it up with @simeonoriko , Megan and Paula?

lewisdaly commented 4 years ago

Yeah I think Megan already followed this up, and it looked like they could put us on their free plan. I think we just need to hve a conversation to see if it's something that everyone wants, and we ac

The main thing for me is (1) the (greatly) improved design, and (2) continued updates into the future, since we are using the legacy gitbooks that no longer gets updates.

elnyry-sam-k commented 4 years ago

Thanks @lewisdaly , then it does make sense to move to the (free) plan.

kjw000 commented 4 years ago

agree. I will reach out to Gitbooks to confirm what needs to be done there. We need to move off the legacy system. Once I get the information - I will schedule a meting to figure out the effort of upgrading?

millerabel commented 4 years ago

We certainly need to be on a supported and updated platform! Hosted services, if free for open source, are a good option. Let’s evaluate whether the style sheet support can be added by us and so maintained directly by us as part of publication, if we updated to the latest platform. Or alternatively what benefits come from moving to a hosted service.

— Miller

On Nov 1, 2020, at 6:15 PM, Lewis Daly notifications@github.com wrote:

 Yeah I think Megan already followed this up, and it looked like they could put us on their free plan. I think we just need to hve a conversation to see if it's something that everyone wants, and we ac

The main thing for me is (1) the (greatly) improved design, and (2) continued updates into the future, since we are using the legacy gitbooks that no longer gets updates.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

lewisdaly commented 4 years ago

Some more context from discussions with Miguel:

lewisdaly commented 4 years ago

Here's a sample of a good vuepress site: https://zircleui.github.io/docs/

lewisdaly commented 4 years ago

https://docsify.js.org/#/ also looks good

kjw000 commented 4 years ago

very slick - I have reached out to gitbooks Mon and today without any response. Customer support is not good (of course we are on the free plan). Perhaps we can create a quick comparison of the the top ones and we need to make sure they allow for free open source licenses, have plug in support, 2 way sync with mark down and can easily import images, etc.

lewisdaly commented 4 years ago

I spent a bit of time seeing if I can reproduce the functionality we need from GitBooks with VuePress:

Here's a quick (and nasty) example of turning the PISP repo into it's own mini site:

https://docs.mojaloop.io/pisp/

It has most of what we need (and maybe even more...). The main things to resolve are:

lewisdaly commented 4 years ago

Here's a little comparison table I've started:

Tool Hosted/Self Hosted Community Support Hackable Plugins plantuml swagger SEO
Legacy Gitbooks Self Hosted NO YES YES YES YES ?
Gitbooks Hosted Hosted NO NO NO ? NO ?
Vuepress Self Hosted YES (vue) YES YES NO NO Good
GatsbyJs (Docz) Self Hosted YES (react) YES YES ? ? ?
Docsify Self Hosted YES YES YES ? ? Bad - no static site
Docasaurus Self Hosted YES (react) YES YES (v2 only) ? ? Good

Additional Notes:

Here's my $0.02:

elnyry-sam-k commented 4 years ago

Thanks @lewisdaly , without this table, I would've voted for hosted Gitbooks version, but until thats standardized, looks like Vuepress is the candidate, with available information..

kjw000 commented 4 years ago

Thanks for the table @lewisdaly - do you think we can do a pilot with vuepress? is swagger plugin a non-started?

lewisdaly commented 4 years ago

Thanks Kim, yeah I think we can do a small portion of our docs in vuepress and get a feeling for the effort involved here.

I've found an even better alternative for the swagger plugin using 'custom components' in vuepress. See here for an example or the draft 3rd party api. I think it's much better than what we have at the moment.

lewisdaly commented 4 years ago

Heres a quick (and slightly nasty) 2 hour attempt at moving from GitBooks to Vuepress:

https://vessels-tech.github.io/documentation/home.html

The main cool thing to note is the auto-rendering swagger docs:

https://vessels-tech.github.io/documentation/api/mojaloop-api-specification.html

elnyry-sam-k commented 4 years ago

Looking good, @lewisdaly .. I think at this point, I can vote for Vuepress..

kjw000 commented 4 years ago

This looks great. is there anything that is not working as expected? It looks like the links to the internal pages have some issues, but this can be fixed.

millerabel commented 4 years ago

This is a good demonstration of the formatting available using Vuepress and the ability to auto generate API doc from the specification has potential. Nice. Would we be able to generate sequence diagrams from the puml? It would be interesting to compare the options to manage SVGs. Generate and cache them from the modified GitHub primary sources? — during the PR process or post-merge compilation or just-in-time when requested?

I will point out that the generated documentation for FSPIOP 1.0 is atrocious! Look at POST transfers (what the heck is a “next ledger”??) and PUT transfer/{id} (the sentence is nonsense, it omits important words and teaches nothing about what the callback actually means, what a DFSP should do when receiving it, or that it might not be generated before a timeout occurs). Who issues the POST and who issues the PUT? Are they related? And where does this request and response fit into the protocol sequence?

We need a rigorous copy editing pass over the documentation and the API Specification. And the generated API doc needs more cross-referencing to key concepts and terminology definitions. And callbacks should refer back to the request that caused them. These facets can be provided automatically with minimal markup in the source documents.

Remember the advice Kurt Vonnegut gave to his writing students... “Pity the Reader.”

— Miller

On Nov 13, 2020, at 12:02 AM, Lewis Daly notifications@github.com wrote:

 Heres a quick (and slightly nasty) 2 hour attempt at moving from GitBooks to Vuepress:

https://vessels-tech.github.io/documentation/home.html

The main cool thing to note is the auto-rendering swagger docs:

https://vessels-tech.github.io/documentation/api/mojaloop-api-specification.html

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

kjw000 commented 4 years ago

Now that I had time to review in more detail, seems like there are several differences. Let us discuss in our Tuesday DevOps meeting to figure out if this is configuration or a feature issue.

1) Navigation tree is quite different. https://docs.mojaloop.io/documentation/ Mojaloop background (core scenarios and L1P missing from: https://vessels-tech.github.io/documentation/deployment-guide/

2) No Table of Contents on Pages https://docs.mojaloop.io/documentation/deployment-guide/ vs. https://vessels-tech.github.io/documentation/deployment-guide/

3) Hot links on pages do not work https://vessels-tech.github.io/documentation/deployment-guide/

4) Some edits back to github result in 404 error https://vessels-tech.github.io/documentation/getting_started.html (bottom of any page)

5) Some of the levels did not import correctly. For example the glossary of terms is now concepts is now at the highest level https://vessels-tech.github.io/documentation/glossary.html https://docs.mojaloop.io/documentation/glossary.html

I am sure others. thanks.

lewisdaly commented 4 years ago

Thanks Kim and Miller for your feedback.

Like I said, it's quick and nasty, and I haven't yet had a chance to recreate some of the other features you mentioned @kjw000. My main goal was to answer the questions: "Is this feasible with Vuepress?" and "What is the effort involved?

I'm looking forward to discussing more in person.

@millerabel, you raise a great point about the auto generated documentation from swagger files- let's follow this up separately, as it's been on my mind as well. Another issue I see with it is the sheer amount of noise the header parameters make in the rendered documentation.

Regarding the .svg files, this is something I've been talking to @mdebarros about, and we were thinking of using a simple git commit hook to rerender changes to the .svg files, and then another circleci step that makes sure that checks for outdated .svg files just in case.

We're currently testing this out on the PISP repo, and it's an approach I see working. One of the advantages is that it makes the documentation easy to read and edit both on the rendered docs site as well as the .md sources in github. We have also tried 'just in time' .puml server rendering in the past (in the PISP repo), but I've never been impressed with the reliability of that approach.

lewisdaly commented 3 years ago

Blocked by: https://github.com/mojaloop/documentation/pull/278, rendering svgs in git commit hooks. Once we have this done, we will depend much less on specific gitbooks tooling.

lewisdaly commented 3 years ago

@kjw000 @mdebarros @elnyry-sam-k

Ok. I think we're about 80% of the way there:

https://vessels-tech.github.io/documentation/ btw the link has changed from above

Here's what's on my plate next:

elnyry-sam-k commented 3 years ago

Looks great, Lewis! Thanks..

kjw000 commented 3 years ago

Looks great however there is one rendering issue that is still odd.

I will send via email.

godfreykutumela commented 3 years ago

Hi @lewisdaly, Is there any pending activity on this issue? if not lets move it to review then close it at the end of the current sprint.

lewisdaly commented 3 years ago

Hey @godfreykutumela let's hold off for now until we can hand off to the new tech writer. From that point, we can create a few followup tickets and close this one.