Skip to content

Commit 1655716

Browse files
committed
update new doc site engine details
Signed-off-by: Rajiv Ranjan Singh <rajivperfect007@gmail.com>
1 parent b3286e3 commit 1655716

File tree

3 files changed

+30
-23
lines changed

3 files changed

+30
-23
lines changed

GSoC_2022_Project_Proposal.md

+3-5
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ Project Proposal
1818
- [Introduction](#introduction)
1919
- [Problem Statement](#problem-statement)
2020
- [Current Status of the Project](#current-status-of-the-project)
21-
- [Project scope & deliverables](#project-scope-&-deliverables)
21+
- [Project scope & deliverables](#project-scope-deliverables)
2222
- [Expected Deliverables](#expected-deliverables)
2323
- [Future work based on Project](#future-work-based-on-project)
24-
- [Brief description of my Solution & Implementation](#brief-description-of-my-solution--implementation)
24+
- [Brief description of my Solution & Implementation](#brief-description-of-my-solution-implementation)
2525
- [Multiple repository docs support](#multiple-repository-docs-support)
2626
- [Versioning of docs support](#versioning-of-docs-support)
2727
- [Project Timeline](#project-timeline)
@@ -76,7 +76,7 @@ I have decent experience in competitive programming and hence have a good unders
7676

7777
This is the project proposal for the **New Documentation Site Engine** for Keptn on which I want to work as a part of Google Summer of Code 2022. I have proposed my timeline to complete this work in a span of **12 weeks**.
7878

79-
Keptn is an event-driven orchestration engine for cloud-native apps. Started in 2018, it uses a declarative approach to automate delivery and operations so they can be scaled up to a large number of services. Keptn evaluates _Service Level Indicators (SLOs)_ and provides a dashboard, alerts, and auto-remediation for them. It also provides integrations with the Cloud Native ecosystem including _Prometheus_, _ArgoCD_, _CloudEvents_, _Backstage_, and many other cloud-native projects.
79+
Keptn is an event-driven orchestration engine for cloud-native apps. Started in 2018, it uses a declarative approach to automate delivery and operations so they can be scaled up to a large number of services. Keptn evaluates _Service Level Indicators (SLIs)_ against the _Service Level Objectives_ (SLOs) and provides a dashboard, alerts, and auto-remediation for them. It also provides integrations with the Cloud Native ecosystem including _Prometheus_, _ArgoCD_, _CloudEvents_, _Backstage_, and many other cloud-native projects.
8080

8181
## Problem Statement
8282

@@ -124,8 +124,6 @@ After completion of the above deliverables, we can work on the following:
124124

125125
and many more.
126126

127-
## Brief description of my Solution & Implementation
128-
129127
I am going to propose a **New Documentation Site Engine** that will be based on [Docusaurus](https://docusaurus.io/). Docusaurus is an optimized site generator in React. Docusaurus helps you to move fast and write content. Build documentation websites, blogs, marketing pages, and more. Also, I have created a doc on a comparison between Antora & Docusaurus [here](https://docs.google.com/document/d/1R5i5Pc3cPLiePkTor__sRg90rXCQdRQBmIGRnm3PlZA/edit?usp=sharing).
130128

131129
**Previous discussions with the Keptn team about the documentation site engine:**

GSoC_2022_Project_Report.md

+23-14
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ This project is about a New Documentation Site Engine for Keptn which can handle
3434

3535
The new Documentation Site engine will be based on Docusaurus. Docusaurus is an optimized site generator in React. Docusaurus helps you to move fast and write content. Build documentation websites, blogs, marketing pages, and more. The main focus of Keptn New Documentation Site Engine will be managing large-scale documentation and complex documentation projects. So two major things which are needed in the documentation engine are the ability to build the documentation from the source located in multiple repositories and support for document versioning.
3636

37-
Keptn is an event-driven orchestration engine for cloud-native apps. Started in 2018, it uses a declarative approach to automate delivery and operations so they can be scaled up to a large number of services. Keptn evaluates _Service Level Indicators (SLOs)_ and provides a dashboard, alerts, and auto-remediation for them. It also provides integrations with the Cloud Native ecosystem including _Prometheus_, _ArgoCD_, _CloudEvents_, _Backstage_, and many other cloud-native projects.
37+
Keptn is an event-driven orchestration engine for cloud-native apps. Started in 2018, it uses a declarative approach to automate delivery and operations so they can be scaled up to a large number of services. Keptn evaluates _Service Level Indicators (SLIs)_ against the _Service Level Objectives_ (SLOs) and provides a dashboard, alerts, and auto-remediation for them. It also provides integrations with the Cloud Native ecosystem including _Prometheus_, _ArgoCD_, _CloudEvents_, _Backstage_, and many other cloud-native projects.
3838

3939
## Project team
4040

@@ -89,7 +89,7 @@ Issue link: [https://github.com/keptn-sandbox/new-keptn-docs-engine/issues/2](ht
8989

9090
---
9191

92-
- [x] Adding UI and UX changes, moving the content and search functionality to the new documentation site engine.
92+
- [ ] Adding UI and UX changes, moving the content and search functionality to the new documentation site engine.
9393

9494
- [x] Implementing UI and UX changes in the documentation engine like creating components, templates, standalone pages, etc.
9595

@@ -99,11 +99,13 @@ Issue link: [https://github.com/keptn-sandbox/new-keptn-docs-engine/issues/2](ht
9999
100100
> After getting feedback from mentors on the new documentation site engine, I have refactored the documentation engine. PR can be found here [https://github.com/keptn-sandbox/new-keptn-docs-engine/pull/9](https://github.com/keptn-sandbox/new-keptn-docs-engine/pull/9).
101101
102+
> The UI and UX change that I mentioned above are according to the Docusaurus site. When we initialize the Docusarus site, it comes with some default components, templates, etc. I have refactored the default components and templates of the Docusaurus site which were added when the Docusaurus site was initialized. I have also added some new components, templates, etc. which are required for the new documentation site engine. But the new components, templates, etc. which I have added are just the basic ones. As of now, we have not decided on the proper structure and looks of the new documentation site engine i.e. how the pages will look like and which content will be put where, etc. I have mentioned this work in the [Future Work to be done](#future-work-to-be-done) section.
103+
102104
- [x] Finalizing the things that need to be copied from the current documentation engine to the new documentation site engine with proper structure.
103105

104-
- [x] Copying content from the current documentation engine to the new documentation site engine which has been finalized.
106+
- [ ] Copying content from the current documentation engine to the new documentation site engine which has been finalized.
105107

106-
> As of now not all contents are copied from the current documentation engine to the new documentation site engine instead, some documents are copied to the new documentation site engine.
108+
> As of now not all contents are copied from the current documentation engine to the new documentation site engine instead, some documents are copied to the new documentation site engine. The reason for not moving all content from the current documentation engine to the new documentation site engine is that we are still working on the features and structure of the new documentation site engine.
107109
108110
- [x] Adding documentation search functionality.
109111

@@ -120,6 +122,7 @@ Issue link: [https://github.com/keptn-sandbox/new-keptn-docs-engine/issues/5](ht
120122
- [x] Adding Versioning of docs support feature.
121123

122124
In current docs, we don't have versioning of docs support feature. As of now, we were versioning the docs manually. To solve this problem we have added versioning of the docs support feature using Docusaurus. We can use the versioning CLI to create a new documentation version based on the latest content in the `docs` directory. That specific set of documentation will then be preserved and accessible even as the documentation in the `docs` directory continues to evolve.
125+
Here versioning CLI means running the commands which create versions of documentation like running the command `yarn run docusaurus docs:version 1.1.0` will create a new version of the documentation with the version number `1.1.0` and the content of the `docs` directory at the time of running the command will be copied to the new versioned documentation directory.
123126

124127
> PR related to adding versioning support can be found here [https://github.com/keptn-sandbox/new-keptn-docs-engine/pull/10](https://github.com/keptn-sandbox/new-keptn-docs-engine/pull/10).
125128
@@ -133,8 +136,13 @@ I got clarity about this feature a little late so I was not able to implement th
133136

134137
Some reasons why we want the Multiple repository docs support feature:
135138

136-
- Keptn CLI docs are generated using the `keptn generate docs` command. As of now, we run it in GitHub action [here](https://github.com/keptn/keptn.github.io/blob/9c649b434c9081028e0cc3535c9fa3a4217941fb/.github/workflows/auto-update.yml#L72) to populate our docs repo with CLI docs.
137-
- If we look at the architecture doc [here](https://keptn.sh/docs/concepts/architecture/), the Keptn control plan consists of multiple services which have their READMEs in the main Keptn repository ([example](https://github.com/keptn/keptn/tree/master/jmeter-service)). Just look for any directory with `service` in [https://github.com/keptn/keptn](https://github.com/keptn/keptn), we can see individual READMEs for all such services. It's a good idea to move these READMEs to the docs site because the people who develop and maintain these services are responsible for updating the READMEs. Having them in a single place just makes it easier to update the READMEs and read them later as well.
139+
For the current documentation site engine, we generate docs using the Keptn CLI
140+
The source for the Keptn CLI reference pages is moved from the software repository to the docs repository as a batch process (using the `keptn generate docs` command).
141+
142+
But that doesn't actually generate the docs -- it just copies the source for those pages to the doc repo and then the pages are generated each time the docs are rebuilt. For example, for the 0.18.x release, the source for the CLI reference pages is in https://github.com/keptn/keptn.github.io/tree/master/content/docs/0.18.x/reference/cli/commands and one can go in and modify those pages and instantly change what is built for the doc site. Of course, those changes get overwritten the next time we pull the source from keptn/keptn so we shouldn't be modifying it.
143+
144+
- The source for the Keptn CLI reference pages is moved from the software repository to the docs repository as a batch job. As of now, we run it in GitHub action [here](https://github.com/keptn/keptn.github.io/blob/9c649b434c9081028e0cc3535c9fa3a4217941fb/.github/workflows/auto-update.yml#L72) to populate our docs repo with CLI docs. We must achieve at least this functionality under Docusaurus. Ideally, we would enhance it so that a change to the source in the software repository would immediately trigger a PR to the docs repository so that the docs are constantly up-to-date and batch processing for a new release is not required.
145+
- If we look at the architecture doc [here](https://keptn.sh/docs/concepts/architecture/), the Keptn control plan consists of multiple services which have their READMEs in the main Keptn repository ([example](https://github.com/keptn/keptn/tree/master/jmeter-service)). Just look for any directory with `service` in [https://github.com/keptn/keptn](https://github.com/keptn/keptn), we can see individual READMEs for all such services. It's a good idea to move these READMEs to the docs site because the people who develop and maintain these services are responsible for updating the READMEs. Having them in a single place just makes it easier to update the READMEs and read them later as well. We have other files in the software repositories that should be imported to the documentation, such as the `values.yaml` files that configure Helm charts. We need to define all such entities and then devise schemes that allow us to author content in the software repository but build an integrated doc set with that content.
138146
- We also have services that extend the control plane which sits in a separate repository. Check [dynatrace-service](https://github.com/keptn-contrib/dynatrace-service) for example. As of now, if we add a new service that extends the control plane, we also have to add some documentation around it manually in the main docs repository.
139147
- We have a miscellaneous repository like [Keptn spec](https://github.com/keptn/spec), documentation around what different values mean in the Keptn helm chart which we can't put in the main docs repository because they serve a different purpose.
140148

@@ -204,7 +212,7 @@ Its Docusaurus plugin downloads content from remote sources. With this plugin, w
204212

205213
Every webpage that is crawled by a search engine is evaluated with a score from 5 categories: Performance, Accessibility, Best Practices, SEO, and PWA. This is given a score between 0 – 100. The better your lighthouse score will affect how high up your webpage will appear on a search engine.
206214

207-
With a high score, your site meets the best practices and SEO standards outlined by Google in terms of performance and accessibility. Lighthouse is an important tool because it can identify common problems that affect the quality of your websites and propose solutions for them.
215+
With a high score, your site meets the best practices and SEO standards outlined by Google in terms of performance and accessibility. Lighthouse is an important tool because it can identify common problems that affect the quality of your websites and propose solutions for them. Currently, the standard search engines are tending to report ancient versions of the Keptn docs rather than the latest version so this type of problem can be identified and fixed with the help of Lighthouse CI.
208216

209217
Lighthouse CI is a suite of tools that make continuously running, saving, retrieving, and asserting against [Lighthouse](https://github.com/GoogleChrome/lighthouse) results as easily as possible. So we have integrated Lighthouse CI GitHub Action into the new documentation site engine.
210218

@@ -222,17 +230,17 @@ We research and found [proselint](https://github.com/amperser/proselint) and [Va
222230

223231
So, we integrated [vale-action](https://github.com/errata-ai/vale-action) in the new documentation site engine.
224232

225-
Also, for the time being, I have adopted the [Google Style Guide](https://google.github.io/styleguide/) because my main motivation is to integrate the Vale GitHub Action into the docs engine. Yeah, I think we can have a separate discussion about which style guide to follow or we can have our custom style guide as well.
233+
Also, for the time being, I have adopted the [Google Style Guide](https://google.github.io/styleguide/) because my main motivation is to integrate the Vale GitHub Action into the new documentation site engine. We can easily switch to another standard style guide or a custom style guide in the future.
226234

227-
One of the limitations of Vale is that we have to update things in `vocab.txt` which is required for false positives. Some keywords, and names (e.g. `Keptn`, `KEP` etc) are considered as `vale.Spelling` errors, so we have to add them inside `vocab.txt` file. We can list all unique words which are considered errors in `vocab.txt` using the below command.
235+
One of the limitations of Vale is that we have to update things in `vocab.txt` which is required for false positives. Some keywords, and names (e.g. `Keptn`, `KEP` etc) that are not included in standard dictionaries and so would be treated as `vale.Spelling` errors, so we have to add them inside `vocab.txt` file.
236+
237+
Use the following command to list all unique words which are considered errors and write them to the `vocab.txt` file:
228238

229239
```shell
230240
yarn run lint:docs | grep -o "'[a-z A-Z]*'" | grep -o "[a-z A-Z]*" | sort | uniq > .github/styles/vocab.txt
231241
```
232242

233-
Now we have to manually validate all words listed in `vocab.txt`, discard which are invalid and correct them in the file where they were located.
234-
235-
Now we have to manually validate all words listed in `vocab.txt`, discard which are invalid and correct them in the file where they were located.
243+
We must then edit that file to remove the genuine spelling errors and only leave the Keptn terms that should be recognized as proper words.
236244

237245
> PR related to adding Vale linter can be found here [https://github.com/keptn-sandbox/new-keptn-docs-engine/issues/19](https://github.com/keptn-sandbox/new-keptn-docs-engine/issues/19)
238246
@@ -247,7 +255,7 @@ Issue link: [https://github.com/keptn-sandbox/new-keptn-docs-engine/issues/19](h
247255
To set up the GitHub action, all we need to do is install our dependencies (e.g. `yarn install`), run our format script (e.g. `yarn format`), and then commit any changes if necessary.
248256

249257
By utilizing Prettier with GitHub Actions, we can ensure that our code is formatted consistently and without any issues.
250-
It also helps to reduce manual work when formatting code.
258+
It also helps to reduce manual work when formatting code. Currently, we are running prettier checks for `docs/**/*.{md,mdx}` files only.
251259

252260
> PR related to adding Prettier GitHub Action can be found here [https://github.com/keptn-sandbox/new-keptn-docs-engine/pull/25](https://github.com/keptn-sandbox/new-keptn-docs-engine/pull/25)
253261
@@ -280,10 +288,11 @@ Issue link: [https://github.com/keptn-sandbox/new-keptn-docs-engine/issues/27](h
280288
- Implementing all SEO approaches listed in [https://docusaurus.io/docs/seo](https://docusaurus.io/docs/seo) like adding metadata in site configuration, adding metadata for all single pages, adding metadata in the front matter of all markdown files, etc.
281289

282290
> This will take some time to implement as we will be adding metadata in the front matter of all files and will be implementing slowly as we still moving the content to the new documentation site engine.
291+
> Adding metadata will help in SEO like we can provide a better description of the page, a title for the page, keywords for the page, etc. If we don’t proper metadata then the search engine will not be able to understand what the page is about and will not be able to rank it properly.
283292
284293
## Future Work to be done
285294

286-
These are work that was part of this proposal but was partially implemented or not implemented at all like:
295+
The following work items were part of this proposal but were either partially implemented or not implemented at all:
287296

288297
- Adding Multiple repository docs support feature.
289298

README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ Project Link: [https://github.com/keptn-sandbox/new-keptn-docs-engine](https://g
1717

1818
## Table Of Contents
1919

20-
- [GSoC 2022 Project Proposal](GSoC_2022_Project_Proposal.md)
21-
- [GSoC 2022 Project Report](GSoC_2022_Project_Report.md)
22-
- [GSoC 2022 Meetings](GSoC_2022_Meetings.md)
23-
- [GSoC 2022 Work Summary](GSoC_2022_Work_Summary.md)
20+
- [About](#about)
21+
- [Table Of Contents](#table-of-contents)
22+
- [References](#references)
23+
- [License](#license)
2424

2525
## References
2626

0 commit comments

Comments
 (0)