Skip to content

Create a separate page for contributors#956

Open
BoHristova wants to merge 25 commits intogardener:masterfrom
BoHristova:create-a-contribute-page
Open

Create a separate page for contributors#956
BoHristova wants to merge 25 commits intogardener:masterfrom
BoHristova:create-a-contribute-page

Conversation

@BoHristova
Copy link
Copy Markdown
Contributor

@BoHristova BoHristova commented Apr 29, 2026

How to categorize this PR?

/kind enhancement

What this PR does / why we need it:
This PR introduces a new top-level "Contribute" section to the Gardener website.

  • Moved all documents from the "Contribute" section and all documents for the "Developer" persona to the "Contribute" page.
  • Deleted the outdated CI/CD document from the Contribute section.
  • Created a "Developer Starter Kit" section that contains the guides for setting up Gardener locally as well as general development guidelines.
  • Created a landing page and index pages for the sections that were missing one.

The "Contribute" page is a work in progress and will be updated with future pull requests.

Which issue(s) this PR fixes:
Fixes #893

Special notes for your reviewer:
/cc @marc1404 @n-boshnakov @klocke-io

Summary by CodeRabbit

Release Notes

  • New Features

    • Introduced a dedicated "Contribute" section in the main navigation with a new contributor landing page.
    • Added card-based layout showcasing contribution areas: Get Started, Gardener, Extensions, Other Components, Dashboard, and Documentation.
  • Documentation

    • Reorganized contributor documentation for improved accessibility and navigation.
    • Created new documentation landing pages for Developer Starter Kit and contribution processes.

@gardener-prow gardener-prow Bot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/enhancement Enhancement, improvement, extension labels Apr 29, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 29, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 844aae29-b190-4f3c-a6aa-a75c79f91ffe

📥 Commits

Reviewing files that changed from the base of the PR and between 0789c75 and 0c45045.

📒 Files selected for processing (2)
  • .vitepress/theme/index.ts
  • website/contribute/_index.md
✅ Files skipped from review due to trivial changes (2)
  • .vitepress/theme/index.ts
  • website/contribute/_index.md

📝 Walkthrough

Walkthrough

This PR reorganizes the Gardener documentation by creating a dedicated "Contribute" section accessible via top-level navigation. It moves developer-focused content from documentation/contribute/ to a new contribute/ directory structure, updates DocForge and VitePress configurations to support the new routing, introduces a CardGrid Vue component for feature display, and ensures cross-reference URLs are updated accordingly.

Changes

Documentation Restructuring & Routing

Layer / File(s) Summary
DocForge Configuration
.docforge/contribute.yaml, .docforge/documentation/documentation.yaml, .docforge/documentation/gardener-extensions/infrastructure.yaml, .docforge/documentation/gardener-extensions/others.yaml, .docforge/documentation/other-components.yaml, .docforge/website.yaml
New contribute.yaml manifest defines the contributor documentation tree; documentation.yaml removes the old contribute section and moves developer content references; extension and component configs add development/ to excludeFiles to exclude internal dev docs from public tree.
Theme Components & Styling
.vitepress/theme/components/CardGrid.vue, .vitepress/theme/style.css, .vitepress/theme/index.ts
New CardGrid component renders responsive 3-column grid of cards; .action-button CSS class provides button styling; theme registers both CardGrid and VPFeatures as global components.
Sidebar & Route Wiring
.vitepress/theme/contribute-sidebar.ts, .vitepress/config.mts
New contributeSidebar function generates weight-sorted sidebar for /contribute/ route with directory existence check; config.mts imports and registers the sidebar and adds "Contribute" to top navigation.
Content Organization
website/contribute/_index.md, website/contribute/contribution-process/*, website/contribute/developer-starter-kit/_index.md, website/contribute/gardener/_index.md, website/contribute/documentation/_index.md, website/documentation/contribute/* (deleted)
Moves and restructures contributor pages: new landing page with CardGrid sections for "Get Started" and "Contribute to a Specific Area"; adds contribution process, developer starter kit, gardener, and documentation subsections; removes old contribute pages from main documentation tree.
Cross-Reference Updates & Build Config
.gitignore, website/blog/2023/03/03-27-high-availability-and-zone-outage-toleration.md
Adds !.docforge/**/*.yaml to gitignore whitelist to track new DocForge manifests; updates blog post internal link from documentation/contribute/ to contribute/.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~28 minutes

