Skip to content

Conversation

cmeesters
Copy link
Member

@cmeesters cmeesters commented Oct 1, 2025

Hi,

This is an attempt to produce a fediwall extension to the Snakemake homepage. If it works, and I have NO idea, it will be under https://snakemake.readthedocs.io/fediwall and - in a 2nd stage - may replace the personalized Mastodon link.

It currently should listen to the following hashtags (hashtags are not case sensitive, they do not allow a regex either):

  • snakemake
  • SnakemakeHackathon
  • SnakemakeHackathon2025
  • SnakemakeHackathon2026
  • SnakemakeHackathon2027
  • SnakemakeWrapper
  • SnakemakeWrappers
  • Snakemake_Wrapper
  • Snakemake_Wrappers

Summary by CodeRabbit

  • New Features

    • Added a "Community Wall" link to the site header navigation for quick access from the main menu.
  • Chores

    • CI pipeline now prepares and embeds static community-wall assets and a default wall configuration during build, ensuring the wall is included and ready in production builds.

Copy link

coderabbitai bot commented Oct 1, 2025

📝 Walkthrough

Walkthrough

Adds CI steps to setup Node.js 18 and download, verify, extract, and install a Fediwall release and generate a static wall-config.json before the existing build step. Also adds a "Community Wall" link to site header navigation.

Changes

Cohort / File(s) Summary
CI workflow: Node setup and Fediwall provisioning
.github/workflows/build_and_deploy.yml
Adds actions/setup-node@v4 (node-version: 18). Adds scripted steps to download a specific Fediwall release, verify its SHA256 checksum, extract and copy files to build/fediwall, create build/fediwall/wall-config.json, and remove temporary files. Placed after checkout and before the existing build step.
Site config: Navigation update
src/config.yaml
Inserts a new header.links entry with text "Community Wall" and url /fediwall/, positioned before the existing "Github" link.

Sequence Diagram(s)

sequenceDiagram
    participant GH as GitHub Actions Runner
    participant Repo as Repository
    participant Node as actions/setup-node@v4
    participant FW as Fediwall provisioning script
    participant Build as Existing build step
    participant Deploy as Deploy step

    GH->>Repo: actions/checkout
    GH->>Node: setup Node.js (18)
    Note right of Node: new CI step

    GH->>FW: download specific Fediwall release
    FW->>FW: verify SHA256 checksum
    FW->>FW: extract & copy to build/fediwall
    FW->>FW: write wall-config.json
    FW->>FW: cleanup temp files
    Note right of FW: new provisioning sequence

    GH->>Build: run existing build (e.g., locosopa)
    GH->>Deploy: deploy artifacts
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title succinctly and accurately describes the main feature introduced by this changeset, namely adding a Fediwall that listens to Snakemake-related hashtags, which aligns closely with both the workflow and configuration changes described in the PR.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/fediwall

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1397a38 and 65a4759.

📒 Files selected for processing (2)
  • .github/workflows/build_and_deploy.yml (1 hunks)
  • src/config.yaml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: test
🔇 Additional comments (1)
.github/workflows/build_and_deploy.yml (1)

41-58: Unable to verify Fediwall archive structure automatically

The automated download of fediwall.zip isn’t returning a valid ZIP, so we can’t confirm whether index.html ends up at build/fediwall/index.html. Please manually download and inspect the latest release archive to ensure index.html is at the root of the extracted folder—update the cp -r invocation if it’s nested under an extra directory.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
.github/workflows/build_and_deploy.yml (1)

55-55: Include dotfiles when copying the extracted bundle.

cp -r fediwall-temp/* … skips leading-dot entries (e.g. .nojekyll), which many single-page app bundles rely on for GitHub Pages to serve correctly. Please switch to a form that preserves dotfiles and metadata, e.g. cp -a fediwall-temp/. build/fediwall/.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 65a4759 and 6fd5170.

📒 Files selected for processing (1)
  • .github/workflows/build_and_deploy.yml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: test

@cmeesters
Copy link
Member Author

the test yields

Request GET /users/vsoch failed with 403: rate limit exceeded
Setting next backoff to 330.103463s
Request GET /users/adamlabadorf failed with 403: rate limit exceeded
Setting next backoff to 1763.950249s
Request GET /users/ressy failed with 403: rate limit exceeded
Setting next backoff to 3581.977035s
Request GET /users/MSamman failed with 403: rate limit exceeded
Setting next backoff to 3582.028155s
Request GET /users/Avsecz failed with 403: rate limit exceeded

no idea, what might cause this due to the changed yaml.

Copy link
Contributor

@johanneskoester johanneskoester left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! I think it would be cool to have this as part of locosopa (the action for the homepage building) itself. This would also simplify the testing, since it does not take so long for the test data there as it needs with all the snakemake contributors to be queried here. You can add it as a rule to this workflow: https://github.com/koesterlab/locosopa/blob/main/locosopa/workflow/Snakefile
E.g. with a little python script, which would maybe also be more readable than this bash script. Let me know whether that would work for you. Otherwise, I could also do that or at least help with that.

@cmeesters
Copy link
Member Author

Actually, I was not aware of locosopa until I attempted this PR ;-). I can give it a go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants