Skip to content

Commit e24f322

Browse files
authored
Merge pull request #264 from adambkaplan/ship-docs-restructure
feat: SHIP-0041 Documentation Restructure
2 parents 5fd22b5 + f71429b commit e24f322

File tree

1 file changed

+213
-0
lines changed

1 file changed

+213
-0
lines changed

ships/0041-docs-restructure.md

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
<!--
2+
Copyright The Shipwright Contributors
3+
4+
SPDX-License-Identifier: Apache-2.0
5+
-->
6+
7+
---
8+
title: SHIP-0041 Documentation Restructure
9+
authors:
10+
- "@adambkaplan"
11+
reviewers:
12+
- TBD
13+
approvers:
14+
- TBD
15+
creation-date: 2025-04-21
16+
last-updated: 2025-04-21
17+
status: provisional
18+
see-also:
19+
- https://github.com/shipwright-io/build/blob/main/docs/proposals/shipwright-website.md
20+
replaces: []
21+
superseded-by: []
22+
---
23+
24+
# Documentation Restructure
25+
26+
## Release Signoff Checklist
27+
28+
- [ ] Enhancement is `implementable`
29+
- [ ] Design details are appropriately documented from clear requirements
30+
- [ ] Test plan is defined
31+
- [ ] Graduation criteria for dev preview, tech preview, GA
32+
- [ ] User-facing documentation is created in [docs](/docs/)
33+
34+
## Open Questions [optional]
35+
36+
TBD
37+
38+
## Summary
39+
40+
This proposes a restructure of the documentation on [shipwright.io](https://shipwright.io) so that
41+
it incorporates the CNCF best practices for documentation as outlined in the CNCF
42+
[tech docs primer](https://github.com/cncf/techdocs/blob/main/docs/sandbox-doc-primer.md).
43+
44+
## Motivation
45+
46+
Our current docs practice has engineers write docs alongside code in respective git repositories.
47+
The documentation (in Markdown) is then synced to the website repository. We intended on writing
48+
automation for this process but that never came to fruition.
49+
50+
Keeping docs review alongside code review has led to several negative outcomes:
51+
52+
- Bugs related to broken links, as developers have no means to preview how their content can/should
53+
be linked.
54+
- Inability to define or test the Docsy metadata that impacts the docs presentation on the website.
55+
- Tendency to use "flat" trees to organize documentation in git.
56+
- Mixing of different documentation
57+
[types](https://github.com/cncf/techdocs/blob/main/docs/sandbox-doc-primer.md#an-information-model-for-user-documentation)
58+
within a single article.
59+
60+
This proposal aims to fix these issues through improved content structure and docs review process.
61+
62+
### Goals
63+
64+
- Reduce documentation bugs related to broken links.
65+
- Present existing content in ways that are relevant to end users and administrators.
66+
- Encourage end user evaluation and adoption.
67+
- Provide a single source of truth for documentation.
68+
69+
### Non-Goals
70+
71+
- Migrate off of Docsy and Markdown to another platform/docs stack.
72+
- Change structure of blogs and other content.
73+
- Provide multi-version support in the documentation.
74+
- Improve/overhaul contributor guidelines.
75+
- Create net new content for missing features.
76+
77+
## Proposal
78+
79+
This is where we get down to the nitty gritty of what the proposal actually is.
80+
81+
### User Stories [optional]
82+
83+
Detail the things that people will be able to do if this is implemented. Include as much detail as
84+
possible so that people can understand the "how" of the system. The goal here is to make this feel
85+
real for users without getting bogged down.
86+
87+
#### Quick Start
88+
89+
As a developer evaluating Shipwright, I want a quick start guide to demonstrate the project's value.
90+
91+
#### Concept Articles
92+
93+
As a developer using Shipwright, I want to understand what the different API objects represent.
94+
95+
#### Task Articles
96+
97+
As a developer using Shipwright, I want to know how to perform specific types of builds.
98+
99+
#### Reference Articles
100+
101+
As a developer using Shipwright, I want to review the full API specification so that I can
102+
configure Builds for my specific situation.
103+
104+
### Implementation Notes
105+
106+
#### Key Personas
107+
108+
The documentation will be updated with the following user personas in mind:
109+
110+
- **Evaluators**: These are leaders who are considering Shipwright's merits for a team/organization.
111+
- **Developers**: These are individuals who use Shipwright to build their applications on a daily
112+
basis. These may also be platform engineers/architects who which to incorporate Shipwright into
113+
CI/CD processes.
114+
- **Administrators**: These are individuals who deploy and manage Shipwright for others.
115+
116+
#### Overall Structure
117+
118+
Shipwright's documentation will be updated to contain four main sections:
119+
120+
- "Quick Start"
121+
- "Concepts"
122+
- "How To"
123+
- "Reference"
124+
125+
**_Quick Start_** will contain a small number of articles aimed to help evaluators demonstrate
126+
Shipwright for others. The goal is to get an individual from "zero" to a successful "hello world"
127+
build as quickly as possible.
128+
129+
**_Concepts_** will contain articles that explain "what" something is in Shipwright, and "why" it
130+
exists. It will also help developers and evaluators understand how the different parts of
131+
Shipwright relate to one another.
132+
133+
**_How To_** will contain articles that explain how to perform specific tasks. These may be divided
134+
into sub-sections or groups, such as "Installation", "Running Builds", and so forth.
135+
136+
**_Reference_** will contain reference documentation for developers and administrators. Ideally
137+
some of this content is generated directly from source code.
138+
139+
Accessing the main [docs page](https://shipwright.io/docs) will direct visitors to a landing page,
140+
with clear links to these other sections.
141+
142+
#### Docs Migration
143+
144+
With the new outline in place, the existing content will be moved to new articles in appropriate
145+
sections. Content should be moved in focused stages to ensure continuity. Changes to structure and
146+
format should be expected. Net new content should be minimized to narrow the scope of changes.
147+
148+
#### Redirects
149+
150+
For content that is moved, Hugo [aliases](https://gohugo.io/methods/page/aliases/) should be used
151+
to automatically configure redirects.
152+
153+
#### Removal of "in-tree" Documentation
154+
155+
Once content has been restructured, existing "in-tree" end user documentation in the `build`,
156+
`cli`, and `operator` repositories should be migrated to the website repository. Not all docs that
157+
are currently "in-tree" need to be migrated - only those that are relevant to the evaluator,
158+
developer, or administrator personas described earlier. Once completed, this content should be
159+
removed and replaced with a link to the appropriate Shipwright website article.
160+
161+
Moving forward, documentation can be submitted in one of two ways:
162+
163+
- Filing an appropriate PR against the `website` repository.
164+
- Adding appropriate code comments or content that leads to auto-generated reference content.
165+
166+
Shipwright maintainers should insist that all features provide documentation at minimum via
167+
generated reference content. Ideally contributors or the community work together to produce other
168+
forms of content.
169+
170+
171+
### Test Plan
172+
173+
Existing CI/CD infrastructure will be utilized to validate the new docs structure is deployable.
174+
175+
### Release Criteria
176+
177+
#### Removing a deprecated feature [if necessary]
178+
179+
N/A
180+
181+
#### Upgrade Strategy [if necessary]
182+
183+
N/A
184+
185+
### Risks and Mitigations
186+
187+
TBD
188+
189+
> What are the risks of this proposal and how do we mitigate? Think broadly. For example, consider
190+
> both security and how this will impact the larger Shipwright ecosystem.
191+
192+
> How will security be reviewed and by whom? How will UX be reviewed and by whom?
193+
194+
## Drawbacks
195+
196+
TBD
197+
198+
> The idea is to find the best form of an argument why this enhancement should _not_ be implemented.
199+
200+
## Alternatives
201+
202+
TBD
203+
204+
> Similar to the `Drawbacks` section the `Alternatives` section is used to highlight and record other
205+
> possible approaches to delivering the value proposed by an enhancement.
206+
207+
## Infrastructure Needed [optional]
208+
209+
No new infrastructure.
210+
211+
## Implementation History
212+
213+
- 2025-04-21: Created as `provisional`

0 commit comments

Comments
 (0)