Possibly related PRs

Suggested labels

size/XXL, lgtm, approved

Suggested reviewers

  • klocke-io
  • hendrikKahl

Poem

🐰 A warren of wisdom, now gathered with care,
Contributors welcome, with guidance laid bare!
CardGrids and sidebars, a path crystal-clear,
From docs to deployment—hop over right here!
Gardener's garden grows greener still. 🌱

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately reflects the primary change: creating a new separate page for contributors at the top level of the website.
Description check ✅ Passed The description covers the key changes, provides context about consolidating content, and references the related issue. All template sections are appropriately filled.
Linked Issues check ✅ Passed The PR successfully addresses issue #893 by creating a dedicated Contribute page with top-level navigation, landing page, sidebar structure, and consolidating Developer persona and Contribute section content.
Out of Scope Changes check ✅ Passed All changes align with the PR objectives: new Contribute section structure, content reorganization, outdated CI/CD doc removal, Developer Starter Kit creation, and supporting configuration updates for VitePress/DocForge.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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
Review rate limit: 0/1 reviews remaining, refill in 60 minutes.

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

@gardener-prow gardener-prow Bot added the cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. label Apr 29, 2026
@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 29, 2026

Deploy Preview for gardener-docs ready!

Name Link
🔨 Latest commit 0c45045
🔍 Latest deploy log https://app.netlify.com/projects/gardener-docs/deploys/69f8976c58bc4900089b65ac
😎 Deploy Preview https://deploy-preview-956--gardener-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@gardener-prow gardener-prow Bot added the size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label Apr 29, 2026
@BoHristova
Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 29, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown
Contributor

@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: 2

🧹 Nitpick comments (3)
.vitepress/theme/style.css (1)

13-15: Add an explicit keyboard focus state for action buttons.

You already style hover; adding :focus-visible keeps keyboard navigation feedback consistent.

♿ Suggested enhancement
 a.action-button:hover {
   background-color: var(--vp-button-brand-hover-bg);
 }
+
+a.action-button:focus-visible {
+  background-color: var(--vp-button-brand-hover-bg);
+  outline: 2px solid var(--vp-c-brand-1);
+  outline-offset: 2px;
+}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.vitepress/theme/style.css around lines 13 - 15, Add an explicit keyboard
focus state for the action buttons by adding a corresponding
a.action-button:focus-visible rule (matching the existing a.action-button:hover
styling) so keyboard users see the same feedback as hover; update the CSS to
define background-color: var(--vp-button-brand-hover-bg) (and any outline or
box-shadow if needed for accessibility) for the a.action-button:focus-visible
selector to keep hover and keyboard focus consistent.
website/contribute/_index.md (1)

17-58: Use root-relative links for internal destinations.

These are internal docs routes, but they’re hardcoded to https://gardener.cloud/.... Prefer /contribute/... links to keep previews/base-path deployments and local navigation behavior consistent.

