diff --git a/.issues/.sync/config.json b/.issues/.sync/config.json new file mode 100644 index 0000000..a1f1039 --- /dev/null +++ b/.issues/.sync/config.json @@ -0,0 +1,9 @@ +{ + "repository": { + "owner": "BlackPythonDevs", + "repo": "blackpythondevs.github.io" + }, + "sync": { + "last_full_pull": "2026-01-09T15:22:57.5743Z" + } +} diff --git a/.issues/.sync/issue_types.json b/.issues/.sync/issue_types.json new file mode 100644 index 0000000..c920656 --- /dev/null +++ b/.issues/.sync/issue_types.json @@ -0,0 +1,20 @@ +{ + "issue_types": [ + { + "id": "IT_kwDOCJKUFs4BNcjg", + "name": "Bug", + "description": "An unexpected problem or behavior" + }, + { + "id": "IT_kwDOCJKUFs4BNcji", + "name": "Feature", + "description": "A request, idea, or new functionality" + }, + { + "id": "IT_kwDOCJKUFs4BNcje", + "name": "Task", + "description": "A specific piece of work" + } + ], + "synced_at": "2026-01-09T15:22:57.5743Z" +} diff --git a/.issues/.sync/labels.json b/.issues/.sync/labels.json new file mode 100644 index 0000000..62ee517 --- /dev/null +++ b/.issues/.sync/labels.json @@ -0,0 +1,201 @@ +{ + "labels": [ + { + "name": "a11y", + "color": "C822A6" + }, + { + "name": "announcement", + "color": "65EAAD" + }, + { + "name": "automated issue", + "color": "F244E0" + }, + { + "name": "automated pr", + "color": "ededed" + }, + { + "name": "backlog", + "color": "A9DD9A" + }, + { + "name": "blog post", + "color": "9E889B" + }, + { + "name": "bug", + "color": "d73a4a" + }, + { + "name": "conference", + "color": "D87148" + }, + { + "name": "conference_accepted", + "color": "71846D" + }, + { + "name": "conference_approved", + "color": "7FA733" + }, + { + "name": "content", + "color": "ACC446" + }, + { + "name": "css", + "color": "2794D2" + }, + { + "name": "data", + "color": "E1961B" + }, + { + "name": "dependencies", + "color": "052215" + }, + { + "name": "design", + "color": "5853F8" + }, + { + "name": "design_change", + "color": "12BFBB" + }, + { + "name": "devcontainer", + "color": "1CB5A8" + }, + { + "name": "documentation", + "color": "0075ca" + }, + { + "name": "duplicate", + "color": "cfd3d7" + }, + { + "name": "enhancement", + "color": "a2eeef" + }, + { + "name": "epic", + "color": "b60205" + }, + { + "name": "events", + "color": "134F9E" + }, + { + "name": "github actions", + "color": "2D9AED" + }, + { + "name": "good first issue", + "color": "7057ff" + }, + { + "name": "hacktoberfest-accepted", + "color": "AB296E" + }, + { + "name": "help wanted", + "color": "008672" + }, + { + "name": "high priority", + "color": "B60205" + }, + { + "name": "hold", + "color": "834137" + }, + { + "name": "i18n", + "color": "1FEC6C" + }, + { + "name": "idea", + "color": "15B86C" + }, + { + "name": "infrastructure", + "color": "4E0B08" + }, + { + "name": "invalid", + "color": "e4e669" + }, + { + "name": "javascript", + "color": "74E221" + }, + { + "name": "leadership summit", + "color": "8E8FB7" + }, + { + "name": "more-thought", + "color": "4FCFC6" + }, + { + "name": "partnerships", + "color": "93B826" + }, + { + "name": "performance", + "color": "2684FF" + }, + { + "name": "playwright", + "color": "193BE3" + }, + { + "name": "python", + "color": "7B6C1B" + }, + { + "name": "question", + "color": "d876e3" + }, + { + "name": "report", + "color": "ededed" + }, + { + "name": "responsiveness", + "color": "772001" + }, + { + "name": "ruby", + "color": "EDFB22" + }, + { + "name": "security", + "color": "0D6780" + }, + { + "name": "swahili", + "color": "E56133" + }, + { + "name": "testing", + "color": "77D2FA" + }, + { + "name": "translation", + "color": "9ADB5C" + }, + { + "name": "typo", + "color": "aaaaaa" + }, + { + "name": "wontfix", + "color": "ffffff" + } + ], + "synced_at": "2026-01-09T15:22:57.5743Z" +} diff --git a/.issues/.sync/milestones.json b/.issues/.sync/milestones.json new file mode 100644 index 0000000..795a2c1 --- /dev/null +++ b/.issues/.sync/milestones.json @@ -0,0 +1,10 @@ +{ + "milestones": [ + { + "title": "PyCon Sprints 2025", + "due_on": "2025-05-20T00:00:00Z", + "state": "open" + } + ], + "synced_at": "2026-01-09T15:22:57.5743Z" +} diff --git a/.issues/.sync/originals/10.md b/.issues/.sync/originals/10.md new file mode 100644 index 0000000..c3792d7 --- /dev/null +++ b/.issues/.sync/originals/10.md @@ -0,0 +1,21 @@ +--- +title: Create a membership map +labels: + - enhancement + - hacktoberfest-accepted +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.087581Z +info: + author: kjaymiller + created_at: 2023-10-03T14:54:13Z + updated_at: 2024-10-10T18:22:07Z +--- + +I'm not sure the easiest way to do this but I think we can figure it out together. + +I've seen plenty of communities that have maps that highlight where their members are. While I don't think we need to be hyper specific I think a file that has a counter showing what countries people are from could be interesting. It would be nice to tie this into registration but I think that would be over-compilcating things a bit. + +Perhaps we can start with some form (Google forms/Microsoft Forms) and then use that data to create a heatmap + +I've done this with Elasticsearch, Google Maps, and with Azure Maps, we could also use a more open mapping tool. diff --git a/.issues/.sync/originals/112.md b/.issues/.sync/originals/112.md new file mode 100644 index 0000000..3195e75 --- /dev/null +++ b/.issues/.sync/originals/112.md @@ -0,0 +1,16 @@ +--- +title: "Add website translation for Hausa " +labels: + - translation +assignees: + - bhantsi +projects: + - Black Python Devs Planning +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.088267Z +info: + author: bhantsi + created_at: 2023-10-29T10:58:07Z + updated_at: 2024-03-08T13:54:09Z +--- diff --git a/.issues/.sync/originals/281.md b/.issues/.sync/originals/281.md new file mode 100644 index 0000000..4f444b1 --- /dev/null +++ b/.issues/.sync/originals/281.md @@ -0,0 +1,19 @@ +--- +title: "\U0001F4A1[IDEA] - Use Playwright to Create a screenshot of the built page changes" +labels: + - backlog + - idea + - playwright + - testing +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.088472Z +info: + author: kjaymiller + created_at: 2024-03-18T14:56:04Z + updated_at: 2024-10-05T23:38:40Z +--- + +This would be really cool and something we could definitely talk about at events. + +When a change is made I would love to see an attachment that includes a zip of the playwright recording with a quick review of pages to test. This could be modified by GitHub tags (index that looks for tags and runs tests and review based on what is included) diff --git a/.issues/.sync/originals/344.md b/.issues/.sync/originals/344.md new file mode 100644 index 0000000..6c8f7bc --- /dev/null +++ b/.issues/.sync/originals/344.md @@ -0,0 +1,23 @@ +--- +title: Add a section on the Conferences page to consider being sponsored and having your conference added to the Black Python Devs Website +labels: + - content +projects: + - Black Python Devs Planning +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.088705Z +info: + author: kjaymiller + created_at: 2024-06-29T19:52:47Z + updated_at: 2024-06-29T19:53:08Z +--- + +Currently, we don't have a user friendly way to talk about sponsoring us. Here are some things that I would like to consider adding to our website in the conferences sections. + +BELOW THE LIST of conferences + +- [ ] A link to our prospectus (in development) +- [ ] A quick outline of the types of sponsorships we offer. + - [ ] Community Sponsor (Tickets for Local Black Python Developers) + - [ ] Commitment Sponsor (Multi-year commitment to increase engagement of Black Python Developers in the local community) diff --git a/.issues/.sync/originals/386.md b/.issues/.sync/originals/386.md new file mode 100644 index 0000000..e1d42e6 --- /dev/null +++ b/.issues/.sync/originals/386.md @@ -0,0 +1,20 @@ +--- +title: "[QUESTION] Can the conferences link be closed once conference item has been created" +labels: + - help wanted +assignees: + - kjaymiller +projects: + - Black Python Devs Planning +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.088921Z +info: + author: kjaymiller + created_at: 2024-08-23T18:09:43Z + updated_at: 2024-10-04T17:57:33Z +--- + +We have conferences that are open issues and have been for months. Is the code that is responsible for reading the yaml only looking for open issues? + +If so it would be nice to modify this to look for all issues (Perhaps filter by tags like `conference` `-proccessed`) diff --git a/.issues/.sync/originals/401.md b/.issues/.sync/originals/401.md new file mode 100644 index 0000000..3ca2680 --- /dev/null +++ b/.issues/.sync/originals/401.md @@ -0,0 +1,38 @@ +--- +title: Make local development significantly easier +labels: + - help wanted +projects: + - Black Python Devs Planning +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.089122Z +info: + author: kjaymiller + created_at: 2024-08-29T13:15:57Z + updated_at: 2024-12-31T14:24:07Z +--- + +I'm not sure why but I am completely unable to run this project outside of a devcontainer or codespace. + +I'm not sure if it's issues with my local Ruby setup or not. + +I'm open to different suggestions on this but the more we force folks to use codespaces then we limit their contribution based on what they are willing to pay for. + +### Suggestions + +#### Diagram + +We need a diagram of the infrastructure to better understand the different tools that we're using. + +- [x] #402 + +#### Dockerfile + +Beauty of a dockerfile is that it can be the source for the codespace (we don't have access to the existing codespace dockerfile so we'd likely need to start over. It also means that we can implement this across operating systems as well. + +#### Make or Invoke + +I don't have a preference on this but we should make it simple to `setup`, `test`, `lint` and `run` services regardless of the language. + +I would probably be more comfortable with invoke since it's python code but if someone knows enough about make to make it easy to follow I wouldn't mind. diff --git a/.issues/.sync/originals/507.md b/.issues/.sync/originals/507.md new file mode 100644 index 0000000..a940901 --- /dev/null +++ b/.issues/.sync/originals/507.md @@ -0,0 +1,32 @@ +--- +title: Add permissiosn to workflows at the issue level +labels: + - security +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.090011Z +info: + author: kjaymiller + created_at: 2024-10-05T21:08:48Z + updated_at: 2024-10-05T21:49:47Z +--- + +Actions should have issue + +## Why + +We have settings that allow for actions to create Pull Requests against our code using GitHub actions. + +By Setting restrictions only where they are needed and setting actions to read otherwise will reduce the action space in which this can be applied. + +#### Remediation (click "Show more" below): + +> Set top-level permissions as read-all or contents: read as described in GitHub's [documentation](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#permissions). + +Set this if there if GITHUB_TOKEN is not being used. + +> Set any required write permissions at the job-level. Only set the permissions required for that job; do not set permissions: write-all at the job level. + +For actions where GITHUB_TOKEN is being used then we need to set the permissions in the job where it is required. + +> To help determine the permissions needed for your workflows, you may use [StepSecurity's online tool](https://app.stepsecurity.io/secureworkflow/) by ticking the "Restrict permissions for GITHUB_TOKEN". You may also tick the "Pin actions to a full length commit SHA" to fix issues found by the Pinned-dependencies check. diff --git a/.issues/.sync/originals/561.md b/.issues/.sync/originals/561.md new file mode 100644 index 0000000..4052c2d --- /dev/null +++ b/.issues/.sync/originals/561.md @@ -0,0 +1,19 @@ +--- +title: "[Chore] Image maintenance" +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.090259Z +info: + author: kjaymiller + created_at: 2024-11-05T02:45:35Z + updated_at: 2024-11-05T02:45:58Z +--- + +There are some maintenance tasks that can be accomplished on the websites images. + +- [ ] All images that appear in blog posts should be webp with either a 1:1, 4:3, or 16:9 ratio (crop to the closest one) (Max dimensions should 1920 x 1080. +- [ ] images should be webp unless jpeg (specifically jpeg) is smaller in size +- [ ] [INVESTIGATE] moving the images to a cloud storage solution with a cdn in front of them +- [ ] Run scripts to enforce image mandates] +- [ ] Create workflow for image upload to cloud storage +- [ ] contributors.md should be updated with this information. diff --git a/.issues/.sync/originals/567.md b/.issues/.sync/originals/567.md new file mode 100644 index 0000000..85d4ded --- /dev/null +++ b/.issues/.sync/originals/567.md @@ -0,0 +1,22 @@ +--- +title: Add blog posts to snapshot tests +labels: + - testing +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.090429Z +info: + author: kjaymiller + created_at: 2024-11-06T14:19:48Z + updated_at: 2024-11-06T14:19:59Z +--- + +#566 was detected after seeing the changes affected on the blog. + +We have #483 which made it easy to view the static pages but blog posts were excluded... + +#563 shows how to iterate through the blog. We so we could generate snapshots of blog posts as well. This would help check for issues in blog posts.. + +#### Why check ALL the blog posts + +It's true that checking every blog post may seem excessive. Sadly we've had issues that snuck by us due to metadata being incorrect. diff --git a/.issues/.sync/originals/637.md b/.issues/.sync/originals/637.md new file mode 100644 index 0000000..8b7612c --- /dev/null +++ b/.issues/.sync/originals/637.md @@ -0,0 +1,19 @@ +--- +title: Cleaning Tasks on Website +assignees: + - kjaymiller +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.090608Z +info: + author: kjaymiller + created_at: 2025-01-29T11:26:30Z + updated_at: 2025-03-28T17:03:50Z +--- + +There a few updates that need to be made on the repo. + +- [x] #638 +- [x] #639 +- [x] #640 +- [ ] #641 diff --git a/.issues/.sync/originals/641.md b/.issues/.sync/originals/641.md new file mode 100644 index 0000000..76baed9 --- /dev/null +++ b/.issues/.sync/originals/641.md @@ -0,0 +1,21 @@ +--- +title: move the leadership summit to an events collection that paths to the same location +assignees: + - TimOsahenru +state: open +state_reason: null +parent: 637 +synced_at: 2026-01-07T18:48:39.090786Z +info: + author: kjaymiller + created_at: 2025-01-29T11:28:12Z + updated_at: 2025-02-14T01:36:16Z +--- + +We have the leadership summit at /leadership-summit-2024 + +I'm okay that link being being there but currently the org has a lot of content at the root with some content in other places. + +As a part of cleaning things up and simplifying them, I'd like to get our events in a subfolder. + +Long term the entire site should be in a `src` folder but all our events should be in an `events` folder. diff --git a/.issues/.sync/originals/654.md b/.issues/.sync/originals/654.md new file mode 100644 index 0000000..0230cd9 --- /dev/null +++ b/.issues/.sync/originals/654.md @@ -0,0 +1,12 @@ +--- +title: Fix failing accessibility test +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.090965Z +info: + author: TimOsahenru + created_at: 2025-03-28T14:57:42Z + updated_at: 2025-03-28T14:58:43Z +--- + +Fix the failing accessibility test on this PR https://github.com/BlackPythonDevs/blackpythondevs.github.io/pull/651 diff --git a/.issues/.sync/originals/675.md b/.issues/.sync/originals/675.md new file mode 100644 index 0000000..f2f5c23 --- /dev/null +++ b/.issues/.sync/originals/675.md @@ -0,0 +1,12 @@ +--- +title: Add Leaflet.js to the site +milestone: PyCon Sprints 2025 +state: open +state_reason: null +parent: 682 +synced_at: 2026-01-07T18:48:39.091156Z +info: + author: kjaymiller + created_at: 2025-05-18T00:51:49Z + updated_at: 2025-05-18T21:31:47Z +--- diff --git a/.issues/.sync/originals/676.md b/.issues/.sync/originals/676.md new file mode 100644 index 0000000..e9c51eb --- /dev/null +++ b/.issues/.sync/originals/676.md @@ -0,0 +1,27 @@ +--- +title: Migrate Site to Render Engine +milestone: PyCon Sprints 2025 +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.091319Z +info: + author: kjaymiller + created_at: 2025-05-18T04:13:49Z + updated_at: 2025-05-18T21:31:47Z +--- + +We've been looking about making this change for some time. + +It would be great to simplify the codebase by moving the code to one language. + +My suggestion is to use [Render-Engine](https://github.com/render-engine/render-engine) (Disclosure I am the maintainer of Render Engine) + +## Pros + +- Completely removes ruby from build +- Modern SSG built in Python +- Actively encourages developers to support an ecosystem created by a BPD member + +## Cons + +- Not a popular web framework diff --git a/.issues/.sync/originals/677.md b/.issues/.sync/originals/677.md new file mode 100644 index 0000000..9d1fb63 --- /dev/null +++ b/.issues/.sync/originals/677.md @@ -0,0 +1,18 @@ +--- +title: create settings file +milestone: PyCon Sprints 2025 +state: open +state_reason: null +parent: 676 +synced_at: 2026-01-07T18:48:39.091476Z +info: + author: kjaymiller + created_at: 2025-05-18T04:22:35Z + updated_at: 2025-05-18T21:31:47Z +--- + +It's often a cleaner pattern to create a settings file. + +This file is responsible for global settings on the website. + +For Example: https://github.com/kjaymiller/kjaymiller.com/blob/main/settings.json diff --git a/.issues/.sync/originals/679.md b/.issues/.sync/originals/679.md new file mode 100644 index 0000000..2d7e8e4 --- /dev/null +++ b/.issues/.sync/originals/679.md @@ -0,0 +1,12 @@ +--- +title: create blog collection for posts +milestone: PyCon Sprints 2025 +state: open +state_reason: null +parent: 676 +synced_at: 2026-01-07T18:48:39.091651Z +info: + author: kjaymiller + created_at: 2025-05-18T21:29:20Z + updated_at: 2025-05-18T21:31:48Z +--- diff --git a/.issues/.sync/originals/680.md b/.issues/.sync/originals/680.md new file mode 100644 index 0000000..d0ee197 --- /dev/null +++ b/.issues/.sync/originals/680.md @@ -0,0 +1,12 @@ +--- +title: create events collection for workshops leadership summit +milestone: PyCon Sprints 2025 +state: open +state_reason: null +parent: 676 +synced_at: 2026-01-07T18:48:39.091817Z +info: + author: kjaymiller + created_at: 2025-05-18T21:29:54Z + updated_at: 2025-05-18T21:31:48Z +--- diff --git a/.issues/.sync/originals/681.md b/.issues/.sync/originals/681.md new file mode 100644 index 0000000..ca912b9 --- /dev/null +++ b/.issues/.sync/originals/681.md @@ -0,0 +1,11 @@ +--- +title: Update Events pages to show that events have clearly ended +milestone: PyCon Sprints 2025 +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.09198Z +info: + author: kjaymiller + created_at: 2025-05-18T21:30:21Z + updated_at: 2025-05-18T21:37:37Z +--- diff --git a/.issues/.sync/originals/682.md b/.issues/.sync/originals/682.md new file mode 100644 index 0000000..6e745dc --- /dev/null +++ b/.issues/.sync/originals/682.md @@ -0,0 +1,12 @@ +--- +title: Create Location Snippet +milestone: PyCon Sprints 2025 +state: open +state_reason: null +parent: 10 +synced_at: 2026-01-07T18:48:39.092156Z +info: + author: kjaymiller + created_at: 2025-05-18T21:33:18Z + updated_at: 2025-05-18T21:37:37Z +--- diff --git a/.issues/.sync/originals/683.md b/.issues/.sync/originals/683.md new file mode 100644 index 0000000..a785026 --- /dev/null +++ b/.issues/.sync/originals/683.md @@ -0,0 +1,12 @@ +--- +title: Add geojson to site in static folder path +milestone: PyCon Sprints 2025 +state: open +state_reason: null +parent: 682 +synced_at: 2026-01-07T18:48:39.092318Z +info: + author: kjaymiller + created_at: 2025-05-18T21:34:39Z + updated_at: 2025-05-18T21:37:37Z +--- diff --git a/.issues/.sync/originals/684.md b/.issues/.sync/originals/684.md new file mode 100644 index 0000000..c736c31 --- /dev/null +++ b/.issues/.sync/originals/684.md @@ -0,0 +1,14 @@ +--- +title: rename branch to main +labels: + - hold +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.092474Z +info: + author: kjaymiller + created_at: 2025-05-18T21:48:11Z + updated_at: 2025-05-22T12:23:11Z +--- + +LAST steps for sprints diff --git a/.issues/.sync/originals/685.md b/.issues/.sync/originals/685.md new file mode 100644 index 0000000..eb9a711 --- /dev/null +++ b/.issues/.sync/originals/685.md @@ -0,0 +1,12 @@ +--- +title: Update docs from saying built with Jekyll to built with Render Engine +labels: + - good first issue +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.092627Z +info: + author: kjaymiller + created_at: 2025-05-18T21:49:42Z + updated_at: 2025-05-18T21:55:30Z +--- diff --git a/.issues/.sync/originals/686.md b/.issues/.sync/originals/686.md new file mode 100644 index 0000000..895e5ea --- /dev/null +++ b/.issues/.sync/originals/686.md @@ -0,0 +1,10 @@ +--- +title: Update Contributions page with new steps for render engine +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.092786Z +info: + author: kjaymiller + created_at: 2025-05-18T21:50:01Z + updated_at: 2025-05-18T21:50:01Z +--- diff --git a/.issues/.sync/originals/687.md b/.issues/.sync/originals/687.md new file mode 100644 index 0000000..af36a5a --- /dev/null +++ b/.issues/.sync/originals/687.md @@ -0,0 +1,11 @@ +--- +title: update devcontainers to use standard python image +milestone: PyCon Sprints 2025 +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.092936Z +info: + author: kjaymiller + created_at: 2025-05-18T21:51:25Z + updated_at: 2025-05-18T21:51:30Z +--- diff --git a/.issues/.sync/originals/688.md b/.issues/.sync/originals/688.md new file mode 100644 index 0000000..0ca4539 --- /dev/null +++ b/.issues/.sync/originals/688.md @@ -0,0 +1,49 @@ +--- +title: Add all contributors +labels: + - good first issue +milestone: PyCon Sprints 2025 +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.093113Z +info: + author: kjaymiller + created_at: 2025-05-18T21:52:05Z + updated_at: 2025-07-19T16:14:01Z +--- + +## Description + +We should implement the [all-contributors](https://allcontributors.org/) specification to recognize all people who contribute to our project, not just code contributors. This will help us acknowledge various types of contributions including documentation, design, testing, and more. + +## Motivation + +- Properly recognize all contributors regardless of contribution type +- Create a more inclusive environment that values all forms of contribution +- Provide clear documentation of who has helped with the project and how +- Encourage more diverse contributions by showing we value all types of help + +## Implementation Plan + +- [ ] Initialize the specification: `npx all-contributors init` +- [ ] Add existing contributors using the CLI: `npx all-contributors add ` +- [ ] Set up a .all-contributorsrc configuration file +- [ ] Add the contributors table to our README.md +- [ ] Document the process for adding new contributors in CONTRIBUTING.md + +## Additional Details + +- Contribution types to recognize: code, doc, design, bug, test, ideas, review, talk, tutorial, etc. +- CLI will maintain both .all-contributorsrc and README.md files automatically +- We can configure the bot to automatically suggest adding new contributors + +## Questions + +- Should we use the all-contributors bot for automated PRs? +- What emoji/acknowledgment style should we use for the contributors table? +- Should we include the contributors table at the top or bottom of the README? + +## Resources + +- [all-contributors documentation](https://allcontributors.org/docs/en/overview) +- [Example repositories using all-contributors](https://github.com/all-contributors/all-contributors/blob/master/README.md#who-uses-it) diff --git a/.issues/.sync/originals/689.md b/.issues/.sync/originals/689.md new file mode 100644 index 0000000..5b05f8c --- /dev/null +++ b/.issues/.sync/originals/689.md @@ -0,0 +1,13 @@ +--- +title: Fix security workflow +milestone: PyCon Sprints 2025 +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.093277Z +info: + author: kjaymiller + created_at: 2025-05-18T22:01:57Z + updated_at: 2025-05-18T22:02:01Z +--- + +Currently the security scan has not worked since Jan 2025 diff --git a/.issues/.sync/originals/707.md b/.issues/.sync/originals/707.md new file mode 100644 index 0000000..7a001f2 --- /dev/null +++ b/.issues/.sync/originals/707.md @@ -0,0 +1,10 @@ +--- +title: Author in frontmatter should be list to simplify template and check in pre-commit +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.093428Z +info: + author: kjaymiller + created_at: 2025-05-20T17:51:40Z + updated_at: 2025-05-20T17:51:40Z +--- diff --git a/.issues/.sync/originals/718.md b/.issues/.sync/originals/718.md new file mode 100644 index 0000000..9769426 --- /dev/null +++ b/.issues/.sync/originals/718.md @@ -0,0 +1,16 @@ +--- +title: Fix loop names +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.093589Z +info: + author: kjaymiller + created_at: 2025-06-26T21:08:20Z + updated_at: 2025-06-26T21:08:20Z +--- + +Should be a new issue.... + +_Originally posted by @kjaymiller in https://github.com/BlackPythonDevs/blackpythondevs.github.io/pull/717#discussion_r2170013151_ + +The loop is working currently so no need to change until cleaning up and refactoring. diff --git a/.issues/.sync/originals/719.md b/.issues/.sync/originals/719.md new file mode 100644 index 0000000..2933142 --- /dev/null +++ b/.issues/.sync/originals/719.md @@ -0,0 +1,20 @@ +--- +title: Update unless tag +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.09374Z +info: + author: kjaymiller + created_at: 2025-06-26T21:16:31Z + updated_at: 2025-06-26T21:16:31Z +--- + +Currently not breaking anything (maybe a11y) + +The condition in the 'unless' tag is malformed; it likely should be written as {% unless entry.platform == "rss" %}. + +```suggestion + +``` + +_Originally posted by @Copilot in https://github.com/BlackPythonDevs/blackpythondevs.github.io/pull/717#discussion_r2169998093_ diff --git a/.issues/.sync/originals/720.md b/.issues/.sync/originals/720.md new file mode 100644 index 0000000..e7324ff --- /dev/null +++ b/.issues/.sync/originals/720.md @@ -0,0 +1,16 @@ +--- +title: "[Remove] lang reference" +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.093894Z +info: + author: kjaymiller + created_at: 2025-06-26T21:17:45Z + updated_at: 2025-06-26T21:17:45Z +--- + +Multiple languages were removed... this should be removed. + +The condition comparing 'lang' to itself is always true; consider comparing the loop variable to the current page language (e.g. {% if page.lang == lang %}). + +_Originally posted by @Copilot in https://github.com/BlackPythonDevs/blackpythondevs.github.io/pull/717#discussion_r2169998101_ diff --git a/.issues/.sync/originals/721.md b/.issues/.sync/originals/721.md new file mode 100644 index 0000000..a4b0aca --- /dev/null +++ b/.issues/.sync/originals/721.md @@ -0,0 +1,16 @@ +--- +title: either add integrity check or download and call from local source +assignees: + - TimOsahenru +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.094051Z +info: + author: kjaymiller + created_at: 2025-06-26T21:19:12Z + updated_at: 2025-10-02T17:08:21Z +--- + +either add integrity check or download and call from local source + +_Originally posted by @kjaymiller in https://github.com/BlackPythonDevs/blackpythondevs.github.io/pull/717#discussion_r2170032246_ diff --git a/.issues/.sync/originals/726.md b/.issues/.sync/originals/726.md new file mode 100644 index 0000000..3dd9acf --- /dev/null +++ b/.issues/.sync/originals/726.md @@ -0,0 +1,15 @@ +--- +title: Fix broken images +labels: + - good first issue + - hacktoberfest-accepted +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.094212Z +info: + author: TimOsahenru + created_at: 2025-07-28T13:11:37Z + updated_at: 2025-10-02T17:07:55Z +--- + +some images are broken on our blog page. Investigate and help fix them diff --git a/.issues/.sync/originals/729.md b/.issues/.sync/originals/729.md new file mode 100644 index 0000000..2cb82fb --- /dev/null +++ b/.issues/.sync/originals/729.md @@ -0,0 +1,17 @@ +--- +title: Ux design issue +labels: + - design + - good first issue + - hacktoberfest-accepted +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.094378Z +info: + author: TimOsahenru + created_at: 2025-07-28T13:26:38Z + updated_at: 2025-10-02T17:06:50Z +--- + +Hey @kjaymiller why don't we have events as the parent link while sponsored and bpd become a drop down and/or rename bpd events to "in house events" +Image diff --git a/.issues/.sync/originals/750.md b/.issues/.sync/originals/750.md new file mode 100644 index 0000000..c96b8fc --- /dev/null +++ b/.issues/.sync/originals/750.md @@ -0,0 +1,16 @@ +--- +title: Fix playwright tests +assignees: + - danielcristho +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.094533Z +info: + author: kjaymiller + created_at: 2025-08-28T15:21:41Z + updated_at: 2025-12-27T11:35:34Z +--- + +In our migration to render-engine - Playwright broke. + +There were a lot of minor actual issues that can be fixed but also we've had issues with the live server starting and running so that we can actually test against the issues. diff --git a/.issues/.sync/originals/753.md b/.issues/.sync/originals/753.md new file mode 100644 index 0000000..d3dc34e --- /dev/null +++ b/.issues/.sync/originals/753.md @@ -0,0 +1,15 @@ +--- +title: | + Add test that ensures that all pages are accessible to the website +assignees: + - TimOsahenru +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.094693Z +info: + author: kjaymiller + created_at: 2025-08-30T00:10:31Z + updated_at: 2025-10-11T18:09:31Z +--- + +I found pages in the /pages have no link to them currently. Some of those pages need to be visible while others should be removed. diff --git a/.issues/.sync/originals/765.md b/.issues/.sync/originals/765.md new file mode 100644 index 0000000..ce5b1be --- /dev/null +++ b/.issues/.sync/originals/765.md @@ -0,0 +1,23 @@ +--- +title: Create link to Code of Conduct for footer +labels: + - good first issue + - hacktoberfest-accepted +assignees: + - MohammadRehaanDev +state: open +state_reason: null +parent: 753 +synced_at: 2026-01-07T18:48:39.094848Z +info: + author: kjaymiller + created_at: 2025-10-02T17:19:12Z + updated_at: 2025-11-10T13:57:12Z +--- + +Currently there is no link to the Code of Conduct page. + +A perfect place to add this is the footer. + +- Identify the route to the code of conduct +- Include a link to that route in the footer diff --git a/.issues/.sync/originals/766.md b/.issues/.sync/originals/766.md new file mode 100644 index 0000000..27862d5 --- /dev/null +++ b/.issues/.sync/originals/766.md @@ -0,0 +1,14 @@ +--- +title: Add country flag to leaders bio +labels: + - hold +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.095008Z +info: + author: TimOsahenru + created_at: 2025-10-02T17:29:15Z + updated_at: 2025-10-11T14:27:07Z +--- + +Add the country flag of the leadership team to the bio in the about page https://blackpythondevs.com/about.html diff --git a/.issues/.sync/originals/778.md b/.issues/.sync/originals/778.md new file mode 100644 index 0000000..0f39057 --- /dev/null +++ b/.issues/.sync/originals/778.md @@ -0,0 +1,14 @@ +--- +title: Add Code of Conduct link to footer +assignees: + - kjaymiller +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.095183Z +info: + author: kjaymiller + created_at: 2025-11-14T20:55:52Z + updated_at: 2025-11-14T20:55:52Z +--- + +Add a link to the Code of Conduct page in the Quick Links section of the footer. This improves discoverability of the community guidelines and makes it easier for visitors to find our Code of Conduct. diff --git a/.issues/.sync/originals/783.md b/.issues/.sync/originals/783.md new file mode 100644 index 0000000..2963cfc --- /dev/null +++ b/.issues/.sync/originals/783.md @@ -0,0 +1,20 @@ +--- +title: I've reverted it back to 2025. I just realized that the year should be updated via app.py (where it's set dynamically), not hardcoded in footer.html. +state: closed +state_reason: COMPLETED +synced_at: 2026-01-09T15:22:57.570796Z +info: + author: kjaymiller + created_at: 2026-01-04T19:28:19Z + updated_at: 2026-01-09T14:41:59Z +--- + +I've reverted it back to 2025. I just realized that the year should be updated via app.py (where it's set dynamically), not hardcoded in footer.html. + +I think we should use the `{{ year }}` variable instead: + +`© 2025 Black Python Devs` -> `© {{ year }} Black Python Devs` + +I'll open a separate issue to address this. + +_Originally posted by @danielcristho in https://github.com/BlackPythonDevs/blackpythondevs.github.io/pull/782#discussion_r2659148678_ diff --git a/.issues/.sync/originals/784.md b/.issues/.sync/originals/784.md new file mode 100644 index 0000000..27d8de3 --- /dev/null +++ b/.issues/.sync/originals/784.md @@ -0,0 +1,28 @@ +--- +title: I reran the test suite with verbose logging to investigate the failures. Most of the failures are test-related issues introduced during the migration from Jekyll to Render Engine . +state: open +state_reason: null +synced_at: 2026-01-07T18:48:39.095509Z +info: + author: kjaymiller + created_at: 2026-01-04T19:30:42Z + updated_at: 2026-01-04T19:30:42Z +--- + +I reran the test suite with verbose logging to investigate the failures. Most of the failures are test-related issues introduced during the migration from Jekyll to Render Engine . + +Test fixed: + +- Updated the email link selector from email to contact@blackpythondevs.com +- Fixed the blog description test to match the actual HTML structure (article elements instead of p.post-description +- Corrected title format expectations to match actual output ('Page | Black Python Devs' instead of 'Black Python Devs | Page') + +Remaining issues: + +- Blog post URL generation tests still assume filename-based URLs (e.g. /blog/2024-05-25-filename.html), while the Render Engine generates title-based slugs (e.g. /blog/title-based-slug.html) -> 29 failing tests +- Missing language attribute: pages currently render lang="" instead of lang="en" +- I still need to verify whether there are any accessibility issues beyond test assumptions + +Let me know how you'd like to proceed on the remaining items. + +_Originally posted by @danielcristho in https://github.com/BlackPythonDevs/blackpythondevs.github.io/issues/782#issuecomment-3707405095_ diff --git a/.issues/.sync/originals/785.md b/.issues/.sync/originals/785.md new file mode 100644 index 0000000..a8fc175 --- /dev/null +++ b/.issues/.sync/originals/785.md @@ -0,0 +1,38 @@ +--- +title: Update Leadership JSON +labels: + - data +assignees: + - dragid10 +state: closed +state_reason: COMPLETED +synced_at: 2026-01-09T15:22:57.571945Z +info: + author: kjaymiller + created_at: 2026-01-07T18:59:13Z + updated_at: 2026-01-09T03:26:27Z +--- + +Update the leadership json with the following information + +| Leadership Region | Name | +| ----------------- | ---------------- | +| Global | Jay Miller | +| US/Canada | Nick Muoh | +| LATAM | Denny Perez | +| Africa | Emanuel Ugwu | +| Africa - Western | Damilola Oladele | +| Africa Southern | Kudzayi Bamhare | +| Africa - Eastern | Brayan Kai | + +Remove Old Regional Leaders +Lazouich Ford +Keanya Phelps +Afi Gbadago + +Remove from Advisors +Kudzayi Bambara + +## Implementation Details + +This information is located in `_data/leadership.json`. diff --git a/.issues/.sync/originals/786.md b/.issues/.sync/originals/786.md new file mode 100644 index 0000000..bca1ee3 --- /dev/null +++ b/.issues/.sync/originals/786.md @@ -0,0 +1,15 @@ +--- +title: Add GitHub link to footer +labels: + - design + - enhancement +state: open +state_reason: null +synced_at: 2026-01-07T19:06:03.880039Z +--- + +Add a link to the GitHub repository in the footer. + +The implementation should use a Font Awesome brand icon (fa-fa brand) as requested. + +Current footer location: `_layouts/_includes/footer.html` diff --git a/.issues/.sync/originals/787.md b/.issues/.sync/originals/787.md new file mode 100644 index 0000000..55278a6 --- /dev/null +++ b/.issues/.sync/originals/787.md @@ -0,0 +1,52 @@ +--- +title: DX Audit Report +labels: + - enhancement + - report +state: open +state_reason: null +synced_at: 2026-01-07T19:08:37.939634Z +--- + +## Developer Experience (DX) Audit Report + +This report summarizes the findings of a Developer Experience audit performed on the repository. + +### ✅ Strengths + +1. **Documentation**: + - `README.md` provides a clear mission statement and easy entry points (Codespaces, Gitpod). + - `CONTRIBUTING.md` is comprehensive, featuring diagrams of website and development structures, and clear steps for contribution. + - `MAINTAINERS.md` effectively guides repository maintainers. +2. **Tooling**: + - **Modern Python Tooling**: Usage of `uv` for fast dependency management. + - **Task Runner**: `justfile` simplifies common commands (`install`, `serve`, `check`). + - **Linting & Formatting**: Comprehensive setup with `ruff`, `black`, `prettier`, and `eslint` via `pre-commit`. +3. **CI/CD**: + - Active workflows for checks, accessibility testing (`playwright`), and security (`scorecard`). + +### ⚠️ Areas for Improvement + +1. **Issue Templates**: + + - The `.github/ISSUE_TEMPLATE` directory contains `add_event.yml` but lacks standard **Bug Report** or **Feature Request** templates. This can lead to unstructured issue submissions. + - _Recommendation_: Add `bug_report.md` and `feature_request.md` templates. + +2. **Static Type Checking**: + + - There is no evidence of strict static type checking (e.g., `mypy` or `pyright`) in `pyproject.toml` or `justfile`. + - _Recommendation_: Integrate `mypy` into the dev dependencies and the `just check` command to catch type errors early. + +3. **Justfile `check` Command**: + + - The `check` command runs `format`, which usually _applies_ formatting. In CI or check contexts, it is often better to verify formatting (e.g., `ruff format --check`) rather than modifying files. + - _Recommendation_: Update `justfile` to have separate `fix` (apply format) and `lint` (check format) commands, or ensure `check` uses non-mutating verification. + +4. **Local Dev Setup**: + - While `uv` is great, ensuring `uv` itself is installed is the first step. Adding a small "One-line setup" or check script could further lower the barrier. + +### 📋 Action Plan + +- [ ] Create `bug_report.md` and `feature_request.md` in `.github/ISSUE_TEMPLATE`. +- [ ] Add `mypy` to optional dependencies and configure it. +- [ ] Refine `justfile` commands to distinguish between checking and fixing code. diff --git a/.issues/.sync/originals/788.md b/.issues/.sync/originals/788.md new file mode 100644 index 0000000..c01351b --- /dev/null +++ b/.issues/.sync/originals/788.md @@ -0,0 +1,52 @@ +--- +title: Website Frontend Audit Report +labels: + - a11y + - design + - performance + - report +state: open +state_reason: null +synced_at: 2026-01-07T19:11:34.715217Z +--- + +## Website Frontend Audit Report + +This report summarizes findings regarding the frontend architecture, design implementation, and user experience of the website. + +### ✅ Strengths + +1. **Accessibility (A11y)**: + - Strong use of semantic HTML (`
`, `
`, `