Releases: aleph-im/aleph-client
1.4.0: Implemented new pricing with GPUs
New Features
- New Pricing System: Implemented a new pricing system for Aleph services. (PR #332)
Improvements
- Code Quality: Enabled the
ruff
linter to improve code quality and consistency. (PR #276) - Dependency Updates: Updated the
rich
library to the latest version. (PR #298)
Bug Fixes
- Command Argument Handling: Wrapped all command arguments in
Annotated
for better type hinting and improved user experience. (PR #339)
What's Changed
- Enable ruff by @Psycojoker in #276
- Chore(deps): update rich from 13.9.3 to 13.9.* by @dependabot in #298
- Feat: New pricing system by @philogicae in #332
- Fix: Wrap all command args in Annotated by @philogicae in #339
Full Changelog: 1.3.1...1.4.0
1.3.1: Implemented T&C and improved some commands
New Features
- GPU Support: Implemented support for GPU instances. (PR #313)
aleph program logs
Command: Added a new command to view program logs. (PR #304)- Terms & Conditions: Introduced a feature to display and accept Terms & Conditions. (PR #311)
- Account Management: Enhanced account management functionalities. (PR #281)
Bug Fixes
- Instance Volume Requirements: Fixed an issue where name/mount were required for instance volumes. Also fixed issues related to macOS CI. (PR #301)
- Wrong SSH Option Description: Corrected the description for the SSH option in the
instance
command. (PR #307) - GPU List Display: Resolved issues with the display of the GPU list. (PR #316)
- Program Logs Command: Fixed issues with the
program logs
command. (PR #318) - MyPy Configuration: Fixed an issue where mypy was not correctly considering the
pyproject.toml
file. (PR #333) - Unwanted Uninit CoCo VM Message: Removed an unwanted message about uninitialized CoCo VMs from the instance list. (PR #331)
- Various Improvements: Addressed various issues related to user experience, edge cases, and test coverage. (PR #312)
- Aggregates and Permissions: Improved aggregates functionality and added commands for managing permissions. (PR #330)
Improvements
- Reduced Instance PAYG Balance: Reduced the PAYG balance for instances. (PR #310)
- Dependency Updates: Updated several dependencies, including
substrate-interface
,typer
,aiohttp
, andpygments
. (PR #289, #319, #323, #325, #337)
Other Changes
- CI Improvements: Improved the CI pipeline to run tests on the testnet. (PR #321)
- Code Quality: Fixed bugs in the
node
commands and improved code quality overall. (PR #329, #328) - Python Version Support: Limited support to stable Python versions (>=3.9). (PR #334)
What's Changed
- Fix: name/mount required on instance's volumes + Fix macos CI by @philogicae in #301
- Reduce instance PAYG balance to half by @nesitor in #310
- add
aleph program logs
by @olethanh in #304 - fix(commands/instance): Wrong ssh option description by @RezaRahemtola in #307
- Implement GPU support by @nesitor in #313
- Chore(deps): Bump substrate-interface from 1.3.4 to 1.7.11 by @dependabot in #289
- Fix: Add missing gpu arg to coco cmd by @philogicae in #317
- Solve GPU list display issues by @nesitor in #316
- run tests on testnet by @aliel in #321
- Chore(deps): Bump typer from 0.12.5 to 0.15.1 by @dependabot in #319
- Fix program logs command by @olethanh in #318
- Chore(deps): Bump aiohttp from 3.10.6 to 3.10.11 by @dependabot in #323
- Chore(deps): Bump pygments from 2.18 to 2.19.1 by @dependabot in #325
- Fix: Various improvements (UX, edge cases, coverage) by @philogicae in #312
- Feat: Add Terms & Conditions by @philogicae in #311
- Fix bugs on aleph node cmds + sanitize_url + missing tests by @philogicae in #329
- Fix program indications for list/persist/unpersist commands by @philogicae in #328
- Fix unwanted uninit coco vm msg on instance list by @philogicae in #331
- fix: mypy wasn't taking pyproject.toml into account by @Psycojoker in #333
- feat: only support stable version of python (>=3.9) by @Psycojoker in #334
- Chore(deps): Bump aiohttp from 3.10.11 to 3.11.12 by @dependabot in #337
- Fix & Improve aggregates + Add permission commands by @philogicae in #330
New Contributors
- @RezaRahemtola made their first contribution in #307
Full Changelog: 1.3.0...1.3.1
1.3.0: Integrated support for some EVM blockchains
Features
- Documentation: Added instructions for updating user documentation during the release process (by @olethanh).
- Dependency Updates: Upgraded the
rich
dependency from version 13.8.1 to 13.9.3 (by @dependabot). - New Feature: Implemented support for new Ethereum Virtual Machine (EVM) chains (by @nesitor).
What's Changed
- docs: add instructions for updating user documentation during release by @olethanh in #292
- Chore(deps): Bump rich from 13.8.1 to 13.9.3 by @dependabot in #295
- Implement new EVM chains by @nesitor in #296
Full Changelog: 1.2.0...1.3.0
1.2.0: Support for Solana blockchain
Features
- Updated Aleph-Pytezos: The client now utilizes a newer version of the
aleph-pytezos
library for improved functionality. (PR #261) - Account Management and Solana Support: A significant new feature has been introduced, providing functionalities for account management and interaction with the Solana blockchain. (PR #281)
- YAML Validation: The
yamlfix
tool has been integrated to ensure the integrity and validity of YAML files used by the client. (PR #277) - Code Formatting: Consistent code formatting throughout the project is now maintained using
pyproject-fmt
. (PR #284)
Improvements
- Volume Prompt Fix: A bug related to the volume prompt has been addressed. (PR #267)
- Automated Dependency Updates: Dependabot has been configured to automate dependency updates, guaranteeing the client leverages the latest stable versions. (PR #268)
- Dependency Updates: Several dependencies have been updated to newer versions, including
typer
,aiohttp
, andrich
. (PR #269, #274, #278) - Windows Compatibility: A fix has been implemented to prevent the usage of a buggy version of
aiohttp
on Windows systems. (PR #283)
What's Changed
- feat: use updated version of aleph-pytezos by @Psycojoker in #261
- Fix/volume prompt by @lgaroche in #267
- chore: configure dependabot to auto update dependencies by @Psycojoker in #268
- Chore(deps): Bump typer from 0.12.3 to 0.12.5 by @dependabot in #269
- Chore(deps): Bump aiohttp from 3.9.5 to 3.10.6 by @dependabot in #274
- Chore(deps): Bump rich from 13.7.1 to 13.8.1 by @dependabot in #278
- fix: don't use the buggy version of aiohttp on windows by @Psycojoker in #283
- feat: add yamlfix by @Psycojoker in #277
- feat: add pyproject-fmt by @Psycojoker in #284
- Feature: account managment and sol by @1yam in #281
Full Changelog: 1.1.0...1.2.0
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