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

Formalize processes for regularly upgrading website tools #37187

Open
a-mccarthy opened this issue Oct 6, 2022 · 13 comments
Open

Formalize processes for regularly upgrading website tools #37187

a-mccarthy opened this issue Oct 6, 2022 · 13 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@a-mccarthy
Copy link
Contributor

a-mccarthy commented Oct 6, 2022

This is a Feature Request

Currently there isn't a process or automation that covers upgrading the tools we use for the kubernetes.io website. Specifically Hugo and our theme Docsy.

What would you like to be added

We should determine a list of tools we need to keep updated, and then create a way to trigger updating the tools at an interval that makes sense for the project and maintainer bandwidth. Either by some automation or manually upgrading the tools

We should also make sure we have tool upgrade processes documented, especially any differences with the tools upgrade docs. (these could already exist, but i'm not sure where they are located so i included it here :) )

Why is this needed

Previously these kinds of updates were triggered by bugs in the tools. Ideally, we'd also have a way to upgrade when we want to to access new features or improvements.

Comments
Some related links:

@a-mccarthy a-mccarthy added the kind/feature Categorizes issue or PR as related to a new feature. label Oct 6, 2022
@k8s-ci-robot k8s-ci-robot added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Oct 6, 2022
@a-mccarthy
Copy link
Contributor Author

cc: @tengqm @jimangel following up on the slack thread, i created this issue to discuss creating a website tools upgrade process.

@sftim
Copy link
Contributor

sftim commented Oct 6, 2022

/priority important-longterm
/triage accepted

@k8s-ci-robot k8s-ci-robot added priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Oct 6, 2022
@tengqm
Copy link
Contributor

tengqm commented Oct 6, 2022

Thanks for filing this.

@a-mccarthy
Copy link
Contributor Author

Heres a list of tools i found that should be things we should track to update regularly.

  • Hugo
    • Kubernetes/website version 0.101.0
    • Hugo latest versions:
  • Docsy
    • Kubernetes website version 0.2.0
    • Docsy latest version 0.6.0

Also included in the netlify.toml file:

  • NODE_VERSION = "10.20.0"
  • RUBY_VERSION = "3.0.1"

Based on looking at the history of the netlify.toml file, we update the Hugo version about 2 times a year.

Based on the Docsy theme folder history, we have updated Docsy about 3 times a year, but this year have only updated it once in April.

For both Hugo and Docsy, this feels like a good cadence, to try and update them about 2 times a year and in the event of a security update.

We added the Ruby version to avoid netilfy builds slow-downs, #22229, but its not clear to me how we use Ruby. Similarly the node version was added to avoid build errors, #20963, but it's not clear to me why we need it. Based on looking at the file history, we have update the ruby version once since it was added in 2020, and we have never updated the node version since it was added in 2020. @sftim or @tengqm can you shed some like as to why we need Ruby or Node, and how frequently we should be updating them?

@tengqm
Copy link
Contributor

tengqm commented Dec 7, 2022

TBH, I have no idea why we need NodeJS or Ruby.

@sftim
Copy link
Contributor

sftim commented Dec 17, 2022

We could allow Netlify to use whatever version of Ruby and NodeJS it wants to provide.

https://www.docsy.dev/docs/get-started/docsy-as-module/installation-prerequisites/#installupgrade-nodejs explains that Node.js is required by Hugo (as a prerequisite for Docsy to work properly).

I don't think Ruby gets used anywhere.

@a-mccarthy
Copy link
Contributor Author

We could allow Netlify to use whatever version of Ruby and NodeJS it wants to provide.

@sftim or @tengqm can you share some tips or ideas on how to test if we need to explicitly have NodeJS or Ruby in the build anymore?

@tengqm
Copy link
Contributor

tengqm commented Jan 26, 2023

Maybe we can start by comment out the RUBY_VERSION="3.0.1" line in netlify.toml and see if that works?

@a-mccarthy
Copy link
Contributor Author

I created a PR with the Ruby version commented out, #39114 . The build appeared to be fine, and used the default ruby version 2.7.0.

I found a list of the default things installed in our build image, https://docs.netlify.com/configure-builds/available-software-at-build-time/#app The defaults are an older version of Ruby, 2.7.0, and newer version of node.js, 16.

@sftim
Copy link
Contributor

sftim commented Jun 2, 2023

What needs to happen next on this?

@sftim
Copy link
Contributor

sftim commented Jun 2, 2023

/lifecycle frozen

@k8s-ci-robot k8s-ci-robot added the lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. label Jun 2, 2023
@k8s-triage-robot
Copy link

This issue has not been updated in over 1 year, and should be re-triaged.

You can:

  • Confirm that this issue is still relevant with /triage accepted (org members only)
  • Close this issue with /close

For more details on the triage process, see https://www.kubernetes.dev/docs/guide/issue-triage/

/remove-triage accepted

@k8s-ci-robot k8s-ci-robot added needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. and removed triage/accepted Indicates an issue or PR is ready to be actively worked on. labels Jun 1, 2024
@stmcginnis
Copy link
Contributor

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Jun 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
Status: Triage Accepted
Development

No branches or pull requests

6 participants