v0.232.0
wjcunningham7
released this
10 Jan 18:54
·
35 commits
to develop
since this release
[0.232.0] - 2024-01-10
Authors
- Ara Ghukasyan [email protected]
- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- Andrew S. Rosen [email protected]
- Co-authored-by: Will Cunningham [email protected]
- Co-authored-by: Sankalp Sanand [email protected]
- Kevin Taylor [email protected]
- FilipBolt [email protected]
- Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Co-authored-by: Will Cunningham [email protected]
- Co-authored-by: Prasy12 [email protected]
- Aviral Katiyar [email protected]
- Co-authored-by: ArunPsiog [email protected]
- Casey Jao [email protected]
- Arnav Kohli [email protected]
- Kirill Pushkarev [email protected]
- Aditya Raj Kashyap [email protected]
- ArunPsiog [email protected]
- mpvgithub [email protected]
- Aravind [email protected]
- Faiyaz Hasan [email protected]
- Co-authored-by: Venkat Bala [email protected]
- Co-authored-by: kessler-frost [email protected]
- Co-authored-by: Aravind-psiog [email protected]
- Co-authored-by: Manjunath PV [email protected]
- Co-authored-by: Ara Ghukasyan [email protected]
- Co-authored-by: Alejandro Esquivel [email protected]
- Co-authored-by: jackbaker1001 [email protected]
- Co-authored-by: Santosh kumar [email protected]
- Co-authored-by: Will Cunningham [email protected]
- Co-authored-by: sriranjani venkatesan [email protected]
- Co-authored-by: Prasanna Venkatesh [email protected]
- WingCode [email protected]
- Nick Tyler [email protected]
- Co-authored-by: RaviPsiog [email protected]
- dwelsch-esi [email protected]
- Co-authored-by: dwelsch-memverge [email protected]
- Madhur Tandon [email protected]
- Co-authored-by: kamalesh.suresh [email protected]
- Co-authored-by: santoshkumarradha [email protected]
- Janosh Riebesell [email protected]
- Madhur Tandon [email protected]
- Rob de Wit [email protected]
- Venkat Bala [email protected]
- Co-authored-by: Venkat Bala [email protected]
- Co-authored-by: Amalan Jenicious F [email protected]
- RaviPsiog [email protected]
- Co-authored-by: RaviPsiog [email protected]
- Akalanka [email protected]
- Co-authored-by: Scott Wyman Neagle [email protected]
- Scott Wyman Neagle [email protected]
Added
- check for
/bin/bash
AND/bin/sh
(in that order) to execute bash leptons - Programmatic equivalents of CLI commands
covalent start
andcovalent stop
- Documentation and test cases for database triggers.
- Added the
__pow__
method to theElectron
class - New Runner and executor API to bypass server-side memory when running tasks.
- Added qelectron_db as an asset to be transferred from executor's machine to covalent server
- New methods to qelectron_utils, replacing the old ones
- Covalent deploy CLI tool added - allows provisioning infras directly from covalent
- Added a
py.typed
file to support type-checking - Corrected support from distributed Hamiltonian expval calculations
- Exposed qelectron db in sdk result object
- UI changes added for qelectrons and fix for related config file corruption
- UI fix regarding Qelectron not showing up
- Performance optimisation of UI for large Qelectrons
- File transfer strategy for GCP storage
- Add CLI status for zombie, stopped process.
- Fix for double locking file in configurations.
- Introduced new data access layer
- Introduced Shutil file transfer strategy for local file transfers
- File transfer strategy for Azure blob storage
executor
property toElectron
class, allowing updation of executor after electron function definition- Added ability to hide post-processing electrons on the UI.
- Added prettify of names for the graph screen on the UI.
- Ability to specify a
workdir
forlocal
anddask
executors along withcreate_unique_workdir
option for each electron / node. - Heartbeat file is created and updated when the server is running
- Added
SQLiteTrigger
class to thetriggers
module. - Added the
CloudResourceManager
class - A new tutorial for a dynamic quantum chemistry workflow
- Tutorial for hybrid neural network using Covalent, AWSBatch, and Qiskit Runtime.
- Environment variable that users can set to specify the location where Covalent can find their defined executors.
- Task group id in Electrons.
- Reconstruct postprocessing method.
- Postprocessing as electrons.
- Postprocessing class in
postprocessing.py
module for all the different postprocessing helper methods and algorithms. disable_run
option added to enable "saving-only" option on covalent server and not executing the workflowregister_triggers
,stop_triggers
functions added toLocalDispatcher
classtriggers
parameter to the lattice metadataBaseTrigger
,DirTrigger
,TimeTrigger
classes added available to be assigned to any lattice enabling the triggers featureTriggerLoader
class added enabling loading of any kind of triggers including user defined ones without requiring installation- CLI options to start covalent server in triggers only, and no triggers mode
is_pending
option added during redispatch to resume execution of a previously "saved-only", i.e pending workflow- API routes added for Triggers server
- Added feature to support cancelling workflow dispatches
- Updating/adding new tests to improve code coverage
- API endpoint for redispatching.
- Unit and functional tests for redispatching.
- TransportGraphOps class for diffing operations on transport graphs.
- Added make derived dispatch method.
- Apply electron updates method to _TransportGraph.
- Workflow re-dispatching functionality.
- Added
dispatcher_addr
argument toct.get_result
similar toct.dispatch
so that it doesn't always fallback to using the default configured address - Front-end pending unit tests for the GUI.
- Adding support for PostgresQL DB backend
- Added check for
COVALENT_DATABASE_URL
, if exists connect sqlalchemy engine using that - Adding
COVALENT_DATABASE_USER
andCOVALENT_DATABASE_PASSWORD
environment variables - Adding
COVALENT_DATABASE_HOSTNAME
andCOVALENT_DATABASE_PORT
environment variables for easy configuration - Added
TaskRuntimeError
exception for executor plugin implementations to signal to Covalent that a task raised an
unhandled exception while running in the executor backend. - Added environment variable for a remote database backend
- Added support for mysql and postgresql
- Support for transferring the contents of folders to and from S3 buckets using the file transfer module.
- RTD for User Interface
- Minor GUI fixes
- Ability to use terminal on the GUI.
Changed
- Terraform output to use scrolling buffer.
- Terraform output handling to show errors.
- Bumped up babel/traverse version to 7.23.2
- Changed the axios version on the webapp side.
- Changed the azurebatch.rst banner from default covalent jpg to azure batch's svg file
- [Significant Changes] Improving memory management part 1/3
- Removed strict version pins on
lmdbm
,mpire
,orjson
, andpennylane
- Changed license to Apache
- Improved error handling in generate_docs.py
- [Significant Changes] Migrated core server-side code to new data access layer.
- Changed the way UI was accessing the qelectron database to access it directly from the mdb file in object store
- Update version of browserverify-sign
- Limiting cloudpickle version to less than 3.0 for now
- Raised the minimum version of Pydantic from 1.10.1 to 2.1.1 in
requirements.txt
- Electron DAL to use Covalent server's data instead of QServer's data.
- Renamed QCluster's
selector_serialized
attribute so it gets propagated to the qserver. - Removed
orm_mode = True
incovalent_ui/api/v1/models/dispatch_model.py
as it is deprecated in Pydantic 2 - Removed the upper limit from
dask
anddistributed
packages' versions until we find a version which is incompatible with Covalent. - When the server is stopped, any workflows in a non-terminal state are first cancelled
- Pinned sqlalchemy version with upper limit <2.0.0.
- Added rich support to cli for better printing statements.
- Performed minor modifications and rearrangementsto fix the broken tests in the
nightly
workflow. - Reverting nightly frequency back to midnight basis
- Temporarily changing the nightly frequency to every hour
- Error messages are propagated to stdout when the server is not started. These changes are applied to
dispatch
,redispatch
, andget_result
. - Implementation of
TransportableObject
property method to be backwards compatible with version 0.209.1. - Moved TransportableObject from transport.py to a new file transportable_object.py.
- Postprocessing logic.
- Sublattice logic. Sublattices are now treated as electrons. Once the transport graph has been built, the status get changed to
DISPATCHING
at which point it is executed as another workflow. - Modified
ct.get_result
to allow for status only requests - Enhanced the Dockerfile to include builds from various sources and a differentiation between SDK and Server builds
- Location of function to load result from the database now moved to load module in covalent_dispatcher/_db folde.
- Changed decode-uri-component package version on webapp yarn-lock file.
- Changed json5 package version on webapp yarn-lock file.
- Reverted nightly frequency back to once a day
- Updated
requirements.txt
to includepyscopg2
- Refactored execution.py into loosely coupled modular pieces
- Updated
directory
like default environment variable paths to avoid creating redundant nested directories when self-hosting - Docs for Covalent's Slurm plugin updated with explanation for optional
srun
parameters. - Electron errors are segregated by type; task runtime errors are
stored instderr
while theerror
attribute of a node is reserved
for exceptions raised by Covalent itself. - When tasks fail in a workflow, the Lattice ErrorCard in the UI summarizes the failed tasks.
- Width of lattice name column on dispatch list GUI.
- Optimzing larger graphs for better performance.
- Running migrations automatically if none have run in the past (fresh installs, after purging)
- Single line call to join instead of a for loop
- Updated black, mirrors-prettier, and detect-secrets in pre-commit hooks
- Made
root_dispatch_id
nullable to circumvent migration issues with sqlite in certain platforms
Removed
- Removed no longer needed methods in qelectron_utils
- Removed
dispatch-id
from generate_node_result method - Removed unused module
covalent._data_store
- Stress test files of cpu and sublattice stress tests removed from functional tests suite.
- Duplicate mocks for
UI_SRVDIR
- Duplicate
_get_cancel_requested
method fromcovalent_dispatcher/_core/runner.py
- Postprocessing from runners.
- References to specific IBMQ hub/group/project in tutorial 5
- Slurm executor reference from qaoa tutorial since it's not compatible with conda env at the moment.
Fixed
- Lattice-default metadata attributes are now applied correctly
- Sublattices are built using
workflow_executor
- Added covalent version attribute to Remote Executors
- Removed unassigned variable names
- Contributing guidelines steps for installing for the first time
- Updated gitignore to ignore yarn files and folders for latest version of yarn
- Fixed the bug that caused ValueError error when using KEYWORD_ONLY parameter in electron func
- Changed code at line 218 in covalent/_shared_files/utils.py
- Fixed usage of deprecated pydantic validation methods
- Fixed qelectron_db retrieval in result object
- Fixed editability of Qelectron on settings page - UI changes
- Certain pydantic v2 related updates
- Fixed lattice's metadata propagation to electron's metadata in case no metadata was provided to the electron
- Formatted executor block under Qelectron job details to handle any class-type values
- Fixed test-cases to handle latest pydantic version changes
- Rsync command fixed to recursively copy files when using SSH
- Removed accidentally added migrations build files
- Updated migration script to add a default value for
qelectron_data_exists
in theelectrons
table since it cannot be nullable - Reduced server memory consumption during workflow processing
- Fixed dispatcher address not showing when covalent server starts.
- Fixed the failing tests in the
nightly
workflow. - Using
filelock
package now for platform independent file locking of config file. This should fix the failing tests as well as improve compatibility with Windows. - When stopping the server, we send the proper
SIGINT
signal to uvicorn instead ofSIGKILL
which allows the second part of the FastAPIlifespan
to execute properly. - Fixed the outstanding incompatibities between front-end data layer and a postgres database
- Reverted file-lock changes
- Fixed dispatches list UI api caused by pydantic config.
- Fixed graph API.
- Fixed UI backend unit test case.
- Executor and workflow executor data dictionaries are passed to sublattices
- Read in
README.md
withencoding="utf-8"
insetup.py
- Resolving correct python executable
- Error handling for random URLs/random dispatchId entered on the GUI
- Fixed support for dynamically assigning
executor
toElectron
class - Fixed nightly by activating environment before running tests in
tests.yml
- only pin
aiohttp
downwards to fix install on Python 3.11 #1654 - DB path creation now takes place at import time so that the CLI commands don't fail
- Raise error on dispatching a non-lattice
- Helpful message when trying to dispatch a workflow when covalent server is not available
- Open UI preview of transport graph when
lattice.draw()
is invoked and print URL of the same - Defer creation of server specific config entries until covalent is started
- Functional tests on CI
- Move dask worker space to covalent cache instead of
site-packages
- Result status comparison
- Raise error on extra args/kwargs
- Fixed redispatching and trigger server address passing in base trigger
- Doubling of nodes that are added to the transport graph.
- Ensure postprocessing node end time is added as the workflow end time.
- Functional tests
- Custom executor how to guide, and its loading mechanism in covalent server.
- Broken postprocessing unit test.
- UI crashing if time values are null
- No longer adding "http://" every time a dispatcher address is provided in local dispatcher class in order to use the provided address exactly
- Redispatch bug involving copying reusable nodes from old transport graph to new transport graph.
- Pennylane tutorial notebook.
- Redispatch bug.
- Braket pip installation instructions.
- Removing the entrypoint for SDK-only install
- Updating client requirements to match server versions
- Load plugins only when COVALENT_PLUGIN_LOAD environment variable has been set to a Truthy value.
- MNIST tutorial now shows non-Null outputs and the classifier training log image has been updated.
- Minor changes to tutorials: autoencoder, quantum and classical svm, ensemble classification, iris classification with Pennylane, quantum chemistry, DNN tutorial, qaoa, spacetime tutorial etc.
- The range of
networkx
versions in requirements.txt weren't compatible with each other, thus it is pinned to2.8.6
now - SDK-only sdist and installation should now work as expected, not packaging the server
- Fixed naming of collection nodes (was breaking postprocessing)
- Restored compatibility with stable release of AWS executors
- Optimization of logs on the GUI for large log file sizes.
- Fixed UI pagination not working for more than 11 pages
- Runtime field counting down for select running dispatches
- Removed merge conflict symbols in changelog
- Build graph now sets all unset lattice constraints from defaults
- Fixed all failing functional tests
- Fixed local executor tests on MacOS by adding ProcessPoolExecutor
- Respecting specified AWS profile & region in remote executed S3 file transfers, defaulting to env vars of execution backend
- Electrons will inherit the lattice executors.
- Sublattices inherit the parent lattice executor.
- When several electrons are running concurrently, their stdout and stderr are stored in the correct graph nodes.
- Electron errors now appear in the Electron ErrorCard when one clicks on a failed task in the UI.
- When an electron raises an exception during execution, the local and dask executors now try to recover any output that was already
written. - Fixed functional tests.
- Added
requirements-client.txt
to MANIFEST file - Respecting specified AWS profile & region in remote executed S3 file transfers, defaulting to env vars of execution backend
- Fixed local executor tests on MacOS (second attempt)
- The
initialize_results_dir
method attempts to use an environment variable instead of the results directory in the payload - Modified certain sqlalchemy commands for postgres compatibility
- Removed references to results_dir in the payload
- Folder transfer unit test.
- Folder transfer download bug
- Result objects now print correctly when nodes fail
- Enabling logging by default
- Removed debugging output
- Clarify cli output when
covalent db migrate
needs to be run - Rendering newlines in ErrorCard on the UI for displaying error stacktraces
- VERSION incrementing logic in changelog
- Fixed v11 migration to use render as batch to make DROP operations compatible with sqlite
covalent restart
honors thesdk.no_cluster
setting- Re-applying default executor fix post config file reunification
- Exceptions when instantiating executors are handled
- Covalent start now waits for the server to settle before returning
Tests
- Temporarily skipping the sqlite and database trigger functional tests
- Updated tests to accommodate the new qelectron fixes
- Added new tests for the Database class and qelectron_utils
- Covalent deploy CLI tool tests.
- Skipping functional tests for azure blob storage and gcp storage how to guides since they require credentials to run.
- Added testcases for GUI backend.
- Changed the method for startup and shutdown events for pytest to work with fastapi version 0.93.0
- Fixed test cases to adapt changes to SQLAlchemy version 1.4.49
- Ignored remote file transfer how-to functional tests.
- Skipping a UI backend test for now
- Fixed
test_decorated_function
test case in functional tests - Added tests for the
CloudResourceManager
class - Re-enable
test_run_workflow_does_not_deserialize
- Updated QA stress test execution time baseline.
- Move QA scripts from QA repo to Covalent functional tests.
- Updated and added tests to account for all of the above triggers related changes
- Updated
_get_result_from_dispatcher
test to verify whether using a link directly works or not
Docs
- Added federated learning showcase code
- Updated tutorial for redispatching workflows with Streamlit
- Fix autodoc for SSH, Slurm, AWS Braket, AWS Lambda, AWS EC2, AWS Batch, Google Batch
- Updated documentation links in README
- Added tutorial for redispatching workflows with Streamlit
- Added documentation for Azure Blob Storage file transfers
- Added documentation for Google Cloud Storage file transfers
- Enhanced the quickstart with a set of commonly used features
- Removed duplicate "stop server" warning in the First Experimemnt page
- Fixed typo in quickstart
- Fix autodoc for SSH, Slurm, AWS Braket, AWS Lambda, AWS EC2, AWS Batch, Google Batch
- Updated documentation links in README
- Updating and reorganizing RTD API documentation
- Adding example links in API documentation
- Fix
Lattice
docstring in RTD. - Added a missing
,
to the Slurm docs. - Fix typo in GCP Batch executor RTD.
- Add steps for setting up GUI for local development in contribution guidelines.
- Fix docstring for set_config
- Redispatch feature page in Read the Docs.
- Clarify installation instructions for SLURM plugin in Read the Docs (x2).
- Fix waiting order of electrons in docs inside snippet for adding a dependency when inputs and outputs are independent.
- Expose GCP Batch executor RTD.
- Add GCP Batch executor image in RTD.
- Updated Feature documentation for Triggers with an example and minor corrections
- Update requirements file for the tutorials:
1_QuantumMachineLearning/pennylane_kernel/source.ipynb
andmachine_learning/dnn_comparison.ipynb
. - Add macOS 13 (Ventura) to compatibility list.
- Fixed broken links and typos in the documentation.
- Updated How-to documents.
- Port of Pennylane's Univariate QVR tutorial using Covalent to this repo.
- Adding troubleshooting guide to RTD's
- Added a note to First Experiment offering initial intro to executors.
- Adding Google Batch executor plugin RTD
- Adding
cancellation
RTD text files - Added documentation for "Triggers" and a separate section for similar "Features"
- Tutorial guidelines
- Redispatch API section.
- Add how to for redispatch.
- Mention redispatch in the concepts section.
- Update
AWS Lambda
executor RTD with steps to extend the base executor image for installing custom packages - Updated self-deployment (server deployment).
- Added IBMQ tutorial
- Published Self-Deployment Guide
- Revised UI reference. Added Settings page documentation.
- Added broken UI links in README
- Updated compatibility matrix
- Adding
Deployment
section for self-hosting guide - Rewrote Concepts section in docs
- Split Concepts into API, server, and UI sections
- Added new examples and graphics for Concepts
- Added DNN tutorial
- Updated AWS Plugins install instructions
- Updated AWS Plugins documentation (minor fixes)
- Rewrote intro material in README.
- Changed "Citation" in the README.
- Renamed "Release Notes" to "What's New?" in the README. Updated What's New with a description of the newest GUI functionality.
- Added "Quick Start" guide.
- Updated and reorganized doc landing page.
- Rewrote "Getting Started" page.
- Broke out "Installing from Source" instructions to separate page.
- Corrected some API class names in headers.
- Added an executors-and-UI graphic.
- Adding
Deployment
section for self-hosting guide - Rewrote intro material in README.
- Changed "Citation" in the README.
- Renamed "Release Notes" to "What's New?" in the README. Updated What's New with a description of the newest GUI functionality.
- Updated AWS Lambda executor docs to address conflict with using public ecr registries
- Fixed missing RTD content under API section for covalent, cli, leptons, deps, data transfer
- Updated RTD with details about the new AWS lambda executor interface
Operations
- Ignore custom executor plugin in how-to's when running
test_deploy_status
CLI test. - Change the strict version pin on
pennylane
from==0.33.1
to>=0.31.1,<0.33.0
- Updated
black
,prettier
,pycln
package versions in pre-commit config - Changed
actions/checkout@v3
toactions/checkout@v4
in CI - Dependabot update to npm in changelog action
- Update tough-cookie to 4.1.3 version
- Added rich support to cli for better printing statements.
- Changed semver from 5.7.1 to 5.7.2 in package.json
- Updated word-wrap to 1.2.4 version
- Updated the nightly workflow's schedule
- Temporarily making the nightly workflow more frequent to test the fix for the failing tests
- Fixed failing tests
- Respecting node version as specified in
.nvmrc
file for tests workflow - Bumped versions in pre-commit config
- Added prettier for markdown files.
- Reduce the number of pinned version numbers in the
setup.py
,requirements.txt
, andrequirements-client.txt
- Updated the
wci.yml
file with new features - Bumped pre-commit versions
- Temporarily running nightly hourly to test whether the fix worked
- Reverted to daily frequency for nightly
- Update the PR template.
- Nightly frequency set to midnight EST
- Removed "already released" check from stable changelog action
- Updating
nightly
frequency (temp) - Lowering number of jest workers as an attempt to fix flaky UI functional tests
- Added exception for nightly to pass if conda release fails
- Updated pre-commit hook versions
- Updated codecov upload steps in tests workflow to fail if upload to codecov fails
- Added job in
nightly
to trigger base executor image builds after a Covalentpre-release
- Fixed stable-changelog action removed
.catch
added.on('error')
- Removed AWS base executor deployment from
release.yml
- Removed experimental tests from nightly test matrix (will be brought back but in different workflow)
- Updated release workflow to continue if release tag already exists
- Reverted nightly schedule back to daily at 4:00am
- Added Alejandro to PAUL_BLART group to allow trigerring of releases
- Updated hotfix logic to run on a merge to a release branch
- CodeQL workflow uses a test matrix to scan all repos in the Covalent ecosystem
- Updated all CI Slack alerts to all go to the #covalent-ci channel
- Removed PAUL_BLART check on build sdist step in release.yml
- Consolidated pre & stable build into one step in release.yml
- Fixing the validate distribution step given changes in -rc0 suffix to version
- updated hotfix logic to run on a merge to a release branch
- Fixing js github actions dist by re-building from develop
- Fixing syntax in describe action & compiled action manually