Skip to content

Commit cadae31

Browse files
authored
feat: re-add intermediate template (#1360)
Signed-off-by: aceppaluni <[email protected]>
1 parent 1c0f6dd commit cadae31

File tree

1 file changed

+211
-0
lines changed

1 file changed

+211
-0
lines changed
Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
name: Intermediate Issue Template
2+
description: Create a well-documented issue for contributors with some familiarity with the codebase
3+
title: "[Intermediate]: "
4+
labels: ["intermediate"]
5+
assignees: []
6+
7+
body:
8+
- type: markdown
9+
attributes:
10+
value: |
11+
---
12+
## **Thanks for contributing!** 😊
13+
14+
We truly appreciate your time and effort.
15+
This template is designed to help you create an Intermediate issue.
16+
17+
The goal is to create an issue for users that have:
18+
- basic familiarity with the Hiero Python SDK codebase
19+
- experience following our contribution workflow
20+
- confidence navigating existing source code and examples
21+
---
22+
23+
- type: textarea
24+
id: intro
25+
attributes:
26+
label: 🧩 Intermediate Contributors
27+
description: Who is this issue for?
28+
value: |
29+
This issue is intended for contributors who already have some familiarity with the
30+
[Hiero Python SDK](https://hiero.org) codebase and contribution workflow.
31+
32+
You should feel comfortable:
33+
- navigating existing source code and examples
34+
- understanding SDK concepts without step-by-step guidance
35+
- following the standard PR workflow without additional onboarding
36+
37+
If this is your very first contribution to the project, we recommend starting with a few
38+
**Good First Issues** before working on this one.
39+
validations:
40+
required: false
41+
42+
- type: markdown
43+
attributes:
44+
value: |
45+
> [!IMPORTANT]
46+
> ### 🧭 What we consider an *Intermediate Issue*
47+
>
48+
> This issue generally:
49+
>
50+
> - Requires **some knowledge of the existing codebase**, but not deep architectural knowledge
51+
> - Is **narrowly scoped** and well-contained
52+
> - Is **low to medium risk**, not touching highly sensitive or critical DLT logic
53+
> - May involve **refactors or small feature additions**
54+
> - Provides **enough documentation or examples** to reason about a solution
55+
> - Often has **similar patterns elsewhere in the codebase**
56+
>
57+
> **What this issue is NOT:**
58+
> - A beginner-friendly onboarding task
59+
> - A large architectural redesign
60+
> - A change requiring extensive cross-module refactors
61+
> - A breaking API change
62+
63+
- type: textarea
64+
id: problem
65+
attributes:
66+
label: 🐞 Problem Description
67+
description: |
68+
Describe the problem clearly and precisely.
69+
70+
You may assume the reader:
71+
- understands the SDK structure
72+
- can navigate `src/`, `examples/`, and `tests/`
73+
- is comfortable reading existing implementations
74+
75+
Still, explain:
76+
- what is wrong or missing
77+
- where it lives in the codebase
78+
- why it matters
79+
value: |
80+
Describe the problem here.
81+
validations:
82+
required: true
83+
84+
- type: markdown
85+
attributes:
86+
value: |
87+
<!-- Example for Problem (hidden in submission) -->
88+
## 🐞 Problem – Example
89+
90+
The `TransactionGetReceiptQuery` currently exposes the `get_children()` method,
91+
but the behavior is inconsistent with how child receipts are returned by the Mirror Node.
92+
93+
In particular:
94+
- The SDK always returns only the parent receipt
95+
- There is no way to opt-in to retrieving child receipts
96+
- Similar query objects already support optional flags to extend the response
97+
98+
This limitation makes it difficult to inspect scheduled or child transactions
99+
without issuing additional manual queries.
100+
101+
Relevant files:
102+
- `src/hiero_sdk_python/query/transaction_get_receipt_query.py`
103+
- `examples/query/transaction_get_receipt_query.py`
104+
105+
- type: textarea
106+
id: solution
107+
attributes:
108+
label: 💡 Expected Solution
109+
description: |
110+
Describe the intended outcome.
111+
112+
This does NOT need to be a full implementation plan,
113+
but should explain:
114+
- what should change
115+
- what should NOT change
116+
- any constraints or boundaries
117+
value: |
118+
Describe the expected solution here.
119+
validations:
120+
required: true
121+
122+
- type: markdown
123+
attributes:
124+
value: |
125+
<!-- Example for Solution (hidden in submission) -->
126+
## 💡 Expected Solution – Example
127+
128+
Introduce an optional configuration flag on `TransactionGetReceiptQuery`
129+
that allows callers to explicitly request child receipts.
130+
131+
The change should:
132+
- Be opt-in (default behavior must remain unchanged)
133+
- Reuse existing response parsing logic where possible
134+
- Avoid introducing breaking API changes
135+
136+
Example usage:
137+
138+
```python
139+
receipt = (
140+
TransactionGetReceiptQuery()
141+
.set_transaction_id(tx_id)
142+
.set_include_children(True)
143+
.execute(client)
144+
)
145+
```
146+
147+
- type: textarea
148+
id: implementation
149+
attributes:
150+
label: 🧠 Implementation Notes
151+
description: |
152+
Provide technical guidance to help implementation.
153+
154+
Examples:
155+
- files or modules likely involved
156+
- patterns already used elsewhere
157+
- things to be careful about
158+
- known edge cases
159+
value: |
160+
Add implementation notes here.
161+
validations:
162+
required: false
163+
164+
- type: markdown
165+
attributes:
166+
value: |
167+
<!-- Example for Implementation Notes (hidden in submission) -->
168+
## 🧠 Implementation Notes – Example
169+
170+
Likely steps:
171+
172+
- Add an optional boolean field (e.g. `_include_children`) to
173+
`TransactionGetReceiptQuery`
174+
- Ensure the flag is passed to the mirror node request
175+
- Update response parsing to include child receipts when present
176+
- Extend the existing example in
177+
`examples/query/transaction_get_receipt_query.py`
178+
to demonstrate the new behavior
179+
180+
Similar patterns can be found in other query classes that support
181+
optional response extensions.
182+
183+
- type: textarea
184+
id: acceptance-criteria
185+
attributes:
186+
label: ✅ Acceptance Criteria
187+
description: Define what "done" means for this issue
188+
value: |
189+
To merge this issue, the pull request must:
190+
191+
- [ ] Fully address the problem described above
192+
- [ ] Follow existing project conventions and patterns
193+
- [ ] Include tests or example updates where appropriate
194+
- [ ] Pass all CI checks
195+
- [ ] Include a valid changelog entry
196+
- [ ] Use DCO and GPG-signed commits
197+
validations:
198+
required: true
199+
200+
- type: textarea
201+
id: additional-info
202+
attributes:
203+
label: 📚 Additional Context or Resources
204+
description: |
205+
Add any links, references, or extra notes that may help.
206+
value: |
207+
- [SDK Developer Docs](https://github.com/hiero-ledger/hiero-sdk-python/tree/main/docs/sdk_developers)
208+
- [SDK Developer Training](https://github.com/hiero-ledger/hiero-sdk-python/tree/main/docs/sdk_developers/training)
209+
210+
validations:
211+
required: false

0 commit comments

Comments
 (0)