v0.8.0: AlephDNS, Creating Instances, Breaking Changes & More
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, deprecatingmsgType
. - 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 introducedForgottenMessageError
. - Insufficient Funds Error Handling (#86): Added error handling for low funds during instance creation.
Breaking Changes
- Client Class Refactoring (#54): Transitioned
AlephClient
andAuthenticatedAlephClient
to non-functional abstract classes.
UseAlephHttpClient
andAuthenticatedAlephHttpClient
instead. This is in preparation to new client-types in upcoming releases (i.e. message caching). - Client Interface Changes (#32, #54, #65):
- Introduced
MessageFilter
andPostFilter
to reduce parameter duplication - Removed the obsolete
limit
parameter infetch_aggregate()
andfetch_aggregates()
. pagination
is nowpage_size
.- Harmonized query parameters in
get_messages()
andwatch_messages()
. - Deprecated
msgType
in favor ofmsgTypes
.
- Introduced
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
, setextended_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 inClientSession
by @MHHukiewitz in #84 - Refactor: Add
InsufficientFundsError
increate_instance
by @MHHukiewitz in #86
Full Changelog: 0.7.0...v0.8.0