Skip to content

v0.8.0: AlephDNS, Creating Instances, Breaking Changes & More

Compare
Choose a tag to compare
@MHHukiewitz MHHukiewitz released this 14 Dec 15:53
· 84 commits to main since this release

Packed with an impressive array of new features, this release of Aleph SDK Python marks a significant step forward, offering enhanced support for the latest instances and DNS records functionalities, a seamless authenticated file upload process, and much more.

We improved the architecture of the framework and had some breaking changes. Expect to update your code if you relied on aleph-sdk-python<=0.7.0; check out the "Breaking Changes" section below for guidance on how to it.

New Features

  • Aleph Domain Name System (#55): Introduced AlephDNS for domain name system functionalities to link your VMs with your own domains.
  • IPFS Downloading & Better File Handling (#36): Directly download from IPFS using download_file_ipfs() into files and buffers.
  • AlephApp VM Hash (#53): Added property to retrieve item_hash of the Aleph message that created the current VM.
  • Enhanced Message Types Filtering (#32): Added msgTypes parameter to filter by multiple message types, deprecating msgType.
  • Raw Data Signing (#50): Implemented BaseAccount.sign_raw() for signing arbitrary data.
  • Authenticated File Upload (#69): Streamlined file upload process, allowing atomic operation of file upload and STORE message sending, while checking for ALEPH balances.
  • Instance Creation and SSH Access (#78): Enabled instance creation complete with SSH pubkey upload.
  • Simplified Message Retrieval (#81): Reduced get_message() parameters and introduced ForgottenMessageError.
  • Insufficient Funds Error Handling (#86): Added error handling for low funds during instance creation.

Breaking Changes

  • Client Class Refactoring (#54): Transitioned AlephClient and AuthenticatedAlephClient to non-functional abstract classes.
    Use AlephHttpClient and AuthenticatedAlephHttpClient instead. This is in preparation to new client-types in upcoming releases (i.e. message caching).
  • Client Interface Changes (#32, #54, #65):
    • Introduced MessageFilter and PostFilter to reduce parameter duplication
    • Removed the obsolete limit parameter in fetch_aggregate() and fetch_aggregates().
    • pagination is now page_size.
    • Harmonized query parameters in get_messages() and watch_messages().
    • Deprecated msgType in favor of msgTypes.

Fixes and Improvements

  • Code Quality Enhancements (#49, #70, #71, #73, #81): Addressed flake8 bugs, import issues, improved workflow and testing processes.
  • Functionality Improvements (#56, #60, #61, #62, #64, #74, #75): Enhanced optional value handling, resolved issues with POST /messages, datetime/UUID objects, RAM size, default runtime, MacOS builds, and date filtering.
  • Client and API Refinements (#54, #65, #81, #86): Improved message iteration functions, simplified get_message, and refined submit() and broadcast() methods.
  • Dependency and Build Fixes (#83, #84, #74): Upgraded aleph-message, set extended_json_encoder as default, and fixed MacOS build issues.

All Pull Requests

  • Feature: download on ipfs client by @1yam in #36
  • Fix:sync version of download_file_to_buffer and download_file_ipfs_to_buffer by @1yam in #48
  • fix formatting, flake8 bugs and imports by @MHHukiewitz in #49
  • Add support for signing messages using LedgerHQ wallet on Ethereum by @hoh in #51
  • Fix: Invalid handling of optional value by @hoh in #56
  • Add AlephApp.vm_hash by @MHHukiewitz in #52
  • Allow multiple message types by @MHHukiewitz in #32
  • Add sign_raw() by @MHHukiewitz in #50
  • Fix: support 405 from POST /messages in broadcast fallback by @odesenfans in #60
  • Fix: allow user to specify datetime and UUID objects in post content by @odesenfans in #61
  • Fix: 128 MB of RAM was too small by @hoh in #62
  • AlephClientBase and AuthenticatedAlephClientBase by @MHHukiewitz in #54
  • Fix: Default runtime was obsolete by @hoh in #64
  • Fix: add ledgereth to "testing" install target by @odesenfans in #66
  • further aleph.im renaming by @hoh in #67
  • Refactor AlephClient classes by @MHHukiewitz in #65
  • Feature: authenticated file upload SDK by @1yam in #69
  • Hotfix: Formatting and mypy issues were not tested in PR workflow by @MHHukiewitz in #70
  • Fix workflow triggers for Forked-Repo-PRs by @MHHukiewitz in #71
  • Fix: macos 11 & 12 build by @1yam in #74
  • Fix: Upload Test wasn't mocked by @1yam in #73
  • Problem: Filtering by start_date or end_date would fail assertion by @MHHukiewitz in #75
  • PR Difficulty Rating Workflow by @MHHukiewitz in #76
  • Add allow_amend, internet and aleph_api parameters to create_program by @MHHukiewitz in #77
  • Add create_instance method by @MHHukiewitz in #78
  • Update PR Difficulty Rating action to always use the latest version. by @MHHukiewitz in #80
  • Feature : AlephDNS (2nd attempt) by @hoh in #55
  • Refactor: Simplify and improve get_messages; use mocked responses by @MHHukiewitz in #81
  • Add extended JSON encoder for datetime objects in message encoding by @MHHukiewitz in #82
  • Upgrade aleph-message to v0.4.1 by @MHHukiewitz in #83
  • Use extended_json_encoder as default in ClientSession by @MHHukiewitz in #84
  • Refactor: Add InsufficientFundsError in create_instance by @MHHukiewitz in #86

Full Changelog: 0.7.0...v0.8.0