Skip to content

Commit 7d0c67c

Browse files
authored
Merge branch 'main' into chore/update-crypto-public-key
2 parents efde46d + 5b57ef3 commit 7d0c67c

2 files changed

Lines changed: 65 additions & 187 deletions

File tree

Lines changed: 63 additions & 185 deletions
Original file line numberDiff line numberDiff line change
@@ -1,226 +1,104 @@
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+
REQUIRED: Contributors must meet these thresholds before claiming.
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.
22+
- **Advanced Python:** Demonstrated proficiency with complex patterns (e.g., async concurrency, decorators, or state management) used in the core SDK.
2423
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.
24+
> [!NOTE]
25+
> **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.
3326
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
27+
### ⚠️ AI Usage Policy
28+
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**.
4029
41-
New developers should start with
42-
**Good First Issues** or **Intermediate Issues** first.
30+
### ⏱️ Timeline & Workflow
31+
- **Typical time:** ~1 month / ~50 hours.
32+
- 🔴 Completing an advanced issue in 1–3 days is a **red flag** and will likely be rejected.
33+
- **Mandatory:** Post your proposed architectural approach as a comment and wait for explicit maintainer approval **before writing any code.**
4334
validations:
4435
required: false
4536

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-
7137
- type: textarea
7238
id: problem
7339
attributes:
7440
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.
41+
placeholder: "Describe the current limitation or architectural risk here..."
13242
validations:
13343
required: true
13444

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-
15545
- type: textarea
15646
id: implementation
15747
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
48+
label: 🛠️ Implementation Notes
17049
value: |
171-
Add detailed implementation notes here.
50+
### Technical domains involved in this issue:
51+
- [ ] **API Client Architecture** (request → serialization → execution → response mapping)
52+
- [ ] **Backward Compatibility** (preserving method signatures, defaults, and return types)
53+
- [ ] **Protobuf Alignment** (reading `.proto` files, `_to_proto()` / `_from_proto()` correctness)
54+
- [ ] **State & Immutability** (correct usage of guards like `_require_not_frozen`)
55+
- [ ] **Execution Boundaries** (retry logic, backoff, node selection, gRPC deadlines)
56+
57+
_Replace this with specific implementation notes._
17258
validations:
17359
required: false
17460

175-
- type: markdown
61+
- type: textarea
62+
id: quality_standards
17663
attributes:
64+
label: 🛡️ Quality & Review Standards
17765
value: |
178-
<!-- Example for Implementation Notes (hidden in submission) -->
179-
## 🧠 Implementation Notes – Example
180-
181-
Suggested approach:
66+
The bar for advanced PRs is **"safe, maintainable, architecturally sound, and production-ready."**
18267
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.
68+
### 🚀 Defining "Production Ready"
69+
1. **Architectural Fit:** The solution must fit naturally into the existing SDK abstractions. Avoid "hacks" or isolated logic that bypasses the core execution model.
70+
2. **Security & Correctness:** Evaluate all logic for injection risks, state corruption, or thread-safety issues. Every line of code must be manually verified.
71+
3. **Maintainability:** Code must be clear enough for any other maintainer to debug without your assistance. Prefer standard patterns over "clever" one-liners.
72+
4. **Backward Compatibility:** Public API signatures must be preserved. If a breaking change is required, it must be explicitly managed through a deprecation cycle.
73+
validations:
74+
required: false
19375

19476
- type: textarea
195-
id: acceptance-criteria
77+
id: acceptance
19678
attributes:
197-
label: ✅ Acceptance Criteria
198-
description: Define what "done" means for this issue
79+
label: ✅ PR Quality Checklist
80+
description: |
81+
PRE-FILLED. These are the standards the contributor must meet before opening a PR.
19982
value: |
200-
To merge this issue, the pull request must:
201-
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
210-
validations:
211-
required: true
83+
Before opening your PR, the contributor must confirm:
84+
- [ ] I understand the system-wide impact of these changes on affected modules and performance.
85+
- [ ] The system design fits with current Hiero SDK architectural approaches.
86+
- [ ] I have tested my changes extensively against both local and network environments.
87+
- [ ] I have verified naming, types, and field ordering against pinned Protobufs (v0.72.0-rc.2).
88+
- [ ] Every line of code is personally understood and explainable (no unvalidated AI code).
21289
21390
- type: textarea
214-
id: additional-info
91+
id: resources
21592
attributes:
216-
label: 📚 Additional Context, Links, or Prior Art
217-
description: |
218-
Add any references that may help:
219-
- design docs
220-
- prior discussions
221-
- related issues or PRs
222-
- external references
93+
label: 📚 Resources & Support
22394
value: |
224-
Optional.
95+
**Project References:**
96+
- [SDK Project Structure](https://github.com/hiero-ledger/hiero-sdk-python/blob/main/docs/sdk_developers/training/setup/project_structure.md)
97+
- [Transaction Lifecycle](https://github.com/hiero-ledger/hiero-sdk-python/blob/main/docs/sdk_developers/training/transaction_lifecycle.md)
98+
- [Hedera Protobufs (v0.72.0-rc.2)](https://github.com/hashgraph/hedera-protobufs/tree/v0.72.0-rc.2/services)
99+
100+
**🆘 Stuck?**
101+
- [Office Hours](https://zoom-lfx.platform.linuxfoundation.org/meeting/99912667426?password=5b584a0e-1ed7-49d3-b2fc-dc5ddc888338) (Wednesdays, 2pm UTC)
102+
- [Discord #hiero-python-sdk](https://github.com/hiero-ledger/hiero-sdk-python/blob/main/docs/discord.md)
225103
validations:
226-
required: false
104+
required: false

CHANGELOG.md

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

2020

2121
### .github
22-
23-
22+
- Refactored the Advanced Issue Template to V2 with stricter prerequisites and a focus on architectural design (#2016).
23+
- Refactored the Advanced Issue Template to ensure PR-level quality checklists do not block maintainers during issue creation (#2036)
2424
## [0.2.3] - 2026-03-26
2525

2626
### Added

0 commit comments

Comments
 (0)