Skip to content
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: feature documentation for build.jobs #9138

Merged
merged 21 commits into from
Apr 27, 2022

Conversation

humitos
Copy link
Member

@humitos humitos commented Apr 25, 2022

The general idea of these changes is to walk the user through the build process
itself while recommending/suggesting how to interact with that step in
particular via the config file to extend its abilities.

Besides, link to a different page where it's explained "how to use hooks" to
customize the normal build process in case the regular build process is not enough.

Decisions made:

  • Update "Build process" page (build.rst) to describe what happens behind the
    scenes in a general way
  • Link to config file keys on each step when makes sense a recommendation or a tip
  • Remove paragraph and sections that are not interesting for users (Docker
    images and where to find them)
  • Move "default versions of dependencies" to its own page since they are not one
    of the most important things users need to know about the build process immediately
  • Rename section "Build environment" to "Default environment variables" to make
    it clearer and use the keyword environment variables that will provide more
    search results
  • Remove the "example in code" section since it's useful for regular users and
    it's harder to read than the steps themselves. I think it's more distractive
    than useful now
  • Move "Build resources" below the build process itself since the most importat
    part of this page is the build process ("Understanding what's going on")
  • Create a new page "Build customization" that explains how to extend the build
    process via build.jobs by mentioning all the possible hooks. Besides, it
    contains some common examples as a guide

I think this is a good starting point and I like the result. I'd like feedback about how to expand the introduction of build-customization.rst page, in particular, to give a more descriptive scenario without introducing a lot of paragraphs 😄

🤖 Rendered version:

Closes #9067

The general idea of these changes is to walk the user through the build process
itself while recommending/suggesting how to interact with that step in
particular via the config file to extend its abilities.

Besides, link to a different page where it's explained "how to use hooks" to
customize the normal build process in case the regular build process is not enough.

Decisions made:

- Update "Build process" page (`build.rst`) to describe what happens behind the
  scenes in a general way
- Link to config file keys on each step when makes sense a recommendation or a tip
- Remove paragraph and sections that are not interesting for users (Docker
  images and where to find them)
- Move "default versions of dependencies" to its own page since they are not one
  of the most important things users need to know about the build process immediately
- Rename section "Build environment" to "Default environment variables" to make
  it clearer and use the keyword _environment variables_ that will provide more
  search results
- Remove the "example in code" section since it's useful for regular users and
  it's harder to read than the steps themselves. I think it's more distractive
  than useful now
- Move "Build resources" below the build process itself since the most importat
  part of this page is the build process ("Understanding what's going on")
- Create a new page "Build customization" that explains how to extend the build
  process via `build.jobs` by mentioning all the possible hooks. Besides, it
  contains some common examples as a guide
@humitos humitos requested a review from a team as a code owner April 25, 2022 15:36
We don't want to expose the exact commands to the users in the documentation.
Besides, using jobs from the beginning is easier to understand `build.jobs`
config key later.
Copy link
Member

@ericholscher ericholscher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a great refactor! I'm excited to ship this, as it's a great improvement. I did a bunch of copyediting, so sorry for the noise. Overall this is wondeful.

I think the main thing we need to address is standardizing what we call build steps, since we seem to be all over the place there.

docs/user/builds.rst Outdated Show resolved Hide resolved
docs/user/builds.rst Outdated Show resolved Hide resolved
docs/user/builds.rst Outdated Show resolved Hide resolved
docs/user/builds.rst Outdated Show resolved Hide resolved
docs/user/builds.rst Outdated Show resolved Hide resolved
docs/user/build-customization.rst Outdated Show resolved Hide resolved
Unshallow clone
~~~~~~~~~~~~~~~

Read the Docs does not perform a full clone on ``checkout`` step to reduce network data and speed up the build process.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we document this anywhere? Would be useful to link if we do.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we don't have documented that we do a shallow clone, no.

docs/user/build-customization.rst Outdated Show resolved Hide resolved
docs/user/build-customization.rst Outdated Show resolved Hide resolved
docs/user/build-customization.rst Show resolved Hide resolved
Copy link
Contributor

@agjohnson agjohnson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a great addition! I've wanted a doc detailing the build process for a while now

docs/user/build-customization.rst Outdated Show resolved Hide resolved
docs/user/build-customization.rst Outdated Show resolved Hide resolved
docs/user/build-customization.rst Outdated Show resolved Hide resolved
docs/user/build-customization.rst Outdated Show resolved Hide resolved
docs/user/build-customization.rst Outdated Show resolved Hide resolved
docs/user/builds.rst Outdated Show resolved Hide resolved
docs/user/builds.rst Outdated Show resolved Hide resolved
docs/user/builds.rst Outdated Show resolved Hide resolved
docs/user/builds.rst Outdated Show resolved Hide resolved
docs/user/build-customization.rst Outdated Show resolved Hide resolved
humitos and others added 7 commits April 26, 2022 12:34
Co-authored-by: Eric Holscher <25510+ericholscher@users.noreply.github.com>
Co-authored-by: Anthony <aj@ohess.org>
Co-authored-by: Anthony <aj@ohess.org>
Co-authored-by: Eric Holscher <25510+ericholscher@users.noreply.github.com>
This is not required anymore. Users can do the same with
`build.jobs.post_checkout`.
Copy link
Contributor

@agjohnson agjohnson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some small edits, but looks good to me. We have a few areas we already need to come back to though, so should keep this work on our radar somewhere.

docs/user/build-customization.rst Outdated Show resolved Hide resolved
docs/user/build-customization.rst Outdated Show resolved Hide resolved
docs/user/build-customization.rst Outdated Show resolved Hide resolved
docs/user/build-customization.rst Outdated Show resolved Hide resolved
docs/user/build-customization.rst Outdated Show resolved Hide resolved
docs/user/build-customization.rst Show resolved Hide resolved
docs/user/build-customization.rst Outdated Show resolved Hide resolved
docs/user/builds.rst Outdated Show resolved Hide resolved
docs/user/builds.rst Outdated Show resolved Hide resolved
@ericholscher
Copy link
Member

This looks great to me. 👍 on merging it soon. The new table display looks great -- the only thing I'd perhaps add is a user-facing breakdown of the build process terminology. That way we understand it, and users will hopefully be able to think about it a bit nicer. Not required, but might be good to get us & users on the same page.

ericholscher and others added 4 commits April 26, 2022 10:41
Co-authored-by: Anthony <aj@ohess.org>
Use glossary terms to explain what are "pre-defined build jobs" and
"user-defined build jobs".
@humitos
Copy link
Member Author

humitos commented Apr 27, 2022

@ericholscher I added two more entries in the glossary and linked them when the term is introduced in the pages. I think we can improve the definition itself, but at least the structure is already created and easier to expand now.

@humitos
Copy link
Member Author

humitos commented Apr 27, 2022

@ericholscher @agjohnson This PR is ready to be merged, IMO. Feel free to do it or to suggest any change you may have.

@ericholscher
Copy link
Member

Sounds good. Merging now, we can always improve it later, but this is a great improvement 🎉

@ericholscher ericholscher merged commit a7d80d8 into main Apr 27, 2022
@ericholscher ericholscher deleted the humitos/build-jobs-documentation branch April 27, 2022 15:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Docs: add feature documentation for build.jobs
3 participants