Add Jumpstarter Enhancement Proposal (JEP) Process and Issue Template#423
Add Jumpstarter Enhancement Proposal (JEP) Process and Issue Template#423kirkbrauer wants to merge 3 commits intomainfrom
Conversation
✅ Deploy Preview for jumpstarter-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✅ Files skipped from review due to trivial changes (3)
📝 WalkthroughWalkthroughIntroduces 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
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
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.mdaround 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:
- 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.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. |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
I would rename the directory to /jeps
There was a problem hiding this comment.
@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.md→jeps/README.mdjep/JEP-0000-jep-process.md→jeps/JEP-0000-jep-process.mdjep/JEP-NNNN-template.md→jeps/JEP-NNNN-template.md- The internal link in
jep/README.mdthat referencesJEP-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.
There was a problem hiding this comment.
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!
There was a problem hiding this comment.
Done — renamed jep/ to jeps/. This also fixes the link in the issue template which already referenced the jeps/ path.
|
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. |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
- 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>
| 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. | ||
|
|
There was a problem hiding this comment.
ok, I wanted to discuss about this but ambient code went ahead ... lol...
WDYT @kirkbrauer ?
There was a problem hiding this comment.
Yeah, so we could use PRs or Issues to track these (or maybe both), that's why I added the issue template.
|
@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>
|
Done. I've removed the |
|
|
||
| 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). |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
@kirkbrauer we must decide if we merge the PRs with rejected JEPs, or not.
We have two options:
- Not merge them, but github will keep the history on the PR, including comments, rationale, etc.
- 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 |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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 :)
No description provided.