Skip to content

v0.2.0

Choose a tag to compare

@exploreriii exploreriii released this 11 Feb 19:05
344bdb3

This release is large. The headline themes are: stricter typing, better ergonomics, broader receipt/query capabilities, TLS hardening, and a major cleanup of examples, docs, and automation.

The source code changes are described at a high level:

New Features

EVM & Mirror Node Integration:

  • AccountId now supports initialization and conversion from EVM addresses (20-byte hex).

  • Added populate_account_num and populate_evm_address to AccountId to resolve missing identifiers via Mirror Node REST queries.

  • ContractId updated with to_evm_address using a new to_solidity_address helper.

  • Client Enhancements:

    • New Client.from_env() method to automatically initialize a client from a .env file using OPERATOR_ID, OPERATOR_KEY, and NETWORK variables.
    • Added support for TLS configuration, including custom root certificates and certificate verification toggles.
    • New update_network() method to refresh node lists from mirror nodes.
  • Key Utilities:

    • Introduced a unified Key type alias (Union of PrivateKey and PublicKey) and a key_to_proto helper to simplify transaction construction.
  • Data Models:

    • Added AssessedCustomFee to represent fees collected during transactions, as found in transaction records.
    • Added StakingInfo to provide details on account staking status and rewards.
  • Hbar Units:

    • Added convenience factory methods for Hbar: from_microbars, from_millibars, from_kilobars, and from_megabars.

Changes & Improvements

  • Developer Experience:

    • Added human-friendly str and developer-friendly repr methods to AccountBalance, AccountInfo, AccountId, StakingInfo, and AssessedCustomFee.
  • Query Execution:

  • Standardized execute() methods across various queries (e.g., AccountRecordsQuery, ContractInfoQuery, TokenInfoQuery) to accept an optional timeout parameter.

  • Improved query payment logic to fallback to the client-level default_max_query_payment if not explicitly set on the query.

  • Transaction Handling:

  • AccountCreateTransaction now accepts both PrivateKey and PublicKey for setting account keys.

  • Added set_transaction_valid_duration to the base Transaction class.

  • Node Management:

    • Refined node health tracking with backoff increase/decrease logic and automatic re-admission of healthy nodes.

⚠️ Breaking Changes & Deprecations

  • Deprecations:

    • CustomFixedFee.set_amount_in_tinybars() is now deprecated. Developers should use set_hbar_amount(Hbar.from_tinybars(amount)) instead.
  • Behavioral Changes:

  • AccountId.hash now only hashes the shard, realm, and num, excluding the alias_key.

  • The Client now defaults to a 10-second gRPC deadline and a 120-second request timeout.

[0.2.0] - From changelog entries

Src - Breaking Changes

Deprecations:

  • Remove deprecated 'in_tinybars' parameter and update related tests /src/hiero_sdk_python/hbar.py, /tests/unit/hbar_test.py and /src/hiero_sdk_python/tokens/custom_fixed_fee.py.

  • Behavioral Changes:

  • AccountId.hash now only hashes the shard, realm, and num, excluding the alias_key.

  • The Client now defaults to a 10-second gRPC deadline and a 120-second request timeout.

Src

