Releases: aleph-im/aleph-client
Version 1.1.0: PAYG support for BASE blockchain
New Features and Improvements
- Added support to create instances using PAYG on BASE blockchain
- Enhanced user experience by improving the flow and display of pricing and balance information. (PR #266)
- Refactored the
aleph message get
function to handle message status. (PR #265)
Bug Fixes
- Addressed various issues identified after the 1.0.0 release. (PR #262)
- Fixed a problem related to confidential session handling. (PR #256)
- Ensured comments are clear and accurate. (PR #260)
- Updated the
aleph-sdk-python
dependency version constraint to respect Semantic Versioning (semver). (PR #264)
What's Changed
- chore: fix some comments by @riskrole in #260
- Problem: confidential keep sessions fix by @olethanh in #256
- fix(pyproject): max aleph-sdk-python versiont to respect semver by @Psycojoker in #264
- Refactor: aleph message get to handle message status by @1yam in #265
- Various fixes after 1.0.0 by @philogicae in #262
- Feature: improve UX for price flow and balance by @philogicae in #266
New Contributors
Full Changelog: 1.0.0...1.1.0
Version 1.0.0: Confidential Instances and UX improvement
Introduction
The Aleph.im CLI client version 1.0.0 marks a significant milestone in the evolution of the platform introducing the confidential instance creation and management and enhancing the user experience. Here's a breakdown of the key areas:.
New Features and Functionality
- Introduced support for specifying the hypervisor type for instances. (PR #199)
- Enabled users to create confidential instances and interact with them using dedicated commands. (PR #232, #235, #255)
- Integrated an interactive selector for choosing the CRN and displaying Confidential Compute support. (PR #232)
- Added the ability to prompt for payment type during instance creation. (PR #237)
- Improved user experience by providing a template for new pull requests and enhancing prompting and labeling for instances. (PR #244, #247)
- Improved CRN table functionalities like sorting and filtering. (PR #259)
Bug Fixes and Improvements
- Updated documentation with deprecation warnings and new features. (PR #196)
- Fixed issues related to instance creation, listing, hypervisor selection, and confidential instances. (PR #216, #224, #234, #243, #246, #248, #251, #252)
- Improved documentation and fixed formatting issues. (PR #249, #254)
What's Changed
- Fix: Ensure consistent URL formatting in _get_ipv6_address by @1yam in #236
- Chore(deps): Bump aiohttp from 3.9.5 to 3.10.2 by @dependabot in #239
- Fix: revert upgrade: aiohttp 3.10.2 -> 3.9.5 by @philogicae in #242
- Provide a template for new PRs by @olethanh in #244
- Feature: prompt for payment type by @1yam in #237
- Various fixes after tests by @philogicae in #243
- Fix: Cross-device links crashed 'confidential-init-session' by @hoh in #246
- Problem: Creating non coco instance resulted in invalud message by @olethanh in #248
- Fix/improve prompting, labels, helper for instances by @philogicae in #247
- Fix IPv6 in instance list + fix crash by @olethanh in #251
- Fixes after instance tests by @philogicae in #252
- Update PR template with details on documentation by @hoh in #249
- Fix docs by @philogicae in #254
- Confidential command: Pass hash vm_id and crn_url as argument by @olethanh in #255
- Fix CRNtable, sort_by keys, autofiltering on reward_add/qemu/coco by @philogicae in #259
- Feature: Allow PAYG using base by @1yam in #258
New Contributors
- @dependabot made their first contribution in #239
Full Changelog: 0.7.1-rc1...1.0.0
0.7.1-rc1
Introduction
The Aleph.im CLI client version 0.7.1-rc1 focuses on improving functionality, user experience, and code quality of the Aleph Client. Here's a breakdown of the key areas:.
New Features and Functionality
- Introduced support for specifying the hypervisor type for instances.
- Added a field for Single Page Applications (SPA) on domains.
- Implemented the ability to specify a catch-all route for IPFS static content.
- Enabled users to create confidential instances.
- Integrated an interactive selector for choosing the CRN and displaying Confidential Compute support.
Bug Fixes and Improvements
- Fixed relative import issues and runtime compatibility problems.
- Improved error messages for better debugging.
- Updated documentation with deprecation warnings and new features.
- Migrated the project to use
pyproject.toml
. - Enhanced code quality by removing unused variables, adding type annotations, and refactoring code.
- Removed support for macOS 11 in CI.
Other Changes
- Updated the PR Difficulty Rating action.
- Added a forbidden host to the list.
What's Changed
- Fix relative import in
__main__.py
by @MHHukiewitz in #200 - Add deprecation messages and update docs by @MHHukiewitz in #196
- Implement hypervisor field for instances by @nesitor in #199
- Add SPA field on domains by @nesitor in #202
- Updated PR Difficulty Rating action to version 2 by @MHHukiewitz in #201
- Fix: Recent example_fastapi versions requires newer runtime by @hoh in #203
- Fix: Passing to arg did not show help by @hoh in #204
- Allow user to specify a catch all route page when using ipfs for static content by @aliel in #206
- Fix: Project did not migrate to
pyproject.toml
by @hoh in #213 - Fix: Unable to Create PAYG Instance from CLI by @hoh in #216
- feat: add x.com to list of forbidden host by @Psycojoker in #217
- feat(models): type MachineInfo.from_unsanitized_input by @Psycojoker in #222
- feat(network): more verbose message error for better debugging by @Psycojoker in #218
- ci: remove macOS 11 support by @Psycojoker in #223
- fix(node): add missing return type annotation by @Psycojoker in #221
- refactor: remove unused variable by @Psycojoker in #220
- Fix: wrong slug in pytest.yml by @hoh in #226
- Refactor: Allow aleph instance list to handle PAYG by @1yam in #224
- Add
Qemu
working runtimes by @nesitor in #228 - Attempt to fix Codecov - it does not work in this repo by @hoh in #227
- Feature: Operator command for instance by @1yam in #225
- Interactive selector for choosing the CRN on which to run the instance + display Confidential compute support by @olethanh in #232
- Problem: Hypervisor passed in parameter was not respected by @olethanh in #234
- Add command to create and start a confidential instance by @olethanh in #235
New Contributors
Full Changelog: 0.6.1...0.7.1-rc1
Version 0.6.1 bugfixes and non-interactive domain use
What's Changed
-
- Update dependencies aleph-sdk-python and aleph-message
-
- Fix CLI regression
-
- Fix: Domain commands required interactive prompts
Full Changelog: 0.6.0...0.6.1
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
Version 0.5.1
What's Changed
- refacto: commands were cluttered + no cli help by @AmozPay in #111
- fixed aiohttp dependency [issue #117] by @muddi900 in #121
- Chore: fix substrate-interface version to 1.3.4 by @Rgascoin in #126
- Fix: Command whoami printed public key, not address by @hoh in #128
- Adding 3 volumes by @AneequeZubair9 in #127
- Fix: item type is not set for non-inline messages by @odesenfans in #130
New Contributors
- @AmozPay made their first contribution in #111
- @muddi900 made their first contribution in #121
- @Rgascoin made their first contribution in #126
- @AneequeZubair9 made their first contribution in #127
Full Changelog: 0.5.0...v0.5.1
Version 0.5.0
Main changes
This new release of aleph-client comes with so many improvements they are hard to keep track of.
We hope you will love it 💚.
Command-line changes
- Type
aleph whoami
so see your public address easily. - Use
docker run -ti ghcr.io/aleph-im/aleph-client/aleph-client:master
to launch the tool from anywhere in a single command.
API changes
- Breaking change: Functions now return directly models from aleph-message instead of dictionnaires. Say hello to validation guarantees, auto-completion in your IDE and static checks of your code base.
- New support: Tezos addresses are now supported.
- Customise programs by passing environment variables from the messages themselves.
- The new
get_message(...)
function helps you fetching a single message without looking for the first element of a list. - Use the
chains
argument inget_posts(...)
, ,get_messages(...)
orwatch_messages(...)
to only fetch messages from specific chains.
Bug fixes
- An bug prevented passing a private key as a command-line argument
All changes
- [User ID] whoami command by @odesenfans in #63
- Fix: Users could not specify program environment variables by @hoh in #65
- Fix: All committed git files are required for clean version number by @hoh in #66
- Fix key file or str condition by @aliel in #67
- Use docker image from GitHub actions by @hoh in #70
- Refactor: Two origins for PRIVATE_KEY_FILE were confusing by @hoh in #71
- Code cleanup by @hoh in #73
- add param for getting posts by chains by @MHHukiewitz in #78
- Update README.rst by @mrhouzlane in #79
- Return models instead of dictionaries by @hoh in #74
- Fix: Runtime name in PROGRAM messages was outdated by @hoh in #81
- Update test-build.yml by @mrhouzlane in #83
- Fix: fix text key encoding by @aliel in #69
- update .gitignore by @MHHukiewitz in #80
- Fix: Closing aiohttp session is synchronous by @hoh in #88
- Cleanup: Abstract class did not inherit ABC by @hoh in #89
- Cleanup: pytest.yield_fixture was deprecated by @hoh in #90
- Fix: Variable was not a dict since refactoring to Message models by @hoh in #92
- Cleanup: Typer supports Path, conversion was not required by @hoh in #93
- Update: Container uses old go-ipfs 0.7 while 0.15 is available by @mrhouzlane in #99
- Cleanup: Pipfile was not used or maintained by @hoh in #100
- Tests: OS matrix was not fixed by @hoh in #101
- Fix: Update command was broken by @hoh in #102
- Feature: Add backend support for Solana,Tezos in _load_account by @hoh in #91
- Fix: Received item_hash is the same as in Aleph Explorer by @MHHukiewitz in #106
- Feature: Could not get a single message easily by @hoh in #103
- Fix: Amend command was broken due to refactoring by @hoh in #104
- Add: Tests to increase coverage #87 by @mrhouzlane in #107
- Fix: Tests failed due to new ItemHash validation by @hoh in #110
- Add: Support for creating durable VMs by @hoh in #82
- Fix: Any invalid message in a response crashed the entire response by @hoh in #109
- Fix: Scripts to publish was broken by @hoh in #112
- Fix: PyPI does not accept git dependencies by @hoh in #113
New Contributors
- @mrhouzlane made their first contribution in #79
Full Changelog: 0.4.8...0.5.0
0.4.8
0.4.7
This new minor release brings a few small features and bugfixes.
New features
- The new
forget_aggregate
command allows to forget all messages in an aggregate - Aggregate 'limit' query param can now be specified, which is useful for fetching very large aggregates such as node info
- Function
get_messages
adds support for argumentcontent_keys
Bug fixes
- Fixes typo on startDate and endDate filter params in
get_posts
andget_messages
All commits
- Fixes typo on startDate and endDate filter params name by @geraldinefiser in #50
- [Tests] Integration tests for Aleph nodes by @odesenfans in #52
- [Messages] Add content keys parameter by @odesenfans in #53
- [Aggregates] New command to forget an aggregate by @odesenfans in #54
- Cleanup: Make code more readable by @hoh in #58
- Fix: Tests were failing due to new node type by @hoh in #57
- Fix: Aggregate 'limit' query param could not be specified by @hoh in #56
- Fix: Mypy warned that
file_content
could be None by @hoh in #55
New Contributors
- @geraldinefiser made their first contribution in #50
- @odesenfans made their first contribution in #52
Full Changelog: 0.4.6...0.4.7
Fixes in ASGI interface
What's Changed
This release fixes an issue with ASGI compatibility that could lead to defective Python apps when using the AlephApp
interface.
Full Changelog: 0.4.5...0.4.6