All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added:
audbackend.backend.Minio
backend to access MinIO and S3 storages - Added: support for Python 3.12 (without Artifactory backend)
- Removed: support for Python 3.8
- Added: support for Python 3.11
- Fixed: ensure execution time of
audbackend.interface.Maven.ls()
is independent of repository size on all backends
- Added:
audbackend.interface
sub-module including an backend interface base classaudbackend.interface.Base
, and the three interfacesaudbackend.interface.Maven
,audbackend.interface.Unversioned
,audbackend.interface.Versioned
- Added:
audbackend.backend
sub-module including the backend base classaudbackend.backend.Base
, and the two backendsaudbackend.backend.Artifactory
,audbackend.backend.FileSystem
- Added:
audbackend.backend.*.copy_file()
andaudbackend.interface.*.copy_file()
methods to copy a file on the backend - Added:
audbackend.backend.*.move_file()
andaudbackend.interface.*.move_file()
methods to move a file on the backend - Added:
validate=False
argument to thecopy_file()
,get_archive()
,get_file()
,move_file()
,put_archive()
,put_file()
methods inaudbackend.backend.*
andaudbackend.interface.*
. IfTrue
the checksum of the resulting file is checked - Added:
audbackend.backend.*.create()
andaudbackend.backend.*.delete()
class methods to create or delete a repository on a backend - Added:
audbackend.backend.*.open()
andaudbackend.backend.*.close()
methods to connect to a backend, or disconnect from a backend - Added:
audbackend.backend.Artifactory.get_authentication()
to get the current Artifactory username, password from the configuration file/environment variable - Added:
authentication
argument toaudbackend.backend.Artifactory
andaudbackend.backend.Base
- Added:
audbackend.backend.Artifactory.path()
returning anartifactory.ArtifactoryPath
object - Added:
audbackend.backend.Artifactory.authentication
attribute, holding the current authentication object, e.g. user, password tuple - Fixed: all backend methods now raise a
ValueError
, if a backend path ends on"/"
with the exception ofls()
,split()
andjoin()
, as those methods support sub-paths as argument - Deprecated:
audbackend.create()
, useaudbackend.backend.*.create()
instead - Deprecated:
audbackend.delete()
, useaudbackend.backend.*.delete()
instead - Deprecated:
audbackend.register()
, as we no longer use alias names for backends - Deprecated:
audbackend.access()
, instantiate and open a backend instead - Deprecated:
audbackend.Repository
, as we no longer use alias names for backends - Removed:
audbackend.Artifactory
andaudbackend.FileSystem
, useaudbackend.backend.Artifactory
andaudbackend.backend.FileSystem
instead - Removed:
audbackend.available()
- Added: support for accessing remote and virtual repositories on Artifactory
- Fixed: match the
pattern
argument ofaudbackend.Backend.ls()
to file basenames - Fixed: typo in raises section
of the docstring
of
audbackend.exists()
- Added:
regex
argument toaudbackend.Backend._use_legacy_file_structure()
to support providing regex pattern in theextensions
argument - Changed: depend on
dohq-artifactory>=0.9.0
- Added:
audbackend.Backend.access()
,audbackend.Backend.available()
,audbackend.Backend.date()
,audbackend.Backend.delete()
,audbackend.Backend.owner()
- Added:
audbackend.FileSystem._use_legacy_file_structure()
to support file structure of existing repositories - Added:
audbackend.BackendError
class to capture errors raised by backend - Added:
pattern
argument toaudbackend.Backend.ls()
- Added: docstring examples and usage section
- Changed:
audbackend.create()
raises error if repository exists (audbackend.access()
should be used instead) - Changed:
audbackend.Backend.get_archive()
andaudbackend.Backend.put_archive()
support same archive types asaudeer.create_archive()
- Changed:
audbackend.Backend.get_file()
skips operation if file with same checksum exists on local file system - Changed:
audbackend.Backend.get_file()
uses a temporary directory to avoid corrupted files if operation is interrupted - Changed:
audbackend.Backend.get_file()
andaudbackend.Backend.put_file()
raiseIsADirectoryError
- Changed:
audbackend.put_archive()
raisesNotADirectoryError
- Changed: make
files
an optional argument ofaudbackend.Backend.put_archive()
- Changed:
audbackend.Backend.put_file()
passes checksum to implementation to avoid re-calculation - Changed:
audbackend.Backend.join()
andaudbackend.Backend.split()
check for invalid characters - Changed:
audbackend.Backend.ls()
returns list of(path, ext, version)
- Changed:
audbackend.Backend.ls()
accepts full path - Changed: calculate checksum with
audeer.md5()
- Changed: file structure on
audbackend.FileSystem
andaudbackend.Artifactory
from/sub/file/1.0.0/file-1.0.0.txt
to/sub/1.0.0/file.txt
- Changed: remove
ext
argument - Changed: path on backend must start with
"/"
- Changed: version must be non-empty and may not contain invalid characters
- Changed: option to install only specific backends and their dependencies
- Removed:
audbackend.Backend.glob()
,audbackend.Backend.path()
- Removed: support for
Python 3.7
- Removed: dependency on
audfactory
- Fixed: support
dohq_artifactory.exception.ArtifactoryException
which was introduced indohq_artifactory>=0.8
and is raised instead of a HTTP request error
- Added: support for Python 3.10
- Changed: depend on
audfactory>=1.0.10
- Added: argument
tmp_root
toaudbackend.Backend.get_archive()
andaudbackend.Backend.put_archive()
- Changed: depend on
audfactory>=1.0.8
to change a critical bug when looking for available versions of an artifact
- Changed: check for path name before creating archive
in
audbackend.Backend.put_archive()
- Added: Python 3.9 support
- Removed: Python 3.6 support
- Added:
verbose
argument toBackend.get_archive()
,Backend.get_file()
,Backend.put_archive()
,Backend.put_file()
- Fixed: catch 403 Error for Artifactory backend paths
- Added:
audbackend.Backend.ls()
- Fixed: ignore empty strings in
backend.join()
- Added:
Repository
- Added:
Repository
- Changed: link to
audfactory
documentation for Artifactory authentication - Changed: split up source code into several files
- Added: argument
folder
toBackend.glob()
- Added: support files without extension and file extensions with dot(s)
- Fixed:
audbackend.Artifactory.exists()
for cases of missing permissions
- Fixed: use
audfactory >=1.0.3
as it fixesversions()
for paths with missing user permissions
- Changed: adjust Python package keywords to
artifactory
,filesystem
- Fixed: contribution section in documentation now provides correct links and explains Artifactory server access for running tests
- Added: open source release on Github
- Changed: use
audfactory
>=1.0.0 - Changed: use public Artifactory server for tests
- Added:
audbackend.FileSystem
backend - Changed: rename package to
audbackend
- Changed: include
repository
argument in the init methods of the backends
- Fixed: missing
__init__
file inaudb_artifactory.core
- Added: Initial release
- Added:
audb_artifactory.Artifactory