- In
collect_zipfile_contents
, create target subdirectory for each file insrc_files
.
Manager.work()
: Addshould_send
andshould_return
parameters.
- Manager: Add
work()
method, replacing its use as a context handler.
- Add LambdaDestination.
- Bump missouri dependency.
- StateManager: Eliminate some type errors downstream.
- Fix a runtime error checking the dependency graph schema using the published package.
- Require Python 3.9+
- To create DependencyGraph from a class, use
DependencyGraph.from_class()
instead ofDependencyGraph()
- Add mypy types.
- Add
DependencyGraph.deserialize()
- Extract Store superclass from StateManager
- Fix compatibility with updated semver dependency.
Same as 0.30.0.
- Upgrade semver dependency.
- ComputeGraph: Fix Python 3.9 without typing_extensions, again
- When creating new lambdas, default the runtime to the currently running Python major and minor version
- ComputeGraph: Fix Python 3.9 without typing_extensions
- Test in Python 3.9
- Replace
werkit.aws_lambda.build.find_site_packages_dir()
withsite_packages_for_venv()
and fix for Python 3.9+ - Improve RdsDestination debugging
- Update semver dependency to 3.0.0.dev4
- ComputeGraph: Rename
coerce()
tonormalize()
- StateManager: Pass intermediates using normalized values
- Bump boto3 dependency to 1.20.32 to match the AWS Lambda preinstalled version
- Bump artifax dependency to 0.5.
- StateManager: Serialize no longer triggers evaluation.
- StateManager: Prevent exception when invoking
evaluate()
with an empty list.
Same as 0.24.0.
- Bump artifax dependency to 0.4.
- Capitalization fix for previous.
- Add compute graph functionality in
werkit.compute.graph
.
- Updates for AWS Lambda state functionality.
- After deploying, wait until function is active.
- After updating code, wait until function is updated
- Background: https://aws.amazon.com/de/blogs/compute/coming-soon-expansion-of-aws-lambda-states-to-all-functions/
- Sync pinned boto3 to 1.18.55, the version which is preinstalled on AWS Lambda.
- Upgrade jsonschema dependency.
Same as 0.21.0.
- Manager: Add required schema checking
- Adopt new terminology: request -> input_message, serialized_result -> output_message
- Update orchestrator->worker interface to support werkit JSON format
- Adopt werkit manager in orchestrator lambda
- Add explicit return schemas
- Move orchestrator code from
werkit.aws_lambda
towerkit.orchestrator
- Manager: Add optional queue destination
publish_to_s3
: Support semver prerelease versions.
Fix bug in publish_to_s3
CLI
- Added
publish_to_s3
Remove install_werkit
flag from create_venv_with_dependencies
- Remove
werkit.__version__
.
- Add
aws_lambda.build.export_poetry_requirements()
.
create_venv_with_dependencies
: Optionally omit transitive dependencies.
Same as 0.15.0.
- Manager: Require that callers set
manager.result
in the context handler as intended, returning a compute error if not. To get the old behavior, setmanager.result = None
. - Manager: Extract
note_compute_success()
andnote_compute_exception()
to allow more flexibility by consumers.
- Lambda deploy functions (e.g.
perform_create()
) require an explicitaws_region
.
- Update orchestrator build to support Python 3.8 in addition to 3.7.
- For
werkit.aws_lambda.deploy.perform_create()
andperform_update_code()
, thepath_to_zipfile
argument is renamed tolocal_path_to_zipfile
. These functions can also accept ans3_path_to_zipfile
which has already been uploaded to thes3_code_bucket
.
- Added
force_upload_to_s3_code_bucket
option to Lambda deploy functions to force code to be uploaded to S3.
- Add
werkit.s3.temp_file_on_s3_from_string()
. - Document Lambda-building functions.
- Support installing Lambda-building dependencies using
pip install werkit[aws_lambda_build]
.
- Manager: Include compute start time and user-provided runtime info
- Update boto dependency.
- When building Lambda functions, install werkit from PyPI, not GitHub.
- Generalize
temp_file_on_s3
and move it towerkit.s3
. - Provide additional timing metrics.
- Add CLI command to update-code.
- Replace custom random string code with
uuid.uuid4()
. - Consolidate duplicate code.
- Optimize the orchestrator using ThreadPoolExecutor.
- Use the same version of werkit in the builder (and don't refer to a nonexistent branch).
- Adopt consistent schema for compute and orchestration errors.
- Validate that cloud results match the schema.
- By default, do not install dependencies for the Lambda client. When these
dependencies are desired, use
pip install werkit[client]
.
- Add
error_source
key to cloud results, which can be"compute"
,"system"
or"orchestration"
. werkit.parallel
: Optionally augment result with Lambda roundtrip time.- By default, provide compute times rounded to the nearest 1/100 of a second.
- Fix Lambda update when code is under 50 MB.
Manager
: In verbose mode, print timing to stderr instead of stdout.
- Document the cloud result schema.
- Update aioboto3 dependency.
- Support fanout on AWS Lambda, using a werkit orchestrator with a user-provided worker lambda.
- Add utilities for deploying Python-based functions to AWS Lambda.
- CloudManager: Allow passing extra args to
docker build
. - CloudManager: Add
build()
method.
- Require Python 3.
- Require RQ 1.2.0+ (not yet released).
- Remove failed jobs before expiration
- Fix stack trace printing.
- Make Redis and rq soft depenencies.
- Make Redis URL optional when it is not needed.
- Fix Redis URL configuration.
- Add support for distributed jobs using Redis, RQ, and the Fargate CLI.
- Propagate KeyboardInterupt and SystemExit exceptions.
Initial release