mirror of
https://gitlab.com/gitlab-org/gitlab-foss.git
synced 2025-08-01 16:04:19 +00:00
664 lines
35 KiB
Markdown
664 lines
35 KiB
Markdown
---
|
|
stage: none
|
|
group: unassigned
|
|
info: For assistance with this Style Guide page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-other-projects-and-subjects.
|
|
title: Documentation workflow
|
|
---
|
|
|
|
Documentation at GitLab follows a workflow.
|
|
The process for creating and maintaining GitLab product documentation depends on whether the documentation is:
|
|
|
|
- [A new feature or feature enhancement](#documentation-for-a-product-change): Delivered for a specific milestone and associated with specific code changes.
|
|
This documentation has the highest priority.
|
|
|
|
- [Changes outside a specific milestone](#documentation-feedback-and-improvements): Usually not associated with a specific code change, is of lower priority, and
|
|
is open to all GitLab contributors.
|
|
|
|
Documentation is [required](../contributing/merge_request_workflow.md#definition-of-done)
|
|
for a milestone when:
|
|
|
|
- A new or enhanced feature is shipped that impacts the user or administrator experience.
|
|
- There are changes to the user interface or API.
|
|
- A process, workflow, or previously documented feature is changed.
|
|
- A feature is deprecated or removed.
|
|
|
|
Documentation is not typically required when a **backend feature** is added or changed.
|
|
|
|
## Pipelines and branch naming
|
|
|
|
The CI/CD pipelines for the `gitlab` and `gitlab-runner` projects are configured to
|
|
run shorter, faster pipelines on merge requests that contain only documentation changes.
|
|
|
|
If you submit documentation-only changes to `omnibus-gitlab`, `charts/gitlab`, or `gitlab-operator`,
|
|
to make the shorter pipeline run, you must follow these guidelines when naming your branch:
|
|
|
|
| Branch name | Valid example |
|
|
|:----------------------|:-----------------------------|
|
|
| Starting with `docs/` | `docs/update-api-issues` |
|
|
| Starting with `docs-` | `docs-update-api-issues` |
|
|
| Ending in `-docs` | `123-update-api-issues-docs` |
|
|
|
|
Additionally, changes to these files in the `gitlab` project automatically trigger a long pipeline
|
|
because some code tests use these files as examples:
|
|
|
|
- `doc/_index.md`
|
|
- `doc/api/settings.md`
|
|
|
|
When you edit these pages, the long pipeline appears the same as in a code MR,
|
|
but you do not need any additional approvals. If the `pre-merge-checks` job fails on merge with a
|
|
`Expected latest pipeline (link) to be a tier-3 pipeline!` message, add the `~"pipeline::tier-3"`
|
|
label to the MR and run a new pipeline.
|
|
|
|
If your merge requests include any code changes, long pipelines are run for them.
|
|
|
|
For more information on long pipelines, see [pipelines for the GitLab project](../pipelines/_index.md).
|
|
|
|
## Moving content
|
|
|
|
When you move content to a new location, and edit the content in the same merge request,
|
|
use separate commits.
|
|
|
|
Separate commits help the reviewer, because the MR diff for moved content
|
|
does not clearly highlight edits.
|
|
When you use separate commits, the reviewer can verify the location change
|
|
in the first commit diff, then the content changes in subsequent commits.
|
|
|
|
For example, if you move a page, but also update the content of the page:
|
|
|
|
1. In the first commit: Move the content to its new location and put [redirects](redirects.md) in place if required.
|
|
If you can, fix broken links in this commit.
|
|
1. In subsequent commits: Make content changes. Fix broken links if you haven't already.
|
|
1. In the merge request: Explain the commits in the MR description and in a
|
|
comment to the reviewer.
|
|
|
|
You can add as many commits as you want, but make sure the first commit only moves the content,
|
|
and does not edit it.
|
|
|
|
## Documentation for a product change
|
|
|
|
Documentation is required for any new or changed feature, and is:
|
|
|
|
- Created or updated as part of feature development, and is almost always in
|
|
the same merge request as the feature code. Including documentation in the
|
|
same merge request as the code eliminates the possibility that code and
|
|
documentation get out-of-sync.
|
|
- Required with the delivery of a feature for a specific milestone as part of the
|
|
GitLab [definition of done](../contributing/merge_request_workflow.md#definition-of-done).
|
|
- Linked from the release post.
|
|
|
|
### Developer responsibilities
|
|
|
|
Developers are the primary authors of documentation for a feature or feature
|
|
enhancement. They are responsible for:
|
|
|
|
- Developing initial content required for a feature.
|
|
- Liaising with their product manager to understand what documentation must be
|
|
delivered, and when.
|
|
- Requesting technical reviews from other developers in their group.
|
|
- Requesting documentation reviews from the technical writer
|
|
[assigned to the DevOps stage group](https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments)
|
|
that is delivering the new feature or feature enhancements.
|
|
|
|
When possible, the merge request with the code should include the
|
|
documentation.
|
|
For more information, see the [guidelines](feature_flags.md).
|
|
|
|
The author of this MR, either a frontend or backend developer, should write the documentation.
|
|
|
|
{{< alert type="note" >}}
|
|
|
|
Community Contributors can ask for additional help from GitLab team members.
|
|
|
|
{{< /alert >}}
|
|
|
|
#### Authoring
|
|
|
|
Because the documentation is an essential part of the product, if a `~"type::feature"`
|
|
issue also contains the `~documentation` label, you must ship the new or
|
|
updated documentation with the code of the feature.
|
|
|
|
Technical writers are happy to help, as requested and planned on an
|
|
issue-by-issue basis.
|
|
|
|
For feature issues requiring documentation, follow the process below unless
|
|
otherwise agreed with the product manager and technical writer:
|
|
|
|
- Include any new and edited documentation, either in:
|
|
- The merge request introducing the code.
|
|
- A separate merge request raised around the same time.
|
|
- Use the [documentation requirements](#documentation-requirements) developed
|
|
by the product manager in the issue and discuss any further documentation
|
|
plans or ideas as needed.
|
|
|
|
If the new or changed documentation requires extensive collaboration or
|
|
conversation, a separate, linked issue can be used for the planning process.
|
|
|
|
- Use the [Documentation guidelines](_index.md),
|
|
and other resources linked from there, including:
|
|
- [Documentation folder structure](site_architecture/folder_structure.md).
|
|
- [Documentation Style Guide](styleguide/_index.md).
|
|
- [Markdown Guide](../../user/markdown.md).
|
|
- Contact the technical writer for the relevant
|
|
[DevOps stage](https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments)
|
|
in your issue or merge request, or in the `#docs` Slack channel, if you:
|
|
- Need any help to choose the correct place for documentation.
|
|
- Want to discuss a documentation idea or outline.
|
|
- Want to request any other help.
|
|
- If you are working on documentation in a separate merge request, ensure the
|
|
documentation is merged as close as possible to the code merge.
|
|
- If the feature has a feature flag, [follow the policy for documenting feature-flagged issues](feature_flags.md).
|
|
|
|
#### Review
|
|
|
|
Before merging, documentation changes committed by the developer must be
|
|
reviewed by:
|
|
|
|
- The code reviewer for the merge request. This is known as a technical review.
|
|
- Optionally, others involved in the work such as other developers or the
|
|
product manager.
|
|
- The technical writer for the DevOps stage group, except in exceptional
|
|
circumstances where a [post-merge review](#post-merge-reviews)
|
|
can be requested.
|
|
- A maintainer of the project.
|
|
|
|
### Product manager responsibilities
|
|
|
|
Product managers are responsible for the
|
|
[documentation requirements](#documentation-requirements) for a feature or
|
|
feature enhancement. They can also:
|
|
|
|
- Connect with the technical writer for discussion and collaboration.
|
|
- Review documentation themselves.
|
|
|
|
For issues requiring any new or updated documentation, the product manager
|
|
must:
|
|
|
|
- Add the `~documentation` label.
|
|
- Confirm or add the documentation requirements.
|
|
- Ensure the issue contains:
|
|
- Any new or updated feature name.
|
|
- Overview, description, and use cases when applicable (as required by the
|
|
[documentation folder structure](site_architecture/folder_structure.md)).
|
|
|
|
Everyone is encouraged to draft the documentation requirements in the issue.
|
|
However, a product manager will:
|
|
|
|
- When the issue is assigned a release milestone, review and update the
|
|
Documentation details.
|
|
- By the kickoff, finalize the documentation details.
|
|
|
|
### Technical writer responsibilities
|
|
|
|
Technical writers are responsible for:
|
|
|
|
- Participating in issue discussions and reviewing MRs for the upcoming
|
|
milestone.
|
|
- Reviewing documentation requirements in issues when called upon.
|
|
- Answering questions, and helping and providing advice throughout the
|
|
authoring and editing process.
|
|
- Reviewing all significant new and updated documentation content, whether
|
|
before merge or after it is merged.
|
|
- Assisting the developer and product manager with feature documentation
|
|
delivery.
|
|
- Ensuring that issues and MRs are labeled appropriately, and that doc content has the correct [metadata](metadata.md).
|
|
|
|
#### Planning
|
|
|
|
The technical writer:
|
|
|
|
- Reviews their group's `~"type::feature"` issues that are part of the next milestone
|
|
to get a sense of the scope of content likely to be authored.
|
|
- Recommends the `~documentation` label on issues from that list which don't
|
|
have it but should, or inquires with the PM to determine if documentation is
|
|
truly required.
|
|
- For `~direction` issues from that list, reads the full issue and reviews its
|
|
Documentation requirements section. Addresses any recommendations or
|
|
questions with the PMs and others collaborating on the issue to
|
|
refine or expand the Documentation requirements.
|
|
- Updates the Technical Writing milestone plan ([example](https://gitlab.com/gitlab-org/technical-writing/team-tasks/-/issues/521) created from the [issue template](https://gitlab.com/gitlab-org/technical-writing/team-tasks/-/blob/main/.gitlab/issue_templates/tw-milestone-plan.md)).
|
|
- Add a link to the board or filter that shows the planned documentation and UI text work for the upcoming milestone.
|
|
- Confirm that the group PM or EM is aware of the planned work.
|
|
|
|
#### Collaboration
|
|
|
|
By default, the developer will work on documentation changes independently, but
|
|
the developer, product manager, or technical writer can propose a broader
|
|
collaboration for any given issue.
|
|
|
|
Additionally, technical writers are available for questions at any time.
|
|
|
|
#### Review
|
|
|
|
Technical writers provide non-blocking reviews of all documentation changes, before or after
|
|
the change is merged. Identified issues that would block or slow a change's
|
|
release are to be handled in linked, follow-up MRs.
|
|
|
|
### Documentation requirements
|
|
|
|
Feature documentation requirements should be included as part of
|
|
the issue for planning that feature in the **Documentation** section in the
|
|
issue description. Issues created using the
|
|
[**Feature Proposal** template](https://gitlab.com/gitlab-org/gitlab/-/raw/master/.gitlab/issue_templates/Feature%20proposal%20-%20detailed.md)
|
|
have this section by default.
|
|
|
|
Anyone can add these details, but the product manager who assigns the issue to
|
|
a specific release milestone will ensure these details are present and
|
|
finalized by the time of that milestone's kickoff.
|
|
|
|
Developers, technical writers, and others may help further refine this plan at
|
|
any time on request.
|
|
|
|
The following details should be included:
|
|
|
|
- What concepts and procedures should the documentation guide and enable the
|
|
user to understand or accomplish?
|
|
- To this end, what new pages are needed, if any? What pages or subsections
|
|
need updates? Consider changes and additions to user, admin, and API
|
|
documentation.
|
|
- For any guide or instruction set, should it help address a single use case,
|
|
or be flexible to address a certain range of use cases?
|
|
- Do we need to update a previously recommended workflow? Should we link the
|
|
new feature from various relevant locations? Consider all ways documentation
|
|
should be affected.
|
|
- Are there any key terms or task descriptions that should be included so that
|
|
the documentation is found in relevant searches?
|
|
- Include suggested titles of any pages or subsection headings, if applicable.
|
|
- List any documentation that should be cross-linked, if applicable.
|
|
|
|
### Including documentation with code
|
|
|
|
Currently, the Technical Writing team strongly encourages including
|
|
documentation in the same merge request as the code that it relates to, but
|
|
this isn't strictly mandatory. It's still common for documentation to be added
|
|
in an MR separate from the feature MR.
|
|
|
|
Engineering teams may elect to adopt a workflow where it is **mandatory** that
|
|
documentation is included in the code MR, as part of their
|
|
[definition of done](../contributing/merge_request_workflow.md#definition-of-done).
|
|
When a team adopts this workflow, that team's engineers must include their
|
|
documentation in the **same** MR as their feature code, at all times.
|
|
|
|
#### Downsides of separate documentation MRs
|
|
|
|
A workflow that has documentation separated into its own MR has many downsides.
|
|
|
|
If the documentation merges **before** the feature:
|
|
|
|
- GitLab.com users might try to use the feature before it's released, driving
|
|
support tickets.
|
|
- If the feature is delayed, the documentation might not be pulled/reverted in
|
|
time and could be accidentally included on GitLab Self-Managed for that
|
|
release.
|
|
|
|
If the documentation merges **after** the feature:
|
|
|
|
- The feature might be included on GitLab Self-Managed, but without any
|
|
documentation if the documentation MR misses the cutoff.
|
|
- A feature might show up in the GitLab.com user interface before any
|
|
documentation exists for it. Users surprised by this feature will search for
|
|
documentation and won't find it, possibly driving support tickets.
|
|
|
|
Having two separate MRs means:
|
|
|
|
- Two different people might be responsible for merging one feature, which
|
|
isn't workable with an asynchronous work style. The feature might merge while
|
|
the technical writer is asleep, creating a potentially lengthy delay between
|
|
the two merges.
|
|
- If the documentation MR is assigned to the same maintainer as responsible for
|
|
the feature code MR, they will have to review and juggle two MRs instead of
|
|
dealing with just one.
|
|
|
|
Documentation quality might be lower, because:
|
|
|
|
- Having documentation in a separate MR will mean far fewer people will see and
|
|
verify them, increasing the likelihood that issues will be missed.
|
|
- In a split workflow, engineers might only create the documentation MR after
|
|
the feature MR is ready, or almost ready. This gives the technical writer
|
|
little time to learn about the feature to do a good review. It also
|
|
increases pressure on them to review and merge faster than desired, letting
|
|
problems slip in due to haste.
|
|
|
|
#### Benefits of always including documentation with code
|
|
|
|
Including documentation with code (and doing it early in the development
|
|
process) has many benefits:
|
|
|
|
- There are no timing issues connected to releases:
|
|
- If a feature slips to the next release, the documentation slips too.
|
|
- If the feature just makes it into a release, the documentation just
|
|
makes it in too.
|
|
- If a feature makes it to GitLab.com early, the documentation will be ready
|
|
for our early adopters.
|
|
- Only a single person will be responsible for merging the feature (the code
|
|
maintainer).
|
|
- The technical writer will have more time to gain an understanding of the
|
|
feature and will be better able to verify the content of the documentation in
|
|
the Review App or GDK. They will also be able to offer advice for improving
|
|
the user interface text or offer additional use cases.
|
|
- The documentation will have increased visibility:
|
|
- Everyone involved in the merge request can review the documentation. This
|
|
could include product managers, multiple engineers with deep domain
|
|
knowledge, the code reviewers, and the maintainer. They will be more likely
|
|
to catch issues with examples, and background or concepts that the
|
|
technical writer may not be aware of.
|
|
- Increasing visibility of the documentation also has the side effect of
|
|
improving other engineers' documentation. By reviewing each other's MRs,
|
|
each engineer's own documentation skills will improve.
|
|
- Thinking about the documentation early can help engineers generate better
|
|
examples, as they will need to think about what examples a user will want,
|
|
and will need to ensure the code they write implements that example properly.
|
|
|
|
#### Documentation with code as a workflow
|
|
|
|
To have documentation included with code as a mandatory workflow, some
|
|
changes might need to happen to a team's current workflow:
|
|
|
|
- The engineers must strive to include the documentation early in the
|
|
development process, to give ample time for review, not just from the
|
|
technical writer, but also the code reviewer and maintainer.
|
|
- Reviewers and maintainers must also review the documentation during code
|
|
reviews to ensure the described processes match the expected use of the
|
|
feature and that examples are correct.
|
|
They do **not** need to worry about style or grammar.
|
|
- The technical writer must be assigned as a reviewer on the MR directly and not only pinged.
|
|
This can be done at any time, but must be before the code maintainer review.
|
|
It's common to have both the documentation and code reviews happening at the
|
|
same time, with the author, reviewer, and technical writer discussing the
|
|
documentation together.
|
|
- When the documentation is ready, the technical writer will click **Approve**
|
|
and usually will no longer be involved in the MR. If the feature changes
|
|
during code review and the documentation is updated, the technical writer
|
|
must be reassigned the MR to verify the update.
|
|
- Maintainers are allowed to merge features with the documentation *as-is*,
|
|
even if the technical writer hasn't given final approval yet. The
|
|
**documentation reviews must not be blockers**. Therefore, it's important to
|
|
get the documentation included and assigned to the technical writers early.
|
|
If the feature is merged before final documentation approval, the maintainer
|
|
must create a [post-merge follow-up issue](#post-merge-reviews),
|
|
and assign it to both the engineer and technical writer.
|
|
|
|
You can visualize the parallel workflow for code and documentation reviews as:
|
|
|
|
```mermaid
|
|
graph TD
|
|
A("Feature MR Created (Engineer)") --> |Assign| B("Code Review (reviewer)")
|
|
B --> |"Approve / Reassign"| C("Code Review (maintainer)")
|
|
C --> |Approve| F("Merge (maintainer)")
|
|
A --> D("Docs Added (Engineer)")
|
|
D --> |Assign| E("Docs Review (Tech Writer)")
|
|
E --> |Approve| F
|
|
```
|
|
|
|
For complex features split over multiple merge requests:
|
|
|
|
- If a merge request is implementing components for a future feature, but the
|
|
components aren't accessible to users yet, then no documentation should be
|
|
included.
|
|
- If a merge request will expose a feature to users in any way, such as an
|
|
enabled user interface element, an API endpoint, or anything similar, then
|
|
that MR **must** have documentation. This might mean multiple
|
|
documentation additions could happen in the buildup to the implementation of
|
|
a single large feature, for example API documentation and feature usage
|
|
documentation.
|
|
- If it's unclear which engineer should add the feature documentation into
|
|
their MR, the engineering manager should decide during planning, and tie the
|
|
documentation to the last MR that must be merged before a feature is
|
|
considered released. This is often, but not always, a frontend MR.
|
|
|
|
## UI text
|
|
|
|
### Planning and authoring
|
|
|
|
A product designer should consult the technical writer for their stage group when planning to add
|
|
or change UI text.
|
|
|
|
The technical writer can offer an initial review of any ideas, plans, or actual text.
|
|
The technical writer can be asked to draft text when provided with the context and goal of the text.
|
|
The context might include where the text would appear and what information to convey, which typically answers
|
|
one or more of these questions:
|
|
|
|
- What does this do?
|
|
- How do I use it?
|
|
- Why should I care?
|
|
|
|
Consider tagging the technical writer once in a review request with a message indicating where reviews are needed.
|
|
This will help manage the volume of notifications per review round.
|
|
|
|
### MR Reviews
|
|
|
|
After the merge request is created, all changes and additions to text in the UI **must** be reviewed by
|
|
the technical writer.
|
|
These might include labels (buttons, menus, column headers, and UI sections) or any phrases that would be
|
|
displayed in the UI, such as microcopy or error messages.
|
|
|
|
<i class="fa-youtube-play" aria-hidden="true"></i>
|
|
For more information about writing and reviewing UI text,
|
|
see [Copy That: Helping your Users Succeed with Effective Product Copy](https://www.youtube.com/watch?v=M_Q1RO0ky2c).
|
|
<!-- Video published on 2016-05-26 -->
|
|
|
|
## Release posts
|
|
|
|
The technical writer for each [stage group](https://handbook.gitlab.com/handbook/product/categories/#devops-stages)
|
|
reviews their group's [feature blocks](https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#content-reviews)
|
|
(release post items) authored by the product manager.
|
|
|
|
For each release, a single technical writer is also assigned as the [Technical Writing Lead](https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#tw-lead) to perform the [structural check](https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#structural-check) and other duties.
|
|
|
|
## Monthly documentation releases
|
|
|
|
When a new GitLab version is released, the Technical Writing team releases
|
|
[version-specific published documentation](https://gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/-/blob/main/doc/releases.md).
|
|
|
|
## Documentation feedback and improvements
|
|
|
|
To make a documentation change that is not associated with a specific code change, the Technical Writing team encourages contributors to create an MR.
|
|
|
|
If you start with an issue rather than an MR, use the [documentation template](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Documentation).
|
|
For the labels you should apply, see [labels](#labels).
|
|
|
|
Also include:
|
|
|
|
- Milestone: `Backlog` until the work is scheduled for a milestone.
|
|
- Assignee: `None` until the work is scheduled for a milestone.
|
|
In the issue description or comments, mention (`@username`) the technical writer assigned to the group for awareness.
|
|
- Description: starts with `Docs:` or `Docs feedback:`
|
|
- A task checklist or next step to deliver an MVC.
|
|
- Optional. If the issue is suitable for a community contributor: [`Seeking community contributions`](https://gitlab.com/groups/gitlab-org/-/issues/?sort=created_date&state=opened&label_name%5B%5D=Seeking%20community%20contributions&first_page_size=50) and [`quick win`](https://gitlab.com/groups/gitlab-org/-/issues/?sort=created_date&state=opened&label_name%5B%5D=quick%20win&first_page_size=50).
|
|
|
|
If an issue requires input from the development team before a technical writer can start work, it should follow the stage and group's issue lifecycle.
|
|
For an example of an issue lifecycle, see [Plan stage issues](https://handbook.gitlab.com/handbook/engineering/development/dev/plan/#issues).
|
|
|
|
### Review and triage documentation-only backlog issues
|
|
|
|
Routine review and triage of documentation feedback and improvement issues for your groups helps us spend the [time we have](https://handbook.gitlab.com/handbook/product/ux/technical-writing/#prioritization) on actionable issues that improve the user experience.
|
|
|
|
#### Prerequisites
|
|
|
|
- An issue triage board for each group that you are the assigned technical writer for. If you don't have an issue triage board for your group, set one up called `Docs only backlog triage - group name`. See an [example board](https://gitlab.com/gitlab-org/gitlab/-/boards/8944610?not[label_name][]=type%3A%3Afeature¬[label_name][]=type%3A%3Abug&label_name[]=documentation&label_name[]=group%3A%3Aproject%20management) for the `Project Management` group.
|
|
- The filter criteria should include **Label=**`documentation`, **Label=**`group::groupname`, **Label!=**`type::feature`, **Label!=**`type:bug`.
|
|
- In **Edit board**, ensure **Show the Open list** is selected.
|
|
- On the issue board, select **Create list**, and set the label to `tw:triaged`.
|
|
|
|
To review and triage documentation feedback and improvement issues for your groups:
|
|
|
|
1. Once a month, on the issue triage boards for your groups, check the **Open** list for new issues.
|
|
1. Apply the labels described in [documentation feedback and improvements](#documentation-feedback-and-improvements).
|
|
1. Aim to keep the list of open, untriaged issues at **<10**.
|
|
1. Share the triaged list with the group and group PM.
|
|
|
|
## Hackathons
|
|
|
|
The Technical Writing team takes part in the [GitLab Hackathon](https://about.gitlab.com/community/hackathon/)
|
|
and sometimes hosts a documentation-only Hackathon.
|
|
|
|
### Create issues for a Hackathon
|
|
|
|
We often create documentation issues for a Hackathon. These issues are typically based on results found when you run Vale against the documentation.
|
|
|
|
1. Run Vale against the full docset. Go to the GitLab repo and run:
|
|
|
|
`find doc -name '*.md' | sort | xargs vale --minAlertLevel suggestion --output line > ../results.txt`
|
|
|
|
1. Create issues. You have a few options:
|
|
|
|
- Use a [script](https://gitlab.com/gitlab-org/gitlab-docs/-/blob/main/scripts/create_issues.js) to create one issue for each Markdown file listed in the Vale results.
|
|
This script uses the [`Doc cleanup` issue template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Doc_cleanup.md).
|
|
- Create issues one at a time by using the `Doc cleanup` issue template.
|
|
- Create issues in bulk by using the [Issues API](../../api/issues.md#new-issue).
|
|
|
|
Ensure that the labels assigned to the issues match those in the `Doc cleanup` issue template.
|
|
|
|
### Assign an issue to a community contributor
|
|
|
|
To assign an issue to a community contributor:
|
|
|
|
1. Remove the `Seeking community contributions` label.
|
|
1. Assign the user by typing `/assign @username` in a comment, where `@username` is the contributor's handle.
|
|
1. Mention the user in a comment, telling them the issue is now assigned to them.
|
|
|
|
Try to limit each contributor to no more than three issues at a time. You can assign another issue as soon as they've opened an MR for one of the issues they're already assigned.
|
|
|
|
### Review Hackathon merge requests
|
|
|
|
When a community contributor opens a Hackathon merge request:
|
|
|
|
1. View the related issue. Ensure the user who authored the MR is the same user who asked to be assigned to the issue.
|
|
- If the user is not listed in the issue, and another user has asked to work on the issue, do not merge the MR.
|
|
Ask the MR author to find an issue that has not already been assigned or point them to [Contribute to GitLab development](../contributing/_index.md).
|
|
|
|
1. Work to merge the merge request.
|
|
1. When you merge, ensure you close the related issue.
|
|
|
|
## Labels
|
|
|
|
The Technical Writing team uses the following [labels](../../user/project/labels.md)
|
|
on issues and merge requests:
|
|
|
|
- A label for the type of change. The two labels used most often are:
|
|
- `~"type::feature"`
|
|
- `~"type::maintenance"` with `~"maintenance::refactor"`
|
|
- A stage and group label. For example:
|
|
- `~devops::create`
|
|
- `~group::source code`
|
|
- The `~documentation` specialization label.
|
|
- The `~Technical Writing` team label.
|
|
|
|
The [documentation merge request template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/merge_request_templates/Documentation.md)
|
|
includes some of these labels.
|
|
|
|
### Available labels
|
|
|
|
Any issue or merge request a technical writer works on must include the `Technical Writing` label.
|
|
|
|
To further classify the type of effort, include one or more of the following labels:
|
|
|
|
- [`Category:Docs Site`](https://gitlab.com/groups/gitlab-org/-/labels?subscribed=&sort=relevance&search=Category%3ADocs+Site): Documentation website infrastructure or code. This is not needed for issues related to the documentation itself. Issues with this label are included on the [Docs Workflow issue board](https://gitlab.com/groups/gitlab-org/-/boards/4340643?label_name[]=Category%3ADocs%20Site).
|
|
- [`development guidelines`](https://gitlab.com/gitlab-org/gitlab/-/labels?utf8=%E2%9C%93&subscribed=&search=development+guidelines): Files in the `/developer` directory.
|
|
- [`docs-missing`](https://gitlab.com/groups/gitlab-org/-/labels?subscribed=&sort=relevance&search=docs-missing): Documentation for a feature is missing. Documentation is required with the delivery of a feature for a specific milestone as part of the GitLab [definition of done](../contributing/merge_request_workflow.md#definition-of-done). Add this label to the original feature MR or issue where documentation is missing. Keep the label for historical tracking and use `tw::finished` to indicate when documentation is completed. Does not apply to [experiment features](../../policy/development_stages_support.md#experiment).
|
|
- [`documentation`](https://gitlab.com/groups/gitlab-org/-/labels?utf8=%E2%9C%93&subscribed=&sort=relevance&search=documentation): Files in the `/doc` directory.
|
|
- [`global nav`](https://gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/-/labels?subscribed=&sort=relevance&search=global+nav): Left nav of the docs site. Used in the `docs-gitlab-com` project.
|
|
- [`L10N-docs`](https://gitlab.com/groups/gitlab-org/-/labels?subscribed=&sort=relevance&search=l10n-docs): Localization issue, MR, or epic that impacts the workflows of the Technical Writing team or the `docs.gitlab.com` site and infrastructure.
|
|
- [`release post item`](https://gitlab.com/groups/gitlab-org/-/labels?utf8=%E2%9C%93&subscribed=&search=release+post+item): Release post items.
|
|
- [`Technical Writing Leadership`](https://gitlab.com/gitlab-org/gitlab/-/labels?subscribed=&search=tech+writing+leadership): Work driven or owned by the Technical Writing leadership team, such as OKRs.
|
|
- [`tw-lead`](https://gitlab.com/groups/gitlab-org/-/labels?utf8=%E2%9C%93&subscribed=&search=tw-lead): MRs that are driven by or require input from one of the [stage leads](https://handbook.gitlab.com/handbook/product/ux/technical-writing/#stage-leads).
|
|
- [`tw-style`](https://gitlab.com/groups/gitlab-org/-/labels?utf8=%E2%9C%93&subscribed=&search=tw-style): Style standards for documentation and UI text.
|
|
- [`UI text`](https://gitlab.com/groups/gitlab-org/-/labels?utf8=%E2%9C%93&subscribed=&search=ui+text): Any user-facing text, such as UI text and error messages.
|
|
|
|
Other documentation labels include `vale`, `docs-only`, and `docs-channel`. These labels are optional.
|
|
|
|
### Type labels
|
|
|
|
All issues and merge requests must be classified into one of three work types: bug, feature, or maintenance.
|
|
Add one of the following labels to an issue or merge request:
|
|
|
|
- `type::feature`
|
|
- `type::bug`
|
|
- `type::maintenance`
|
|
|
|
For more information, see [work type classification](https://handbook.gitlab.com/handbook/product/groups/product-analysis/engineering/metrics/#work-type-classification).
|
|
|
|
The majority of documentation work uses the `type::maintenance` label.
|
|
You must also apply one of these subtype labels to further classify the type of maintenance work:
|
|
|
|
- `maintenance::refactor`: Edits and improvements of existing documentation.
|
|
- `maintenance::workflow`: Documentation changes that are not visible to readers, like linting and tooling updates, and metadata changes.
|
|
|
|
For example, if you open a merge request to refactor a page for CTRT, apply the `type::maintenance` and `maintenance::refactor` labels.
|
|
If you open a merge request to modify the metadata, apply the `type::maintenance` and `maintenance::workflow` labels.
|
|
|
|
### Workflow labels
|
|
|
|
Writers can use [these labels](https://gitlab.com/groups/gitlab-org/-/labels?utf8=✓&subscribed=&search=tw%3A%3A)
|
|
to describe the status of their work in an issue or merge request:
|
|
|
|
- `tw::doing`
|
|
- `tw::finished`
|
|
|
|
The technical writer who authors content usually adds the `tw::doing` label,
|
|
and the technical writer who does the review usually adds the `tw::finished` label.
|
|
For content submissions from community contributors,
|
|
the technical writer would add both labels as part of their review.
|
|
|
|
The workflow is:
|
|
|
|
1. An issue or merge request is assigned to the writer for review.
|
|
1. The writer adds the `tw::doing` label while actively working.
|
|
- If the writer stops work for more than a week,
|
|
they remove the `tw::doing` label.
|
|
- Whenever work restarts, the writer adds the `tw::doing` label again.
|
|
1. When work is complete on the issue or merge request, a technical writer (typically the
|
|
reviewer) adds the `tw::finished` label.
|
|
1. The issue or merge request is **Closed** or **Merged**.
|
|
|
|
The `tw::finished` label indicates that the writer is done with an issue or merge request
|
|
they are not closing or merging.
|
|
If the Technical Writing team is closing or merging, the issue or merge request
|
|
status overrides the scoped `tw` label status. The technical writer does not have to
|
|
use the `tw::finished` label.
|
|
|
|
If a technical writer is presented with an open issue or merge request with a
|
|
`tw::finished` label that needs more work, the writer should
|
|
re-add the `tw::doing` scoped label.
|
|
|
|
## Post-merge reviews
|
|
|
|
If not assigned to a technical writer for review prior to merging, a review must be scheduled
|
|
immediately after merge by the developer or maintainer. For this,
|
|
create an issue using the [Doc Review description template](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Doc%20Review)
|
|
and link to it from the merged merge request that introduced the documentation change.
|
|
|
|
Circumstances in which a regular pre-merge technical writer review might be skipped include:
|
|
|
|
- There is a short amount of time left before the milestone release. If fewer than three
|
|
days are remaining, seek a post-merge review and ping the writer via Slack to ensure the review is
|
|
completed as soon as possible.
|
|
- The size of the change is small and you have a high degree of confidence
|
|
that early users of the feature (for example, GitLab.com users) can easily
|
|
use the documentation as written.
|
|
|
|
Remember:
|
|
|
|
- At GitLab, we treat documentation like code. As with code, documentation must be reviewed to
|
|
ensure quality.
|
|
- Documentation forms part of the GitLab [definition of done](../contributing/merge_request_workflow.md#definition-of-done).
|
|
- That pre-merge technical writer reviews should be most common when the code is complete well in
|
|
advance of a milestone release and for larger documentation changes.
|
|
- You can request a post-merge technical writer review of documentation if it's important to get the
|
|
code with which it ships merged as soon as possible. In this case, the author of the original MR
|
|
can address the feedback provided by the technical writer in a follow-up MR.
|
|
- The technical writer can also help decide that documentation can be merged without Technical
|
|
writer review, with the review to occur soon after merge.
|
|
|
|
## Pages with no tech writer review
|
|
|
|
The documentation under `/doc/solutions` is created, maintained, copy edited,
|
|
and merged by the Solutions Architect team.
|
|
|
|
## Related topics
|
|
|
|
- [Technical Writing assignments](https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments)
|
|
- [Reviews and levels of edit](https://handbook.gitlab.com/handbook/product/ux/technical-writing/#reviews)
|
|
- [Documentation Style Guide](styleguide/_index.md)
|
|
- [Recommended word list](styleguide/word_list.md)
|
|
- [Product availability details](styleguide/availability_details.md)
|