Hi all.

I just pushed the last set of commits to my fork for the docs[1]. This now
contains the docs generated by gitbook and a build script[2] to generate
the javadoc at the right place (i.e. misc/javadoc). The last commit[3]
updates the README to include the updated release instructions. With this,
I think we are now ready to go.

In terms of next steps, Richard suggested to have the codebase for website
and docs in 2 separate branches. This is how GitHub pages works for example
and it makes sense to me. Unless someone is against this, I will create 2
branches on the git repo, `website` and `docs` and open a PR again `docs`
on Monday.

Best.

[1] https://github.com/tbouron/brooklyn-docs/tree/experiment/gitbook
[2]
https://github.com/tbouron/brooklyn-docs/blob/experiment/gitbook/javadoc/build.sh
[3]
https://github.com/tbouron/brooklyn-docs/commit/e931560888ce51625e56e6202ead757f9d876090

On Fri, 13 Oct 2017 at 13:02 Thomas Bouron <thomas.bou...@cloudsoftcorp.com>
wrote:

> Hi Alex, all.
>
> For the past few days, I worked with Richard on this doc spike. Here is a
> short summary of what we have done:
> - add collapse/expandable sections on the left menu
> - add documentation versioning (version dropdown, top left)
> - improve PDF output
> - fix all internal links
> - use brooklyn styling
>
> One thing left is to use YAML examples from the Brooklyn codebase. There
> is a plugin to do exactly that (which supports to import only a snippet
> from a file)
> Unfortunately, most of the doc examples exist only in the docs repo
> therefore I think we should resolve this later on, as an incremental change.
>
> I published the new version on the same URL as before[1], hope you will
> like it. Spoiler alert: I do :)
>
> PS: I created a gitbook plugin[2] to auto-generate menus on pages like
> this one[3]. However, I had a chat with a maintainer (founder?) of Gitbook
> who told me[4] that version 4 will include, out of the box, most plugins we
> currently use! They have a preview[5] of what is does.
>
> Best.
>
> [1] https://tbouron.github.io/brooklyn-docs
> [2] https://github.com/tbouron/gitbook-plugin-partial-summary
> [3] https://tbouron.github.io/brooklyn-docs/start/
> [4]
> https://gitbook-community.slack.com/archives/C0B5XG0GK/p1507893620000134
> [5] https://betadocs.gitbook.com/features
>
> On Tue, 10 Oct 2017 at 12:20 Alex Heneveld <
> alex.henev...@cloudsoftcorp.com> wrote:
>
>>
>> Thomas-
>>
>> Had a deeper look -- gitbook has moved things forward a lot. Sounds like
>> it will let us throw away a lot of our home-grown docs-building and
>> toc-building code and have good search.  Look forward to seeing how it
>> shapes up with styling and guide-v-website integration.
>>
>> Best
>> Alex
>>
>>
>> On 09/10/2017 09:54, Thomas Bouron wrote:
>> > Thanks Mark.
>> >
>> > Regarding maintenance, it will be as easy as the current version.
>> Updating
>> > docs means updating markdown files. Adding/moving pages requires to
>> modify
>> > the `SUMMARY.md` but that's it.
>> > One really cool thing is that Gitbook is a node app: really simple to
>> > install/run compare to our current solution which runs only on an old
>> > version of ruby => no more pain of using different versions of ruby on
>> your
>> > environment.
>> >
>> > In terms of feature gaps, Gitbook provides the same or more features
>> than
>> > Jekyll out the box:
>> > - search! That is a big one, not available with Jekyll
>> > - include of external files
>> > - syntax highlighting
>> > - plugins system
>> > - custom theme
>> >
>> > Best.
>> >
>> > On Sat, 7 Oct 2017, 17:10 Mark McKenna, <m4rkmcke...@apache.org> wrote:
>> >
>> >> Thomas this looks really clean great work.
>> >>
>> >> How much work do you think it will take to maintain vs our current
>> >> solution?
>> >> What do you see as being the current feature gaps?
>> >>
>> >> M
>> >>
>> >> On Fri, 6 Oct 2017 at 14:55 Thomas Bouron <
>> thomas.bou...@cloudsoftcorp.com
>> >> wrote:
>> >>
>> >>> Hi Richard.
>> >>>
>> >>> Of course, I pushed it to my fork on the branch
>> `experiment/gitbook`[1]
>> >>> Glad you like it :)
>> >>>
>> >>> Best.
>> >>>
>> >>> [1] https://github.com/tbouron/brooklyn-docs/tree/experiment/gitbook
>> >>>
>> >>> On Fri, 6 Oct 2017 at 13:53 Andrea Turli <and...@cloudsoft.io> wrote:
>> >>>
>> >>>> +1 Thomas, didn't know Gitbook at all (that's why I suggested
>> >>> readthedocs)
>> >>>> but looks pretty good!
>> >>>>
>> >>>> Il 06/ott/2017 15:37, "Richard Downer" <rich...@apache.org> ha
>> >> scritto:
>> >>>> Hi Thomas,
>> >>>>
>> >>>> I withdraw my previous comments - I looked at ReadTheDocs last year
>> and
>> >>> was
>> >>>> pessimistic, but it seems that GitBook this year is a different story
>> >> :-)
>> >>>> This is worth pursuing IMO. What did you need to do to get this
>> >> working?
>> >>>> Did you have to do any work on the brooklyn-docs source - if so could
>> >> you
>> >>>> share a link to your repo?
>> >>>>
>> >>>> Thanks
>> >>>> Richard.
>> >>>>
>> >>>>
>> >>>> On 6 October 2017 at 13:18, Thomas Bouron
>> <thomas.bouron@cloudsoftcorp.
>> >>> com
>> >>>> wrote:
>> >>>>
>> >>>>> Hi All.
>> >>>>>
>> >>>>> A demo is worth a thousand words so here is a gitbook adaptation of
>> >> our
>> >>>>> current documentation[1] (and only documentation)
>> >>>>> This took me only a couple of hours. There are still things to
>> >>>>> fix/update/remove like unsupported liquid tags but for the most
>> part,
>> >>> it
>> >>>>> works like a charm.
>> >>>>> Search is available from the search field on the top left and
>> PDF[2],
>> >>>>> epub[3] amd mobi[4] versions are also available.
>> >>>>> The build took only 10 sec + 10 more per offline version.
>> >>>>>
>> >>>>> The table of content mirrors exactly what we currently have, except
>> >>> that
>> >>>> I
>> >>>>> have limited it to only 2 sub-levels. It means that some pages are
>> >>>> missing
>> >>>>> but I think it demonstrates that our current menu organisation could
>> >> be
>> >>>>> vastly improved.
>> >>>>>
>> >>>>> Couple of thoughts on Alex's points:
>> >>>>>
>> >>>>>> * for the examples, import source code that is actually used in
>> >> tests
>> >>>>> (!!!)
>> >>>>>
>> >>>>> Indeed, an overhaul does not solve it, nor our current framework.
>> But
>> >>>> both
>> >>>>> can implement it.
>> >>>>>
>> >>>>>> * check links
>> >>>>> Gitbook checks internal links at compile time and refuses to build
>> if
>> >>>>> something is wrong. AFAIK, there is nothing in the Gitbook world to
>> >>> check
>> >>>>> the validity of external links like the Jekyll plugin does. There
>> are
>> >>>>> probably external tools that we can integrate in our build pipeline
>> >> to
>> >>>>> cover this. However, it seems that even if we have this tool, we
>> >> don't
>> >>>> use
>> >>>>> it when pushing the website (as I get a lot of errors locally)
>> >>>>> Realistically, we will always have broken links, things move around
>> >> all
>> >>>> the
>> >>>>> time. Checking external links is a nice-to-have but far from being a
>> >>>>> perfect solution. In any case, I don't see this point as important
>> as
>> >>> you
>> >>>>> do.
>> >>>>>
>> >>>>>> * think through user flow
>> >>>>> The clear Gitbook menu exposes this pretty well IMO and better
>> >> compared
>> >>>> to
>> >>>>> the current version so that's a win.
>> >>>>>
>> >>>>> Best.
>> >>>>>
>> >>>>> [1] https://tbouron.github.io/brooklyn-docs/
>> >>>>> [2] https://tbouron.github.io/brooklyn-docs/brooklyn.pdf
>> >>>>> [3] https://tbouron.github.io/brooklyn-docs/brooklyn.epub
>> >>>>> [4] https://tbouron.github.io/brooklyn-docs/brooklyn.mobi
>> >>>>>
>> >>>>>
>> >>>>> On Thu, 5 Oct 2017 at 12:47 Richard Downer <rich...@apache.org>
>> >> wrote:
>> >>>>>> Thank you for the research you have done Thomas. I've had similar
>> >>>>> thoughts
>> >>>>>> myself. The original goal of our web+docs was to integrate them in
>> >>> such
>> >>>> a
>> >>>>>> way that we had a versioned user guide that integrated perfectly
>> >> with
>> >>>> the
>> >>>>>> main website. At the time, Markdown tools were relatively immature,
>> >>>> with
>> >>>>>> Jekyll leading the pack (and being the fashionable choice), and
>> >> very
>> >>>>> little
>> >>>>>> in the way of viable apps for generating books with structure and
>> >>>> tables
>> >>>>> of
>> >>>>>> contents. We did the best we could with the tools we had, but they
>> >>>> needed
>> >>>>>> significant extensions (via Jekyll plugins and build scripting).
>> >>> Those
>> >>>>>> plugins and scripts have turned into something fairly hairy - IMO
>> >> we
>> >>>>>> shouldn't need to have to write this much code[1] to generate a
>> >>> static
>> >>>>> site
>> >>>>>> and manual. With hindsight, I would not have argued in favour of
>> >> this
>> >>>>>> model. If I do write my book[2] I will most likely be writing it in
>> >>>>>> ReStructuredText and processing it with Sphinx (and no additional
>> >>>>>> scripting/tooling!).
>> >>>>>>
>> >>>>>> That said, when I have looked at changing Brooklyn's documentation
>> >>>>> system,
>> >>>>>> it has not looked easy. With our home-grown TOC generating code,
>> >>> we're
>> >>>>> not
>> >>>>>> off-the-shelf compatible with other systems. Moving to another
>> >>> system,
>> >>>>> even
>> >>>>>> if it is Markdown-based, would still involve a lot of manual work
>> >>>>> changing
>> >>>>>> our document metadata to the new system, and adapting to replace
>> >> the
>> >>>>> Jekyll
>> >>>>>> plugins and the content that uses them (e.g. syntax highlighting,
>> >>> file
>> >>>>>> inclusion). Unless you have discovered something I didn't, Thomas,
>> >>> then
>> >>>> I
>> >>>>>> fear this will be a lot of work, mostly manual.
>> >>>>>>
>> >>>>>> In short, yes I like the idea of replacing our home-grown and
>> >>>>>> home-maintained code with an existing and supported app, but no I
>> >>> don't
>> >>>>>> think the effort of a big-bang migration justifies the results *at
>> >>> this
>> >>>>>> time*.
>> >>>>>>
>> >>>>>> Some things I would support:
>> >>>>>>
>> >>>>>> - Continued incremental improvements to both the website and the
>> >> user
>> >>>>>> guide. IMO we have more problems with the content than with the
>> >>>> tooling,
>> >>>>>> and we can still make a lot of improvements to the usability of our
>> >>>> docs
>> >>>>>> and website without tooling changes.
>> >>>>>>
>> >>>>>> - Breaking the tight integration between website and user guide.
>> >>> "Fork"
>> >>>>> the
>> >>>>>> existing infrastructure but then have two build systems tailored
>> >> for
>> >>>>> their
>> >>>>>> purpose rather than one that tried to meet two different needs.
>> >> Would
>> >>>>> allow
>> >>>>>> the existing stuff to continue to work while opening the door to
>> >>>>> replacing
>> >>>>>> the guide tooling and redeveloping the website, independently of
>> >> each
>> >>>>>> other, at a future date.
>> >>>>>>
>> >>>>>> - Evaluating how other systems use metadata to describe the book
>> >>>>> structure,
>> >>>>>> and gradually adding support for this to our own tools and
>> >> migrating
>> >>>>>> content. Then at a later date, when the content is
>> >> nearly-compatible
>> >>>> with
>> >>>>>> GitBook or some other system, it'll be easier to do the migration.
>> >>>>>>
>> >>>>>> What do you think? Will following an incremental approach like this
>> >>>> allow
>> >>>>>> us to make improvements gradually rather than a "big bang"
>> >>> replacement
>> >>>> of
>> >>>>>> tooling?
>> >>>>>>
>> >>>>>> Richard.
>> >>>>>>
>> >>>>>> [1]
>> >> https://gist.github.com/rdowner/a09a268b37904a03c452797e7afe56ca
>> >>>> but
>> >>>>>> consider the COCOMO figures with appropriate cynicism
>> >>>>>> [2]
>> >>>>>>
>> >>>>>>
>> >> https://lists.apache.org/thread.html/6f19475bbc0570a3b9e3d1ae1b75b2
>> >>>>> b8ee4b2485b3b41d085c342dff@%3Cdev.brooklyn.apache.org%3E
>> >>>>>> On 5 October 2017 at 11:23, Thomas Bouron
>> >>> <thomas.bouron@cloudsoftcorp.
>> >>>>> com
>> >>>>>> wrote:
>> >>>>>>
>> >>>>>>> Hi all.
>> >>>>>>>
>> >>>>>>> It's been a couple of weeks that I started to look at how to
>> >>> improve
>> >>>>> and
>> >>>>>>> simplify the Brookyln website[1]. As I said on the Brooklyn 1.0
>> >>>>>> thread[2],
>> >>>>>>> I think we need to sort this out before releasing 1.0.
>> >>>>>>>
>> >>>>>>> I have looked for a framework / library to handle both the
>> >> website
>> >>>> and
>> >>>>>>> documentation the same way we do it right now. To determine what
>> >>> was
>> >>>>> the
>> >>>>>>> best fit, I based my analysis on the following criteria:
>> >>>>>>> - Able to take markdown files and generate HTML from them.
>> >>>>>>> - Keep the folder structure intact (currently, pages that seems
>> >> in
>> >>>> the
>> >>>>>> same
>> >>>>>>> logical group - take pages in the download section[3] menu - jump
>> >>>> into
>> >>>>> a
>> >>>>>>> different folder/category/section which is very confusing)
>> >>>>>>> - Be skinnable
>> >>>>>>> - Able to handle versions for documentation.
>> >>>>>>> - Able to generate PDF version of documentation.
>> >>>>>>> - Be as "stock" as possible to limit maintenance and pain during
>> >>>>> upgrade
>> >>>>>>> (our current website still uses Jekyll 2.x).
>> >>>>>>>
>> >>>>>>> 2 contenders clearly jumped out from this:
>> >>>>>>> - Jekyll[4]
>> >>>>>>> - Gitbook[5]
>> >>>>>>>
>> >>>>>>> ----
>> >>>>>>> Jekyll
>> >>>>>>>
>> >>>>>>> With the version 3, Jekyll now has a concept of collections[6]
>> >>> which
>> >>>>> can
>> >>>>>>> generate pages from markdown files and keep the folder structure.
>> >>>>>>> The menu can be generated based on this folder structure (with
>> >>> depth
>> >>>>>>> limitation for example) in combination of some clever liquid tags
>> >>> and
>> >>>>>>> `include`. However, it will be hard to control the order of items
>> >>>>>> appearing
>> >>>>>>> on the menu. Another easy solution would be maintain list of
>> >> links
>> >>>> for
>> >>>>>> the
>> >>>>>>> menu to be generated.
>> >>>>>>> There are plugins to generate PDF[7], which happens during
>> >> compile
>> >>>>> time.
>> >>>>>>> Finally, Jekyll is highly skinnable with built-in or custom
>> >> themes.
>> >>>>>>> ----
>> >>>>>>> Gitbook
>> >>>>>>>
>> >>>>>>> Gitbook, in its open source version, handles out of the box doc
>> >>>>>> versioning,
>> >>>>>>> PDF generation at runtime (so it seems) HTML pages generation
>> >> from
>> >>>>>>> markdown. The menu is built-in feature, based on a simple
>> >> markdown
>> >>>> list
>> >>>>>> of
>> >>>>>>> links[8]. This means we need to maintain it but there is a good
>> >>>> chance
>> >>>>> we
>> >>>>>>> will have to do this with Jekyll as well. Finally, Gitbook is
>> >> also
>> >>>>> easily
>> >>>>>>> skinnable[9].
>> >>>>>>>
>> >>>>>>> ----
>> >>>>>>> Both frameworks offer mostly the same features. However, Jekyll
>> >> is
>> >>>>> easier
>> >>>>>>> to build a website that looks like a "corporate" one whereas with
>> >>>>>> Gitbook,
>> >>>>>>> you are "stuck" with the design principals it was created, i.e.
>> >>> serve
>> >>>>>>> documentation only. But for this very purpose, it is extremely
>> >> good
>> >>>> and
>> >>>>>>> easy.
>> >>>>>>>
>> >>>>>>> Our website is the combination of both a "corporate website"
>> >> (i.e.
>> >>>>> about,
>> >>>>>>> getting started, community, etc - few pages that describe the
>> >>>> project)
>> >>>>>> and
>> >>>>>>> a documentation.
>> >>>>>>>
>> >>>>>>> Which leads me to my proposal: separate the website from the
>> >>>>>> documentation,
>> >>>>>>> at least in terms of how we build it. What I mean by this is:
>> >>>>>>> - Use Jekyll (or even nothing) for the website, except the
>> >>>>> documentation
>> >>>>>>> part. This will let us build a nice theme (based on Bootstrap 4
>> >> for
>> >>>>>>> example) without to worry about complicated plugins and custom
>> >> code
>> >>>> for
>> >>>>>> the
>> >>>>>>> documentation.
>> >>>>>>> - Use Gitbook for the documentation alone, applying/adapting the
>> >>>> theme
>> >>>>> we
>> >>>>>>> will create from the point above.
>> >>>>>>>
>> >>>>>>> Best.
>> >>>>>>>
>> >>>>>>> [1] https://brooklyn.apache.org/
>> >>>>>>> [2]
>> >>>>>>> https://lists.apache.org/thread.html/
>> >>> dae4468aa7ef77af9dc8aca24b8434
>> >>>>>>> e9782efbd50fa876618cccf980@%3Cdev.brooklyn.apache.org%3E
>> >>>>>>> [3] https://brooklyn.apache.org/download/index.html
>> >>>>>>> [4] https://jekyllrb.com/
>> >>>>>>> [5] https://github.com/GitbookIO/gitbook
>> >>>>>>> [6] https://jekyllrb.com/docs/collections/
>> >>>>>>> [7] http://abemedia.co.uk/jekyll-pdf/
>> >>>>>>> [8] https://toolchain.gitbook.com/pages.html
>> >>>>>>> [9] https://toolchain.gitbook.com/themes/
>> >>>>>>> --
>> >>>>>>>
>> >>>>>>> Thomas Bouron • Senior Software Engineer @ Cloudsoft Corporation
>> >> •
>> >>>>>>> https://cloudsoft.io/
>> >>>>>>> Github: https://github.com/tbouron
>> >>>>>>> Twitter: https://twitter.com/eltibouron
>> >>>>>>>
>> >>>>> --
>> >>>>>
>> >>>>> Thomas Bouron • Senior Software Engineer @ Cloudsoft Corporation •
>> >>>>> https://cloudsoft.io/
>> >>>>> Github: https://github.com/tbouron
>> >>>>> Twitter: https://twitter.com/eltibouron
>> >>>>>
>> >>> --
>> >>>
>> >>> Thomas Bouron • Senior Software Engineer @ Cloudsoft Corporation •
>> >>> https://cloudsoft.io/
>> >>> Github: https://github.com/tbouron
>> >>> Twitter: https://twitter.com/eltibouron
>> >>>
>>
>> --
>
> Thomas Bouron • Senior Software Engineer @ Cloudsoft Corporation •
> https://cloudsoft.io/
> Github: https://github.com/tbouron
> Twitter: https://twitter.com/eltibouron
>
-- 

Thomas Bouron • Senior Software Engineer @ Cloudsoft Corporation •
https://cloudsoft.io/
Github: https://github.com/tbouron
Twitter: https://twitter.com/eltibouron

Reply via email to