Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

POC: [M3-7538] - Cloud Manager GH Pages Docs #9960

Closed
wants to merge 11 commits into from
Closed

Conversation

abailly-akamai
Copy link
Contributor

@abailly-akamai abailly-akamai commented Dec 5, 2023

Description 📝

This PR is a rather quick attempt at configuring a basic Jekyll site builder for our docs and publish it automatically when pushed to a branch of our choice (in this case M3-7538, hence why this branch isn't from my fork.

The advantage of this approach is to integrate things easily with very minimal dependencies and get dedicated hosting for the static site. It could be done in many ways via other static builders (hugo etc) but I don't think we need to go too far at the moment since this is very much a built in, secure solution we can just use almost out of the box.

I also used a theme that had a lot of decent features (navigation, search, responsive design, easy to customize) to facilitate development and user experience. The search is really super useful! 🎉

The site is published at https://linode.github.io/manager

In this PR i did not update the main README to link to this doc site since it may not be ready for prime time but that can easily be done now or later, depending on feedback for the POC.

NOTE: some doc pages may have formatting issues (unrelated to this PR) which I will update if this PR moves forward.

Changes 🔄

  • Add builder and documentation to publish our documentation to GH pages

Preview 📷

Screenshot 2023-12-05 at 14 05 23

How to test 🧪

Verification steps

As an Author I have considered 🤔

Check all that apply

  • 👀 Doing a self review
  • ❔ Our contribution guidelines
  • 🤏 Splitting feature into small PRs
  • ➕ Adding a changeset
  • 🧪 Providing/Improving test coverage
  • 🔐 Removing all sensitive information from the code and PR description
  • 🚩 Using a feature flag to protect the release
  • 👣 Providing comprehensive reproduction steps
  • 📑 Providing or updating our documentation
  • 🕛 Scheduling a pair reviewing session
  • 📱 Providing mobile support
  • ♿ Providing accessibility support

@abailly-akamai abailly-akamai self-assigned this Dec 5, 2023
@abailly-akamai abailly-akamai marked this pull request as ready for review December 5, 2023 19:13
@abailly-akamai abailly-akamai requested a review from a team as a code owner December 5, 2023 19:13
Copy link
Member

@bnussman-akamai bnussman-akamai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks awesome! Love that we can use Github Pages for this!

Is the choice of Jekyll just because Github supports it without needing a dedicated Github Action to build and publish? I like how it's super built in, but the Gemfiles, html, and scss will definitely placebo me into feeling our repo is bloated and messy.

What do you think about using something more modern and applicable to our Typescript ecosystem like https://vitepress.dev. I'm not super familiar with Vitepress and how it compares to jekyll, but it does seem to be the standard for the Typescript ecosystem as of now. I guess a disadvantage would be that we need a Github Action with a build step and more node_modules?

Copy link

github-actions bot commented Dec 5, 2023

Coverage Report:
Base Coverage: 85.39%
Current Coverage: 85.39%

Copy link
Contributor

@mjac0bs mjac0bs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a big fan of Github Pages, thanks for setting this up!

I've left some nitpicks on typos and wording that I found as I read through the docs. As far as the actual pages site, I think it looks nice. Good choice on theme; I love the search. My one complaint so far about layout is that the side menu seems really wide. Can we we adjust that? I was going to play with the theme overrides a bit to see what we've got. Either way, not a blocker.

Screenshot 2023-12-05 at 11 20 31 AM


This doc builder uses default GitHub pages and its Jekyll site builder to deploy documentation pages to [https://linode.github.io/manager](https://linode.github.io/manager).

It automatically get deployed when we release to `master`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
It automatically get deployed when we release to `master`.
It automatically gets deployed when we release to `master`.


In order to develop locally, start by setting up your tolling locally by following the steps on this [page](https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/testing-your-github-pages-site-locally-with-jekyll).

This should be done from the /docs/ directory.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This should be done from the /docs/ directory.
This should be done from the `/docs/` directory.

- modify the styles by updating `_sass/color_schemes/akamai.scss`.
- modify layouts by adding/updating HTML templates to the `_includes` directory.

See [https://just-the-docs.com/docs/customization](https://just-the-docs.com/docs/customization) for mor info.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
See [https://just-the-docs.com/docs/customization](https://just-the-docs.com/docs/customization) for mor info.
See [https://just-the-docs.com/docs/customization](https://just-the-docs.com/docs/customization) for more info.

"@linode/manager": Added
---

Cloud Manager Documenation Builder for Gihub Pages ([#9960](https://github.com/linode/manager/pull/9960))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Cloud Manager Documenation Builder for Gihub Pages ([#9960](https://github.com/linode/manager/pull/9960))
Cloud Manager Documentation Builder for Github Pages ([#9960](https://github.com/linode/manager/pull/9960))


## Get Started

To setup cloud manager and get ready for development, process to the [get started docs](GETTING_STARTED.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To setup cloud manager and get ready for development, process to the [get started docs](GETTING_STARTED.md).
To setup Cloud Manager and get ready for development, proceed to the [getting started docs](GETTING_STARTED.md).


Find resources about specific areas of development in Akamai's Cloud Manager.

For any other issues feel free to open an issue to report a bug or request a feature.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For any other issues feel free to open an issue to report a bug or request a feature.
For any other issues, feel free to [open a GitHub Issue](https://github.com/linode/manager/issues/new) to report a bug or request a feature.

@abailly-akamai
Copy link
Contributor Author

@bnussman-akamai I was waiting for this comment 😄 yes, it is what GH pages using under the hood.

The perception that the repo is "bloated" is quite subjective and personal, and I'd like to make the debate more objective. The quest for a 100% TS repo does not convey much to me. I actually like the idea of diversifying the tech and focus on the right tool for the job. In other words I don't really care that much what brand is the guitar, I care about the music it makes 🎵.

That being I am open to other options (I am sure Vitpress is fine and is a proper tool for it) but it seems overkill to me to spend a lot more time to achieve the exact same (or similar) result? This was build in half a day so there is that.
We can certainly go another route but I'd like to hear more compelling arguments for it. One i can think of is having to install more tooling to your machine if you want to develop this locally.

Curious to hear other opinions as well.

@bnussman-akamai bnussman-akamai added the Documentation Improving / adding to our documentation label Dec 5, 2023

# Development Guide

Find resources about specific areas of development in Akamai's Cloud Manager.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you mean the documentation? If so should we point them here https://www.linode.com/docs/?

@tyler-akamai
Copy link
Contributor

tyler-akamai commented Dec 11, 2023

Curious to hear other opinions as well.

I think both solutions are valid. But given that this was an easy and fast setup and it does everything we want right now, my vote is to keep it. In the future, if we want more features, it seems like vitepress is a good option. And we wouldnt have to tear down much to make the transition.

@tyler-akamai
Copy link
Contributor

tyler-akamai commented Dec 11, 2023

Also, might be worth adding POC to the list of potential tickets types in the PR template

@jcallahan-akamai
Copy link
Contributor

@bnussman-akamai I was waiting for this comment 😄 yes, it is what GH pages using under the hood.

The perception that the repo is "bloated" is quite subjective and personal, and I'd like to make the debate more objective. The quest for a 100% TS repo does not convey much to me. I actually like the idea of diversifying the tech and focus on the right tool for the job. In other words I don't really care that much what brand is the guitar, I care about the music it makes 🎵.

That being I am open to other options (I am sure Vitpress is fine and is a proper tool for it) but it seems overkill to me to spend a lot more time to achieve the exact same (or similar) result? This was build in half a day so there is that. We can certainly go another route but I'd like to hear more compelling arguments for it. One i can think of is having to install more tooling to your machine if you want to develop this locally.

Curious to hear other opinions as well.

I agree having a 100% TS repo doesn't mean much on its own, but one factor to consider is the skillset of the team and whether or not we are in a position to support this little slice of Ruby. @abailly-akamai do you have a sense for the likelihood of ever having to run/debug this locally? Maybe a good cafe topic to see if we have Ruby skills on the team (and/or interest in learning).

@abailly-akamai
Copy link
Contributor Author

@johnwcallahan yup am planning to bring this to the cafe. I don't feel that strong about it, but i also think that apart from installing tools and dependencies the ruby factor is a tad irrelevant cause it's just supporting a compiler in this case. With a bit of work we could probably move this to a GH action as well and remove this from the codebase. I wrote steps to run this locally as part of this PR but let's remember this is POC, showing what the end result is, we can find ways to clean it up - what I want to be cautious about is jump on the latest coolest JS framework bandwagon that's going to require pouring gallons of JS to build < 20 pages of docs.


## Local Development

In order to develop locally, start by setting up your tolling locally by following the steps on this [page](https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/testing-your-github-pages-site-locally-with-jekyll).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you meant "tooling" instead of "tolling".

@carrillo-erik
Copy link
Contributor

This is a great idea! Upon initial review of the UI/UX I have the following recommendations:

  • Add dark theme.
  • Add borders and/or background color to Search Bar.
  • Improve desktop page layout (too much empty space).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Documentation Improving / adding to our documentation Proof of Concept
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants