Test for subheadings that are too long
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 indoc/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 indoc/development
. That's 104 net new warnings we care about.
Related issues
Author's checklist
-
Optional. Consider taking the GitLab Technical Writing Fundamentals course. -
Follow the: -
If you're adding a new page, add the product tier badge under the H1 topic title. -
If you are a GitLab team member, request a review based on: - The documentation page's metadata.
- The associated Technical Writer.
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 likeDefault behavior when you close an issue
. -
The headings (other than the page title) should be active. Instead of Configuring GDK
, say something likeConfigure 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.