New:

  • feat: AccountCreateTransaction now supports both PrivateKey and PublicKey #939

  • Support selecting specific node account ID(s) for queries and transactions and added Network._get_node() with updated execution flow (#362)

  • Add support for include_children in TransactionGetReceiptQuery (#1100)(#1100)

  • Added support for include duplicates in get transaction receipt query (#1166)

  • Add TLS support with two-stage control (set_transport_security() and set_verify_certificates()) for encrypted connections to Hedera networks. TLS is enabled by default for hosted networks (mainnet, testnet, previewnet) and disabled for local networks (solo, localhost) (#855)

  • Add contract_id support for CryptoGetAccountBalanceQuery(#1293)

  • Add StakingInfo class (1364)

  • Added first-class support for EVM address aliases in AccountId, including parsing, serialization, Mirror Node population helpers.

  • Added MirrorNode based population for ContractId, including parsing and serialization support.

  • Added grpc_deadline support for transaction and query execution.

  • Added Client.from_env() and network-specific factory methods (e.g., Client.for_testnet()) to simplify client initialization and reduce boilerplate. [#1251]

  • Added convenient factory methods to Hbar class for easier instantiation: from_microbars(), from_millibars(), from_hbars(), from_kilobars(), from_megabars(), and from_gigabars(). #1272

  • Support for setting max_query_payment, Query.set_max_query_payment() allows setting a per-query maximum Hbar payment and Client.set_default_max_query_payment() sets a client-wide default maximum payment.

  • Allow PublicKey for batch_key in Transaction, enabling both PrivateKey and PublicKey for batched transactions

  • Allow PublicKey for TokenUpdateKeys in TokenUpdateTransaction, enabling non-custodial workflows where operators can build transactions using only public keys (#934).

  • Changed TransactionResponse.get_receipt() so now pins receipt queries to the submitting node via set_node_account_ids() (#1686)

  • fix: TLS Hostname Mismatch & Certificate Verification Failure for Nodes

  • fix: ensure all Query sub-class execute() function to correctly propagate the optional timeout parameter.

  • Added AssessedCustomFee domain model to represent assessed custom fees. (#1637)

  • Added Hbar object support for TransferTransaction HBAR transfers: Methods now accept Union[int, Hbar] for amount parameters with immediate normalization to tinybars

  • Added all missing fields to __str__() method and updated test_token_info.py

  • Added __str__() to CustomRoyaltyFee and updated examples and tests accordingly (#986)

  • Added str and repr to AccountBalance

  • Added __eq__ and __hash__ functions for Key

  • Type hints to exception classes (PrecheckError, MaxAttemptsError, ReceiptStatusError) constructors and string methods.

  • Added missing type hints to sign method in Transaction class (#1630)

  • Add return type hint to ContractId.__str__. (#1654)

  • Add return type hint to AccountId.__repr__ for type consistency. (#1503)

  • Updated return of to_bytes function in src/hiero_sdk_python/transaction/transaction.py. (#1631)

  • Added missing return type src/hiero_sdk_python/utils/entity_id_helper.py. (#1622)

  • Improved docstring for account_allowance_approve_transaction_nft.py with purpose, key concepts and required vs optional steps.

  • Implement custom __repr__ method for FileId dataclass class that returns constructor-style representation for improved debugging experience (#1628)

  • Added __str__ and __repr__ methods to AccountInfo class for improved logging and debugging experience (#1098)

  • Added support for the includeDuplicates flag in TransactionRecordQuery and duplicates field in TransactionRecord (#1635)

  • Add repr custom method for ContractId class to improve debugging (#1714)

  • Add __repr__() method to TopicId class for improved debugging with constructor-style representation (#1629)

  • Added comprehensive docstring to FeeAssessmentMethod enum explaining inclusive vs exclusive fee assessment methods with usage examples. (#1391)

  • Added comprehensive docstring to TokenType enum explaining fungible vs non-fungible tokens with practical use cases. (#1392)

  • Added __str__() to CustomFixedFee and updated examples and tests accordingly.

Examples

  • Update verify_freeze() to treat only ACCOUNT_FROZEN_FOR_TOKEN as a successful freeze verification (#1515)
  • Added a module-level docstring to the HBAR allowance approval example to clarify delegated spending behavior and key concepts. #1202
  • examples/mypy.ini for stricter type checking in example scripts
  • Formatted examples/tokens directory using black code formatter for consistent code style
  • Refactored account_create_transaction_create_with_alias.py example by splitting monolithic function into modular functions: generate_main_and_alias_keys(), create_account_with_ecdsa_alias(), fetch_account_info(), print_account_summary() (#1016)
  • Modularized transfer_transaction_fungible example by introducing account_balance_query() & transfer_transaction().Renamed transfer_tokens()main()
  • Refactored examples/consensus/topic_create_transaction.py to use Client.from_env() (#1611)
  • Refactored account_create_transaction_without_alias.py into smaller, modular functions.(#1321)
  • Refactored account_create_transaction_with_fallback_alias.py by splitting the monolithic create_account_with_fallback_alias function into modular functions: generate_fallback_key, fetch_account_info, and print_account_summary. The existing setup_client() function was reused for improved readability and structure (#1018)
  • Refactored account_create_transaction_evm_alias.py to improve readability by splitting the monolithic function into smaller helper functions. #1017
  • Renamed example files to match src naming (#1053)
  • Improved consistency of transaction examples (#1120)
  • Cleaned up token_airdrop_claim_auto example for pylint compliance (no functional changes). (#1079)
  • Formatted examples/query using black (#1082)(#1082)
  • Format token examples with Black for consistent code style and improved readability (#1119)
  • Cleaned up token_airdrop_claim_signature_required example for pylint compliance (no functional changes). (#1080)
  • Pylint cleanup for token_airdrop_transaction_cancel.py (#1081) @tiya-15
  • Transformed examples/tokens/custom_fee_fixed.py to be an end-to-end example, that interacts with the Hedera network, rather than a static object demo.
  • Transformed examples\tokens\custom_royalty_fee.py to be an end-to-end example, that interacts with the Hedera network, rather than a static object demo.
  • Refactored examples/tokens/custom_royalty_fee.py by splitting monolithic function custom_royalty_fee_example() into modular functions create_royalty_fee_object(), create_token_with_fee(), verify_token_fee(), and main() to improve readability, cleaned up setup_client() (#1169)
  • Refactored setup_client() in all examples/query/ files to use Client.from_env() for simplified client initialization (#1449)
  • style: apply black formatting to examples (#1299)
  • Move account_allowance_delete_transaction_hbar.py from examples/ to examples/account/ for better organization (#1003)
  • chore: Move account allowance example to correct folder
  • Format token examples with Black for consistent code style and improved readability (#1119)
  • Refactored examples/account/account_create_transaction_create_with_alias.py and examples/account/account_create_transaction_evm_alias.py to use the native AccountInfo.__str__ method for printing account details, replacing manual JSON serialization. (#1263)
  • Updated transfer_transaction_hbar.py example to use Hbar objects instead of raw integers and added receipt checking with ResponseCode validation.(#1249)
  • Refactored file_info_query.py to use print(info) instead of manual formatting (#1451)
  • Replaced ResponseCode.get_name(receipt.status) with the ResponseCode(receipt.status).name across examples and integration tests for consistency. (#1136)
  • Replaced deprecated AccountCreateTransaction.set_key() usage with set_key_without_alias() and set_key_with_alias() across examples and tests
  • Deleted examples/utils.py as its helper functions are no longer needed. (#1263)
  • Aligned token freeze example filename references and improved error handling by catching broader exceptions with clearer messages. (#1412)
  • Fix token association verification in token_airdrop_transaction.py to correctly check if tokens are associated by using token_id in token_balances instead of incorrectly displaying zero balances which was misleading (#[815])
  • Fixed token examples to consistently use setup_client without tuple unpacking.(#1397)
  • Fixed incorrect run instructions and broaden error handling in token_dissociate_transaction.py example to improve usability for new users (#1468)
  • Add examples/tokens/token_create_transaction_pause_key.py example demonstrating token pause/unpause behavior and pause key usage (#833)
  • Made custom fraction fee end to end
  • Added transfer_transaction_tinybar.py example demonstrating tinybar transfers with both integer and Hbar object approaches. (#1249)
  • Added transfer_transaction_gigabar.py example demonstrating GIGABAR unit usage for large-value transfers. (#1249)

Docs

  • Added foundational guide for GitHub Workflows (#1741)
  • Added Protobuf Training guide to enhance developer understanding of proto serialization
  • Added guide for resolving CHANGELOG.md conflicts using GitHub's web editor (#1591)
  • Added Windows setup guide for SDK developers (docs/sdk_developers/training/setup/setup_windows.md) with PowerShell installation instructions. (#1570)
  • Added comprehensive training documentation for the Query class, covering execution flow, payments, retries, and building child queries. (#1238)
  • Added method chaining examples to the developer training guide (docs/sdk_developers/training/coding_token_transactions.md) (#1194)
  • Added documentation explaining how to pin GitHub Actions to specific commit SHAs (docs/sdk_developers/how-to-pin-github-actions.md)(#1211)
  • Added Good First Issue (GFI) management and frequency documentation to clarify maintainer expectations and SDK-level GFI governance.
  • Added SDK-level Good First Issue (GFI) guidelines for maintainers to clarify what qualifies as a good first issue.
  • Added Good First Issue candidate guidelines documentation (docs/maintainers/good_first_issue_candidate_guidelines.md) and Good First Issues guidelines documentation (docs/maintainers/good_first_issues_guidelines.md) (#1066)
  • Added documentation: "Testing GitHub Actions using Forks" (docs/sdk_developers/training/testing_forks.md).
  • Documentation: created docs/maintainers/hiero_python_sdk_team.md
  • Add Github CODEOWNERS
  • Add comprehensive training documentation for _Executable class docs/sdk_developers/training/executable.md
  • Added empty docs/maintainers/good_first_issues.md file for maintainers to write Good First Issue guidelines (#1034)
  • Fix relative links in testing.md, clean up CONTRIBUTING.md TOC, and normalize test file naming and paths (#1706)
  • Added comprehensive docstring to compress_with_cryptography function (#1626)
  • Replaced the docstring in entity_id_helper.py with one that is correct. (#1623)
  • Updated team.md with new triage, committers and maintainer (#1692)
  • Removed outdated "Common Issues" section from CONTRIBUTING.md that referenced non-existent docs/common_issues.md (#1665)
  • Align Good First Issue and Good First Issue — Candidate guidelines with the Hiero C++ SDK for clarity and consistency.(#1421)
  • Difficulty guidelines to feel more welcoming
  • Moved docs/sdk_developers/project_structure.md to docs/sdk_developers/training/setup/project_structure.md and ensured all previous references are updated #1223
  • Improved the contributing section for sdk developers in CONTRIBUTING.md for clarity and including new documentation
  • Updated set up and workflow documents for improved clarity and organisation
  • chore: update maintainer guidelines link in MAINTAINERS.md (#1605)
  • chore: update MAINTAINERS.md to include new maintainer Manish Dait and sort maintainers by GitHub ID. (#1691)
  • Moved docs/sdk_developers/how_to_link_issues.md to docs/sdk_developers/training/workflow/how_to_link_issues.md and updated all references (#1222)
  • Corrected broken documentation links in SDK developer training files.(#1707)
  • Fixed the README account balance example to use correct SDK APIs and provide a runnable testnet setup. (#1250)
  • Fixed broken project structure link in CONTRIBUTING.md (#1664)
  • Added docs/sdk_developers/training/transaction_lifecycle.md to explain the typical lifecycle of executing a transaction using the Hedera Python SDK.
  • Added coding_token_transactions.md for a high level overview training on how token transactions are created in the python sdk.

Coderabbit AI

  • Contract-specific CodeRabbit review instructions in .coderabbit.yaml for improved automated PR feedback on ABI, gas, ContractId, and protobuf safety. (#1695)
  • Added advanced CodeRabbit reviewer guidance for tokens module changes, with specialized validation rules for token transactions, token classes, and enums. (#1496)
  • Added prompt for codeRabbit on how to review /examples (#1180)
  • Added prompt for coderabbit to review Query and it's sub-classes.
  • Coderabbit prompt for .github
  • Added global review instructions to CodeRabbit configuration to limit reviews to issue/PR scope and prevent scope creep [#1373]
  • Enable CodeRabbit walkthrough mode by default to improve PR review visibility (#1439)
  • Add CodeRabbit documentation review prompts for docs, sdk_users, and sdk_developers with priorities, philosophy, and edge case checks. (#1236)

.github

  • Added new members to the mentor roster. (#1693)
  • Added logging in bot-gfi-assign-on-comment.js to prevent silent skips. (#1668)
    and deserialization (#1645)
  • Added a beginner assignment guard that requires completion of a Good First Issue. (#1484)
  • Added /unassign command allowing contributors to remove themselves from assigned issues.(#1472)
  • Advanced-check bot unassigns users from issues if they do not meet the requirements and provides an explanatory message. (#1477)
  • Auto-assignment bot for beginner-labeled issues with /assign command support and helpful reminders. (#1368)
  • Enable dry run support for office hours bot via workflow_dispatch trigger for testing without posting comments. (#1426)
  • Trigger CodeRabbit plan comment after Good First Issue assignment to provide AI-generated implementation guidance to new contributors. (#1432)
  • Added a notification workflow that alerts the support team when an issue is labeled as a Good First Issue Candidate.[(#1296)]
  • Beginner issue documentation and updated GFI and GFIC templates and documentation
  • Enable auto assignment to good first issues (#1312), archived good first issue support team notification. Changed templates with new assign instruction.
  • Intermediate issue documentation
  • Automated assignment guard for advanced issues; requires completion of at least one good first issue and one intermediate issue before assignment (exempts maintainers, committers, and triage members). (#1142)
  • Added a GitHub Actions workflow to validate broken Markdown links in pull requests.
  • Added .github/workflows/bot-coderabbit-plan-trigger.yml to automatically invoke CodeRabbit's plan feature on intermediate and advanced issues, providing implementation guidance to help contributors assess complexity and understand requirements. (#1289)
  • Added a GitHub Actions workflow that reminds contributors to link pull requests to issues.
  • Codecov workflow
  • Fix inactivity bot execution for local dry-run testing.
  • Added .github/workflows/bot-pr-auto-draft-on-changes.yml to automatically convert PRs to draft and notify authors when reviewers request changes.
  • Add beginner issue template
  • Unified the inactivity-unassign bot into a single script with DRY_RUN support, and fixed handling of cross-repo PR references for stale detection.
  • Add relevant examples to the beginner issue template
  • Phase 2 of the inactivity-unassign bot: Automatically detects stale open pull requests (no commit activity for 21+ days), comments with a helpful InactivityBot message, closes the stale PR, and unassigns the contributor from the linked issue.
  • Added a github template for good first issues
  • Added .github/workflows/bot-assignment-check.yml to limit non-maintainers to 2 concurrent issue assignments.
  • Configured coderabbit with a .coderabbit.yaml
  • Added .github/workflows/bot-community-calls and its script to notify issue creators of a community call
  • Add inactivity bot workflow to unassign stale issue assignees (#952)
  • Restore bug and feature request issue templates (#996)(#996)
  • Add PR inactivity reminder bot for stale pull requests .github/workflows/pr-inactivity-reminder-bot.yml
  • Added new .github/ISSUE_TEMPLATE/04_good_first_issue_candidate.yml file (1068)(#1068)
  • Enhanced .github/ISSUE_TEMPLATE/01_good_first_issue.yml with welcoming message and acceptance criteria sections to guide contributors in creating quality GFIs (#1052)
  • Add new .github/ISSUE_TEMPLATE/05_intermediate_issue.yml file (1072)(#1072)
  • Added advanced issue template for contributors .github/ISSUE_TEMPLATE/06_advanced_issue.yml.
  • Added advanced issue template
  • Added GitHub workflow that makes sure newly added test files follow pytest test files naming conventions (#1054)
  • Added Issue Reminder (no-PR) bot, .github/scripts/issue_reminder_no_pr.sh and .github/workflows/bot-issue-reminder-no-pr.yml to automatically detect assigned issues with no linked pull requests for 7+ days and post a gentle ReminderBot comment.(#951)
  • Added .github/workflows/cron-check-broken-links.yml workflow to perform scheduled monthly Markdown link validation across the entire repository with automatic issue creation for broken links (#1210)
  • Add Linked Issue Enforcer to automatically close PRs without linked issues .github/workflows/bot-linked-issue-enforcer.yml.
  • Added merge conflict bot workflow (.github/workflows/bot-merge-conflict.yml) and helper script (.github/scripts/bot-merge-conflict.js) to detect and notify about PR merge conflicts, with retry logic for unknown mergeable states, idempotent commenting, and push-to-main recheck logic (#1247)
  • Added workflow to prevent assigning intermediate issues to contributors without prior Good First Issue completion (#1143).
  • Add GitHub Actions script and workflow for automatic spam list updates.
  • Added Acceptance Criteria section to Good First Issue template for better contributor guidance (#997)
  • Add workflow to notify team about P0 issues bot-p0-issues-notify-team.yml
  • Add a workflow to notify the team when issues are labeled as “good first issues” or identified as candidates for that label: bot-gfi-notify-team.yml(#1115)
  • Chained Good First Issue assignment with mentor assignment to bypass GitHub's anti-recursion protection - mentor assignment now occurs immediately after successful user assignment in the same workflow execution. (#1369)
  • Updated the mentor assignment bot welcome message to be more structured. (#1487)
  • Add automated bot to recommend next issues to contributors after their first PR merge (#1380)
  • Added dry-run support and refactored .github/workflows/bot-workflows.yml to use dedicated script .github/scripts/bot-workflows.js for improved maintainability and testability. (#1288)
  • Added /working command to reset the inactivity timer on issues and PRs. (#1552)
  • Added a visible confirmation comment when a user unassigns themselves from an issue (#1506)
  • Improved bot message formatting in LinkBot to display issue linking format as a code block for better clarity (#1762)
  • Improve the changelog check by posting informative PR comments when entries are missing or placed under a released version. (#1683)
  • Updated GitHub Actions setup-node action to v6.2.0.
  • Updated actions/checkout to v6.0.1 and actions/github-script v8.0.0 in bot-next-issue-recommendation workflow (#1586)
  • Good First Issue template to have more guidance and renamed other templates for consistency with upstream
  • Added AI usage guidelines to the Good First Issue and Beginner issue templates to guide contributors on responsible AI use. (#1490)
  • Refactored bot-verified-commits.yml workflow to use modular JavaScript with configurable environment variables, input sanitization, dry-run mode support, and SHA-pinned actions. (#1482)
  • Refactored the advanced issue assignment guard to use a single configurable variable for the required number of completed intermediate issues. (#1479)
  • Move assignment guards to be directly inside the gfi and beginner auto assign
  • Added comprehensive documentation to the PR changelog check script (.github/scripts/pr-check-changelog.sh) to clarify behavior, inputs, permissions, and dependencies [(#1337)]
  • Renamed the GitHub notify team script to match its corresponding workflow filename for better maintainability (#1338)
  • Updated Good First Issue notifications to trigger only after the first comment is posted, reducing noise on unassigned issues.(#1212)
  • Archived unused auto draft GitHub workflow to prevent it from running (#1371)
  • Remove the commented out blocks in config.yml (#1435)
  • Update the acceptance criteria wording in the issue templates to improve clarity and consistency for contributors (#1491)
  • Make the required signed commit command explicit in all issue templates to reduce PR signing errors for contributors (#1489)
  • Expanded inactivity bot messages to include /unassign command information for contributors (#1555)
  • Hide the commit verification bot marker in pull request comments.
  • Renamed .github/scripts/check_advanced_requirement.sh to bot-advanced-check.sh for workflow consistency (#1341)
  • Renamed bot-inactivity workflow files to remove "-phase" suffix since the process no longer uses phased execution (#1339)
  • Renamed templates for improved clarity [(#1265)]
  • Reduce office-hours reminder spam by posting only on each user's most recent open PR, grouping by author and sorting by creation time (#1121)
  • Renamed workflow scripts in .github/scripts/ to match their corresponding workflow file names for improved consistency and maintainability (#1198)
  • Updated Codecov coverage thresholds in 'codecov.yml' to require 90% of project coverage and 92% of patch coverage (#1157)
  • Reduce office-hours reminder spam by never posting on PRs of maintainers and committers
  • Renamed workflow files for consistent PR check naming:
    examples.ymlpr-check-examples.yml,
    test.ymlpr-check-test.yml (#1043)
  • Updated bot naming conventions in .github/workflows to be consistent (#1042)
  • Update team notification script and workflow for P0 issues 'p0_issues_notify_team.js'
  • Changed messaged for test failure summaries so it is clearer by extracting test failure names into summary
  • Issue reminder bot now explicitly mentions assignees (e.g., @user) in comments. (#1232)
  • Renamed pr-missing-linked-issue.yml and pr_missing_linked_issue.js to bot-pr-missing-linked-issue.yml and bot-pr-missing-linked-issue.js respectively. Enhanced LinkBot PR comment with clickable hyperlinks to documentation for linking issues and creating issues. (#1264)
  • Moved helpful references to Additional Context section and added clickable links.
  • Update GitHub workflow names in .github/workflows/bot-workflows.yml to match correct references [(#1284)]
  • Updated .github/scripts/bot-office-hours.sh to detect and skip PRs created by bot accounts when posting office hours reminders. (#1384)
  • Enhance assignment bot to guard against users with spam PRs .github/scripts/bot-assignment-check.sh
  • Update changelog workflow to trigger automatically on pull requests instead of manual dispatch (#1567)
  • chore: update merge conflict bot message with web editor tips (#1592)
  • Modified and renamed hasIntermediateOrAdvancedLabel() to check if issue label is beginner or higher (#1385)
  • chore: clarify wording in the bot-assignment-check.sh (#1748)
  • Added a fork guard condition to prevent Codecov upload failures on fork PRs due to missing token. (#1485)
  • Fixed assignment limit check to only count issues (not PRs) towards the maximum 2 concurrent assignments, allowing users to be assigned to PRs without affecting their issue assignment capacity. (#1717)
  • Updated Good First Issue recommendations to supported Hiero repositories. (#1689)
  • Fix the next-issue recommendation bot to post the correct issue recommendation comment. (#1593)
  • Ensured that the GFI assignment bot skips posting /assign reminders for repository collaborators to avoid unnecessary notifications.(#1568).
  • Reduced notification spam by skipping the entire advanced qualification job for non-advanced issues and irrelevant events (#1517)
  • Fixed jq syntax in bot-office-hours.sh (#1502)
  • Fixed formatting of /unassign command in the PR inactivity reminder message so it displays correctly with backticks. (#1582)
  • Respect dry-run input in bot-community-calls.yml workflow (#1425)
  • Prevented linkbot from commenting on or auto-closing bot-authored pull requests. (#1516)
  • Updated LinkBot regex in the GitHub Actions bot script to support "Closes" and "Resolves" keywords for improved PR body-link detection (#1465)
  • Fixed CodeRabbit plan trigger workflow running multiple times when issues are created with multiple labels by switching to labeled event trigger only. (#1427)
  • Refined intermediate assignment guard to validate Beginner issue completion with improved logging and GraphQL-based counting. (#1424)
  • Prevent LinkBot from posting duplicate “missing linked issue” comments on pull requests. (#1475)
  • Good First Issue bot no longer posts /assign reminders for repository collaborators. (#1367)
  • Improved filename-related error handling with clearer and more descriptive error messages.(#1413)
  • GFI workflow casing
  • Update bot-workflows.yml to trigger only on open PRs with failed workflows; ignore closed PRs and branches without open PRs.
  • Fixed inactivity bot workflow not checking out repository before running (#964)
  • Fixed solo workflow defaulting to zero
  • good first issue template yaml rendering
  • Workflow does not contain permissions for pr-check-test-files and pr-check-codecov
  • Fixed cron-check-broken-links.yml string parsing issue in context input dry_run (#1235)
  • Fixed LinkBot permission issue for fork PRs by changing trigger to pull_request_target and adding proper permissions.
  • Fixed duplicate comment prevention in issue reminder bot by adding hidden HTML marker for reliable comment detection (.github/scripts/bot-issue-reminder-no-pr.sh) (#1372)
  • Updated .github/scripts/bot-community-calls.sh to skip posting reminders on issues created by bot accounts. (#1383)
  • Update .github/scripts/bot-advanced-check.sh to unassign unqualified users.
  • Refactor spam list update logic and remove unused pull request creation step .github/scripts/update-spam-list.js .github/workflows/cron-update-spam-list.yml.
  • Refactor assignment time retrieval and open PR check to use GraphQL API instead of REST API .github/scripts/bot-issue-reminder-no-pr.sh (#1746)
  • Fixed bot-pr-missing-linked-issue to skip commenting on pull requests created by automated bots. (#1382)
  • Fixed step-security/harden-runner action SHA in merge conflict bot workflow (#1278)
  • Added technical docstrings and hardening (set -euo pipefail) to the pr-check-test-files.sh script (#1336)

Tests

  • Format tests/unit/crypto_utils_test.py with black for code style consistency (#1524)
  • Standardize formatting of tests/unit/entity_id_helper_test.py using Black for consistent code style across the test suite (#1527)
  • Added tests for ProtoBuf Training Example Implementation
  • Formatted tests/unit/get_receipt_query_test.py with black for code style consistency. (#1537)
  • format black tests/unit/hbar*.py.(#1538)
  • Formatted tests/unit/conftest.py with black for code style consistency. (#1522)
  • format black tests/unit/nft_id_test.py with Black.(#1544)
  • Format tests/unit/executable_test.py with Black.(#1530)
  • Format tests/unit/hedera_trust_manager_test.py with Black for consistent code style (#1539)
  • Format tests/unit/logger_test.py with black for code style consistency (#1541)
  • Format tests/unit/batch_transaction_test.py with Black.(#1520)
  • Style: formatted tests/unit/prng_transaction_test.py with black (#1546)
  • Formatted contract unit tests with black for consistent style. (#1523)
  • Format account test files with Black (#1519)
  • Format tests/unit/node*.py with Black for consistent code style (#1545)
  • Improve unit test coverage for Hbar, including edge cases, validation, comparisons, and hashing. (#1483)
  • Standardize formatting of evm_address_test.py using Black for improved consistency and readability (#1529)
  • Formatted unit test files using Black.
  • Format tests/unit/network_tls_test.py with black for code style consistency (#1543)
  • Formatted ethereum_transaction_test.py using Black.
  • Formatted client_test.py using Black.
  • Format tests/unit/query*.py using black (#1547)
  • Format tests/unit/custom_fee_test.py with black for code style consistency. (#1525)
  • Includes comprehensive unit tests covering various Hbar units (HBAR, MICROBAR, NANOBAR, TINYBAR) and accumulation behavior with mixed int and Hbar inputs
  • Added unit tests for crypto_utils (#993)
  • chore: format tests/unit/mock_server.py with black (#1542)
  • Added more tests to the CustomFee class for different functionalities (#991)
  • Rename test files across the repository to ensure they consistently end with _test.py (#1055)
  • Rename the file 'test_token_fee_schedule_update_transaction_e2e.py' to make it ends with _test.py as all other test files.(#1117)
  • Added comprehensive unit tests for Timestamp class (#1158)
  • Enhance unit and integration test review instructions for clarity and coverage .coderabbit.yaml.
  • Formatted key-related unit test files (key_utils_test.py, test_key_format.py, test_key_list.py) using the black formatter
  • Enhance TopicInfo __str__ method and tests with additional coverage, and update the format_key function in key_format.py to handle objects with a _to_proto method.
  • Replaced ResponseCode.get_name(receipt.status) with the ResponseCode(receipt.status).name across examples and integration tests for consistency. (#1136)
  • Replaced deprecated AccountCreateTransaction.set_key() usage with set_key_without_alias() and set_key_with_alias() across examples and tests
  • Enhance NodeAddress tests with additional coverage for proto conversion tests/unit/node_address_test.py
  • Fixed the topic_message_query integarion test
  • Fix unit test tet_query.py
  • Flaky tests by disabling TLS in mock Hedera nodes in mock_server.py
  • Add new tests to tests/unit/topic_info_query_test.py (#1124)
  • Improved unit test coverage for TransactionId class, covering parsing logic, hashing, and scheduled transactions.
  • Added unit test for 'endpoint.py' to increase coverage.
  • Added unit tests for key_format.py to improve coverage.
  • Added unit tests for SubscriptionHandle class covering cancellation state, thread management, and join operations.

Packages

  • Bump protobuf toml to protobuf==6.33.2
  • Bumped requests from 2.32.3 to 2.32.4 to 2.32.5
  • Updated pyproject.toml to enforce stricter Ruff linting rules, including Google-style docstrings (D), import sorting (I), and modern Python syntax (UP).
  • Refactored SDK dependencies to use version ranges, moved build-only deps out of runtime, removed unused core deps and added optional extras.

AUTO - GENERATED - What's Changed

New Contributors

Full Changelog: v0.1.10...v0.2.0