Release Notes

This project uses Semantic Versioning. The format of the release notes follows Keep a Changelog.

[Unreleased]

Fixed

  • Link targets are displayed as absolute paths again. This bug was introduced after switching internally from split to URIs.splitpath, which does not consider root folders (#18).

v0.1.2 - 2025-05-31

Deprecated

  • Path checks in pwd(::SFTP.Client) are deprecated (#13). This should be done during the instantiation of the SFTP.Client.

Fixed

  • Add fallback solution to determine a filemode in analyse_path with restricted access to the parent folder (#14).

v0.1.1 - 2025-05-24

Added

  • Overload Julia's dirname with a method for SFTP (#9).

Deprecated

  • The following methods have been deprecated to avoid type piracy (#8):
    • pwd(::URI)
    • splitdir(::URI)
    • basename(::URI)
  • For joinpath, the provided method by the URIs package is used, an internal cwd function replaces pwd, splitdir and basename will be removed without replacement.

Removed

  • The joinpath(::URI, paths::AbstractString...) method is directly removed as it seems, previously URIs' joinpath method was used anyway (#8).

Fixed

  • Ensure all AbstractString paths are converted to String in function readdir for correct processing of the paths (#10).

v0.1.0 - 2025-05-18

The initial release is based on SFTPClient (v0.4.4). All changes for this released are documented in respect to this version.

Added

  • Initial release with new project name SFTP.jl and new initial version v0.1.0
  • Prefer Logging over simple print commands
  • Overload stat with simplified stat method for a single path object (in contrast to statscan that scans the whole folder) and return an SFTP.StatStruct
  • Overlaod Base functions for the file system; new methods added for:
    • ispath
    • pwd
    • mkdir (previous mkdir was renamed to mkpath)
    • joinpath
    • splitdir
    • basename
  • Add labels for docs, CI status and Codecov in Readme
  • Add workflow for compat helper
  • Add changelog and automate with Changelog.jl

Changed

  • Update API
    • exported: upload, statscan,URI
    • public: Client, StatStruct, download, stat, filemode, ispath, isdir, isfile, islink, pwd, cd, mv,rm, mkdir, mkpath, readdir, walkdir, joinpath, splitdir, basename
  • Completely refactor code base, use concise variable names, format source code
  • Rename SFTPStatStruct to StatStruct (unexported) and refactor constructors
  • Rename SFTP to Client (unexported) and refactor constructors
  • Rename sftpstat to statscan
  • Rename mkdir to mkpath (as it has the functionality of mkpath, add new method for mkdir)
  • Update functionality of file system functions to more close resemble Julia's Base functions
    • Combine rm/rmdir in rm with a force flag
    • Sort results in readdir, stat, statscan, and walkdir (can be switched off with sort flag)
    • Introduce more checks and restrictions based on Julia's file system function/Unix functions
    • Check validity of a path
    • Add methods to pass a path as String to filemode and related functions instead of a StatStruct object
    • Allow recursive methods, where appropriate
  • Allow upload/download of directories
    • Add force/merge flag
    • Allow filtering of hidden files
    • Update and unify how paths are defined on the remote and local system
  • Refactor and extent tests
  • Update documentation

Removed

  • Remove CSV as dependecy and use readlines instead
  • Remove FileWatching, ArgTools, and NetworkOptions as dependency

Fixed

  • Overload walkdir and download instead of defining new functions
  • Ensure Windows paths are processed correctly
  • Several fixes concerning the representation of paths (especially under Windows)
  • Symlinks are now recognised by stat/statscan
  • walkdir correctly follows symlinks