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

Che server parameters reference documentation #19630

Closed
themr0c opened this issue Apr 20, 2021 · 9 comments
Closed

Che server parameters reference documentation #19630

themr0c opened this issue Apr 20, 2021 · 9 comments
Labels
area/che-server area/doc Issues related to documentation kind/task Internal things, technical debt, and to-do tasks to be performed. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.

Comments

@themr0c
Copy link
Contributor

themr0c commented Apr 20, 2021

Is your task related to a problem? Please describe.

The discussion started with #19604, trying to sum up all difficulties we have with the che.properties documentation.

  • For a user looking for Che server parameters documentation, the primary source of information is the documentation website.
  • As we are running on Kubernetes, no user is editing the che.properties file.
  • It's good to keep the documentation close to the code, but that doesn't mean it is mandatory to keep it inside the che.properties file.
  • Authoring documentation directly in AsciiDoc would be easier than AsciiDoc embedded in comments. Same to validate the language.
  • Pattern based substitutions on a single file don't work. Chunking the content would help define the context where pattern-based substitutions would work.
  • The current display in tables is ugly.

Describe the solution you'd like

  • Document each parameter in che.properties as an AsciiDoc reference file.

Example: ref_che-database.adoc

[id="ref_che-database_{context}"]
= `che.database`

Folder where Che stores internal data objects.

.Default value
====
----
${che.home}/storage
----
====
  • Determine in which directory store these AsciiDoc files: same as che.properties?

  • Put a pointer to the file in che.properties before each parameter.

  • Modify the PR check to validate each parameter has a corresponding reference file

  • Build the documentation using these AsciiDoc files. Run substitutions for terms that need context-based substitutions (Kubernetes, Che, namespace).

  • This enables flexibility in the way we display documentation: for example, distinguish common parameters and parameters for advanced usage.

  • If we need to use variables (prod-short, orch-name etc.), add a copy or a pointer to the antora-playbook.yml file in che-docs repository where they are defined.

  • Then, the comments in che.properties may include additional information for developers, that don't need to go in the user facing docs.

Describe alternatives you've considered

@themr0c themr0c added kind/task Internal things, technical debt, and to-do tasks to be performed. area/che-server area/doc Issues related to documentation team/doc labels Apr 20, 2021
@che-bot che-bot added the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label Apr 20, 2021
@themr0c themr0c changed the title che.properties documentation Che server parameters reference documentation Apr 20, 2021
@azatsarynnyy azatsarynnyy removed the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label Apr 20, 2021
@sparkoo
Copy link
Member

sparkoo commented Apr 21, 2021

idea: There are lot of properties. Would make sense to allow to logically group them together?

example: https://github.com/eclipse/che/blob/master/assembly/assembly-wsmaster-war/src/main/webapp/WEB-INF/classes/che/che.properties#L111 workspace sidecar cpu and memory limits/requests. Very similar properties and imho it would make sense to have them in one file.

@themr0c
Copy link
Contributor Author

themr0c commented Apr 21, 2021

It is possible, but it will be easier to validate the files if their structure is predictable, atomic, always one parameter per file.

assembly files are the right tool to do these aggregations. They could exist in this repository or only in che-docs.

@themr0c
Copy link
Contributor Author

themr0c commented Apr 21, 2021

NB: we have 194 parameters.

@themr0c
Copy link
Contributor Author

themr0c commented Apr 21, 2021

The files would be like: https://github.com/eclipse/che/pull/19637/files

@themr0c
Copy link
Contributor Author

themr0c commented Apr 26, 2021

Che Community meeting:

@ibuziuk
Copy link
Member

ibuziuk commented Apr 27, 2021

providing extra adoc file per property to the codebase and referencing them from the .propoerty files in order to fix the documentation website layout is a really controversial proposal. I personally -1. This proposal will make the property files much less readable, and less straightforward to maintain. In general, never have I seen such a design with extra adoc files per property in any of the upstream projects, and do prefer to have consolidated content in a single file.

@themr0c
Copy link
Contributor Author

themr0c commented May 4, 2021

Let's find a less controversial path then.
A new proposal will be less automation, for a better doc.

Properties files are not the unique source of truth

I understand from the various discussions that building a reference documentation solely from the properties files is a dead end.

The properties file define:

  • Name of the parameter
  • Description.

The parameter is then used in 2 possible workflows:

  • Configuration using the Operator
  • Configuration using Helm

Each of these workflows determines:

  • The default value
  • The proper way to configure the value for the parameter.

For the Operator we even have 2 possibilities:

So we can use the properties file to write a draft for che-docs, but then we need to collect informations from other places to have a complete information.

Plan is to have this new process:

  • Script assistance: determines if all the parameters in the properties files have their AsciiDoc reference file counterpart in che-docs
  • Script assistance: for each new parameter, create a draft for a new corresponding AsciiDoc reference file.
  • Humans: review and complete the draft.
  • Humans: assess the position of the parameter in the outline.
  • As writers are reviewers on the properties files, a review on these files triggers evaluation of necessary changes in che-docs.

I'll close the PR still open to work in that direction.

@yhontyk
Copy link

yhontyk commented May 4, 2021

@che-bot
Copy link
Contributor

che-bot commented Nov 4, 2021

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 4, 2021
@che-bot che-bot closed this as completed Nov 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/che-server area/doc Issues related to documentation kind/task Internal things, technical debt, and to-do tasks to be performed. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants