Skip to content

Add Jumpstarter Enhancement Proposal (JEP) Process and Issue Template#423

Open
kirkbrauer wants to merge 3 commits intomainfrom
jep-process
Open

Add Jumpstarter Enhancement Proposal (JEP) Process and Issue Template#423
kirkbrauer wants to merge 3 commits intomainfrom
jep-process

Conversation

@kirkbrauer
Copy link
Copy Markdown
Member

No description provided.

@netlify
Copy link
Copy Markdown

netlify bot commented Apr 7, 2026

Deploy Preview for jumpstarter-docs ready!

Name Link
🔨 Latest commit 6b005cf
🔍 Latest deploy log https://app.netlify.com/projects/jumpstarter-docs/deploys/69d67a0272f9de0008e96a3c
😎 Deploy Preview https://deploy-preview-423--jumpstarter-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

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

@kirkbrauer kirkbrauer requested a review from mangelajo April 7, 2026 15:49
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 7, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 275fc950-b70e-4c20-9764-89ec4c2a85c4

📥 Commits

Reviewing files that changed from the base of the PR and between ba57ff9 and 6b005cf.

📒 Files selected for processing (3)
  • jeps/JEP-0000-jep-process.md
  • jeps/JEP-NNNN-template.md
  • jeps/README.md
✅ Files skipped from review due to trivial changes (3)
  • jeps/JEP-NNNN-template.md
  • jeps/README.md
  • jeps/JEP-0000-jep-process.md

📝 Walkthrough

Walkthrough

Introduces the Jumpstarter Enhancement Proposal (JEP) process framework through three documentation files. Establishes JEP types, lifecycle statuses, submission workflow, roles, governance rules, and provides both a process specification and standardized template.

Changes

Cohort / File(s) Summary
JEP Process Framework
jeps/JEP-0000-jep-process.md, jeps/JEP-NNNN-template.md, jeps/README.md
Introduces complete JEP governance system: process specification document detailing requirements, three JEP types (Standards Track, Informational, Process), full lifecycle with terminal states, end-to-end workflow from discussion through implementation tracking, defined roles, JEP numbering scheme, and amendment mechanism. Includes markdown template with standardized metadata header and required/optional sections, plus README index with quick-start guide and status key.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • raballew
  • mangelajo

Poem

🐰 Hop, hop, hooray! A process takes shape,
With JEPs to guide us—no ideas escape.
From Draft to Final, we now have the way,
Enhancement proposals will flourish today! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive No pull request description was provided by the author, making it impossible to assess whether the description relates to the changeset. Add a pull request description that explains the purpose, motivation, and scope of the JEP process changes being introduced.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title directly and clearly describes the main change: introducing a JEP process along with templates and documentation for Jumpstarter Enhancement Proposals.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jep-process

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
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 (1)
jep/JEP-0000-jep-process.md (1)

140-142: Add language specifier to fenced code block.

The fenced code block is missing a language specifier, which is flagged by markdownlint.

📝 Proposed fix
-```
+```text
 JEP: Short descriptive title

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @jep/JEP-0000-jep-process.md around lines 140 - 142, The fenced code block
containing "JEP: Short descriptive title" lacks a language specifier (triggering
markdownlint); update that fenced block (the triple-backtick block that wraps
the line "JEP: Short descriptive title") to include a language tag such as text
(e.g., ```text) so the block is properly annotated.


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/ISSUE_TEMPLATE/jep-proposal.yml:

In @jep/JEP-0000-jep-process.md:

  • Line 203: Update the incorrect directory path reference in the JEP text:
    replace the occurrence of "jeps/README.md" with the correct "jep/README.md" in
    the document (JEP-0000-jep-process.md) so it points to the actual README in the
    jep/ directory.

Nitpick comments:
In @jep/JEP-0000-jep-process.md:

  • Around line 140-142: The fenced code block containing "JEP: Short descriptive
    title" lacks a language specifier (triggering markdownlint); update that fenced
    block (the triple-backtick block that wraps the line "JEP: Short descriptive
    title") to include a language tag such as text (e.g., ```text) so the block is
    properly annotated.

</details>

<details>
<summary>🪄 Autofix (Beta)</summary>

Fix all unresolved CodeRabbit comments on this PR:

- [ ] <!-- {"checkboxId": "4b0d0e0a-96d7-4f10-b296-3a18ea78f0b9"} --> Push a commit to this branch (recommended)
- [ ] <!-- {"checkboxId": "ff5b1114-7d8c-49e6-8ac1-43f82af23a33"} --> Create a new PR with the fixes

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: Organization UI

**Review profile**: CHILL

**Plan**: Pro

**Run ID**: `5aed2daa-10d5-4d72-a927-5a6ff2159142`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between d713354eeaea42fe7774665a561a07da404e5598 and 652b3d2a7b591889b699aafd65bbc33fbe214c66.

</details>

<details>
<summary>📒 Files selected for processing (4)</summary>

* `.github/ISSUE_TEMPLATE/jep-proposal.yml`
* `jep/JEP-0000-jep-process.md`
* `jep/JEP-NNNN-template.md`
* `jep/README.md`

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

# Jumpstarter Enhancement Proposal (JEP)

Use this template to propose substantial changes to Jumpstarter.
See [JEP-0000](https://github.com/jumpstarter-dev/jumpstarter/blob/main/jeps/JEP-0000-jep-process.md) for when a JEP is needed and the full process.
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot Apr 7, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix broken link path in the JEP process reference.

The URL points to jeps/JEP-0000-jep-process.md but the actual directory is jep/ (without the 's'), which will result in a 404 error.

🔗 Proposed fix
-        See [JEP-0000](https://github.com/jumpstarter-dev/jumpstarter/blob/main/jeps/JEP-0000-jep-process.md) for when a JEP is needed and the full process.
+        See [JEP-0000](https://github.com/jumpstarter-dev/jumpstarter/blob/main/jep/JEP-0000-jep-process.md) for when a JEP is needed and the full process.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/ISSUE_TEMPLATE/jep-proposal.yml at line 12, Update the broken
Markdown link string
"https://github.com/jumpstarter-dev/jumpstarter/blob/main/jeps/JEP-0000-jep-process.md"
to use the correct directory name by replacing "jeps/" with "jep/" so the link
points to
"https://github.com/jumpstarter-dev/jumpstarter/blob/main/jep/JEP-0000-jep-process.md";
locate the URL in the ISSUE_TEMPLATE jep-proposal YAML entry (the line
containing the JEP-0000 reference) and update the path accordingly.

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.

I would rename the directory to /jeps

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@mangelajo, that makes sense! Renaming the directory to jeps/ would make the original URL in the template correct as-is. Note that the rename would also need to be reflected in a few other places within this PR:

  • jep/README.mdjeps/README.md
  • jep/JEP-0000-jep-process.mdjeps/JEP-0000-jep-process.md
  • jep/JEP-NNNN-template.mdjeps/JEP-NNNN-template.md
  • The internal link in jep/README.md that references JEP-0000-jep-process.md (since it links using a relative path)

Once those are updated, my original comment about the broken link would be resolved.


✏️ Learnings added
Learnt from: mangelajo
Repo: jumpstarter-dev/jumpstarter PR: 423
File: .github/ISSUE_TEMPLATE/jep-proposal.yml:12-12
Timestamp: 2026-04-08T10:13:00.586Z
Learning: In the jumpstarter project (jumpstarter-dev/jumpstarter), the directory for Jumpstarter Enhancement Proposals (JEPs) is named `jeps/` (with an 's'), not `jep/`. The JEP process document is located at `jeps/JEP-0000-jep-process.md`.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


🧠 Learnings used
Learnt from: mangelajo
Repo: jumpstarter-dev/jumpstarter PR: 610
File: packages/jumpstarter-driver-flashers/jumpstarter_driver_flashers/client.py:488-491
Timestamp: 2025-09-15T08:18:48.571Z
Learning: In the jumpstarter project, code review suggestions should stay focused on the specific scope of the PR. Suggestions about general improvements like timeout handling or error handling that are unrelated to the core changes being made should be avoided, even if they apply to modified code lines.

Copy link
Copy Markdown
Member

@mangelajo mangelajo Apr 8, 2026

Choose a reason for hiding this comment

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

@ambient-code please handle existing comments

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Done — renamed jep/ to jeps/. This also fixes the link in the issue template which already referenced the jeps/ path.

@mangelajo
Copy link
Copy Markdown
Member

This is a great idea, having a structured process for substantial changes brings much-needed formality and a clear planning trail, especially for anything touching interfaces, the gRPC protocol, or CRDs where mistakes are expensive to undo, etc.

One optional idea for down the road: once a JEP is approved, we could experiment with spec-kit deriving a spec-kit spec from a JEP. :)

jep/README.md Outdated
1. Read [JEP-0000](JEP-0000-jep-process.md) to understand when a JEP is needed.
2. Socialize your idea in [Matrix](https://matrix.to/#/#jumpstarter:matrix.org)
or at the [weekly meeting](https://meet.google.com/gzd-hhbd-hpu).
3. Open a new issue using the **JEP: Enhancement Proposal** template.
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.

I think it would be better to materialize JEPs as PRs always. It makes discussion easier. But that is probably something we can automate and convert issues into PRs at will. But it would be good to explain it here.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Updated both the README and JEP-0000 process doc to clarify that JEPs should be submitted as pull requests containing the JEP markdown file. The PR-based workflow is now presented as the primary path, with issues available for initial discussion or lightweight proposals.

@mangelajo mangelajo requested a review from raballew April 8, 2026 10:36
- Rename jep/ directory to jeps/ per maintainer feedback
- Add text language specifier to fenced code block
- Update workflow to clarify JEPs should be submitted as PRs for discussion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Comment on lines +20 to +24
3. Create a branch and add your JEP markdown file to the `jeps/` directory
using the [JEP-NNNN-template.md](JEP-NNNN-template.md) as a starting point.
4. Open a pull request. The PR serves as the primary venue for discussion,
allowing inline review comments on the JEP text.

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.

ok, I wanted to discuss about this but ambient code went ahead ... lol...

WDYT @kirkbrauer ?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yeah, so we could use PRs or Issues to track these (or maybe both), that's why I added the issue template.

@kirkbrauer
Copy link
Copy Markdown
Member Author

kirkbrauer commented Apr 8, 2026

@ambient-code Let's go ahead and remove the issue template and standardize the process on creating PRs for formal proposals.

Remove the JEP proposal issue template and update all JEP documentation
to reference pull requests as the sole mechanism for submitting formal
proposals. This simplifies the process by having a single, consistent
workflow for JEP submission and review.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ambient-code
Copy link
Copy Markdown
Contributor

ambient-code bot commented Apr 8, 2026

Done. I've removed the .github/ISSUE_TEMPLATE/jep-proposal.yml file and updated all JEP documentation (jeps/JEP-0000-jep-process.md, jeps/README.md, jeps/JEP-NNNN-template.md) to standardize on pull requests as the sole mechanism for submitting JEPs. References to the issue template, issue-based numbering, and issue-centric language have been replaced with PR-based equivalents throughout.


The issue number automatically becomes the JEP number (e.g., issue #400
becomes JEP-0400). Apply the `jep` label to the issue.
The PR number becomes the JEP number (e.g., PR #400 becomes JEP-0400).
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.

I think that using the PR number is not very deterministic, we should probably do sequential PRs. i.e. at the time of creating a new PR you can try to guess which number is next (counter is shared across issues and PRs, not sure if something else.)

I think it's just simpler to use a monotonic JEP counter, and manually fix when two competing PRs collide on the JEP number.

WDYT?

updates the JEP status in the issue body. Rejected JEPs are closed but not
deleted — they remain as the historical record of why an approach was not
taken.
Decisions are recorded as a comment on the pull request with a rationale. The
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.

@kirkbrauer we must decide if we merge the PRs with rejected JEPs, or not.

We have two options:

  1. Not merge them, but github will keep the history on the PR, including comments, rationale, etc.
  2. Merge them, clearly marked as rejected, may be using a sub-directory?

I would say that 2 gives us future context for any later decision making.

WDYT?

deleted — they remain as the historical record of why an approach was not
taken.
Decisions are recorded as a comment on the pull request with a rationale. The
author updates the JEP status in the markdown file. Rejected JEPs are closed
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.

if we want to merge the rejections, it's probably something we can automate with the bot, 1) move to a jeps/rejected directory 2) add a clear rejected message, collecting the reasoning in the PR discussions, etc..

## JEP Numbering

JEP numbers are assigned from the GitHub issue number used to submit the JEP.
JEP numbers are assigned from the pull request number used to submit the JEP.
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.

We need to decide on this. May be one option is simply submit a bogus/expected one, then self-correct? IDK

document is preferred (e.g., attaching to an issue or linking from one).
Use this template to create your JEP. Copy it to a new file named
JEP-NNNN-short-title.md (where NNNN will be the PR number) and open a
pull request against the main branch.
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.

Should we add some .cursor/rules .claude/rules to help with this process? i.e. ask a few questions to the user, and prepare the initial template, even try to figure out what is the next PR number :)

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