From b826b7ef8890053a560cc90eeac4159935938898 Mon Sep 17 00:00:00 2001 From: Niko Date: Tue, 1 Jul 2025 08:58:44 +0200 Subject: [PATCH 01/14] Add sprints POC with demo content --- src/components/SprintCard.astro | 88 +++++++++++++ src/content/config.ts | 30 +++++ src/content/sprints/_sprints_template.md | 11 ++ .../sprints/bracelet-weaving-workshop.md | 27 ++++ src/content/sprints/data-morph.md | 23 ++++ src/content/sprints/spdt-python-library.md | 21 ++++ src/pages/sprints.astro | 119 ++++++++++++++++++ 7 files changed, 319 insertions(+) create mode 100644 src/components/SprintCard.astro create mode 100644 src/content/sprints/_sprints_template.md create mode 100644 src/content/sprints/bracelet-weaving-workshop.md create mode 100644 src/content/sprints/data-morph.md create mode 100644 src/content/sprints/spdt-python-library.md create mode 100644 src/pages/sprints.astro diff --git a/src/components/SprintCard.astro b/src/components/SprintCard.astro new file mode 100644 index 000000000..391674196 --- /dev/null +++ b/src/components/SprintCard.astro @@ -0,0 +1,88 @@ +--- +import { getEntry } from 'astro:content'; +import Markdown from "@ui/Markdown.astro"; + +const { slug } = Astro.props; + + +const sprint = await getEntry("sprints", slug); + +if (!sprint) { + throw new Error(`Sprint entry "${slug}" not found`); +} + +const { data, body } = sprint; + +// +--- + +
+
+

+ {data.title} +

