From 1ec35ee2b21d9dddffcf72ba5fe61ec7a831fee7 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 09:49:10 +0100 Subject: [PATCH 01/34] Fix ARC festival link. --- ospo/business-case.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ospo/business-case.md b/ospo/business-case.md index f28f287..ec29c4c 100644 --- a/ospo/business-case.md +++ b/ospo/business-case.md @@ -445,7 +445,7 @@ Metrics results will be published every six months on the website. [wiki]: https://github.com/UCL/open-source/wiki -[drb]: https://www.ucl.ac.uk/advanced-research-computing/digital-research-and-innovation-board-terms-reference +[drb]: https://www.ucl.ac.uk/research-innovation/advanced-research-computing/digital-research-community-events-and-support/events/festival-digital-research-scholarship-2024 ### Supporters From fbd5387576b2fc1fdc9ea28210856e43fc2d1c26 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 10:24:10 +0100 Subject: [PATCH 02/34] Correct working directory. --- .github/workflows/build.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 040b3b5..0f40d0b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,8 +4,6 @@ on: push: branches: ["main"] pull_request: - schedule: - - cron: "27 0 * * 1,4" permissions: contents: read @@ -22,9 +20,6 @@ jobs: uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.1 with: python-version: '3.13' - - run: pip install pyyaml feedparser - - name: Update funding opportunities - run: python .github/rss_2_yaml.py - name: Build uses: actions/jekyll-build-pages@v1 # The next step uploads a "special" artifact used by the From 62d639be9a55451e1eddd22c1734d1dd8785feee Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 10:43:57 +0100 Subject: [PATCH 03/34] Try prefix --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0f40d0b..d171e11 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -67,6 +67,6 @@ jobs: with: # nice to check a few specific root-level markdown files (README.md etc) for valid links, # but the main thing to check is the rendered website (in the `open-source` directory) - args: "--github-token ${{ secrets.GITHUB_TOKEN }} -- README.md CONTRIBUTING.md open-source/" + args: "--github-token ${{ secrets.GITHUB_TOKEN }} -- README.md CONTRIBUTING.md preview/open-source/" fail: true jobSummary: true From e5dd665072aac3c9a7dc2d8ab657ee84252e2f5f Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 10:46:36 +0100 Subject: [PATCH 04/34] Revert accidental change from other branch. --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d171e11..f6826ca 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,6 +4,8 @@ on: push: branches: ["main"] pull_request: + schedule: + - cron: "27 0 * * 1,4" permissions: contents: read @@ -20,6 +22,9 @@ jobs: uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.1 with: python-version: '3.13' + - run: pip install pyyaml feedparser + - name: Update funding opportunities + run: python .github/rss_2_yaml.py - name: Build uses: actions/jekyll-build-pages@v1 # The next step uploads a "special" artifact used by the From 9893b3b55164c9388a57cabf5a684034ca5365e9 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 10:49:54 +0100 Subject: [PATCH 05/34] Working directory as expected by the lychee-action --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f6826ca..daa062c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,6 +72,7 @@ jobs: with: # nice to check a few specific root-level markdown files (README.md etc) for valid links, # but the main thing to check is the rendered website (in the `open-source` directory) - args: "--github-token ${{ secrets.GITHUB_TOKEN }} -- README.md CONTRIBUTING.md preview/open-source/" + args: "--github-token ${{ secrets.GITHUB_TOKEN }} -- README.md CONTRIBUTING.md open-source/" + workingDirectory: preview fail: true jobSummary: true From 16a6b937990d7549b76a50d0acccf38e71bb381f Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 11:41:17 +0100 Subject: [PATCH 06/34] Fix one link. --- _data/ospo/events.yml | 4 ++-- ospo/business-case.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/_data/ospo/events.yml b/_data/ospo/events.yml index cd76a6e..31f7787 100644 --- a/_data/ospo/events.yml +++ b/_data/ospo/events.yml @@ -9,9 +9,9 @@ 202507OSSfirst: date: 2025-07-15 title: "First contribution to open-source software workshop" - url: https://www.ucl.ac.uk/advanced-research-computing/events/2025/jul/festival-digital-research-innovation-scholarship + url: https://www.ucl.ac.uk/research-innovation/advanced-research-computing/digital-research-community-events-and-support/events/festival-digital-research-innovation-scholarship-2025 event: ARC Festival of Digital Research, Innovation & Scholarship - event_url: https://www.ucl.ac.uk/advanced-research-computing/events/2025/jul/festival-digital-research-innovation-scholarship + event_url: https://www.ucl.ac.uk/research-innovation/advanced-research-computing/digital-research-community-events-and-support/events/festival-digital-research-innovation-scholarship-2025 results: ✅ # FIXME: add [data] 202411TTW: diff --git a/ospo/business-case.md b/ospo/business-case.md index ec29c4c..f28f287 100644 --- a/ospo/business-case.md +++ b/ospo/business-case.md @@ -445,7 +445,7 @@ Metrics results will be published every six months on the website. [wiki]: https://github.com/UCL/open-source/wiki -[drb]: https://www.ucl.ac.uk/research-innovation/advanced-research-computing/digital-research-community-events-and-support/events/festival-digital-research-scholarship-2024 +[drb]: https://www.ucl.ac.uk/advanced-research-computing/digital-research-and-innovation-board-terms-reference ### Supporters From d2e9a7b0e6de3e2606e31ed148b998a8e1053dc6 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 11:43:02 +0100 Subject: [PATCH 07/34] Rootdir option works, but a lot of theme links are broken in a different way. --- .github/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index daa062c..b36c93d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,7 +72,6 @@ jobs: with: # nice to check a few specific root-level markdown files (README.md etc) for valid links, # but the main thing to check is the rendered website (in the `open-source` directory) - args: "--github-token ${{ secrets.GITHUB_TOKEN }} -- README.md CONTRIBUTING.md open-source/" - workingDirectory: preview + args: "--github-token ${{ secrets.GITHUB_TOKEN }} -- --root-dir=open-source README.md CONTRIBUTING.md open-source/" fail: true jobSummary: true From fb22f1aa9137a529227093fd5399e86154828246 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 11:47:49 +0100 Subject: [PATCH 08/34] Debug with tmate. --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b36c93d..d439417 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -75,3 +75,8 @@ jobs: args: "--github-token ${{ secrets.GITHUB_TOKEN }} -- --root-dir=open-source README.md CONTRIBUTING.md open-source/" fail: true jobSummary: true + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + if: ${{ failure() }} + with: + limit-access-to-actor: true From 3e890bbd43ac1dac5e0320ef3eb3fddc906a3409 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 11:52:20 +0100 Subject: [PATCH 09/34] Revert "Rootdir option works, but a lot of theme links are broken in a different way." This reverts commit d2e9a7b0e6de3e2606e31ed148b998a8e1053dc6. --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d439417..ace4279 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,7 +72,8 @@ jobs: with: # nice to check a few specific root-level markdown files (README.md etc) for valid links, # but the main thing to check is the rendered website (in the `open-source` directory) - args: "--github-token ${{ secrets.GITHUB_TOKEN }} -- --root-dir=open-source README.md CONTRIBUTING.md open-source/" + args: "--github-token ${{ secrets.GITHUB_TOKEN }} -- README.md CONTRIBUTING.md open-source/" + workingDirectory: preview fail: true jobSummary: true - name: Setup tmate session From e00c97feca2f30dc3ae13d9b24cc5e5900563d9f Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 12:14:48 +0100 Subject: [PATCH 10/34] Remove tmate. --- .github/workflows/build.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dfebb47..70e51c8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,12 +72,6 @@ jobs: with: # nice to check a few specific root-level markdown files (README.md etc) for valid links, # but the main thing to check is the rendered website (in the `open-source` directory) - args: "--github-token ${{ secrets.GITHUB_TOKEN }} -- README.md CONTRIBUTING.md open-source/" - workingDirectory: preview + args: "--github-token ${{ secrets.GITHUB_TOKEN }} -- README.md CONTRIBUTING.md open-source/ --root-dir open-source " fail: true jobSummary: true - - name: Setup tmate session - uses: mxschmitt/action-tmate@v3 - if: ${{ failure() }} - with: - limit-access-to-actor: true From a6d925ddb244b79505d1806c9daf58474cea0bcc Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 12:42:56 +0100 Subject: [PATCH 11/34] Gymnastics. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 70e51c8..6b6a67d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,6 +72,6 @@ jobs: with: # nice to check a few specific root-level markdown files (README.md etc) for valid links, # but the main thing to check is the rendered website (in the `open-source` directory) - args: "--github-token ${{ secrets.GITHUB_TOKEN }} -- README.md CONTRIBUTING.md open-source/ --root-dir open-source " + args: "--github-token ${{ secrets.GITHUB_TOKEN }} --root-dir open-source -- README.md CONTRIBUTING.md open-source/" fail: true jobSummary: true From c287f9403562f5cfe9a1a199125d3ae8c980d9fe Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 13:07:32 +0100 Subject: [PATCH 12/34] Suppress all upsream theme bugs. For our purposes we don't want to flag them. --- lychee.toml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lychee.toml b/lychee.toml index 7d25ba5..3a935d9 100644 --- a/lychee.toml +++ b/lychee.toml @@ -7,4 +7,20 @@ exclude = [ '(?x).rdr.ucl.ac.uk/articles/*', # Article does exist but sometimes returns strange codes: 202, 403... '(?x).*127.0.0.1.*', # This is a local address '(?x).*liveuclac.sharepoint.com/sites/*', # SharePoint pages will need UCL credentials. + # Several anoying false positives: + # + # Some parts of the upstream theme cause errors because they don't prepend https. We don't fix the theme because + # it will be update to the new branding soon. So just suppress all of this for now. Remove when the theme is + # updated. All social media links on every theme-rendered page are like this!! + '(?x).*cdn.ucl.ac.uk/*', + '(?x).*www.ucl.ac.uk/*', + '(?x).*shop.ucl.ac.uk', + '(?x).*www.flickr.com/photos/uclnews', + '(?x).*www.facebook.com/uclofficial', + '(?x).*twitter.com/ucl', + '(?x).*www.instagram.com/ucl', + '(?x).*www.youtube.com/ucltv', + '(?x).*soundcloud.com/uclsound', + # Aaand the favicon path is broken in the upstream theme, so just ignore that too. + '(?x).*favicon-152.png', ] From 6fa9283856c98da4186b2dd8335a69ac2f6376c7 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 13:07:56 +0100 Subject: [PATCH 13/34] Fix rootdir. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6b6a67d..4b3f476 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,6 +72,6 @@ jobs: with: # nice to check a few specific root-level markdown files (README.md etc) for valid links, # but the main thing to check is the rendered website (in the `open-source` directory) - args: "--github-token ${{ secrets.GITHUB_TOKEN }} --root-dir open-source -- README.md CONTRIBUTING.md open-source/" + args: "--github-token ${{ secrets.GITHUB_TOKEN }} --root-dir . -- README.md CONTRIBUTING.md open-source/" fail: true jobSummary: true From 3501f305f5a1d74495fc42945afd3e78b785cc20 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 13:08:38 +0100 Subject: [PATCH 14/34] Yet another link decay in the breakfast club notes. @dpshelio this is what I mean by maintenance burden. --- ospo/documents/00-preOSPO/20240627-OSSBreakfastClub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ospo/documents/00-preOSPO/20240627-OSSBreakfastClub.md b/ospo/documents/00-preOSPO/20240627-OSSBreakfastClub.md index 83a28f0..2415b74 100644 --- a/ospo/documents/00-preOSPO/20240627-OSSBreakfastClub.md +++ b/ospo/documents/00-preOSPO/20240627-OSSBreakfastClub.md @@ -45,7 +45,7 @@ The university could also collaborate with schools to promote open source within In UCL there are well established collaborations with London society. For example, [The Barlett](https://www.ucl.ac.uk/bartlett/) (e.g., [resilience in London during COVID](https://www.ucl.ac.uk/bartlett/case-studies/2023/jun/mapping-stories-community-struggles-and-resilience-london-face-covid-19), or [missions-driven government for public services](https://medium.com/iipp-blog/professor-mariana-mazzucato-and-cllr-georgia-gould-leader-of-camden-council-write-about-the-need-ebd5ec2841d2) in Camden with the [IIPP](https://www.ucl.ac.uk/bartlett/public-purpose)). Working with them to include the OSS component will also have an impact. -[OpenUK State of the Open 2023](https://openuk.uk/stateofopen/state-of-open-the-uk-in-2023/stateofopen-2023/) mentions the [UK Government had an open source procurement toolkit since 2011](https://www.theguardian.com/government-computing-network/2011/nov/02/cabinet-office-open-source-procurement-toolkit) (though [withdrawn in 2014](https://www.gov.uk/government/publications/open-source-procurement-toolkit)). These guides could help to promote the procurement of OS software within the university. +[OpenUK State of the Open 2023](https://openuk.uk/stateofopen/state-of-open-the-uk-in-2023/) mentions the [UK Government had an open source procurement toolkit since 2011](https://www.theguardian.com/government-computing-network/2011/nov/02/cabinet-office-open-source-procurement-toolkit) (though [withdrawn in 2014](https://www.gov.uk/government/publications/open-source-procurement-toolkit)). These guides could help to promote the procurement of OS software within the university. Also, OpenUK is pushing to enable AI openness through their [open manifesto](https://openuk.uk/openmanifesto/), which an OSPO in UCL could also show its support. There are funding opportunities for many of this activities. Some are: [SLOAN](https://sloan.org/), [OSCARS](https://oscars-project.eu/), and collaborations with private sector. From 858dbdcde5723a7abda05469ec0ba25a10507f99 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 13:10:00 +0100 Subject: [PATCH 15/34] Typo. --- lychee.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lychee.toml b/lychee.toml index 3a935d9..cf2b962 100644 --- a/lychee.toml +++ b/lychee.toml @@ -7,7 +7,7 @@ exclude = [ '(?x).rdr.ucl.ac.uk/articles/*', # Article does exist but sometimes returns strange codes: 202, 403... '(?x).*127.0.0.1.*', # This is a local address '(?x).*liveuclac.sharepoint.com/sites/*', # SharePoint pages will need UCL credentials. - # Several anoying false positives: + # Several annoying false positives: # # Some parts of the upstream theme cause errors because they don't prepend https. We don't fix the theme because # it will be update to the new branding soon. So just suppress all of this for now. Remove when the theme is From b7e142a259860b309109bbc2d8d8a6316dda864c Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 13:18:50 +0100 Subject: [PATCH 16/34] Try posting a comment. --- .github/workflows/build.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4b3f476..1cd095d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,6 +72,12 @@ jobs: with: # nice to check a few specific root-level markdown files (README.md etc) for valid links, # but the main thing to check is the rendered website (in the `open-source` directory) - args: "--github-token ${{ secrets.GITHUB_TOKEN }} --root-dir . -- README.md CONTRIBUTING.md open-source/" + args: "--github-token ${{ secrets.GITHUB_TOKEN }} --root-dir . --output lychee-output.md -- README.md CONTRIBUTING.md open-source/" fail: true jobSummary: true + - name: Add Link Checker summary comment + uses: marocchino/sticky-pull-request-comment@5770ad5eb8f42dd2c4f34da00c94c5381e49af88 # v3.0.5 + if: (github.event_name == 'pull_request') + with: + recreate: true + path: lychee-output.md \ No newline at end of file From e79c6b977f4ab7ac16e235fd3ea4581c0b7168f5 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 13:21:31 +0100 Subject: [PATCH 17/34] Run on failure. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1cd095d..1466213 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -77,7 +77,7 @@ jobs: jobSummary: true - name: Add Link Checker summary comment uses: marocchino/sticky-pull-request-comment@5770ad5eb8f42dd2c4f34da00c94c5381e49af88 # v3.0.5 - if: (github.event_name == 'pull_request') + if: (github.event_name == 'pull_request') && failure() with: recreate: true path: lychee-output.md \ No newline at end of file From 26ec8eda1d8f189785feb258cabb44adcde4cc26 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 13:23:55 +0100 Subject: [PATCH 18/34] . --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1466213..e91dbfa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -72,9 +72,10 @@ jobs: with: # nice to check a few specific root-level markdown files (README.md etc) for valid links, # but the main thing to check is the rendered website (in the `open-source` directory) - args: "--github-token ${{ secrets.GITHUB_TOKEN }} --root-dir . --output lychee-output.md -- README.md CONTRIBUTING.md open-source/" + args: "--github-token ${{ secrets.GITHUB_TOKEN }} --root-dir . -- README.md CONTRIBUTING.md open-source/" fail: true jobSummary: true + output: lychee-output.md - name: Add Link Checker summary comment uses: marocchino/sticky-pull-request-comment@5770ad5eb8f42dd2c4f34da00c94c5381e49af88 # v3.0.5 if: (github.event_name == 'pull_request') && failure() From 581380584113d1749c2346e3c74c8170e37b6420 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 13:27:09 +0100 Subject: [PATCH 19/34] Need PR write, of course. --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e91dbfa..179b281 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -58,6 +58,8 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} link-checker: + permissions: + pull-requests: write runs-on: ubuntu-latest needs: build steps: From 7e8adb644bddf0f96aabf5b0420495a481ccf0e1 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 13:35:37 +0100 Subject: [PATCH 20/34] More bugs in the theme to ignore --- lychee.toml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lychee.toml b/lychee.toml index cf2b962..db3a770 100644 --- a/lychee.toml +++ b/lychee.toml @@ -1,4 +1,4 @@ -accept = [200, 403, 415, 429] +accept = [200, 403, 415, 429, 999] verbose = "info" no_progress = true exclude = [ @@ -21,6 +21,9 @@ exclude = [ '(?x).*www.instagram.com/ucl', '(?x).*www.youtube.com/ucltv', '(?x).*soundcloud.com/uclsound', - # Aaand the favicon path is broken in the upstream theme, so just ignore that too. + # Aaand the favicon and several image paths are broken in the upstream theme, so just ignore these too. '(?x).*favicon-152.png', + '(?x).*assets/images/hero-image-taught-desktop.jpg', # doesn't exist: theme bug + '(?x).*indigo/images/search-sprite.png', # doesn't exist: theme bug + '(?x).*assets/css/owl.video.play.png', ] From d496aa72503f2e452848079f13e7fbd7f6497bb2 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 13:45:59 +0100 Subject: [PATCH 21/34] Make the title better. --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 179b281..65d951a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -78,6 +78,8 @@ jobs: fail: true jobSummary: true output: lychee-output.md + - name: Change the output title to "Link checker summary" + run: sed -i '' '1s/.*/# Link checker summary/' lychee-output.md - name: Add Link Checker summary comment uses: marocchino/sticky-pull-request-comment@5770ad5eb8f42dd2c4f34da00c94c5381e49af88 # v3.0.5 if: (github.event_name == 'pull_request') && failure() From 0729dff32dafd0b1e784f129222fa144b5355931 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 13:53:48 +0100 Subject: [PATCH 22/34] Add a success comment. --- .github/workflows/build.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 65d951a..17996a7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -79,10 +79,18 @@ jobs: jobSummary: true output: lychee-output.md - name: Change the output title to "Link checker summary" + if: failure() run: sed -i '' '1s/.*/# Link checker summary/' lychee-output.md - name: Add Link Checker summary comment uses: marocchino/sticky-pull-request-comment@5770ad5eb8f42dd2c4f34da00c94c5381e49af88 # v3.0.5 if: (github.event_name == 'pull_request') && failure() with: + header: link-checker-summary recreate: true - path: lychee-output.md \ No newline at end of file + path: lychee-output.md + - name: A nice comment when/if the link checker passes + uses: marocchino/sticky-pull-request-comment@5770ad5eb8f42dd2c4f34da00c94c5381e49af88 # v3.0.5 + if: (github.event_name == 'pull_request') && success() + with: + header: link-checker-summary + message: "The link checker has passed successfully :tada:! No broken links were found." \ No newline at end of file From 2c279027ed65e5c8843bbb4183bc59b40b7f6418 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 13:54:44 +0100 Subject: [PATCH 23/34] Trivial typos --- .github/workflows/build.yml | 2 +- lychee.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 17996a7..2e35772 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -93,4 +93,4 @@ jobs: if: (github.event_name == 'pull_request') && success() with: header: link-checker-summary - message: "The link checker has passed successfully :tada:! No broken links were found." \ No newline at end of file + message: "The link checker has passed successfully :tada:! No broken links were found." diff --git a/lychee.toml b/lychee.toml index db3a770..58f008b 100644 --- a/lychee.toml +++ b/lychee.toml @@ -10,7 +10,7 @@ exclude = [ # Several annoying false positives: # # Some parts of the upstream theme cause errors because they don't prepend https. We don't fix the theme because - # it will be update to the new branding soon. So just suppress all of this for now. Remove when the theme is + # it will be updated to the new branding soon. So just suppress all of this for now. Remove when the theme is # updated. All social media links on every theme-rendered page are like this!! '(?x).*cdn.ucl.ac.uk/*', '(?x).*www.ucl.ac.uk/*', From 0ecd442651615d76d2dde811cb0f9826390f0aeb Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Fri, 11 Sep 2026 13:59:59 +0100 Subject: [PATCH 24/34] Fix the sed. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2e35772..265de54 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -80,7 +80,7 @@ jobs: output: lychee-output.md - name: Change the output title to "Link checker summary" if: failure() - run: sed -i '' '1s/.*/# Link checker summary/' lychee-output.md + run: sed -i '1s/.*/# Link checker summary/' lychee-output.md - name: Add Link Checker summary comment uses: marocchino/sticky-pull-request-comment@5770ad5eb8f42dd2c4f34da00c94c5381e49af88 # v3.0.5 if: (github.event_name == 'pull_request') && failure() From adb5f7f44e81d5fad93911aeeb765dcb806b3dd3 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Mon, 14 Sep 2026 11:39:24 +0100 Subject: [PATCH 25/34] Fix job-scope permissions Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 265de54..22b506c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -59,7 +59,8 @@ jobs: link-checker: permissions: - pull-requests: write + contents: read + pull-requests: write runs-on: ubuntu-latest needs: build steps: From 4ef29f5654c54a132d4cd844b572f1733978b5a3 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 15 Sep 2026 09:34:48 +0100 Subject: [PATCH 26/34] Trinity College Dublin's OSPO is 404. --- ospo/business-case.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ospo/business-case.md b/ospo/business-case.md index f28f287..d91e5e6 100644 --- a/ospo/business-case.md +++ b/ospo/business-case.md @@ -112,7 +112,7 @@ This puts UCL in an exceptional position to provide the support that open source An Open Source Programme Office (OSPO) is a body within an organisation to look after its open source strategy and operations. OSPOs have been widely adopted in the commercial world[^OSPO-commerce], governmental institutions and world organisations[^OSPO-public]. More recently, various academic and research institutions have also found the value of having OSPOs. -Focusing on the latest, we can find research centres such as [CERN][ospo-cern] or [Space Telescope Science Institute][ospo-stsci] and universities like [Johns Hopkins][ospo-jhu] (the first one, since 2019), [University of California][ospo-uc] and [Carnegie Mellon University][ospo-cmu] in the USA, or European examples like [Trinity College Dublin][ospo-tcd] in Ireland, [University of Luxembourg][ospo-snt], and [ETH Zurich][ospo-eth] in Switzerland. +Focusing on the latest, we can find research centres such as [CERN][ospo-cern] or [Space Telescope Science Institute][ospo-stsci] and universities like [Johns Hopkins][ospo-jhu] (the first one, since 2019), [University of California][ospo-uc] and [Carnegie Mellon University][ospo-cmu] in the USA, or European examples like Trinity College Dublin in Ireland, [University of Luxembourg][ospo-snt], and [ETH Zurich][ospo-eth] in Switzerland. [^OSPO-commerce]: The two biggest OSPO networks in industry are: [OSPO Alliance][ospo-alliance] supported by the [Eclipse Foundation][eclipse] and [TODO Group][ospo-todogrp] supported by the [Linux Foundation][LF]. A [report published in 2024 by the TODO Group][state-of-ospo-2024] found that 77% of large organisations have an OSPO (DOI: 10.70828/FXMR3018). @@ -163,7 +163,6 @@ A more detailed definition of an academic OSPO can be found in [Young, et al. (2 [ospo-snt]: https://www.uni.lu/snt-en/ [ospo-stsci]: http://www.stsci.edu/ -[ospo-tcd]: https://www.tcd.ie/innovation/for-trinity-innovators/open-source-programme-office/ [ospo-todogrp]: https://todogroup.org/ [ospo-uc]: https://ucospo.net/ [ospo-un]: https://undp.org/digital From 59d6217d0da3e7360c869cccc126fb9bda6b1e36 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 15 Sep 2026 09:35:42 +0100 Subject: [PATCH 27/34] A less dangerous ignore rule, and include status 202 as a success. --- lychee.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lychee.toml b/lychee.toml index 58f008b..fd48361 100644 --- a/lychee.toml +++ b/lychee.toml @@ -1,4 +1,4 @@ -accept = [200, 403, 415, 429, 999] +accept = [200, 202, 403, 415, 429, 999] verbose = "info" no_progress = true exclude = [ @@ -13,7 +13,7 @@ exclude = [ # it will be updated to the new branding soon. So just suppress all of this for now. Remove when the theme is # updated. All social media links on every theme-rendered page are like this!! '(?x).*cdn.ucl.ac.uk/*', - '(?x).*www.ucl.ac.uk/*', + '(?x)./open-source/www.ucl.ac.uk/*', '(?x).*shop.ucl.ac.uk', '(?x).*www.flickr.com/photos/uclnews', '(?x).*www.facebook.com/uclofficial', From 7d03e742a548a15909b11cf1c8afb4e46a0e0073 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 15 Sep 2026 09:39:48 +0100 Subject: [PATCH 28/34] Temporarily suppress the broken link until #90 gets merged. --- ospo/business-case.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ospo/business-case.md b/ospo/business-case.md index d91e5e6..c95bc02 100644 --- a/ospo/business-case.md +++ b/ospo/business-case.md @@ -333,7 +333,7 @@ This should cover licensing possibilities as well as business models. -[reports]: ./documents.html#yearly-reports +[reports]: https://google.com [lug]: https://github-pages.ucl.ac.uk/linux/ [Latug]: https://teams.microsoft.com/l/team/19%3A4669171c71b74d9ea23c30f7e3b9195a%40thread.skype/conversations?groupId=2435df9e-6f6e-4f1e-8f4c-e048dcabb2b8&tenantId=1faf88fe-a998-4c5b-93c9-210a11d9a5c2 [PCoC]: https://teams.microsoft.com/l/team/19%3A85c78bc816764ae5982ae7b4997b2f47%40thread.skype/conversations?groupId=a3786c11-7532-44a2-a8eb-547382638405&tenantId=1faf88fe-a998-4c5b-93c9-210a11d9a5c2 From 8bfcfcec8eb637e54995f0fd88464ce25da3d03e Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 15 Sep 2026 10:37:12 +0100 Subject: [PATCH 29/34] Fix the regex. --- lychee.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lychee.toml b/lychee.toml index fd48361..09f10da 100644 --- a/lychee.toml +++ b/lychee.toml @@ -13,7 +13,7 @@ exclude = [ # it will be updated to the new branding soon. So just suppress all of this for now. Remove when the theme is # updated. All social media links on every theme-rendered page are like this!! '(?x).*cdn.ucl.ac.uk/*', - '(?x)./open-source/www.ucl.ac.uk/*', + '(?x)file://(?:.*/)?www\.ucl\.ac\.uk(?:/|$)', '(?x).*shop.ucl.ac.uk', '(?x).*www.flickr.com/photos/uclnews', '(?x).*www.facebook.com/uclofficial', From cfb82d7a8d7cfa52794e9e915b6310daa2a24270 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 15 Sep 2026 10:37:25 +0100 Subject: [PATCH 30/34] Another old festival link. --- _data/ospo/submissions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/ospo/submissions.yml b/_data/ospo/submissions.yml index 18d3048..5b748a6 100644 --- a/_data/ospo/submissions.yml +++ b/_data/ospo/submissions.yml @@ -47,7 +47,7 @@ title: "What is an OSPO and why do we need one in UCL?" link: event: "ARC's Festival of Digital Research, Innovation & Scholarship" - event_link: https://www.ucl.ac.uk/advanced-research-computing/events/2024/jun/festival-digital-research-scholarship + event_link: https://www.ucl.ac.uk/research-innovation/advanced-research-computing/digital-research-community-events-and-support/events/festival-digital-research-scholarship-2024 result: >- ✅ 202406UCLOSci: From bfba2672104f2f29a6b73c29c1a33f3837be4e54 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 15 Sep 2026 10:40:24 +0100 Subject: [PATCH 31/34] Yet another broken festival link. --- _data/events.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/events.yml b/_data/events.yml index c004873..2573412 100644 --- a/_data/events.yml +++ b/_data/events.yml @@ -79,7 +79,7 @@ location: 90 High Holborn, Function Space - title: First contribution to open-source software workshop organiser: ARC - url: https://www.ucl.ac.uk/advanced-research-computing/events/2025/jul/festival-digital-research-innovation-scholarship + url: https://www.ucl.ac.uk/research-innovation/advanced-research-computing/digital-research-community-events-and-support/events/festival-digital-research-innovation-scholarship-2025 date: 2025-07-15 time: "13:30" duration: From d26b05acf99c91234d5727183f0bccda4fcb16e8 Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 15 Sep 2026 10:46:49 +0100 Subject: [PATCH 32/34] Seed fund link is dead. --- _data/ospo/proposals.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/ospo/proposals.yml b/_data/ospo/proposals.yml index 1bcae55..c957fcc 100644 --- a/_data/ospo/proposals.yml +++ b/_data/ospo/proposals.yml @@ -27,5 +27,5 @@ title: Open Research Leadership Development - Preparing researchers to nurture healthy communities. link: funding: UCL Research Culture Seed Funds - link_call: https://www.ucl.ac.uk/research/strategy-environment/research-culture-ucl/get-involved/research-culture-seed-fund + link_call: result: ❌ From 8b2b2a5eb8a5c52a5738aa98083151a450e6aecc Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 15 Sep 2026 10:48:05 +0100 Subject: [PATCH 33/34] Can't parse comments. --- ospo/business-case.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ospo/business-case.md b/ospo/business-case.md index c95bc02..118c618 100644 --- a/ospo/business-case.md +++ b/ospo/business-case.md @@ -333,7 +333,8 @@ This should cover licensing possibilities as well as business models. -[reports]: https://google.com +[reports]: https://google.com + [lug]: https://github-pages.ucl.ac.uk/linux/ [Latug]: https://teams.microsoft.com/l/team/19%3A4669171c71b74d9ea23c30f7e3b9195a%40thread.skype/conversations?groupId=2435df9e-6f6e-4f1e-8f4c-e048dcabb2b8&tenantId=1faf88fe-a998-4c5b-93c9-210a11d9a5c2 [PCoC]: https://teams.microsoft.com/l/team/19%3A85c78bc816764ae5982ae7b4997b2f47%40thread.skype/conversations?groupId=a3786c11-7532-44a2-a8eb-547382638405&tenantId=1faf88fe-a998-4c5b-93c9-210a11d9a5c2 From 2abbb27ba317571f71cc70b5a0c6e51c091e625f Mon Sep 17 00:00:00 2001 From: Sam Cunliffe Date: Tue, 15 Sep 2026 10:50:09 +0100 Subject: [PATCH 34/34] Just exclude software heritage. --- lychee.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/lychee.toml b/lychee.toml index 09f10da..0c616de 100644 --- a/lychee.toml +++ b/lychee.toml @@ -2,6 +2,7 @@ accept = [200, 202, 403, 415, 429, 999] verbose = "info" no_progress = true exclude = [ + 'https://www.softwareheritage.org', # Their SSL certificate is not trusted but the link works (currently!) '(?x).*profiles.ucl.ac.uk.*/thumbnail', # People may not have a profile image. '(?x).*github-readme-stats.vercel.app.*', # Returns 503 for some reason '(?x).rdr.ucl.ac.uk/articles/*', # Article does exist but sometimes returns strange codes: 202, 403...