-
Notifications
You must be signed in to change notification settings - Fork 237
Description
🐥 Beginner Friendly
Welcome! This Beginner Issue is designed to be a natural next step after good first issues.
It nudges you to:
- Research existing patterns
- Own more implementation decisions
- Test your changes
Difficulty:
- Requires knowledge of our workflow
- Beginner to intermediate Python and Git
- Beginner DLT/Blockchain experience
Important
We recommend completing at least 3 good first issues before attempting a beginner issue.
Tip
You should be comfortable with:
- Forking, branching, committing (with DCO + GPG signing), and opening a pull request without a tutorial
- Reading beginner Python code you did not write and following its patterns
- Handling simple merge conflicts in CHANGELOG.md
- Keeping your fork up to date with main by rebasing
- Looking things up on your own before asking for help
If any of that feels unfamiliar, good first issues might still be the most rewarding path
for you right now —
find one here.
You can always come back when you are ready.
Support: A maintainer actively monitors this issue and will help guide your implementation ideas.
⏱️ Typical time to complete: 4-6 hours
🧩 Difficulty: Manageable but requires investigation and testing
🎓 Best for: Beginner contributors
🏁 When this issue is complete, you will have:
✅ Improved your research abilities
✅ Improved your knowledge of the codebase
✅ Owned implementation decisions
✅ Created basic tests
👾 Description of the issue
- we have Codacy’s assert_used rule currently flags assert statements everywhere.
- In test files, this is expected usage, so we want to skip the rule for test files.
💡 Solution
Update the .codacy.yml configuration so that the assert_used rule is skipped for test files, while still enforced in production code.
🔍 Background Research
reference https://docs.python.org/3/reference/simple_stmts.html#the-assert-statement
🛠️ Implementation
Make the Change
1- Open the project root file: .codacy.yml (you can see it here in the repo )
2- Add the following configuration under the pylint engine and make sure it solves the problem:
engines:
pylint:
enabled: true
rules:
assert_used:
skips:
- "*_test.py"
- "*test_*.py"- Add some tests to your fork that trigger these warnings.:
1- Push your branch to your fork on GitHub.
2- Codacy will automatically re‑run analysis on your fork.
3- Check the Codacy dashboard/ workflow:- Before: test files flagged for assert usage
- After: those warnings should disappear
🧪 Testing your changes
How you test depends on the type of change.
See the testing guide for full details.
Source code changes (e.g. Python files in src/):
- Write unit tests and run them locally:
uv run pytest tests/unit/<specific_file>_test.py -v - Integration tests will run automatically when you push to your fork or open a PR
Example script changes (e.g. files in examples/):
- Run the example script to confirm it works: instructions are at the top of each script
- You will need a Hedera Portal account for testnet credentials — see environment setup
- Example changes do not require unit or integration tests
Workflow / GitHub Actions changes (e.g. files in .github/):
- Where possible, test by merging to your fork's
mainand simulating the scenario (e.g. creating a test issue or PR) - Link to any test issues or PRs you created as evidence
- See the workflow testing guide
✅ Done Checklist
Before opening your PR, confirm:
- My changes address what the issue asked for — nothing more, nothing less
- I tested my changes locally (if relevant — see testing section above)
- My commits are signed:
git commit -S -s -m "chore: description"— Signing guide - I added a CHANGELOG.md entry under
[Unreleased]— Changelog guide - All CI checks pass
📋 Workflow quick reference
You have done this before — here are the links if you need them:
| Step | Guide |
|---|---|
| Claim this issue | Comment /assign below |
| Sync with main | Rebasing guide |
| Open a PR and link this issue | PR guide · Linking guide |
| Resolve merge conflicts | Merge conflicts guide |
🤖 Tips for using AI tools
Here is how to get the most out of AI tools:
- Use Pylance in VS Code to catch errors and hallucinated methods in real time
- Build your solution in small steps — add print statements or logs to confirm each piece works before moving on
- When AI suggests code, check it against existing examples and similar classes in the SDK — that is the best source of Python SDK-specific patterns. AI sometimes borrows from other SDKs.
- If AI output and SDK patterns disagree, trust the SDK
🆘 Stuck?
Beginner issues can be tricky — it is completely normal to get blocked. Here is what to do:
- Comment on this issue and describe what you have tried. A maintainer will respond.
- Ask on Discord in #hiero-python-sdk for quick questions.
- Join Office Hours (Wednesdays, 2pm UTC) for live, hands-on help with a maintainer — screen sharing welcome.
Do not spend more than 30 minutes blocked without asking. Asking good questions is a skill too.
📚 Resources
Project references:
- Project structure
- CONTRIBUTING.md
- Browse closed beginner PRs — see how others did it
Python references: