Skip to content

[Intermediate]: Create a BEGINNER issue templateΒ #1319

@exploreriii

Description

@exploreriii

🧩 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 client

with 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.network

This 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

πŸ“š Additional Context or Resources

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationintermediaterequires some knowledge of the codebase with some defined steps to implement or examples

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions