Skip to content

Commit f0028f7

Browse files
authored
docs: refactor Advanced Issue Template to V2 (#2029)
Signed-off-by: Akshat Kumar <akshat230405@gmail.com>
1 parent bd11937 commit f0028f7

2 files changed

Lines changed: 69 additions & 188 deletions

File tree

Lines changed: 68 additions & 187 deletions
Original file line numberDiff line numberDiff line change
@@ -1,226 +1,107 @@
11
name: Advanced Issue Template
2-
description: Create a high-impact issue for experienced contributors with deep familiarity with the codebase
2+
description: For expert contributors tackling architectural, multi-module, or core-logic changes.
33
title: "[Advanced]: "
44
labels: ["advanced"]
55
assignees: []
66

77
body:
8-
- type: markdown
8+
- type: textarea
9+
id: advanced_contributors
910
attributes:
11+
label: 🧠 Advanced Contributors — Prerequisites & Expectations
12+
description: |
13+
PRE-FILLED. DO NOT CLAIM THIS ISSUE UNLESS YOU MEET THESE GUIDELINES.
1014
value: |
11-
---
12-
## **Thanks for contributing!** 🚀
13-
14-
We truly appreciate your interest in tackling an **Advanced issue**.
15-
16-
This template is designed for work that requires **deep familiarity with the Hiero Python SDK**
17-
and confidence making changes that may span multiple modules or affect core behavior.
15+
> [!CAUTION]
16+
> **Advanced issues are the highest-risk work in this project. We will reject PRs that do not meet these standards.**
1817
19-
The goal is to create issues for contributors who:
20-
- have strong familiarity with the Hiero Python SDK internals
21-
- are comfortable reasoning about trade-offs and design decisions
22-
- can work independently with minimal guidance
23-
---
18+
### 🏁 Concrete Prerequisites
19+
- **Proven History:** Successfully completed **≥ 10 non-trivial intermediate issues** in this repo.
20+
- **Consistency:** **≥ 3–4 months** of active, human-led contributions to this SDK.
21+
- **Expertise:** Deep architectural understanding of `_Executable`, `Transaction`, and `Query` base classes.
2422
25-
- type: textarea
26-
id: intro
27-
attributes:
28-
label: 🧠 Advanced Contributors
29-
description: Who is this issue intended for?
30-
value: |
31-
This issue is intended for contributors who are already very familiar with the
32-
[Hiero Python SDK](https://hiero.org) codebase and its architectural patterns.
23+
> [!NOTE]
24+
> **Workflow Exception:** For issues focused on **GitHub Actions / Workflows**, the Python-specific thresholds above may be waived if the contributor demonstrates expert-level proficiency in CI/CD security and automation.
3325
34-
You should feel comfortable:
35-
- navigating multiple modules across `src/`
36-
- understanding and modifying core SDK abstractions
37-
- reasoning about API design and backwards compatibility
38-
- updating or extending tests, examples, and documentation as needed
39-
- making changes that may affect public-facing behavior
26+
### ⚠️ AI Usage Policy
27+
Using AI to generate code for Advanced issues is **strictly forbidden**. AI may be used only to help explain file relationships. Submitting AI-mined code or unvalidated generated output is grounds for **immediate rejection**.
4028
41-
New developers should start with
42-
**Good First Issues** or **Intermediate Issues** first.
29+
### ⏱️ Timeline & Workflow
30+
- **Typical time:** ~1 month / ~50 hours.
31+
- 🔴 Completing an advanced issue in 1–3 days is a **red flag** and will likely be rejected.
32+
- **Mandatory:** Post your proposed architectural approach as a comment and wait for explicit maintainer approval **before writing any code.**
4333
validations:
4434
required: false
4535

46-
- type: markdown
47-
attributes:
48-
value: |
49-
> [!WARNING]
50-
> ### 🧭 What we consider an *Advanced Issue*
51-
>
52-
> This issue typically:
53-
>
54-
> - Requires **deep understanding of existing SDK design and behavior**
55-
> - May touch **core abstractions**, shared utilities, or cross-cutting concerns
56-
> - May involve **non-trivial refactors**, design changes, or behavior extensions
57-
> - Has **medium to high risk** if implemented incorrectly
58-
> - Requires careful consideration of **backwards compatibility**
59-
> - May require updating **tests, examples, and documentation together**
60-
>
61-
> **What this issue is NOT:**
62-
> - A simple bug fix
63-
> - A narrowly scoped refactor
64-
> - A task solvable by following existing patterns alone
65-
>
66-
> 📖 Helpful references:
67-
> - `docs/sdk_developers/training`
68-
> - `docs/sdk_developers/training/setup/project_structure.md`
69-
> - `docs/sdk_developers/rebasing.md`
70-
7136
- type: textarea
7237
id: problem
7338
attributes:
7439
label: 🐞 Problem Description
75-
description: |
76-
Describe the problem in depth.
77-
78-
You may assume the reader:
79-
- understands the overall SDK architecture
80-
- can navigate and reason about multiple modules
81-
- is comfortable reading and modifying core logic
82-
83-
Clearly explain:
84-
- what the current behavior is
85-
- why it is insufficient or incorrect
86-
- which components or layers are involved
87-
- any relevant historical or design context
88-
value: |
89-
Describe the problem here.
90-
validations:
91-
required: true
92-
93-
- type: markdown
94-
attributes:
95-
value: |
96-
<!-- Example for Problem (hidden in submission) -->
97-
## 🐞 Problem – Example
98-
99-
The current transaction execution pipeline tightly couples
100-
receipt retrieval, record retrieval, and retry logic into a single
101-
execution flow.
102-
103-
This coupling makes it difficult to:
104-
- customize retry behavior
105-
- extend execution semantics for scheduled or mirror-node-backed workflows
106-
- test individual stages of transaction execution in isolation
107-
108-
Several downstream SDK features would benefit from a clearer separation
109-
of concerns in this area.
110-
111-
Relevant areas:
112-
- `src/hiero_sdk_python/transaction/`
113-
- `src/hiero_sdk_python/execution/`
114-
- `src/hiero_sdk_python/client/`
115-
116-
- type: textarea
117-
id: solution
118-
attributes:
119-
label: 💡 Proposed / Expected Solution
120-
description: |
121-
Describe the intended direction or design.
122-
123-
This should include:
124-
- the high-level approach
125-
- any new abstractions or changes to existing ones
126-
- constraints (e.g. backwards compatibility, performance, API stability)
127-
- known alternatives and why they were rejected (if applicable)
128-
129-
A full design document is not required, but reasoning and intent should be clear.
130-
value: |
131-
Describe the proposed solution here.
40+
placeholder: "Describe the current limitation or architectural risk here..."
13241
validations:
13342
required: true
13443

135-
- type: markdown
136-
attributes:
137-
value: |
138-
<!-- Example for Solution (hidden in submission) -->
139-
## 💡 Proposed Solution – Example
140-
141-
Introduce a dedicated execution pipeline abstraction that separates:
142-
- transaction submission
143-
- receipt polling
144-
- record retrieval
145-
- retry and timeout logic
146-
147-
The new design should:
148-
- preserve existing public APIs
149-
- allow advanced users to override or extend execution behavior
150-
- make individual stages independently testable
151-
152-
Existing transaction execution should be reimplemented
153-
using the new pipeline internally.
154-
15544
- type: textarea
15645
id: implementation
15746
attributes:
158-
label: 🧠 Implementation & Design Notes
159-
description: |
160-
Provide detailed technical guidance.
161-
162-
This section is especially important for Advanced issues.
163-
164-
Consider including:
165-
- specific modules or classes involved
166-
- suggested refactoring strategy
167-
- migration or deprecation concerns
168-
- testing strategy
169-
- performance or security considerations
47+
label: 🛠️ Implementation Notes
17048
value: |
171-
Add detailed implementation notes here.
49+
### Technical domains involved in this issue:
50+
- [ ] **API Client Architecture** (request → serialization → execution → response mapping)
51+
- [ ] **Backward Compatibility** (preserving method signatures, defaults, and return types)
52+
- [ ] **Protobuf Alignment** (reading `.proto` files, `_to_proto()` / `_from_proto()` correctness)
53+
- [ ] **State & Immutability** (correct usage of guards like `_require_not_frozen`)
54+
- [ ] **Execution Boundaries** (retry logic, backoff, node selection, gRPC deadlines)
55+
56+
_Replace this with specific implementation notes._
17257
validations:
17358
required: false
17459

175-
- type: markdown
176-
attributes:
177-
value: |
178-
<!-- Example for Implementation Notes (hidden in submission) -->
179-
## 🧠 Implementation Notes – Example
180-
181-
Suggested approach:
182-
183-
- Introduce a new `ExecutionPipeline` abstraction under
184-
`src/hiero_sdk_python/execution/`
185-
- Refactor existing transaction execution logic to delegate
186-
to this pipeline
187-
- Ensure existing public APIs remain unchanged
188-
- Add focused unit tests for each pipeline stage
189-
- Update at least one example to demonstrate extensibility
190-
191-
Care should be taken to avoid breaking timeout semantics
192-
relied upon by existing users.
193-
19460
- type: textarea
195-
id: acceptance-criteria
61+
id: quality_standards
19662
attributes:
197-
label: ✅ Acceptance Criteria
198-
description: Define what "done" means for this issue
63+
label: 🛡️ Quality & Review Standards
19964
value: |
200-
To merge this issue, the pull request must:
65+
The bar for advanced PRs is **"safe, maintainable, architecturally sound, and production-ready."**
20166
202-
- [ ] Fully address the problem and design goals described above
203-
- [ ] Maintain backwards compatibility unless explicitly approved otherwise
204-
- [ ] Follow existing architectural and coding conventions
205-
- [ ] Include comprehensive tests covering new and existing behavior
206-
- [ ] Update relevant examples and documentation
207-
- [ ] Pass all CI checks
208-
- [ ] Include a valid changelog entry
209-
- [ ] be a DCO and GPG key signed as `git commit -S -s -m "chore: my change"` with a GPG key set up
67+
### 🚀 Defining "Production Ready"
68+
1. **Architectural Fit:** The solution must fit naturally into the existing SDK abstractions. Avoid "hacks" or isolated logic that bypasses the core execution model.
69+
2. **Security & Correctness:** Evaluate all logic for injection risks, state corruption, or thread-safety issues. Every line of code must be manually verified.
70+
3. **Maintainability:** Code must be clear enough for any other maintainer to debug without your assistance. Prefer standard patterns over "clever" one-liners.
71+
4. **Backward Compatibility:** Public API signatures must be preserved. If a breaking change is required, it must be explicitly managed through a deprecation cycle.
21072
validations:
211-
required: true
73+
required: false
21274

213-
- type: textarea
214-
id: additional-info
75+
- type: checkboxes
76+
id: acceptance
21577
attributes:
216-
label: 📚 Additional Context, Links, or Prior Art
78+
label: ✅ PR Quality Checklist
21779
description: |
218-
Add any references that may help:
219-
- design docs
220-
- prior discussions
221-
- related issues or PRs
222-
- external references
80+
The contributor must manually verify each of these criteria in their Pull Request.
81+
options:
82+
- label: "I understand the system-wide impact of these changes on affected modules and performance."
83+
required: true
84+
- label: "The system design fits with current Hiero SDK architectural approaches."
85+
required: true
86+
- label: "I have tested my changes extensively against both local and network environments."
87+
required: true
88+
- label: "I have verified naming, types, and field ordering against pinned Protobufs (v0.72.0-rc.2)."
89+
required: true
90+
- label: "Every line of code is personally understood and explainable (no unvalidated AI code)."
91+
required: true
92+
93+
- type: textarea
94+
id: resources
95+
attributes:
96+
label: 📚 Resources & Support
22397
value: |
224-
Optional.
98+
**Project References:**
99+
- [SDK Project Structure](https://github.com/hiero-ledger/hiero-sdk-python/blob/main/docs/sdk_developers/training/setup/project_structure.md)
100+
- [Transaction Lifecycle](https://github.com/hiero-ledger/hiero-sdk-python/blob/main/docs/sdk_developers/training/transaction_lifecycle.md)
101+
- [Hedera Protobufs (v0.72.0-rc.2)](https://github.com/hashgraph/hedera-protobufs/tree/v0.72.0-rc.2/services)
102+
103+
**🆘 Stuck?**
104+
- [Office Hours](https://zoom-lfx.platform.linuxfoundation.org/meeting/99912667426?password=5b584a0e-1ed7-49d3-b2fc-dc5ddc888338) (Wednesdays, 2pm UTC)
105+
- [Discord #hiero-python-sdk](https://github.com/hiero-ledger/hiero-sdk-python/blob/main/docs/discord.md)
225106
validations:
226-
required: false
107+
required: false

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ This changelog is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.
1919

2020

2121
### .github
22-
22+
- Refactored the Advanced Issue Template to V2 with stricter prerequisites and a focus on architectural design (#2016).
2323

2424
## [0.2.3] - 2026-03-26
2525

0 commit comments

Comments
 (0)