diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 18414dca3..9e8c9ca28 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -178,7 +178,21 @@ "showReuseMessage": false }, "dependsOn": "test-build", - "command": "bash checks/run_a11y_check.sh" + "command": "bash checks/run_a11y_check.sh ${input:a11y_min_level} ${input:a11y_url}" }, + ], + "inputs": [ + { + "id": "a11y_min_level", + "description": "minimum violation level to report from run_a11y_check.sh", + "default": "minor", + "type": "promptString" + }, + { + "id": "a11y_url", + "description": "url to run a11y audit on", + "default": "", + "type": "promptString" + } ] } diff --git a/checks/run_a11y_check.sh b/checks/run_a11y_check.sh index 218b7025b..fba746636 100755 --- a/checks/run_a11y_check.sh +++ b/checks/run_a11y_check.sh @@ -2,9 +2,24 @@ # Runs the same WCAG audit as the AccessLint/audit@v0 GitHub Action, locally. set -euo pipefail +MIN_IMPACT=$1 + CACHE_DIR="${HOME}/.cache/accesslint-audit" PORT="$(python3 -c 'import socket; s=socket.socket(); s.bind(("",0)); print(s.getsockname()[1]); s.close()')" -URLS="${1:-http://localhost:${PORT}/}" + +if [ ! -d "public" ]; then + echo "Error: 'public' directory does not exist. Run a build first!" >&2 + exit 1 +fi + +if [ -n "${2:-}" ]; then + PAGE=$2 + URLS="http://localhost:${PORT}/${PAGE}" +else + # No URL given: audit every page from the built sitemap. + URLS="$(sed -n 's#.*\(.*\).*#\1#p' public/sitemap.xml \ + | sed "s#^https\?://[^/]*/#http://localhost:${PORT}/#")" +fi if [ ! -d "$CACHE_DIR" ]; then git clone --depth 1 --branch v0 https://github.com/AccessLint/audit.git "$CACHE_DIR" @@ -16,11 +31,6 @@ if [ ! -f "$READY_MARKER" ]; then touch "$READY_MARKER" fi -if [ ! -d "public" ]; then - echo "Error: 'public' directory does not exist. Run a build first!" >&2 - exit 1 -fi - python3 -m http.server "$PORT" --directory public & SERVER_PID=$! trap 'kill "$SERVER_PID" 2>/dev/null || true' EXIT @@ -36,9 +46,18 @@ for _ in range(50): time.sleep(0.1) " +NODE_BIN="$(command -v node || true)" +if [ -z "$NODE_BIN" ]; then + NODE_BIN="$(ls -d "$HOME"/.nvm/versions/node/*/bin/node 2>/dev/null | sort -V | tail -1)" +fi +if [ -z "$NODE_BIN" ]; then + echo "Error: 'node' not found. Install Node.js or run this from a shell with nvm loaded." >&2 + exit 1 +fi + env \ INPUT_URLS="$URLS" \ INPUT_WCAG-LEVEL="AA" \ INPUT_FAIL-ON="never" \ - INPUT_MIN-IMPACT="minor" \ - node "$CACHE_DIR/dist/index.js" + INPUT_MIN-IMPACT="$MIN_IMPACT" \ + "$NODE_BIN" "$CACHE_DIR/dist/index.js" diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index f3385c374..0daf50e6d 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -184,7 +184,7 @@ After a few minutes, a preview of the source branch will be deployed, a bot will Assign a reviewer if you wish. -Adding the tag will cause the request to be merged at midnight, if all checks passed. +Adding the tag will cause the request to be merged at midnight, if all checks passed. ### Reviewing A Merge Request diff --git a/docs/Getting_Started/FAQs/How_do_I_request_memory.md b/docs/Getting_Started/FAQs/How_do_I_request_memory.md index 1d177c121..14368587e 100644 --- a/docs/Getting_Started/FAQs/How_do_I_request_memory.md +++ b/docs/Getting_Started/FAQs/How_do_I_request_memory.md @@ -21,91 +21,90 @@ table, including how you can tell what sort of job you're submitting. min-width: 8rem; } - +
- + + - - - - - - - + + + + + + + + + - - + + - + - - + + - + - + - - + + - + - - + + - + - - + + - +
Memory request by job type
Job typeRequested tasks
(-n, --ntasks)
Requested logical CPUs per task
(--cpus-per-task)
Requested nodes (-N, --nodes)Requested tasks per node
(--ntasks-per-node)
Preferred memory formatIdeal valueJob typeRequested tasks
(-n, --ntasks)
Requested logical CPUs per task
(--cpus-per-task)
Requested nodes (-N, --nodes)Requested tasks per node
(--ntasks-per-node)
Preferred memory formatIdeal value
Serial 1 (or unspecified) 1 (or unspecified)(Irrelevant, but should not be specified)1(Irrelevant, but should not be specified)2(Irrelevant, but should not be specified)1(Irrelevant, but should not be specified)2 --mem=Peak memory3 needed by the programPeak memory3 needed by the program
Multithreaded (e.g. OpenMP), but not MPI 1 (or unspecified) > 1(Irrelevant, but should not be specified)1(Irrelevant, but should not be specified)2(Irrelevant, but should not be specified)1(Irrelevant, but should not be specified)2 --mem=Peak memory3 needed by the programPeak memory3 needed by the program
MPI, evenly split between nodes (recommended method)Unspecified4Unspecified4 ≥ 1 (or unspecified)≥ 15≥ 15≥ 15≥ 15 --mem=(Peak memory3 needed per MPI task) × (number of tasks per node)(Peak memory3 needed per MPI task) × (number of tasks per node)
MPI, evenly split between nodes (discouraged method) > 1 ≥ 1 (or unspecified)Either 1 or the number of tasks6(Irrelevant, but should not be specified)4Either 1 or the number of tasks6(Irrelevant, but should not be specified)4 --mem=(Peak memory3 needed per MPI task) × (number of tasks per node) (Peak memory3 needed per MPI task) × (number of tasks per node) 
MPI, randomly placed > 1 ≥ 1 (or unspecified)> 1; < number of tasks6 (or unspecified)(Irrelevant, but should not be specified)4> 1; < number of tasks6 (or unspecified)(Irrelevant, but should not be specified)4 --mem-per-cpu=(Peak memory3 needed per MPI task) ÷ (number of logical CPUs per MPI task)(Peak memory3 needed per MPI task) ÷ (number of logical CPUs per MPI task)
+
-1 If your job consists of only one task there's no reason to -request a specific number of nodes, and requesting more than one node -will cause you to be charged too much for your job. A one-task job will -be assigned one node by default. - -2 If you don't request a specific number of nodes, it makes -no sense to request a specific number of tasks per node. - -3 It's usually a good idea to request a little more memory -from Slurm than your program absolutely needs, to give your job a buffer -in case its behaviour varies slightly from run to run. - -4 If either `-n` or `--ntasks` is used along with -`--ntasks-per-node`, `--ntasks-per-node` will be silently ignored. - -5 An MPI job that is evenly split between two or more nodes -and that doesn't specify a total number of tasks will need either `-N` -(or `--nodes`) or `--ntasks-per-node`, or both, to be greater than 1; -and both must be positive integers. - -6 If you set `-N` (or `--nodes`) to 1, that is effectively -the same as setting`--ntasks-per-node` the same as`-n` (or `--ntasks`), -and the job is guaranteed to run on a single node. On the other hand, if -you request `-N` (or `--nodes`) to be the same as `-n` (or `--ntasks`), -that is effectively the same as setting `--ntasks-per-node=1`, and the -job will be evenly split between nodes. In either of these cases, -`--mem` is better than`--mem-per-cpu`. Meanwhile, requesting more nodes -than tasks never makes sense. + diff --git a/docs/Software/Available_Applications/AlphaFold.md b/docs/Software/Available_Applications/AlphaFold.md index 9ded197e7..fca8fa8ba 100644 --- a/docs/Software/Available_Applications/AlphaFold.md +++ b/docs/Software/Available_Applications/AlphaFold.md @@ -99,7 +99,7 @@ complexes (with per-residue and per-pair confidence estimates). It does not compute binding affinities, docking scores or other measures of binding strength. -Home page is at . +Home page is at \ No newline at end of file +at: diff --git a/docs/Software/Available_Applications/Dorado.md b/docs/Software/Available_Applications/Dorado.md index 32c677c8b..0aa3e614f 100644 --- a/docs/Software/Available_Applications/Dorado.md +++ b/docs/Software/Available_Applications/Dorado.md @@ -21,7 +21,7 @@ zendesk_section_id: 360000040076 Dorado is a high-performance, easy-to-use, open source basecaller for Oxford Nanopore reads. -### [](https://github.com/nanoporetech/dorado#features)Features +### [Features](https://github.com/nanoporetech/dorado#features) - One executable with sensible defaults, automatic hardware detection and configuration. diff --git a/docs/Software/Available_Applications/GUFI.md b/docs/Software/Available_Applications/GUFI.md index 9fd79cd3a..90c7cbdc9 100644 --- a/docs/Software/Available_Applications/GUFI.md +++ b/docs/Software/Available_Applications/GUFI.md @@ -11,8 +11,9 @@ vote_sum: 0 __GUFI__ (Grand Unified File Index) is designed for large-scale data centers to enable fast, secure and comprehensive searches of files and directories. It works by creating a hierarchical index, allowing users to quickly find and characterize data across multiple filesystems. GUFI uses a database that is indexed on the weekend. It may not find or measure the size of files that were created or moved around after the index was updated. - -Note: Currently, GUFI only works on `login03`. Check that you are connected to `login03` by running: `hostname`. If you are not on `login03` you can connect by running: `ssh login03`. + +!!! note "" + Currently, GUFI only works on `login03`. Check that you are connected to `login03` by running: `hostname`. If you are not on `login03` you can connect by running: `ssh login03`. There are two commands that GUFI provides: diff --git a/docs/Software/Parallel_Computing/OpenMP_settings.md b/docs/Software/Parallel_Computing/OpenMP_settings.md index 7e54ee47a..a04db464f 100644 --- a/docs/Software/Parallel_Computing/OpenMP_settings.md +++ b/docs/Software/Parallel_Computing/OpenMP_settings.md @@ -57,7 +57,7 @@ gimpi/2018b toolchain on Mahuika. |--------------------|----------------------|----------------------|---------------------| | 1 | 1m43s, 1m42s | 1m42s, 1m42s | 1m30s, 1m30s | | 2 | 1m30s, 1m31s | 1m03, 55s | 56s, 56s | -| 4 | 58s, 1m27s | 45s, 41s | 27s, 28s | +| 4 | **58s, 1m27s** | **45s, 41s** | **27s, 28s** | | 8 | 24s, 27s | 18s, 17s | 16s, 16s | So by explicitly using `--threads-per-core` and setting `OMP_PROC_BIND` and `OMP_PLACES`. diff --git a/docs/Storage/Filesystems_and_Quotas.md b/docs/Storage/Filesystems_and_Quotas.md index 5a880bd44..9371ef320 100644 --- a/docs/Storage/Filesystems_and_Quotas.md +++ b/docs/Storage/Filesystems_and_Quotas.md @@ -27,7 +27,7 @@ and cached between updates. | Data retention | 180 days after the user ceases to be a member of any active project | 90 days after the end of the project's last HPC compute allocation. See also Transparent File Data Compression. | Untouched for 90 days, or 90 days after the end of the project's last HPC Compute allocation. See [Automatic cleaning of nobackup filesystem](./Automatic_cleaning_of_nobackup.md ) for more information. | 180 days after the end of the project's Freezer storage allocation | | Snapshots | Daily
7 days | Daily
7 days | Weekly (every Friday at 6am)
3 weeks | - | | Speed | Fast | Fast | Fast | Slow | -| Interfaces |
  • Native Mounts
  • SCP
  • Globus
    • |
      • Native Mounts
      • SCP
      • Globus
        • |
          • Native Mounts
          • SCP
          • Globus
          • |
            • s3cmd commands
            | +| Interfaces |
            • Native Mounts
            • SCP
            • Globus
            |
            • Native Mounts
            • SCP
            • Globus
            |
            • Native Mounts
            • SCP
            • Globus
            |
            • s3cmd commands
            | ### `/home` diff --git a/docs/assets/stylesheets/theme.css b/docs/assets/stylesheets/theme.css index 8f701c94a..7de04ce1f 100644 --- a/docs/assets/stylesheets/theme.css +++ b/docs/assets/stylesheets/theme.css @@ -19,7 +19,7 @@ --reannz-orange: rgb(241, 128, 0); --reannz-purple: rgb(132, 121, 183); -[data-md-color-scheme="default"] { +[data-md-color-scheme="default"] { /* original definitions of these colors here: https://github.com/squidfunk/mkdocs-material/blob/master/src/templates/assets/stylesheets/main/_colors.scss */ --md-primary-fg-color: var(--reannz-blue--dark); /* head bar background color */ --md-accent-fg-color: var(--reannz-blue); /* hover color for sidebar links */ /* --md-accent-bg-color: var(--reannz-orange); */ /* cannot figure what this one does */ @@ -28,8 +28,8 @@ /* --md-accent-fg-color--light: var(--reannz-orange); */ /* cannot figure what this one does */ /* --md-default-fg-color: var(--reannz-orange); */ /* main text color, sub H1 headers too */ /* --md-default-bg-color: var(--reannz-orange); */ /* main background color */ - /* --md-code-fg-color: var(--reannz-orange); */ /* main color for code text */ - /* --md-code-bg-color: var(--reannz-orange); */ /* main color for code background */ + /* --md-code-fg-color: rgb(53,69,77); */ /* main color for code text */ + --md-code-bg-color: var(--md-code-bg-color--light); /* main color for code background */ /* --md-typeset-color: var(--reannz-orange); */ /* main text color, sub H1 headers too */ } @@ -61,10 +61,12 @@ /* e.g. inactive link text */ .md-typeset a { color: var(--reannz-blue--shade-negative1); + text-decoration: underline; } .md-typeset a:hover { color: var(--reannz-blue); + text-decoration: underline; } [data-md-color-scheme="slate"] .md-typeset a:hover {