Release Notes
This project uses Semantic Versioning. The format of the release notes follows Keep a Changelog.
v0.7.0 - 2026-01-22
Added
- Add LoggingExtras.jl as dependency (#35)
- New logger
PrettyFileLoggerbased onFileLoggerfrom LoggingExtras.jl wrapping aConsoleLoggerinstead ofSimpleLogger(#35)- the new logger suppresses module, file, and line information and expands the display of arrays
- Breaking: Previous log files are now saved to a
.inventory.logsfile and remembered for clean-up. This allows cleaning of log files outside the product folder (#28). global_loggeris now formatted during package init (#33)- New Changelog for the inventory in the documentation as separate Changelog from this one
- Add kwarg
save_migrationstoload_inventoryto save any inventory migrations whenload_inventoryis called by default (#38) - Add new automatic detection for conversion during download. Now,
.hdffiles are converted to.h5, otherwise conversion is switched off. Theconvertflag insftp_downloadcan still be used to enforce conversion to be switched on/off. - Add release automation for the update of the inventory changelog after version updates (#50)
- Added GitHub Actions scripts and adjusted the pre-release script to completely automate the release process (#50)
- Added changelog enforcer GitHub Action to ensure, a changelog entry was made unless the
no changelabel is set (#50)
Changed
- Breaking: Refine logging in
load_inventory(#35). Rather than defining an additional logger with the second optional argument (for additional file logging),global_loggeris now replaced by the logger in the second optional argument. If you want logging to console and file, use e.g.TeeLoggerfrom LoggingExtras. This allows logging in wrapper functions likeconvert_inventoryforconvert_inventory!. - Breaking: Change function names of
convert/convert!toconvert_inventory[!]to avoid type piracy (#35) - All API functions now accept
AbstractStringinstead of the stricterString - Improved Logging (#35)
- Don't consider folder sizes for database size, this is too buggy and inaccurate
- Use thin spaces between size and unit to log to console and file
- Breaking: Save log files to a
logsfolder instead of the product folder by default. If the folder doesn't exist, it will be created (#34). - Don't log debug logs of successful attachment to console to be in line with the other sync functions. This should not have an impact as the default console log level is Info (#34).
- Breaking: If the log file name includes a relative path, it is now relative to the product folder rather than the current directory (#46).
- Internal refactoring:
- Use
Loggerstruct instead of named tuple to pass on different loggers (#28) - Separate implementation of
attach!to an internal_attach!function that can be used byclean!(#28) - Operate
extrascanandattach_path!on aVector{String}rather then the extras section of the inventory (#28) - Filter files with
!isdirrather thanisfileto be sure to not miss any path objects like symlinks, which will now be listed under files (#28)
- Use
- Change format of the inventory metadata, added a compression ratio, see inventory changelog in the documentation, added a migration routine that will convert old inventories to the new format (#38)
- Update the output of
list_inventoryto consider the new possibilities with the compression ratio (#38)
Removed
- Breaking: Remove functions
convert/convert!in favour ofconvert_inventory[!]to avoid type piracy (#35) - Breaking: Remove kwarg
keepextfromclean!. The implementation was buggy working only for files in inventory folders not in subfolders and cleaning could be ambiguous with the newlogsoption (#28).
Fixed
- Corrected calculation of inventory stats that was showing a wrong download intent (#44)
- Corrected output of
inventory_stats, when files on the remote server are symlinks. Now symlinks are followed and the correct stats are derived (#42).
v0.6.0 - 2025-12-27
Added
- Improved error handling during download
- Methods
convert/convert!for batch conversions of inventory data files separated from download sessions (#16) - Method
clean!to clean the product folder recursively from any files not belonging to the inventory (#16) - Functions
ignore!andunignore!to exclude database files in the inventory and include them again (#17) - Functions
attach!anddetach!to mark extra data exempt fromclean!procedures (#17) - Function
list_inventoryto show a simplified folder and file tree and statistics about the inventory and the downloaded portion (#17) - Public method
load_inventoryto load the inventory saved in the product folder (#32)
Changed
sftp_downloadnow returns the inventory for further exploration (#20)- Refactored inventory internally to mostly use
SortedDictinstead ofOrderedDict; change depencies fromOrderedCollectionstoDataStructures(#18) - Updated inventory metadata (#20)
- Breaking: Added
sizeandconverted sizefields tometadata/databasewith the overall file sizes of the original format and the size of already converted files (#18) - Consider folders with a size of
4Kinstead of0to estimate the maximum database size - Breaking: add a
versionnumber tometadatato allow better tracking of changes in the inventory (#18) - Breaking: Rename
convertedfield with the converted file size tosize.<ext>in each date dict - Update dependencies in docs before using
make docs(#18) - Breaking: Add
"downloaded size"entry to inventory database metadata to monitor the actual downloaded part of the database (#26)
- Breaking: Added
- Simplify
favicon - Improved documentation and logging
- Rename previous method
convert!to_convert!to avoid conflicts with the new method and leave the method internal and not part of the public API (#16) - Breaking: Rename
"productpath"to"path"ininventory["metadata"]["remote"]to be more in line with the simpler"local"naming scheme (#24) - Make internal
load_inventory!method return a reference to the modified inventory as well
Removed
- Method
hdfupgradeand all auxiliary code was removed and replaced by methodsconvertandconvert!
v0.5.1 - 2025-09-07
Fixed
- converted file sizes are only kept in the database after an update, if the original file size hasn't changed (#20)
- Automatically update version number in the badge in the README and the link to the latest stable during pre-release
- Fixed an issue with the setup of the target extension that lead to errors during download sessions with conversions
v0.5.0 - 2025-08-31
Added
- Use a local
.inventory.yamlto store stats of the server-side file structure in the root of the product folder and reduce communication with the server - Support of parallel downloads
- Support of file format conversions with focus on HDF4 > HDF5
- Add routines just for conversions of local downloads
- Add Documenter documentation page and this CHANGELOG (release notes)
- Add GitHub workflows for CI/CD
- Add Makefile and release-scripts for automated release processes
Changed
- Switched from FTP to SFTP protocol for downloads
- Complete refactoring of the code, simplify download and restart routines
- Improved logging
- Reorganise downloads in a single loop
- Conversion routines are now directly included in the code and not called as script with the
runcommand; they may be overloaded with custom routines for other conversions
v0.4.0 - 2021-08-04
Changed
- Use
Intto define start/end dates or periods for downloads
v0.3.3 - 2021-05-17
Added
- New option to restart a download session by kwarg
- Set
v1.0.0as minimum requirement for Julia
Changed
- Better error handling
v0.3.2 - 2021-04-22
Changed
- Update package dependencies
- Internal refactoring for changes in
CSV.read
v0.3.1 - 2021-04-21
Added
- Checks for product name and version number
v0.3.0 - 2020-04-14
Added
- New option to append log files
- Ability to restart interrupted download sessions
Changed
- Update log file format
v0.2.2 - 2020-04-07
Added
- New flag to suppress downloads in a run
Fixed
- Fix corrupted Project.toml
v0.2.1 - 2020-04-06
Added
- New option
noneto remove no displaced files
v0.2.0 - 2020-04-06
Added
- Option to warn and clean data folders of alien files
Changed
- Revised FTP connection and download of files
v0.1.2 - 2020-04-05
Added
- Add
Loggingas dependency
v0.1.1 - 2020-03-30
Added
- Improved error handling
- Improved README
Changed
- Add leading slash to caliopdir to generate absolute paths with joinpath
rather than relative paths
Fixed
- Reconnect to ICARE and create a new FTP object for every subfolder to
prevent LibCurl error 9
v0.1.0 - 2020-03-30
Added
- Initial download routine using FTPClient