Release and Version History¶
x.y.z (Backlog)¶
Features and Improvements
Minor Improvements
Bugfixes
Miscellaneous
1.0.1 (2025-06-27)¶
Features and Improvements
Drop support for Python 3.8, now only support Python 3.9+.
API Stabilization Release: This release marks the stable API milestone with comprehensive documentation improvements and enhanced session management capabilities.
Enhanced Session Management: Added comprehensive support for explicit boto session management via optional
bsmparameter across all Repository methods.Improved Public API Safety: Enhanced documentation to clearly distinguish between safe public API classes (
Artifact,Alias) and internal ORM objects, preventing accidental data corruption.
Minor Improvements
Comprehensive Documentation Overhaul: All class and method docstrings have been significantly enhanced with detailed usage examples, parameter documentation, and best practices.
Bootstrap Integration: Enhanced
bootstrap()method documentation explaining how it binds s3pathlib and pynamodb libraries to boto sessions.Cross-Reference Documentation: Added proper Sphinx cross-references between public API and internal ORM classes for better developer experience.
Traffic Splitting Examples: Added comprehensive examples for canary deployments and blue/green deployment patterns in alias documentation.
Session Management Patterns: Documented both global session (via bootstrap) and explicit session (via
bsmparameter) usage patterns.
Miscellaneous
README Modernization: Completely rewritten README.rst to be more concise and high-level, directing users to comprehensive documentation website.
No Breaking Changes: Full backward compatibility maintained - all existing code will continue to work without modifications.
Type Safety: Enhanced type hints and parameter validation documentation for better IDE support and developer experience.
Public APIs
versioned.api.excversioned.api.DYNAMODB_TABLE_NAMEversioned.api.S3_PREFIXversioned.api.LATEST_VERSIONversioned.api.VERSION_ZFILLversioned.api.METADATA_KEY_ARTIFACT_SHA256versioned.api.s3_only_backendversioned.api.s3_only_backend.Artifactversioned.api.s3_only_backend.Artifact.update_datetimeversioned.api.s3_only_backend.Artifact.s3pathversioned.api.s3_only_backend.Artifact.get_contentversioned.api.s3_only_backend.Alias.update_datetimeversioned.api.s3_only_backend.Alias.s3path_versionversioned.api.s3_only_backend.Alias.get_version_contentversioned.api.s3_only_backend.Alias.s3path_secondary_versionversioned.api.s3_only_backend.Alias.random_artifactversioned.api.s3_only_backend.Alias.get_secondary_version_contentversioned.api.s3_only_backend.Repositoryversioned.api.s3_only_backend.Repository.s3dir_artifact_storeversioned.api.s3_only_backend.Repository.bootstrapversioned.api.s3_only_backend.Repository.get_latest_published_artifact_version_numberversioned.api.s3_only_backend.Repository.put_artifactversioned.api.s3_only_backend.Repository.get_artifact_versionversioned.api.s3_only_backend.Repository.list_artifact_versionsversioned.api.s3_only_backend.Repository.publish_artifact_versionversioned.api.s3_only_backend.Repository.delete_artifact_versionversioned.api.s3_only_backend.Repository.list_artifact_namesversioned.api.s3_only_backend.Repository.put_aliasversioned.api.s3_only_backend.Repository.get_aliasversioned.api.s3_only_backend.Repository.list_aliasesversioned.api.s3_only_backend.Repository.delete_aliasversioned.api.s3_only_backend.Repository.purge_artifact_versionsversioned.api.s3_only_backend.Repository.purge_artifactversioned.api.s3_only_backend.Repository.purge_allversioned.api.s3_and_dynamodb_backendversioned.api.s3_and_dynamodb_backend.Artifactversioned.api.s3_and_dynamodb_backend.Artifact.s3pathversioned.api.s3_and_dynamodb_backend.Artifact.get_contentversioned.api.s3_and_dynamodb_backend.Aliasversioned.api.s3_and_dynamodb_backend.Alias.s3path_versionversioned.api.s3_and_dynamodb_backend.Alias.get_version_contentversioned.api.s3_and_dynamodb_backend.Alias.s3path_secondary_versionversioned.api.s3_and_dynamodb_backend.Alias.get_secondary_version_contentversioned.api.s3_and_dynamodb_backend.Alias.random_artifactversioned.api.s3_and_dynamodb_backend.Repositoryversioned.api.s3_and_dynamodb_backend.Repository.s3dir_artifact_storeversioned.api.s3_and_dynamodb_backend.Repository.get_artifact_s3pathversioned.api.s3_and_dynamodb_backend.Repository.bootstrapversioned.api.s3_and_dynamodb_backend.Repository.put_artifactversioned.api.s3_and_dynamodb_backend.Repository.get_artifact_versionversioned.api.s3_and_dynamodb_backend.Repository.list_artifact_versionsversioned.api.s3_and_dynamodb_backend.Repository.publish_artifact_versionversioned.api.s3_and_dynamodb_backend.Repository.delete_artifact_versionversioned.api.s3_and_dynamodb_backend.Repository.list_artifact_namesversioned.api.s3_and_dynamodb_backend.Repository.put_aliasversioned.api.s3_and_dynamodb_backend.Repository.get_aliasversioned.api.s3_and_dynamodb_backend.Repository.list_aliasesversioned.api.s3_and_dynamodb_backend.Repository.delete_aliasversioned.api.s3_and_dynamodb_backend.Repository.purge_artifact_versionsversioned.api.s3_and_dynamodb_backend.Repository.purge_artifactversioned.api.s3_and_dynamodb_backend.Repository.purge_all
0.6.1 (2023-10-22)¶
Features and Improvements
Add
Repository.list_artifact_names()andRepository.purge_artifact_versions()methods to boths3_and_dynamodb_backendands3_only_backend
0.5.4 (2023-10-20)¶
Features and Improvements
Fix a bug that the
s3_only_backendis not able to handle suffix like.tar.gz,.json.gz.
0.5.3 (2023-07-14)¶
Minor Improvements
add validation to detect if human manually contaminate the artifact S3 dir.
add the missing
Alias.random_artifact()method.
Bugfixes
fix bug that sometimes it uses the wrong boto session to get the S3 metadata and S3 last modified time.
Miscellaneous
Update the s3 and dynamodb backend example jupyter notebook.
Add s3 only backend example jupyter notebook.
0.5.2 (2023-07-14)¶
Bugfixes
fix a bug that accidentally deleted the
get_artifact_s3pathAPI.
0.5.1 (2023-07-14)¶
Features and Improvements
add S3 only backend in
s3_only_backend.pymodule. It doesn’t require DynamoDB table.the old
core.pymodule is renamed tos3_and_dynamodb_backend.pymodule. The old API is kept intentionally for backward compatibility. However, it is scheduled to be removed in 1.X.Y release.suggest to use
from versioned import api as versioned, then useversioned.s3_and_dynamodb_backendorversioned.s3_only_backendto access the backend.
Minor Improvements
improve test for
s3_and_dynamodb_backend.
0.4.2 (2023-07-07)¶
Bugfixes
fix a bug that the
purge_allmethod cannot delete DynamoDB items correctly when S3 doesn’t have the artifacts.
0.4.1 (2023-07-07)¶
Minor Improvements
add
versioned.api.Repository.connect_boto_sessionto public API. it can explicitly connect the S3 and DynamoDB API to the given boto session.removed useless argument
bsmin many APIs.add
versioned.api.Repository.purge_allto public API.
0.3.3 (2023-07-06)¶
Minor Improvements
allow user to set a file name extension for the artifact repository via
versioned.api.Repository(..., suffix=".tar.gz").
0.3.2 (2023-07-06)¶
Minor Improvements
now the
versioned.api.Repositorytakes explicitaws_region,s3_bucketarguments in constructor.add
versioned.api.Repository.get_artifact_s3pathto public API.
0.3.1 (2023-07-06)¶
Features and Improvements
- Created a new public API class
versioned.api.Repository, allow developer to customize the S3 bucket and DynamoDB table name backend. So old API are renamed to: versioned.api.Repository.bootstrapversioned.api.Repository.put_artifactversioned.api.Repository.get_artifact_versionversioned.api.Repository.list_artifact_versionsversioned.api.Repository.publish_artifact_versionversioned.api.Repository.delete_artifact_versionversioned.api.Repository.put_aliasversioned.api.Repository.get_aliasversioned.api.Repository.list_aliasesversioned.api.Repository.delete_aliasversioned.api.Repository.purge_artifact
- Created a new public API class
0.2.1 (2023-07-05)¶
Features and Improvements
add
content_type,metadata,tagsarguments toversioned.put_artifact.versioned.put_artifactnow will skip uploading to s3 ifcontentis not changed.
0.1.2 (2023-07-01)¶
Miscellaneous
rename
versioned.api.get_artifacttoversioned.api.get_artifact_version.rename
versioned.api.list_artifactstoversioned.api.list_artifact_versions.rename
versioned.api.delete_artifacttoversioned.api.delete_artifact_version.rename
versioned.api.purgetoversioned.api.purge_artifact.rename
additional_versiontosecondary_version.
0.1.1 (2023-07-01)¶
Features and Improvements
First release.
- Add the following public api:
versioned.api.excversioned.api.DYNAMODB_TABLE_NAMEversioned.api.BUCKET_NAMEversioned.api.S3_PREFIXversioned.api.LATEST_VERSIONversioned.api.VERSION_ZFILLversioned.api.bootstrapversioned.api.Artifactversioned.api.Aliasversioned.api.put_artifactversioned.api.get_artifactversioned.api.list_artifactsversioned.api.publish_versionversioned.api.delete_artifactversioned.api.put_aliasversioned.api.get_aliasversioned.api.list_aliasesversioned.api.delete_aliasversioned.api.purge