Version 0.6.0: Rich Interactions with Instances & DNS
Introduction
The Aleph.im CLI client version 0.6.0 marks a significant milestone in the evolution of the platform, introducing a suite of powerful new features and essential fixes that dramatically enhance its functionality and user experience.
Split into aleph-client
and aleph-sdk-python
A substantial portion of the codebase has been migrated from the aleph-client
to the new aleph-sdk-python
, streamlining the architecture and paving the way for more robust and scalable development. This change clearly distinguishes between the CLI and SDK, making development with the SDK less bloated. Many improvements to the SDK since 0.5.1 and before the migration have been collected in these release notes.
Many UI/UX Improvements
In version 0.6.0, users can expect to find exciting new functionalities such advanced instance creation capabilities and custom domain support. The release also addresses critical fixes and improvements, ensuring greater stability and smoother operation. This release brings not only functional enhancements but also significant aesthetic and usability improvements, particularly through the integration of the rich
library.
New CLI Commands
- Instance Management Commands (#178 & #192):
aleph instance create
: Creates a new instance with the help of a wizard.aleph instance delete
: Deletes or forgets an existing instance.aleph instance list
: Lists all your instances and how to connect to them.
- Message Signing Command (#164):
aleph message sign
: Allows users to sign JSON strings as Aleph messages.aleph account sign-raw
: Signs any UTF-8 encoded string, useful for dApp development.
- CLI Version Command (#169):
aleph about version
,aleph -v
,aleph --version
: Displays the current version of the Aleph CLI.
- File Download Command (#175):
aleph file download <IPFS or item_hash>
: Downloads a file using either its IPFS link or Aleph item hash.
- Account, File, and Aggregate Commands (#177):
aleph account balance
: Returns the balance of the current user or a specified address with --address.aleph file list
: Lists user files or files of a specific address with --address.aleph file forget
: Forgets a specified file.aleph aggregate post
: Posts a new aggregate (can also be used for updates).aleph aggregate get
: Retrieves an aggregate.
- Node Management Commands with Filtering (#184):
aleph node compute
: Lists all compute nodes.aleph node core
: Lists all core channel nodes.- Both commands support filtering based on the owner's address (--address) and node activity (--active).
Fixes and Improvements
- Workflow Fixes (#176, #186): Corrected the test_build.yml workflow and made aleph instance delete use async.
- Dependency Fixes (#179, #180, #181, #182): Addressed the missing requests dependency, upgraded aleph-message to version 0.4.1, replaced requests module with aiohttp, and fixed nuls2 dependencies.
Notable Refactoring and Migrations
- Migrate Message Commands to SDK (#163, #166): Major code migration from aleph-client to aleph-sdk-python.
- Removal of Unused/Moved Code (#166): Cleaned up the SDK by removing unused or migrated code.
- Update and Restrict Dependency Versions (#189, #191): Updated aleph-sdk-python to version 0.8.0 and restricted dependency versions to be fixed.
The following features and fixes have occured before the migration:
New SDK Features:
- POST /messages/ Endpoint Support (#135):
get_message
now uses the POST /messages/ endpoint with additional info. - Raw Storage File Retrieval (#134): Feature to get raw storage files (issue #60 addressed).
- LocalVmCache for Testing (#133): Added LocalVmCache for more efficient testing.
- Broadcast Function Refactoring (#139): Refactored the broadcast function for efficiency.
SDK Fixes & Improvements
- Function Immutability (#132): Addressed issue with functions not being immutable to None.
- Private Key Storage Location (#123): Changed to store the private key in the user's home instead of the current directory.
- Code Formatting and Type Checking (#141, #142): Formatted examples with black and enabled type checking for examples.
- ASGI 'Lifespan' Scope Support (#155): Resolved the lack of ASGI 'lifespan' scope support.
- Balance Await Fix (#183): Corrected missing await in aleph account balance.
- Importing Account Fix (#185): Resolved the issue with importing account from private key.
New Contributors
@1yam: Made his first contribution in pull request #163 and implemented many of the new commands (#175, #177, #184), so awesome! 🥇
All Pull Requests
- Feature: support the new POST /messages/ endpoint by @odesenfans in #135
- Feat: Get raw storage file (issue #60) by @MHHukiewitz in #134
- Problem: Functions are not immutable to being passed
None
(see #84) by @MHHukiewitz in #132 - Feat: Add LocalVmCache for testing purposes by @MHHukiewitz in #133
- Feature: make mypy usable by @odesenfans in #138
- Feature: refactor the broadcast function by @odesenfans in #139
- Chore: format examples with black by @odesenfans in #141
- Internal: enable type checking for examples by @odesenfans in #142
- Fix: remove aiohttp from TestVmCache init() by @odesenfans in #143
- Store the private key in the user's home instead of the current directory by @aliel in #123
- fix GitHub actions by @aliel in #149
- Fix amend command. #151 by @aliel in #152
- Fix: ASGI 'lifespan' scope was not supported by @hoh in #155
- Refactor: Migrate message commands to aleph-sdk-python #150 by @1yam in #163
- Remove unused/moved code from SDK by @MHHukiewitz in #166
- Add sign message command by @MHHukiewitz in #164
- Feature: Expose Aleph CLI Version #168 by @aliel in #169
- Use latest post-v0.7.0 SDK - fix breaking changes by @MHHukiewitz in #173
- Fix
test_build.yml
workflow by @MHHukiewitz in #176 - Feature: download File by @1yam in #175
- Feature: Add account, aggregate, node, file essential Functionality by @1yam in #177
- PR Difficulty Rating Workflow by @MHHukiewitz in #174
- Fix missing
requests
dependency by @MHHukiewitz in #179 - Upgrade aleph-message to version 0.4.1 by @MHHukiewitz in #180
- Replace all usages of
requests
module withaiohttp
by @MHHukiewitz in #181 - Aliel fix nuls2 deps by @aliel in #182
- Feature: add custom domain support by @aliel in #167
- Fix: aleph account balance miss await by @1yam in #183
- Feature: Allow filter on aleph node cmd by @1yam in #184
- Create Instance by @MHHukiewitz in #178
- Fix: Importing account from private key wasn't possible by @1yam in #185
- Fix
aleph instance delete
to use async by @MHHukiewitz in #186 - Fix: Amend Function by @1yam in #188
- Update aleph-sdk-python to version 0.8.0 in setup.cfg. by @MHHukiewitz in #189
- Restrict dependency versions to be fixed by @MHHukiewitz in #191
- Improve Instance Creation and Add
instances list
by @MHHukiewitz in #192
Full Changelog: 0.5.1...0.6.0