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

New style Documentation #4336

Closed
wants to merge 41 commits into from
Closed

Conversation

dalexandrov
Copy link
Contributor

This is a draft proposal for the New Style Documentation.

I will be clear, it DIRTY and a lot has to be done for it to become production ready.

Current proposal is based on the document discussed 02.05.2022.

I will also be clear, that current documentation did not follow any specific rules and structure, so normalising it is not a trivial task.

Each chapter except mp/CDI, mp/AOP, mp/Config, se/Webserver, se/AOP, se/Config has been reformatted to follow the structure:

  • Overview
  • Maven Coordinates
  • Usage
  • API
  • Configuration
  • Reference
  • Examples
  • Additional Information

For the chapters mentioned above, as some of them are in the core of everything, additional discussion should be made.

Proposed structure for Helidon MP:

  • Server
  • Config
  • CDI
    • Extensions
  • Observability
    • Health
    • Metrics
    • Tracing
    • Logging
  • Security
    • JWT Auth
    • CORS
  • Enterprise
    • Validation
    • JPA
    • Long Running Actions
    • Scheduling
  • Calling other services
    • MP REST Client
    • JAX-RS/Jersey
    • OpenAPI
    • Fault Tolerance
  • Protocols
    • gRPC
    • GraphQL
    • WebSocket
    • Reactive
    • Streams
    • Messaging
  • Integrations
    • OCI
    • Vault
    • Neo4J
    • Micrometer
  • Testing
    • JUnit
    • TestNG

Proposed structure for Helidon SE:

  • Reactive Server
    • Streams
    • Messaging
  • Config
  • Observability
    • Health
    • Metrics
    • Tracing
  • Security
    • Providers
    • Integrations
    • CORS
  • Enterprise
    • Validation
    • Scheduling
  • Calling other services
    • Reactive Web Client
    • OpenAPI
    • Fault Tolerance
  • Protocols
    • gRPC
    • GraphQL
    • WebSocket
  • Integrations
    • OCI
    • Vault
    • Neo4J
    • Micrometer

Each reformatted chapter was done with my personal view of the things and may be controversial. Need to be checked by colleagues with deeper knowledge in particular areas.

In all of the chapters, the missing areas are marked with TODO:
In all of the chapters, the Reference subchapter is considered to be generated (otherwise, all config values have to be manually checked).

A special Helidon Doc board is used to track documentation changes https://github.com/oracle/helidon/projects/22
Tasks for each documentation items are created.

A lot code is reused from the guides, but they are still kept in the doc structure.

The sitegen.yml is also reformatted, but as the generator has its own limitations with include depth additional discussion is possible.

@dalexandrov dalexandrov marked this pull request as draft June 3, 2022 14:24
@dalexandrov dalexandrov self-assigned this Jun 3, 2022
@dalexandrov dalexandrov added docs 3.x Issues for 3.x version branch labels Jun 3, 2022
@dalexandrov dalexandrov added this to the 3.0.0 milestone Jun 3, 2022
Copy link
Member

@tjquinno tjquinno left a comment

Choose a reason for hiding this comment

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

Overall I think this works well for MP health. I have made a few comments, many about pre-existing awkwardness in the doc and a few about the new changes.

docs/mp/health/01_introduction.adoc Outdated Show resolved Hide resolved
docs/mp/health/01_introduction.adoc Outdated Show resolved Hide resolved
docs/mp/health/01_introduction.adoc Show resolved Hide resolved
docs/mp/health/01_introduction.adoc Outdated Show resolved Hide resolved
Comment on lines +132 to +147
=== Custom Health Root Path and Port

You can specify a custom port and root context for the root health endpoint path.
However, you cannot use different ports, such as http://localhost:8080/myhealth and http://localhost:8081/myhealth/live.
Likewise, you cannot use different paths, such as http://localhost:8080/health and http://localhost:8080/probe/live.

The example below will change the root path.

[source,yaml]
.Create a file named `application.yaml` in the `resources` directory with the following contents:
----
health:
web-context: "myhealth" // <1>
----
<1> The web-context specifies a new root path for the health endpoint.

Copy link
Member

Choose a reason for hiding this comment

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

We should be able to remove this section and rely on the generated config doc instead.

Speaking of that, we will need to change either config annotations in health or in service-common or the tool or perhaps all to support inheritance. The HealthSupport.Builder extends HelidonRestServiceSupport.Builder so the config doc for health will need to incorporate the doc from the superclass. The JSON file the health build generates does not include the superclass config info so something is not quite right. This should be a separate issue from the doc update itself though, except eventually for changing this to include the generated config doc.

Comment on lines +159 to +168
Configuration properties, values and description

|===
|Property | Values | Description

|health:web-context
|`String`
| The endpoint name on which the health context is propagated

|===
Copy link
Member

Choose a reason for hiding this comment

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

To be replaced by an include for the generated config doc.

docs/mp/health/01_introduction.adoc Outdated Show resolved Hide resolved
docs/mp/health/01_introduction.adoc Outdated Show resolved Hide resolved
@danielkec
Copy link
Contributor

I wouldn't put reactive streams or reactive messaging under Protocols in MP, also for SE reactive streams and messaging has nothing to do with reactive/web server. I would move messaging under that enterprise group for both, and reactive streams and Multi/Helidon's reactive operators should probably have its own group, something like Core

@dalexandrov dalexandrov closed this Aug 4, 2022
@dalexandrov dalexandrov deleted the documentation branch October 6, 2022 07:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.x Issues for 3.x version branch docs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants