-
Notifications
You must be signed in to change notification settings - Fork 144
Description
π§© Intermediate Contributors
This issue is intended for contributors who already have some familiarity with the
Hiero Python SDK codebase and contribution workflow.
You should feel comfortable:
- navigating existing source code and examples
- understanding SDK concepts without step-by-step guidance
- following the standard PR workflow without additional onboarding
If this is your very first contribution to the project, we recommend starting with a few
Good First Issues before working on this one.
π Problem Description
We have several templates to create high-quality issue descriptions.
These are located at
.github/ISSUE_TEMPLATE
We have a new issue label: beginner
These are issues that are a little more complex than good first issues, but not as advanced as intermediate issues.
For example:
good first issue = rename this_file.py to that_file.py
Good first issues are highly specific, involve exact hand holding and extremely narrow. This way, the user can focus on learning the workflow and build more confidence when contributing to open source.
beginner issue = refactor:
def setup_client() -> Client:
"""Initialize and set up the client with operator account using env vars."""
network = Network(network_name)
print(f"Connecting to Hedera {network_name} network!")
client = Client(network)
operator_id = AccountId.from_string(os.getenv("OPERATOR_ID", ""))
operator_key = PrivateKey.from_string(os.getenv("OPERATOR_KEY", ""))
client.set_operator(operator_id, operator_key)
print(f"Client set up with operator id {client.operator_account_id}")
return clientwith the new set up client method of:
def from_env(cls, network: Optional[NetworkName] = None) -> "Client":defined in:
src/hiero_sdk_python/client/client.py
Instead of setting up the client manually as before, the user can just call from_env
client = Client.from_env()
and this creates the client.
when they need the operator key and the operator id and network they'll need to extract it:
e.g.
client.operator_account_id
client.operator_key
client.network.networkThis refactoring of the manual based set up client in the example to using the new method defined in the client class, should be applied to all examples in examples/account
No other functionality should change
The examples should still run
π‘ Expected Solution
When creating a template remember:
- markdown sections don't post to the issue, but are there to help the issue creators.
- textedit sections post
We need to provide examples, similar to how we handle them in the good first issue template and the intermediate template, but fine tuned to be beginner friendly
Use the above as a guide, helping the reader understand what is a beginner issue, and how it differs from a good first issue and an intermediate issue
it needs to auto assign the 'beginner' label
π§ Implementation Notes
Create
.github/ISSUE_TEMPLATE/05_beginner_issue.yml
be sure to rename:
.github/ISSUE_TEMPLATE/05_intermediate_issue.yml -> .github/ISSUE_TEMPLATE/06_intermediate_issue.yml
.github/ISSUE_TEMPLATE/06_advanced_issue.yml -> .github/ISSUE_TEMPLATE/07_advanced_issue.yml
and double check anything calling these are updated with the new paths
β Acceptance Criteria
To merge this issue, the pull request must:
- Fully address the problem described above
- Follow existing project conventions and patterns
- Include tests or example updates where appropriate
- Pass all CI checks
- Include a valid changelog entry
- Use DCO and GPG-signed commits