+
+ + 👥 + {data.numberOfPeople} + + + 📍 + {data.room} + + + 🐍 + {data.pythonLevel} + +
+
+ +
+
+ Contact: + {data.contactPerson.name} + {data.contactPerson.email && ( + + {' '}({data.contactPerson.email}) + + )} + {data.contactPerson.github && ( + + {' '}(@{data.contactPerson.github}) + + )} +
+ + {data.tags && data.tags.length > 0 && ( +
+ {data.tags.map((tag) => ( + {tag} + ))} +
+ )} + + {data.description && ( +

{data.description}

+ )} + + {(data.links) && ( +
+ Links: + +
+ )} + + + {body && + + } + +
+ +
diff --git a/src/content/config.ts b/src/content/config.ts index 6b2f6916f..17bd38f5e 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -255,6 +255,35 @@ const jobs = defineCollection({ }), }); +const sprints = defineCollection({ + type: "content", + schema: z.object({ + title: z.string(), + slug: z.string().optional(), // Auto-generated from filename if not provided + numberOfPeople: z.string().or(z.number()), + room: z.string(), + pythonLevel: z.enum(["Any", "Beginner", "Intermediate", "Advanced"]), + contactPerson: z.object({ + name: z.string(), + email: z.string().email().optional(), + github: z.string().optional(), + twitter: z.string().optional(), + }), + links: z + .array( + z.object({ + title: z.string(), + url: z.string().url(), + }) + ) + .optional(), + description: z.string().optional(), + tags: z.array(z.string()).optional(), + status: z.enum(["active", "full", "cancelled"]).default("active"), + draft: z.boolean().optional().default(false), + }), +}); + export const collections = { days, pages, @@ -262,6 +291,7 @@ export const collections = { week, sessions, speakers, + sprints, keynoters, sponsors, jobs, diff --git a/src/content/sprints/_sprints_template.md b/src/content/sprints/_sprints_template.md new file mode 100644 index 000000000..6cfb49db9 --- /dev/null +++ b/src/content/sprints/_sprints_template.md @@ -0,0 +1,11 @@ +--- +title: "" +numberOfPeople: "" +room: "" +pythonLevel: "Any" +contactPerson: + name: "" + email: "email@example.com" +status: "active" +draft: true +--- diff --git a/src/content/sprints/bracelet-weaving-workshop.md b/src/content/sprints/bracelet-weaving-workshop.md new file mode 100644 index 000000000..6645eb719 --- /dev/null +++ b/src/content/sprints/bracelet-weaving-workshop.md @@ -0,0 +1,27 @@ +--- +title: "Bracelet weaving workshop" +numberOfPeople: "10 (10 weavers + Nika)" +room: "RB 112" +pythonLevel: "Any" +contactPerson: + name: "Nika" + email: "nika@gmail.com" +links: + - title: "EuroPython GitHub" + url: "https://github.com/EuroPython" +tags: ["workshop", "creative", "hands-on"] +status: "active" +description: + "Nika's workshop is a wonderful opportunity to create your own unique bracelet + and bring it back as a memorable keepsake from the conference. Whether you are + a seasoned weaver or a complete beginner, all are welcome to participate and + have fun 🙂 We look forward to seeing you there!" +--- + +Join Nika for a creative break from coding! This hands-on bracelet weaving +workshop offers a wonderful opportunity to create your own unique bracelet as a +memorable keepsake from the conference. + +Whether you're a seasoned weaver or a complete beginner, all are welcome to +participate and have fun. It's a great way to meet other attendees and take a +relaxing break from the technical sessions. diff --git a/src/content/sprints/data-morph.md b/src/content/sprints/data-morph.md new file mode 100644 index 000000000..6c68638e0 --- /dev/null +++ b/src/content/sprints/data-morph.md @@ -0,0 +1,23 @@ +--- +title: "Data Morph" +numberOfPeople: "4 (2-3 contributors + 1 maintainer)" +room: "RB 106 (Saturday only)" +pythonLevel: "Intermediate" +contactPerson: + name: "Stefanie Molin" + github: "stefmolin" +repository: "https://github.com/stefmolin/data-morph" +documentation: "https://stefaniemolin.com/data-morph" +demo: "https://stefaniemolin.com/data-morph/stable/_images/panda-to-star.gif" +sprintableIssues: "https://github.com/stefmolin/data-morph/issues?q=is%3Aissue+label%3A%22help+wanted%22+is%3Aopen" +tags: ["data-visualization", "python", "intermediate"] +status: "active" +--- + +Data Morph is a fascinating project that transforms datasets while preserving +statistical properties. Join Stefanie and other contributors to work on this +innovative data visualization tool. + +This sprint is perfect for intermediate Python developers interested in data +science and visualization. Check out the sprintable issues to see what you can +contribute to! diff --git a/src/content/sprints/spdt-python-library.md b/src/content/sprints/spdt-python-library.md new file mode 100644 index 000000000..6385021aa --- /dev/null +++ b/src/content/sprints/spdt-python-library.md @@ -0,0 +1,21 @@ +--- +title: "SPDT Python Library" +numberOfPeople: "~6 (5 contributors + 1 organiser)" +room: "RB 106" +pythonLevel: "Any" +contactPerson: + name: "Kayode Oladapo" + email: "oladapoka@mcu.edu.ng" +links: + - title: "Repository" + url: "https://github.com/oladapokayodeabiodun/spdt" +tags: ["python", "library", "open-source"] +status: "active" +--- + +Join us for the SPDT Python Library sprint! This is a great opportunity to +contribute to an open-source Python library and collaborate with fellow +developers. + +Whether you're new to open source or an experienced contributor, we welcome +participants of all skill levels to help improve and expand the SPDT library. diff --git a/src/pages/sprints.astro b/src/pages/sprints.astro new file mode 100644 index 000000000..57b1ab28d --- /dev/null +++ b/src/pages/sprints.astro @@ -0,0 +1,119 @@ +--- +import { getCollection } from 'astro:content'; +import Layout from '@layouts/SectionLayout.astro'; // Adjust path as needed +import SprintCard from '@components/SprintCard.astro'; +import Headline from "@ui/Headline.astro" + +// Get all sprint entries +const sprints = await getCollection("sprints", ({ data }) => { + return import.meta.env.MODE === "production" ? data.draft !== true : true; +}); + +// Sort sprints by title or any other criteria +const sortedSprints = sprints.sort((a, b) => + a.data.title.localeCompare(b.data.title) +); + +// Filter by status if needed +const activeSprints = sortedSprints.filter(sprint => + sprint.data.status === 'active' +); + +// Extract unique rooms for filter +const uniqueRooms = Array.from(new Set(activeSprints.map(sprint => sprint.data.room))); +--- + + +
+
+
+

Sprints & Workshops

+

+ Join collaborative coding sessions and hands-on workshops. + Connect with maintainers, contribute to open source projects, + and learn new skills alongside fellow Python enthusiasts. +

+
+ +
+
+ + +
+ +
+ + +
+
+ +
+

{activeSprints.length} active {activeSprints.length === 1 ? 'sprint' : 'sprints'}

+
+ +
+ {activeSprints.map((sprint) => ( + + ))} +
+ + {activeSprints.length === 0 && ( +
+

No sprints are currently available. Check back soon!

+
+ )} +
+
+ + +
From d712deab862467572286739ab07dad06e4ed0aae Mon Sep 17 00:00:00 2001 From: Niko Date: Wed, 2 Jul 2025 13:23:57 +0200 Subject: [PATCH 02/14] Update sprints --- src/components/SprintCard.astro | 16 ------------- src/content/config.ts | 4 ---- src/pages/sprints.astro | 41 +++++---------------------------- 3 files changed, 6 insertions(+), 55 deletions(-) diff --git a/src/components/SprintCard.astro b/src/components/SprintCard.astro index 391674196..d69cda8cd 100644 --- a/src/components/SprintCard.astro +++ b/src/components/SprintCard.astro @@ -26,10 +26,6 @@ const { data, body } = sprint; 👥 {data.numberOfPeople} - - 📍 - {data.room} - 🐍 {data.pythonLevel} @@ -53,18 +49,6 @@ const { data, body } = sprint; )} - {data.tags && data.tags.length > 0 && ( -
- {data.tags.map((tag) => ( - {tag} - ))} -
- )} - - {data.description && ( -

{data.description}

- )} - {(data.links) && (
Links: diff --git a/src/content/config.ts b/src/content/config.ts index 17bd38f5e..1afaaa525 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -261,7 +261,6 @@ const sprints = defineCollection({ title: z.string(), slug: z.string().optional(), // Auto-generated from filename if not provided numberOfPeople: z.string().or(z.number()), - room: z.string(), pythonLevel: z.enum(["Any", "Beginner", "Intermediate", "Advanced"]), contactPerson: z.object({ name: z.string(), @@ -277,9 +276,6 @@ const sprints = defineCollection({ }) ) .optional(), - description: z.string().optional(), - tags: z.array(z.string()).optional(), - status: z.enum(["active", "full", "cancelled"]).default("active"), draft: z.boolean().optional().default(false), }), }); diff --git a/src/pages/sprints.astro b/src/pages/sprints.astro index 57b1ab28d..bdad54391 100644 --- a/src/pages/sprints.astro +++ b/src/pages/sprints.astro @@ -1,26 +1,13 @@ --- import { getCollection } from 'astro:content'; -import Layout from '@layouts/SectionLayout.astro'; // Adjust path as needed +import Layout from '@layouts/SectionLayout.astro'; import SprintCard from '@components/SprintCard.astro'; -import Headline from "@ui/Headline.astro" +// import Headline from "@ui/Headline.astro" -// Get all sprint entries const sprints = await getCollection("sprints", ({ data }) => { return import.meta.env.MODE === "production" ? data.draft !== true : true; }); -// Sort sprints by title or any other criteria -const sortedSprints = sprints.sort((a, b) => - a.data.title.localeCompare(b.data.title) -); - -// Filter by status if needed -const activeSprints = sortedSprints.filter(sprint => - sprint.data.status === 'active' -); - -// Extract unique rooms for filter -const uniqueRooms = Array.from(new Set(activeSprints.map(sprint => sprint.data.room))); --- @@ -46,29 +33,19 @@ const uniqueRooms = Array.from(new Set(activeSprints.map(sprint => sprint.data.r
- -
- - -
-

{activeSprints.length} active {activeSprints.length === 1 ? 'sprint' : 'sprints'}

+

{sprints.length} active {sprints.length === 1 ? 'sprint' : 'sprints'}

- {activeSprints.map((sprint) => ( + {sprints.map((sprint) => ( ))}
- {activeSprints.length === 0 && ( + {sprints.length === 0 && (

No sprints are currently available. Check back soon!

@@ -77,16 +54,13 @@ const uniqueRooms = Array.from(new Set(activeSprints.map(sprint => sprint.data.r From d98d225d1ea338be3afa8946f39eee24563777c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gir=C3=A3o=20Serr=C3=A3o?= <5621605+rodrigogiraoserrao@users.noreply.github.com> Date: Sun, 6 Jul 2025 16:48:33 +0100 Subject: [PATCH 03/14] Add stubs for 2 known sprints --- src/content/sprints/beeware.md | 17 ++++++++++++ .../sprints/bracelet-weaving-workshop.md | 27 ------------------- src/content/sprints/cpython.md | 13 +++++++++ src/content/sprints/data-morph.md | 23 ---------------- src/content/sprints/spdt-python-library.md | 21 --------------- 5 files changed, 30 insertions(+), 71 deletions(-) create mode 100644 src/content/sprints/beeware.md delete mode 100644 src/content/sprints/bracelet-weaving-workshop.md create mode 100644 src/content/sprints/cpython.md delete mode 100644 src/content/sprints/data-morph.md delete mode 100644 src/content/sprints/spdt-python-library.md diff --git a/src/content/sprints/beeware.md b/src/content/sprints/beeware.md new file mode 100644 index 000000000..c9b6a2289 --- /dev/null +++ b/src/content/sprints/beeware.md @@ -0,0 +1,17 @@ +--- +title: "BeeWare" +numberOfPeople: "TBA" +pythonLevel: "Any" +contactPerson: + name: "Petr Viktorin" + email: "-" +links: + - title: "Code of Conduct" + url: "https://www.python.org/psf/conduct/" + - title: "CPython's Developer Guide" + url: "https://devguide.python.org/" + - title: "Easy Issues" + url: "https://github.com/python/cpython/issues?q=is%3Aissue+is%3Aopen+label%3Aeasy" +--- + +Come sprint on CPython and work on Python 3.15! diff --git a/src/content/sprints/bracelet-weaving-workshop.md b/src/content/sprints/bracelet-weaving-workshop.md deleted file mode 100644 index 6645eb719..000000000 --- a/src/content/sprints/bracelet-weaving-workshop.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Bracelet weaving workshop" -numberOfPeople: "10 (10 weavers + Nika)" -room: "RB 112" -pythonLevel: "Any" -contactPerson: - name: "Nika" - email: "nika@gmail.com" -links: - - title: "EuroPython GitHub" - url: "https://github.com/EuroPython" -tags: ["workshop", "creative", "hands-on"] -status: "active" -description: - "Nika's workshop is a wonderful opportunity to create your own unique bracelet - and bring it back as a memorable keepsake from the conference. Whether you are - a seasoned weaver or a complete beginner, all are welcome to participate and - have fun 🙂 We look forward to seeing you there!" ---- - -Join Nika for a creative break from coding! This hands-on bracelet weaving -workshop offers a wonderful opportunity to create your own unique bracelet as a -memorable keepsake from the conference. - -Whether you're a seasoned weaver or a complete beginner, all are welcome to -participate and have fun. It's a great way to meet other attendees and take a -relaxing break from the technical sessions. diff --git a/src/content/sprints/cpython.md b/src/content/sprints/cpython.md new file mode 100644 index 000000000..e95b41c36 --- /dev/null +++ b/src/content/sprints/cpython.md @@ -0,0 +1,13 @@ +--- +title: "CPython Core" +numberOfPeople: "TBA" +pythonLevel: "2+ years recommended" +contactPerson: + name: "Russell Keith-Magee" + email: "-" +links: + - title: "BeeWare GitHub" + url: "https://github.com/beeware" +--- + +Come sprint on the BeeWare project! diff --git a/src/content/sprints/data-morph.md b/src/content/sprints/data-morph.md deleted file mode 100644 index 6c68638e0..000000000 --- a/src/content/sprints/data-morph.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Data Morph" -numberOfPeople: "4 (2-3 contributors + 1 maintainer)" -room: "RB 106 (Saturday only)" -pythonLevel: "Intermediate" -contactPerson: - name: "Stefanie Molin" - github: "stefmolin" -repository: "https://github.com/stefmolin/data-morph" -documentation: "https://stefaniemolin.com/data-morph" -demo: "https://stefaniemolin.com/data-morph/stable/_images/panda-to-star.gif" -sprintableIssues: "https://github.com/stefmolin/data-morph/issues?q=is%3Aissue+label%3A%22help+wanted%22+is%3Aopen" -tags: ["data-visualization", "python", "intermediate"] -status: "active" ---- - -Data Morph is a fascinating project that transforms datasets while preserving -statistical properties. Join Stefanie and other contributors to work on this -innovative data visualization tool. - -This sprint is perfect for intermediate Python developers interested in data -science and visualization. Check out the sprintable issues to see what you can -contribute to! diff --git a/src/content/sprints/spdt-python-library.md b/src/content/sprints/spdt-python-library.md deleted file mode 100644 index 6385021aa..000000000 --- a/src/content/sprints/spdt-python-library.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "SPDT Python Library" -numberOfPeople: "~6 (5 contributors + 1 organiser)" -room: "RB 106" -pythonLevel: "Any" -contactPerson: - name: "Kayode Oladapo" - email: "oladapoka@mcu.edu.ng" -links: - - title: "Repository" - url: "https://github.com/oladapokayodeabiodun/spdt" -tags: ["python", "library", "open-source"] -status: "active" ---- - -Join us for the SPDT Python Library sprint! This is a great opportunity to -contribute to an open-source Python library and collaborate with fellow -developers. - -Whether you're new to open source or an experienced contributor, we welcome -participants of all skill levels to help improve and expand the SPDT library. From 56009e80dec5ec56f301ca3565f7fc6e2c065d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gir=C3=A3o=20Serr=C3=A3o?= <5621605+rodrigogiraoserrao@users.noreply.github.com> Date: Sun, 6 Jul 2025 16:53:48 +0100 Subject: [PATCH 04/14] Fix sprints pages. --- src/content/sprints/_sprints_template.md | 17 ++++++++++------- src/content/sprints/beeware.md | 16 ++++++---------- src/content/sprints/cpython.md | 16 ++++++++++------ 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/content/sprints/_sprints_template.md b/src/content/sprints/_sprints_template.md index 6cfb49db9..821077e09 100644 --- a/src/content/sprints/_sprints_template.md +++ b/src/content/sprints/_sprints_template.md @@ -1,11 +1,14 @@ --- -title: "" -numberOfPeople: "" -room: "" -pythonLevel: "Any" -contactPerson: +title: "Project name" +numberOfPeople: "" # How many people you expect to be able to accommodate. +pythonLevel: "Any" # Any, Beginner, Intermediate, or Advanced. +contactPerson: # The main person to reach out to regarding the sprint. name: "" email: "email@example.com" -status: "active" -draft: true +draft: true # Delete this when you PR your sprint. +links: # Add as many links as relevant. + - title: "Project xyz GitHub repo" + url: "https://github.com/xyz" --- + +Your sprint/project description goes here. diff --git a/src/content/sprints/beeware.md b/src/content/sprints/beeware.md index c9b6a2289..9f8f59573 100644 --- a/src/content/sprints/beeware.md +++ b/src/content/sprints/beeware.md @@ -1,17 +1,13 @@ --- title: "BeeWare" numberOfPeople: "TBA" -pythonLevel: "Any" +pythonLevel: "Beginner" contactPerson: - name: "Petr Viktorin" - email: "-" + name: "Russell Keith-Magee" + email: "" links: - - title: "Code of Conduct" - url: "https://www.python.org/psf/conduct/" - - title: "CPython's Developer Guide" - url: "https://devguide.python.org/" - - title: "Easy Issues" - url: "https://github.com/python/cpython/issues?q=is%3Aissue+is%3Aopen+label%3Aeasy" + - title: "BeeWare GitHub" + url: "https://github.com/beeware" --- -Come sprint on CPython and work on Python 3.15! +Come sprint on the BeeWare project! diff --git a/src/content/sprints/cpython.md b/src/content/sprints/cpython.md index e95b41c36..a8640aa34 100644 --- a/src/content/sprints/cpython.md +++ b/src/content/sprints/cpython.md @@ -1,13 +1,17 @@ --- title: "CPython Core" numberOfPeople: "TBA" -pythonLevel: "2+ years recommended" +pythonLevel: "Intermediate" contactPerson: - name: "Russell Keith-Magee" - email: "-" + name: "Petr Viktorin" + email: "" links: - - title: "BeeWare GitHub" - url: "https://github.com/beeware" + - title: "Code of Conduct" + url: "https://www.python.org/psf/conduct/" + - title: "CPython's Developer Guide" + url: "https://devguide.python.org/" + - title: "Easy Issues" + url: "https://github.com/python/cpython/issues?q=is%3Aissue+is%3Aopen+label%3Aeasy" --- -Come sprint on the BeeWare project! +Come sprint on CPython and work on Python 3.15! From c153245664c7bdb89d2f3112a897d665df92436f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 6 Jul 2025 15:54:11 +0000 Subject: [PATCH 05/14] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/content/sprints/_sprints_template.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/content/sprints/_sprints_template.md b/src/content/sprints/_sprints_template.md index 821077e09..257bec683 100644 --- a/src/content/sprints/_sprints_template.md +++ b/src/content/sprints/_sprints_template.md @@ -1,12 +1,12 @@ --- title: "Project name" -numberOfPeople: "" # How many people you expect to be able to accommodate. -pythonLevel: "Any" # Any, Beginner, Intermediate, or Advanced. -contactPerson: # The main person to reach out to regarding the sprint. +numberOfPeople: "" # How many people you expect to be able to accommodate. +pythonLevel: "Any" # Any, Beginner, Intermediate, or Advanced. +contactPerson: # The main person to reach out to regarding the sprint. name: "" email: "email@example.com" -draft: true # Delete this when you PR your sprint. -links: # Add as many links as relevant. +draft: true # Delete this when you PR your sprint. +links: # Add as many links as relevant. - title: "Project xyz GitHub repo" url: "https://github.com/xyz" --- From 8cb2373f1495034b11672bcb314f7d7972037fe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gir=C3=A3o=20Serr=C3=A3o?= <5621605+rodrigogiraoserrao@users.noreply.github.com> Date: Sun, 6 Jul 2025 16:56:46 +0100 Subject: [PATCH 06/14] Fix sprints pages. --- src/content/sprints/beeware.md | 2 +- src/content/sprints/cpython.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/sprints/beeware.md b/src/content/sprints/beeware.md index 9f8f59573..5b3d8fe7c 100644 --- a/src/content/sprints/beeware.md +++ b/src/content/sprints/beeware.md @@ -4,7 +4,7 @@ numberOfPeople: "TBA" pythonLevel: "Beginner" contactPerson: name: "Russell Keith-Magee" - email: "" + email: "name@example.com" links: - title: "BeeWare GitHub" url: "https://github.com/beeware" diff --git a/src/content/sprints/cpython.md b/src/content/sprints/cpython.md index a8640aa34..4d3fcf342 100644 --- a/src/content/sprints/cpython.md +++ b/src/content/sprints/cpython.md @@ -4,7 +4,7 @@ numberOfPeople: "TBA" pythonLevel: "Intermediate" contactPerson: name: "Petr Viktorin" - email: "" + email: "name@example.com" links: - title: "Code of Conduct" url: "https://www.python.org/psf/conduct/" From 76443683ca02d93ce7ab589b3f02fe8cb0c75a94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gir=C3=A3o=20Serr=C3=A3o?= <5621605+rodrigogiraoserrao@users.noreply.github.com> Date: Sun, 6 Jul 2025 17:25:15 +0100 Subject: [PATCH 07/14] Add instructions on how to add a project to the sprints. --- src/content/pages/sprints.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/content/pages/sprints.md b/src/content/pages/sprints.md index 4c73fd8b9..6333bfb11 100644 --- a/src/content/pages/sprints.md +++ b/src/content/pages/sprints.md @@ -31,7 +31,13 @@ together. ## Open-Source Projects -More info soon! +Anyone can submit a project for the sprints, although sprints are typically +submitted by project maintainers or frequet contributors. + +To submit a project for the sprints, head to +[the EuroPython website repository](https://github.com/EuroPython/website) and +add your project as a markdown file in the folder `src/content/spints`. +Use the file `_sprints_template.md` as the template for your project file.