Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

Docs: distinguish between frequently, commonly, and rarely used options #19874

Closed
rarkins opened this issue Jan 17, 2023 · 1 comment
Closed
Labels
priority-4-low Low priority, unlikely to be done unless it becomes important to more people status:requirements Full requirements are not yet known, so implementation should not be started type:docs Documentation

Comments

@rarkins
Copy link
Collaborator

rarkins commented Jan 17, 2023

Describe the proposed change(s).

Today our config options list is huge. More features is good, but for someone starting out it's intimidating to browse through.

Ideally we need a way to highlight to people both:

  • Commonly used settings they may be interested in when they get started, and
  • Features which are rarely used, so they can probably skip over reading unless they have a real need

If we just wanted to highlight commonly used settings, that can or should also be done using getting started guides/tutorials. But even if so it would still be good to mark features as proposed to make them more quick to skim through.

We could also consider breaking complex options like packageRules and hostRules into their own page.

@rarkins rarkins added priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others type:docs Documentation status:requirements Full requirements are not yet known, so implementation should not be started labels Jan 17, 2023
@HonkingGoose
Copy link
Collaborator

I like your ideas! I agree that the config options docs are overwhelming, it's a big list of options with no "how often should I use this"-ranking.

We should definitely highlight common/rarely used features in some way.

Breaking out complex options into own page

If we just wanted to highlight commonly used settings, that can or should also be done using getting started guides/tutorials. But even if so it would still be good to mark features as proposed to make them more quick to skim through.

I already created some key concepts pages for things like our Dependency Dashboard, Pull Requests and Automerge. We could break out packageRules and hostRules into their own key concepts pages?

We already have an issue tracking creating new "key concepts pages", see:

We have a lot of custom code for generating the docs pages, so we'll need to change the docs generating code to account for the break out of those config options.

Highlight common/rare stuff

Material for MkDocs can only tag pages

I first thought about using the tags feature in Material for MkDocs, but that's intended to tag a page not sections of that page, quote from the tags docs: 1

Material for MkDocs adds first-class support for categorizing pages with tags, which adds the possibility to group related pages and make them discoverable via search and a dedicated tags index. If your documentation is large, tags can help to discover relevant information faster.

Put usage frequency in code somehow

We already have a experimental Boolean in our code, based on that Boolean we add a experimental feature admonition in our docs. We could use something similar to label the usage frequency of config options.

{
name: 'configMigration',
description: 'Enable this to get config migration PRs when needed.',
stage: 'repository',
type: 'boolean',
default: false,
experimental: true,
experimentalDescription:
'Config migration PRs are still being improved, in particular to reduce the amount of reordering and whitespace changes.',
experimentalIssues: [16359],
},

Array

const usageFrequencyValidValues = ["never", "sometimes", "often", "all the time"] // Only allow values from this array, validate this in code somehow

// In code:

{
  name: 'configMigration',
  description: 'Enable this to get config migration PRs when needed.',
  stage: 'repository',
  type: 'boolean',
  default: false,
  experimental: true,
  experimentalDescription:
    'Config migration PRs are still being improved, in particular to reduce the amount of reordering and whitespace changes.',
  experimentalIssues: [16359],
  usageFrequency: 'often',
},

Create custom type/object?

There's probably a better way than the simple array above, like creating a custom type or special object? 😉

Mockup of end result in docs

In any case, the end result would be that the usage frequency is added to the table in the docs:

configMigration

Enable this to get config migration PRs when needed.

Name Value
type boolean
default false
cli --config-migration
env RENOVATE_CONFIG_MIGRATION
usage frequency often

Footnotes

  1. https://squidfunk.github.io/mkdocs-material/setup/setting-up-tags/

@rarkins rarkins added priority-4-low Low priority, unlikely to be done unless it becomes important to more people and removed priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others labels Oct 1, 2023
@renovatebot renovatebot locked and limited conversation to collaborators Oct 1, 2023
@rarkins rarkins converted this issue into discussion #24812 Oct 1, 2023

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
priority-4-low Low priority, unlikely to be done unless it becomes important to more people status:requirements Full requirements are not yet known, so implementation should not be started type:docs Documentation
Projects
None yet
Development

No branches or pull requests

2 participants