Skip to content

Monthly tasks

Monthly tasks #16

Workflow file for this run

name: Monthly tasks
on:
schedule:
# at 06:13 on the first day of the month
- cron: 13 06 1 * *
jobs:
create_issue:
name: Create issue to upgrade dependencies
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Create issue to upgrade dependencies
uses: imjohnbo/issue-bot@76645b39cda009302cc49d8624af634795e9eab5
with:
assignees: "wkillerud, piofinn, fremtindelise"
rotate-assignees: true
labels: "🔁 round robin, 🔗 dependencies"
close-previous: true
title: "Oppdatering av avhengigheter"
body: |
## Fremgangsmåte
🧑‍💻 Kjør `git pull` på `main` og lag en ny branch.
🧑‍💻 Kjør `pnpm update -r` på rotnivå i prosjektet.
🧑‍💻 Kjør `pnpm outdated -r` på rotnivå i prosjektet.
Output fra `pnpm outdated` vil vise deg hvilke pakker som trenger å oppdateres manuelt, men også noen som ikke _kan_ oppdateres. Noen ganger har vi avhengigheter som trenger en eldre majorversjon av en pakke, for eksempel `gatsby` som trenger en eldre `mdx-js` og `got`.
Du kan sannsynligvis trygt ignorere `overrides` med mindre noe brekker senere.
Vi bruker `pnpm.overrides`-feltet i `package.json` til å overstyre våre dependencies sine dependencies. Generelt sett gjør vi dette for å få med oss feilrettinger og sikkerhetsoppdateringer. Noen ganger er disse avhengigheter av avhengigheter av avhengigheter, og ett eller annet sted på veien er en pakke ikke vedlikeholdt.
🧑‍💻 Endre versjoner i `package.json` til versjonen du ønsker.
Som nevnt kan du sannsynligvis ignorere `overrides`. Typedefinisjoner for Node kan du la være til vi eventuelt endrer `.nvmrc`.
🧑‍💻 Kjør `pnpm install`.
Du skal få en oppdatert `pnpm-lock.yaml`. Ta en titt på diffen og se at det virker fornuftig.
🧑‍💻 Kjør `pnpm audit --fix` på rotnivå i prosjektet.
Hvis det er audit-problemer etter oppdateringen din kan det hende du må legge til noen overstyringer i `resolutions` i `package.json`. Se [pnpm-dokumentasjonen](https://classic.pnpmpkg.com/lang/en/docs/selective-version-resolutions/) om du ikke har gjort dette før, eller spør en kollega om hjelp.
🧑‍💻 Lag eventuelle nye patcher.
Vi har [noen få pakker hvor vi gjør egne patcher](https://github.com/fremtind/jokul/tree/main/patches) i Jøkul. Disse krever at vi lager en tilsvarende patch på den nye versjonen. Se README for instrukser.
🧑‍💻 Kjør `pnpm build:docs`, `pnpm ci:test` og `pnpm serve`.
Sjekk at ting fortsatt bygger, tester går grønt, og at siden funker OK.
TypeScript kan finne på å klage over at noe er definert to ganger. Det er typisk `@types/eslint`, `@types/node`, `@types/react` eller `@types/react-dom` som er kilden. Du må i disse tilfellene inn og endre manuelt på lockfila så vi ikke ender opp med duplikate versjoner. Spør en kollega om du står fast.
🧑‍💻 Kjør `pnpm commit` og lag en `chore`-commit.
Snart klar for en pull request!
🧑‍💻 Push endringene dine og åpne en pull request.
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}