♻️ Proposed refactor
-    link: 'https://gardener.cloud/contribute/contribution-process/how-to-contribute'
+    link: '/contribute/contribution-process/how-to-contribute'
@@
-    link: 'https://gardener.cloud/contribute/developer-starter-kit/'
+    link: '/contribute/developer-starter-kit/'
@@
-    link: 'https://gardener.cloud/contribute/gardener/'
+    link: '/contribute/gardener/'
@@
-    link: 'https://gardener.cloud/contribute/extensions/'
+    link: '/contribute/extensions/'
@@
-    link: 'https://gardener.cloud/contribute/other-components/'
+    link: '/contribute/other-components/'
@@
-    link: 'https://gardener.cloud/contribute/dashboard/'
+    link: '/contribute/dashboard/'
@@
-    link: 'https://gardener.cloud/contribute/documentation/'
+    link: '/contribute/documentation/'
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@website/contribute/_index.md` around lines 17 - 58, Replace absolute
gardener.cloud URLs with root-relative paths in the CardGrid :cards arrays so
internal docs route links use '/contribute/...' instead of
'https://gardener.cloud/contribute/...'; update each card object in the CardGrid
props (e.g., the entries for 'Contributor Guide', 'Developer Starter Kit',
'Gardener', 'Extensions', 'Other Components', 'Dashboard', and 'Documentation')
to use root-relative link strings that begin with '/contribute/...'.
website/blog/2023/03/03-27-high-availability-and-zone-outage-toleration.md (1)

452-452: Prefer root-relative clean URLs for internal links.

Line 452 uses deep relative links to _index.md, which are fragile during future moves. Use route paths directly (/contribute/#...) for stability.

♻️ Proposed refactor
-All channels for getting in touch or learning about the project are listed on our [landing page](../../../contribute/_index.md#community). We are cordially inviting interested parties to join our [bi-weekly meetings](../../../contribute/_index.md#bi-weekly-meetings).
+All channels for getting in touch or learning about the project are listed on our [landing page](/contribute/#community). We are cordially inviting interested parties to join our [bi-weekly meetings](/contribute/#bi-weekly-meetings).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@website/blog/2023/03/03-27-high-availability-and-zone-outage-toleration.md`
at line 452, Replace the deep relative internal links
"../../../contribute/_index.md#community" and
"../../../contribute/_index.md#bi-weekly-meetings" in the paragraph in
website/blog/2023/03/03-27-high-availability-and-zone-outage-toleration.md with
root‑relative route paths "/contribute/#community" and
"/contribute/#bi-weekly-meetings" so the links remain stable if the file is
moved; update both occurrences in the sentence referencing the landing page and
bi-weekly meetings.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.vitepress/theme/components/CardGrid.vue:
- Around line 21-24: The .card-grid rule currently uses a fixed
grid-template-columns: repeat(3, 1fr) which forces three columns on all
viewports; change it to a responsive column strategy by replacing the hard-coded
repeat(3, 1fr) with a responsive pattern (e.g., use repeat(auto-fit,
minmax(<minimum card width>, 1fr)) for grid-template-columns) and keep
grid-auto-rows as needed, and optionally add a small-screen media query to
further adjust min-width or switch to a single column for very narrow screens;
update the .card-grid declaration (grid-template-columns and optional media
query) so cards do not compress on small viewports.

In `@website/contribute/_index.md`:
- Line 3: Update the frontmatter description value: change the string bound to
the description key from "Contributors guides for code and documentation" to the
singular form "Contributor guides for code and documentation" so the description
uses "Contributor" instead of "Contributors".

---

Nitpick comments:
In @.vitepress/theme/style.css:
- Around line 13-15: Add an explicit keyboard focus state for the action buttons
by adding a corresponding a.action-button:focus-visible rule (matching the
existing a.action-button:hover styling) so keyboard users see the same feedback
as hover; update the CSS to define background-color:
var(--vp-button-brand-hover-bg) (and any outline or box-shadow if needed for
accessibility) for the a.action-button:focus-visible selector to keep hover and
keyboard focus consistent.

In `@website/blog/2023/03/03-27-high-availability-and-zone-outage-toleration.md`:
- Line 452: Replace the deep relative internal links
"../../../contribute/_index.md#community" and
"../../../contribute/_index.md#bi-weekly-meetings" in the paragraph in
website/blog/2023/03/03-27-high-availability-and-zone-outage-toleration.md with
root‑relative route paths "/contribute/#community" and
"/contribute/#bi-weekly-meetings" so the links remain stable if the file is
moved; update both occurrences in the sentence referencing the landing page and
bi-weekly meetings.

In `@website/contribute/_index.md`:
- Around line 17-58: Replace absolute gardener.cloud URLs with root-relative
paths in the CardGrid :cards arrays so internal docs route links use
'/contribute/...' instead of 'https://gardener.cloud/contribute/...'; update
each card object in the CardGrid props (e.g., the entries for 'Contributor
Guide', 'Developer Starter Kit', 'Gardener', 'Extensions', 'Other Components',
'Dashboard', and 'Documentation') to use root-relative link strings that begin
with '/contribute/...'.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ba383913-0e65-4c86-89ac-166a1edbc9d9

📥 Commits

Reviewing files that changed from the base of the PR and between 817b014 and a5b4bf1.

