|
1 | | -## 🚀 Pull Request |
| 1 | +## 📝 Description |
2 | 2 |
|
3 | | -### 📝 Description |
| 3 | +<!-- Why is this change needed? Explain in your own words. --> |
4 | 4 |
|
5 | | -<!-- Provide a clear and concise summary of the changes introduced in this pull request --> |
6 | | -<!-- Reference related issues using "Fixes #123", "Closes #456", or "Relates to #789" --> |
| 5 | +**Linked Issue:** Fixes #<!-- issue number --> |
7 | 6 |
|
8 | | -### 🛠️ Changes Implemented |
| 7 | +> **Required.** Every PR must reference an approved issue. If no issue exists, [open one](https://github.com/booklore-app/booklore/issues/new) and wait for maintainer approval before submitting a PR. Unsolicited PRs without a linked issue will be closed. |
9 | 8 |
|
10 | | -<!-- Detail the specific modifications, additions, or removals made in this pull request --> |
11 | | -- |
| 9 | +## 🏷️ Type of Change |
12 | 10 |
|
13 | | -### 🧪 Testing Strategy |
| 11 | +- [ ] Bug fix |
| 12 | +- [ ] New feature |
| 13 | +- [ ] Enhancement to existing feature |
| 14 | +- [ ] Refactor (no behavior change) |
| 15 | +- [ ] Breaking change (existing functionality affected) |
| 16 | +- [ ] Documentation update |
14 | 17 |
|
15 | | -<!-- Describe the testing methodology used to verify the correctness of these changes --> |
16 | | -<!-- Include testing approach, scenarios covered, and edge cases considered --> |
| 18 | +## 🔧 Changes |
17 | 19 |
|
18 | | -### 📸 Visual Changes _(if applicable)_ |
| 20 | +<!-- List the specific modifications made --> |
| 21 | +- |
19 | 22 |
|
20 | | -<!-- Attach screenshots or videos demonstrating UI/UX modifications --> |
| 23 | +## 🧪 Testing (MANDATORY) |
21 | 24 |
|
| 25 | +> **PRs without this section filled out will be closed.** "Tests pass" or "Tested locally" is not sufficient. You must provide specifics. |
22 | 26 |
|
23 | | ---- |
| 27 | +**Manual testing steps you performed:** |
| 28 | +<!-- Walk through the exact steps you took to verify your change works. Be specific. --> |
| 29 | +1. |
| 30 | +2. |
| 31 | +3. |
| 32 | + |
| 33 | +**Regression testing:** |
| 34 | +<!-- How did you verify that existing related features still work after your change? --> |
| 35 | +- |
| 36 | + |
| 37 | +**Edge cases covered:** |
| 38 | +<!-- What boundary conditions or unusual inputs did you test? --> |
| 39 | +- |
| 40 | + |
| 41 | +**Test output:** |
| 42 | +<!-- Paste the actual terminal output from running tests. Not "all pass", the real output. --> |
| 43 | + |
| 44 | +<details> |
| 45 | +<summary>Backend test output (<code>./gradlew test</code>)</summary> |
| 46 | + |
| 47 | +``` |
| 48 | +PASTE OUTPUT HERE |
| 49 | +``` |
24 | 50 |
|
25 | | -## ⚠️ Required Pre-Submission Checklist |
| 51 | +</details> |
26 | 52 |
|
27 | | -### **Please Read - This Checklist is Mandatory** |
| 53 | +<details> |
| 54 | +<summary>Frontend test output (<code>ng test</code>)</summary> |
28 | 55 |
|
29 | | -> **Important Notice:** We've experienced several production bugs recently due to incomplete pre-submission checks. To maintain code quality and prevent issues from reaching production, we're enforcing stricter adherence to this checklist. |
30 | | -> |
31 | | -> **All checkboxes below must be completed before requesting review.** PRs that haven't completed these requirements will be sent back for completion. |
| 56 | +``` |
| 57 | +PASTE OUTPUT HERE |
| 58 | +``` |
32 | 59 |
|
33 | | -#### **Mandatory Requirements** _(please check ALL boxes)_: |
| 60 | +</details> |
| 61 | + |
| 62 | +## 📸 Screen Recording / Screenshots (MANDATORY) |
| 63 | + |
| 64 | +> Every PR must include a **screen recording or screenshots** showing the change working end-to-end in a running local instance (both backend and frontend). This means you must have actually built, run, and tested the code yourself. PRs without visual proof will be closed without review. |
| 65 | +
|
| 66 | +<!-- Attach screen recording or screenshots here --> |
| 67 | + |
| 68 | +--- |
34 | 69 |
|
35 | | -- [ ] **Code adheres to project style guidelines and conventions** |
36 | | -- [ ] **Branch synchronized with latest `develop` branch** _(please resolve any merge conflicts)_ |
37 | | -- [ ] **🚨 CRITICAL: Automated unit tests added/updated to cover changes** _(MANDATORY for ALL Spring Boot backend and Angular frontend changes - this is non-negotiable)_ |
38 | | -- [ ] **🚨 CRITICAL: All tests pass locally** _(run `./gradlew test` for Spring Boot backend, and `ng test` for Angular frontend - NO EXCEPTIONS)_ |
39 | | -- [ ] **🚨 CRITICAL: Manual testing completed in local development environment** _(verify your changes work AND no existing functionality is broken - test related features thoroughly)_ |
40 | | -- [ ] **Flyway migration versioning follows correct sequence** _(if database schema was modified)_ |
41 | | -- [ ] **Documentation PR submitted to [booklore-docs](https://github.com/booklore-app/booklore-docs)** _(required for features or enhancements that introduce user-facing or visual changes)_ |
| 70 | +## ✅ Pre-Submission Checklist |
42 | 71 |
|
43 | | -#### **Why This Matters:** |
| 72 | +> **All boxes must be checked before requesting review.** Incomplete PRs will be closed without review. No exceptions. |
44 | 73 |
|
45 | | -Recent production incidents have been traced back to: |
| 74 | +- [ ] This PR is linked to an approved issue |
| 75 | +- [ ] Code follows project style guidelines and conventions |
| 76 | +- [ ] Branch is up to date with `develop` (merge conflicts resolved) |
| 77 | +- [ ] I ran the full stack locally (backend + frontend + database) and verified the change works |
| 78 | +- [ ] Automated tests added or updated to cover changes (backend **and** frontend) |
| 79 | +- [ ] All tests pass locally and output is pasted above |
| 80 | +- [ ] Screen recording or screenshots are attached above proving the change works |
| 81 | +- [ ] PR is a single focused change (one bug fix OR one feature, not multiple unrelated changes) |
| 82 | +- [ ] PR is reasonably scoped (PRs over 1000+ changed lines will be closed, split into smaller PRs) |
| 83 | +- [ ] No unsolicited refactors, cleanups, or "improvements" are bundled in |
| 84 | +- [ ] Flyway migration versioning is correct _(if schema was modified)_ |
| 85 | +- [ ] Documentation PR submitted to [booklore-docs](https://github.com/booklore-app/booklore-docs) _(if user-facing changes)_ |
46 | 86 |
|
47 | | -- **Incomplete testing coverage (especially backend)** |
48 | | -- Merge conflicts not resolved before merge |
49 | | -- Missing documentation for new features |
| 87 | +### 🤖 AI-Assisted Contributions |
50 | 88 |
|
51 | | -**Backend changes without tests will not be accepted.** By completing this checklist thoroughly, you're helping maintain the quality and stability of Booklore for all users. |
| 89 | +> **If any part of this PR was generated or assisted by AI tools (Copilot, Claude, ChatGPT, etc.), all items below are mandatory.** You are fully responsible for every line you submit. "The AI wrote it" is not an excuse, and AI-generated PRs that clearly haven't been reviewed are the #1 reason PRs get closed. |
52 | 90 |
|
53 | | -**Note to Reviewers:** Please verify the checklist is complete before beginning your review. If items are unchecked, kindly ask the contributor to complete them first. |
| 91 | +- [ ] I have read and understand every line of this PR and can explain any part of it during review |
| 92 | +- [ ] I personally ran the code and verified it works (not just trusted the AI's output) |
| 93 | +- [ ] PR is scoped to a single logical change, not a dump of everything the AI suggested |
| 94 | +- [ ] Tests validate actual behavior, not just coverage (AI-generated tests often assert nothing meaningful) |
| 95 | +- [ ] No dead code, placeholder comments, `TODO`s, or unused scaffolding left behind by AI |
| 96 | +- [ ] I did not submit refactors, style changes, or "improvements" the AI suggested beyond the scope of the issue |
54 | 97 |
|
55 | 98 | --- |
56 | 99 |
|
57 | | -### 💬 Additional Context _(optional)_ |
| 100 | +## 💬 Additional Context _(optional)_ |
58 | 101 |
|
59 | | -<!-- Provide any supplementary information, implementation considerations, or discussion points for reviewers --> |
| 102 | +<!-- Any extra information or discussion points for reviewers --> |
0 commit comments