From 37eb1dd7b2b681a8aa64440011a1c4234a834480 Mon Sep 17 00:00:00 2001 From: "E. G. Patrick Bos" Date: Wed, 16 Oct 2024 07:27:05 +0200 Subject: [PATCH 1/5] [CI] update checkout version Fixes workflow warning. --- .github/workflows/link-checker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index f1bc4c2f..be65ba2e 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -9,7 +9,7 @@ jobs: linkChecker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Link Checker uses: lycheeverse/lychee-action@v1.7.0 id: lychee From 6b1f34c80e0ee687e61ee60961b5446c7f3b058d Mon Sep 17 00:00:00 2001 From: "E. G. Patrick Bos" Date: Wed, 16 Oct 2024 08:04:48 +0200 Subject: [PATCH 2/5] [CI] link checker: update action version + ignore 429 Especially gnu.org is giving a lot of 429 statuses (too many requests), seems like it doesn't like GitHub spam. There doesn't seem to be much one can do about this, so let's just ignore this code (add it to the accept list) and hope people run the link checker on the GNU links locally every now and then. In a way, accepting this code is not wrong, because a benevolent server will not give 429 if the URL is invalid (it will give 404 instead), so in a way 429 may signify that the URL is valid (it just won't load for you right now). --- .github/workflows/link-checker.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index be65ba2e..a1997ee9 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -11,9 +11,13 @@ jobs: steps: - uses: actions/checkout@v4 - name: Link Checker - uses: lycheeverse/lychee-action@v1.7.0 + uses: lycheeverse/lychee-action@v2 id: lychee + with: + # note: args has a long default value; when you override it, make sure you don't accidentally forget to include the default options you want! see https://github.com/lycheeverse/lychee-action/blob/master/action.yml + args: --verbose --no-progress './**/*.md' './**/*.html' './**/*.rst' --accept '100..=103,200..=299, 429' env: + # This token is included to avoid github.com requests to error out with status 429 (too many requests). It only works for GitHub requests (also other GitHub REST API calls), not for the rest of the web. GITHUB_TOKEN: ${{secrets.TOKEN_GITHUB}} - name: Count broken links run: | From 34d648436013223a3ef9b68668e4094e0f3c75f4 Mon Sep 17 00:00:00 2001 From: "E. G. Patrick Bos" Date: Wed, 16 Oct 2024 08:15:11 +0200 Subject: [PATCH 3/5] add workflow_dispatch --- .github/workflows/link-checker.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index a1997ee9..a2df8d80 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -1,5 +1,6 @@ name: Link Checker on: + workflow_dispatch: push: branches: - main From 0402d00d38c20c0e9665120ccfa7f66ca5d45b2d Mon Sep 17 00:00:00 2001 From: "E. G. Patrick Bos" Date: Wed, 16 Oct 2024 08:44:58 +0200 Subject: [PATCH 4/5] [CI] remove 10 allowed failing links Handling all broken links does not seem unfeasible, especially when handling 429 statuses. Lychee has some other options like excluding certain domains, that we could use in exceptional cases. --- .github/workflows/link-checker.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml index a2df8d80..262d00e6 100644 --- a/.github/workflows/link-checker.yml +++ b/.github/workflows/link-checker.yml @@ -20,15 +20,3 @@ jobs: env: # This token is included to avoid github.com requests to error out with status 429 (too many requests). It only works for GitHub requests (also other GitHub REST API calls), not for the rest of the web. GITHUB_TOKEN: ${{secrets.TOKEN_GITHUB}} - - name: Count broken links - run: | - broken_max=10 - broken_count=$(printf "%d" $(grep "🚫 Errors" lychee/out.md | cut -d'|' -f3)) - if [ "$broken_count" -gt "$broken_max" ]; then - echo "Number of broken links (${broken_count}) exceeds maximum allowed number (${broken_max})." - cat lychee/out.md - exit 1 - else - echo "Number of broken links (${broken_count}) less than or equal to maximum allowed number (${broken_max})." - exit 0 - fi From b46b85ab96facad37f4eaf785e7ead704cba6fab Mon Sep 17 00:00:00 2001 From: "E. G. Patrick Bos" Date: Wed, 16 Oct 2024 13:50:11 +0200 Subject: [PATCH 5/5] fix 3 broken links --- best_practices/releases.md | 2 +- language_guides/ccpp.md | 2 +- language_guides/python.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/best_practices/releases.md b/best_practices/releases.md index 668a081a..c81926bb 100644 --- a/best_practices/releases.md +++ b/best_practices/releases.md @@ -63,7 +63,7 @@ some of the things in this *scan* could be automated with continuous integration ### Citeable -Create a DOI for each release see [Making software citable](../citable_software/making_software_citable.md). +Create a DOI for each release see [Making software citable](https://book.the-turing-way.org/communication/citable/citable-cff.html?highlight=citable). ### Dissemination diff --git a/language_guides/ccpp.md b/language_guides/ccpp.md index 5292602d..0ffe1842 100644 --- a/language_guides/ccpp.md +++ b/language_guides/ccpp.md @@ -287,7 +287,7 @@ This all makes xtensor a very interesting choice compared to similar older libra ### Parallel processing -* [Intel TBB](https://www.threadingbuildingblocks.org) (Threading Building Blocks): template library for task parallelism +* [oneAPI Threading Building Blocks](https://oneapi-src.github.io/oneTBB/) (oneTBB): template library for task parallelism * [ZeroMQ](http://zeromq.org): lower level flexible communication library with a unified interface for message passing between threads and processes, but also between separate machines via TCP. diff --git a/language_guides/python.md b/language_guides/python.md index 87454562..a6496685 100644 --- a/language_guides/python.md +++ b/language_guides/python.md @@ -321,7 +321,7 @@ Having said that, there are many ways to run Python code in parallel: There are convenient Python web frameworks available: * [flask](http://flask.pocoo.org/) -* [cherrypy](http://www.cherrypy.org/) +* [CherryPy](https://cherrypy.dev/) * [Django](https://www.djangoproject.com/) * [bottle](http://bottlepy.org/) (similar to flask, but a bit more light-weight for a JSON-REST service)