⛔ Files ignored due to path filters (1)
  • website/contribute/contribution-process/images/cicd-overview.png is excluded by !**/*.png
📒 Files selected for processing (39)
  • .docforge/contribute.yaml
  • .docforge/documentation/documentation.yaml
  • .docforge/documentation/gardener-extensions/infrastructure.yaml
  • .docforge/documentation/gardener-extensions/others.yaml
  • .docforge/documentation/other-components.yaml
  • .docforge/website.yaml
  • .gitignore
  • .vitepress/config.mts
  • .vitepress/theme/components/CardGrid.vue
  • .vitepress/theme/contribute-sidebar.ts
  • .vitepress/theme/index.ts
  • .vitepress/theme/style.css
  • website/blog/2023/03/03-27-high-availability-and-zone-outage-toleration.md
  • website/contribute/_index.md
  • website/contribute/contribution-process/_index.md
  • website/contribute/contribution-process/contributing-bigger-changes.md
  • website/contribute/contribution-process/how-to-contribute.md
  • website/contribute/contribution-process/images/cicd-overview.sketch
  • website/contribute/contribution-process/roles.md
  • website/contribute/developer-starter-kit/_index.md
  • website/contribute/documentation/_index.md
  • website/contribute/documentation/adding-existing-documentation.md
  • website/contribute/documentation/blog-tags.md
  • website/contribute/documentation/formatting-guide.md
  • website/contribute/documentation/images.md
  • website/contribute/documentation/markup.md
  • website/contribute/documentation/organization.md
  • website/contribute/documentation/pr-guidelines.md
  • website/contribute/documentation/shortcodes.md
  • website/contribute/documentation/style-guide/_index.md
  • website/contribute/documentation/style-guide/concept_template.md
  • website/contribute/documentation/style-guide/reference_template.md
  • website/contribute/documentation/style-guide/task_template.md
  • website/contribute/gardener/_index.md
  • website/documentation/contribute/_index.md
  • website/documentation/contribute/code/_index.md
  • website/documentation/contribute/code/cicd.md
  • website/documentation/contribute/code/dependencies.md
  • website/documentation/contribute/documentation/_index.md
💤 Files with no reviewable changes (5)
  • website/documentation/contribute/documentation/_index.md
  • website/documentation/contribute/code/_index.md
  • website/documentation/contribute/code/cicd.md
  • website/documentation/contribute/code/dependencies.md
  • website/documentation/contribute/_index.md

Comment thread .vitepress/theme/components/CardGrid.vue
Comment thread website/contribute/_index.md Outdated
@BoHristova BoHristova force-pushed the create-a-contribute-page branch from b6b45eb to 31e25fa Compare April 29, 2026 17:02
@BoHristova BoHristova marked this pull request as ready for review April 30, 2026 10:42
@BoHristova BoHristova requested a review from a team as a code owner April 30, 2026 10:42
@gardener-prow gardener-prow Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Apr 30, 2026
Copy link
Copy Markdown
Contributor

@n-boshnakov n-boshnakov left a comment

Choose a reason for hiding this comment

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

/lgtm

@gardener-prow gardener-prow Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 30, 2026
@gardener-prow
Copy link
Copy Markdown

gardener-prow Bot commented Apr 30, 2026

LGTM label has been added.

DetailsGit tree hash: 1f8f8a26a368174425d50839ef0600fed5e0dfd8

@gardener-prow gardener-prow Bot removed the lgtm Indicates that a PR is ready to be merged. label Apr 30, 2026
Copy link
Copy Markdown
Contributor

@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.

🧹 Nitpick comments (1)
.vitepress/theme/components/CardGridGroup.vue (1)

6-21: ⚡ Quick win

Use container/content-driven observation, not only window.resize, for re-equalization.

Line 16 only reacts to viewport resize. Card widths/heights can also change on layout/content updates without a resize event, leaving stale min-height values until the user resizes manually.

♻️ Suggested patch
-<script setup lang="ts">
-import { ref, onMounted, onUnmounted } from 'vue'
+<script setup lang="ts">
+import { ref, onMounted, onUnmounted, nextTick } from 'vue'

 const container = ref<HTMLElement | null>(null)
+let resizeObserver: ResizeObserver | null = null
+let rafId = 0

 function equalizeCardHeights() {
   if (!container.value) return
   const cards = container.value.querySelectorAll<HTMLElement>('.card')
+  if (!cards.length) return
   cards.forEach(c => c.style.minHeight = '')
   const maxHeight = Math.max(...Array.from(cards).map(c => c.offsetHeight))
   cards.forEach(c => c.style.minHeight = `${maxHeight}px`)
 }
+
+function scheduleEqualize() {
+  cancelAnimationFrame(rafId)
+  rafId = requestAnimationFrame(equalizeCardHeights)
+}

 onMounted(() => {
-  equalizeCardHeights()
-  window.addEventListener('resize', equalizeCardHeights)
+  nextTick(scheduleEqualize)
+  window.addEventListener('resize', scheduleEqualize)
+  resizeObserver = new ResizeObserver(scheduleEqualize)
+  if (container.value) resizeObserver.observe(container.value)
 })

 onUnmounted(() => {
-  window.removeEventListener('resize', equalizeCardHeights)
+  window.removeEventListener('resize', scheduleEqualize)
+  resizeObserver?.disconnect()
+  cancelAnimationFrame(rafId)
 })
 </script>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.vitepress/theme/components/CardGridGroup.vue around lines 6 - 21, The
component currently only re-equalizes in onMounted and on window.resize; update
it to observe layout/content changes by creating a ResizeObserver (and
optionally a MutationObserver) that watches container.value (and/or its child
.card elements) and calls equalizeCardHeights on changes, while keeping the
existing window resize handler; ensure both observers are created in onMounted
and properly disconnected in onUnmounted alongside removing the window listener
so equalizeCardHeights runs whenever card sizes or content change.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.vitepress/theme/components/CardGridGroup.vue:
- Around line 6-21: The component currently only re-equalizes in onMounted and
on window.resize; update it to observe layout/content changes by creating a
ResizeObserver (and optionally a MutationObserver) that watches container.value
(and/or its child .card elements) and calls equalizeCardHeights on changes,
while keeping the existing window resize handler; ensure both observers are
created in onMounted and properly disconnected in onUnmounted alongside removing
the window listener so equalizeCardHeights runs whenever card sizes or content
change.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ed124245-cd05-4b00-9887-10d95af3c8aa

📥 Commits

Reviewing files that changed from the base of the PR and between 31e25fa and 0789c75.

📒 Files selected for processing (4)
  • .vitepress/theme/components/CardGrid.vue
  • .vitepress/theme/components/CardGridGroup.vue
  • .vitepress/theme/index.ts
  • website/contribute/_index.md
✅ Files skipped from review due to trivial changes (2)
  • website/contribute/_index.md
  • .vitepress/theme/components/CardGrid.vue
🚧 Files skipped from review as they are similar to previous changes (1)
  • .vitepress/theme/index.ts

klocke-io added 2 commits May 4, 2026 14:30
CSS Grid already handles equal-height cards per row via grid-auto-rows: 1fr
in CardGrid.vue, making the JS approach redundant.
CardGrid already uses grid-auto-rows: 1fr which equalizes card
heights. The CardGridGroup wrapper was a no-op after the CSS refactor.
Copy link
Copy Markdown
Member

@klocke-io klocke-io left a comment

Choose a reason for hiding this comment

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

/lgtm

Comment thread .docforge/contribute.yaml
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nice one, moving all this into its own file :)

@gardener-prow gardener-prow Bot added the lgtm Indicates that a PR is ready to be merged. label May 4, 2026
@gardener-prow
Copy link
Copy Markdown

gardener-prow Bot commented May 4, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: klocke-io

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@gardener-prow
Copy link
Copy Markdown

gardener-prow Bot commented May 4, 2026

LGTM label has been added.

DetailsGit tree hash: 3f6145b8b17a600a6f3c11731e77fb99b3f79853

@gardener-prow gardener-prow Bot added approved Indicates a PR has been approved by an approver from all required OWNERS files. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels May 4, 2026
@gardener-prow
Copy link
Copy Markdown

gardener-prow Bot commented May 4, 2026

PR needs rebase.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. kind/enhancement Enhancement, improvement, extension lgtm Indicates that a PR is ready to be merged. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move content for developers to a dedicated page

3 participants