Skip to content

Test for subheadings that are too long

Amy Qualls requested to merge aqualls-subheading-length into master

What does this MR do?

Based on this Slack thread, proposes a warning-level test that captures subheadings longer than 70 characters.

We specify 70 is the maximum length for subheadings in troubleshooting sections, but have we ever specified it for all subheadings?

Related to Track subheading length improvements (#467298) where I'll track the work to get this rule turned on.

Findings:

@rdickenson and @marcel.amirault ran some useful tests to figure out if we should flag at 70 characters, as the rule says, or to be more lenient to focus on catching the subheadings of truly egregious length. The results of the command vale --no-wrap --filter='.Name=="gitlab.TopicTitleLength"' doc/**/*.md

  • Set to 70 characters: 306 results
  • Set to 80 characters: 153 results
  • Set to 90 characters: 76 results
  • Set to 100 characters: 46 results

90 characters looks like a good place to start. Let's see where the long subheadings are lurking:

show me the 76 results
$ vale --no-wrap --filter='.Name=="gitlab.TopicTitleLength"' doc/**/*.md

 doc/administration/geo/replication/faq.md
 72:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/administration/geo/replication/security_review.md
 99:5   warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 174:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 192:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 235:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 250:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 291:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/administration/geo/replication/troubleshooting/common.md
 369:7  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 520:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 569:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/administration/geo/replication/troubleshooting/replication.md
 80:5   warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 146:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 185:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/administration/geo/replication/troubleshooting/synchronization.md
 184:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/administration/gitaly/troubleshooting.md
 347:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 441:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/administration/gitaly/troubleshooting_gitaly_cluster.md
 301:21  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/administration/pages/troubleshooting.md
 290:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/administration/postgresql/replication_and_failover_troubleshooting.md
 53:4   warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 196:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/administration/raketasks/project_import_export.md
 127:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/architecture/blueprints/cells/impacted_features/contributions-forks.md
 169:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 173:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/architecture/blueprints/cells/rejected/proposal-stateless-router-with-buffering-requests.md
 472:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 558:6  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 581:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/architecture/blueprints/cells/rejected/proposal-stateless-router-with-routes-learning.md
 495:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 581:6  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 604:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/architecture/blueprints/disaster_recovery/index.md
 47:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 66:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/architecture/blueprints/disaster_recovery/regional.md
 11:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/architecture/blueprints/disaster_recovery/zonal.md
 11:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 71:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/architecture/blueprints/feature_flags_usage_in_dev_and_ops/index.md
 249:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/architecture/blueprints/organization/organization-faq.md
 9:4   warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 14:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 20:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 25:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/architecture/blueprints/permissions/index.md
 130:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 147:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/ci/environments/index.md
 1028:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/ci/environments/protected_environments.md
 277:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/ci/pipelines/merge_trains.md
 183:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/ci/yaml/includes.md
 594:47  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/development/backend/ruby_style_guide.md
 135:7  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/development/data_seeder.md
 339:6  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/development/database/avoiding_downtime_in_migrations.md
 332:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/development/fe_guide/frontend_faq.md
 87:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/development/fe_guide/troubleshooting.md
 72:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/development/git_object_deduplication.md
 175:6  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/index.md
 13:7  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/install/installation.md
 1183:23  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/integration/advanced_search/elasticsearch_troubleshooting.md
 226:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 462:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 579:7  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/security/token_overview.md
 328:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/solutions/cloud/aws/gitlab_aws_integration.md
 100:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/update/versions/gitlab_16_changes.md
 1057:6  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/user/application_security/api_fuzzing/performance.md
 29:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/user/application_security/api_security_testing/performance.md
 29:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/user/application_security/container_scanning/index.md
 776:63  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/user/application_security/dependency_scanning/troubleshooting_dependency_scanning.md
 80:4   warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 100:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 131:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 167:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/user/compliance/license_approval_policies.md
 59:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/user/group/saml_sso/troubleshooting.md
 212:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 227:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 257:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
 417:4  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/user/infrastructure/iac/troubleshooting.md
 91:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/user/packages/nuget_repository/index.md
 671:9  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/user/project/clusters/add_eks_clusters.md
 284:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/user/project/import/index.md
 127:5  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength

 doc/user/project/issue_board.md
 705:20  warning  Topic titles should use fewer than 70 characters.  gitlab.TopicTitleLength
  • If we limit to 90 characters: of the 76 findings, 20 are in doc/architecture, and 6 are in doc/development. That's 50 net new warnings we care about.
  • If we limit to 80 characters: of the 153 findings, 30 are in doc/architecture, and 19 are in doc/development. That's 104 net new warnings we care about.

Related issues

Author's checklist

If you are a GitLab team member and only adding documentation, do not add any of the following labels:

  • ~"frontend"
  • ~"backend"
  • ~"type::bug"
  • ~"database"

These labels cause the MR to be added to code verification QA issues.

Reviewer's checklist

Documentation-related MRs should be reviewed by a Technical Writer for a non-blocking review, based on Documentation Guidelines and the Style Guide.

If you aren't sure which tech writer to ask, use roulette or ask in the #docs Slack channel.

  • If the content requires it, ensure the information is reviewed by a subject matter expert.
  • Technical writer review items:
    • Ensure docs metadata is present and up-to-date.
    • Ensure the appropriate labels are added to this MR.
    • Ensure a release milestone is set.
    • If relevant to this MR, ensure content topic type principles are in use, including:
      • The headings should be something you'd do a Google search for. Instead of Default behavior, say something like Default behavior when you close an issue.
      • The headings (other than the page title) should be active. Instead of Configuring GDK, say something like Configure GDK.
      • Any task steps should be written as a numbered list.
      • If the content still needs to be edited for topic types, you can create a follow-up issue with the docs-technical-debt label.
  • Review by assigned maintainer, who can always request/require the reviews above. Maintainer's review can occur before or after a technical writer review.
Edited by Amy Qualls

Merge request reports