Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# SPDX-FileCopyrightText: 2026 Anton Wiklund and Solid Memo contributors
#
# SPDX-License-Identifier: MIT

name: CI

# Every change is checked before it is merged: a pull request, from this
# repository or a fork, runs the checks and builds every talk. A push to
# main does the same, then publishes the talks on GitHub Pages
# (README.md#publishing).

on:
pull_request:
push:
branches: [main]
workflow_dispatch:

# What every job may read. Only deploy may write to GitHub Pages, and
# says so: a job's permissions replace these.
permissions:
contents: read

# A newer push to a pull request replaces its run still going. On main,
# runs queue instead, so that a deploy is never cut off halfway.
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
# Every file states its copyright and license (`reuse lint`), and the
# workflows are checked (actionlint, zizmor), with the linters from
# PyPI, pinned in scripts/requirements-lint.txt.
lint:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.15"
cache: pip
cache-dependency-path: scripts/requirements-lint.txt
# pip installs outside the checkout, so only the repository's own
# files are there to check.
- run: pip install -r scripts/requirements-lint.txt
- run: npm run lint:reuse
- run: npm run lint:workflows

# The slides' notes and pictures (npm run check:slides), then every
# talk built as a web page, a PDF and a PowerPoint file (npm run build).
build:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version-file: .nvmrc
cache: npm
- run: npm ci
# The PDF and the PowerPoint file are drawn in the runner's own
# Google Chrome, so no browser is downloaded.
- run: npm run check
env:
CHROME_PATH: /usr/bin/google-chrome
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
with:
path: dist

# The talks, published on GitHub Pages, from main only.
deploy:
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
needs: [lint, build]
runs-on: ubuntu-latest
timeout-minutes: 10
# To deploy the artifact to GitHub Pages, which proves the run is this
# workflow's with an OIDC token.
permissions:
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: false
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- id: deployment
uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5.0.1
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# SPDX-FileCopyrightText: 2026 Anton Wiklund and Solid Memo contributors
#
# SPDX-License-Identifier: MIT

node_modules/
dist/
__pycache__/
15 changes: 15 additions & 0 deletions .marprc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# SPDX-FileCopyrightText: 2026 Anton Wiklund and Solid Memo contributors
#
# SPDX-License-Identifier: MIT

# Marp's settings for every talk (https://github.com/marp-team/marp-cli#configuration-file).
# The themes are in themes/, which npm run build gives Marp with their
# fonts embedded; a talk names one with `theme:` in its front matter.
options:
# HTML in the slides is limited to a few elements and the class
# attribute, for the layouts the themes give (columns, a figure beside
# text): anything else is shown as text, not run.
html:
div: [class]
span: [class]
br: []
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
24
45 changes: 45 additions & 0 deletions 2026-solid-memo-practitioners/images/apps-and-pods.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 2026-solid-memo-practitioners/images/decks.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions 2026-solid-memo-practitioners/images/qr-solid-memo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions 2026-solid-memo-practitioners/images/qr-sponsor.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading