Skip to content

Latest commit

 

History

History
346 lines (254 loc) · 10.2 KB

history.rst

File metadata and controls

346 lines (254 loc) · 10.2 KB

x.x.x (xx-xx-xxxx)

0.22.3 (05-01-2024) - minimal python version downgraded to 3.8

0.22.2 (29-12-2023)

  • ci: separate build and publish jobs

0.22.1 (29-12-2023)

  • docs: update/fix readthedocs configuration
  • ci: fix workflow file extension from yaml to yml

0.22.0 (29-12-2023)

  • client.list: fix infinite symlink loop for . and .. on FTP servers with UNIX-like filesystem for client.list(path, recursive=True)
  • project file structure: refactor to use pyproject.toml
  • minimal python version bumped to 3.11
  • ci: update publish/deploy job (#171)

0.21.4 (13-10-2022)

  • tests: use pytest_asyncio strict mode and proper decorations (#155)
  • setup/tests: set low bound for version of async-timeout (#159)

0.21.3 (15-07-2022)

  • server/`LIST`: prevent broken links are listed, but can't be used with stat
  • server: make User.get_permissions async

0.21.2 (22-04-2022)

  • tests: remove exception representation check

0.21.1 (20-04-2022)

- tests: replace more specific ConnectionRefusedError with OSError for compatibility with FreeBSD (#152) Thanks to AMDmi3 https://github.com/AMDmi3

0.21.0 (18-03-2022) ------------------- server: support PASV response with custom address (#150) Thanks to janneronkko https://github.com/janneronkko

0.20.1 (15-02-2022) ------------------- server: fix real directory resolve for windows (#147) Thanks to ported-pw https://github.com/ported-pw

0.20.0 (27-12-2021) ------------------

  • add client argument to set priority of custom list parser (parse_list_line_custom_first) (#145)

- do not ignore failed parsing of list response (#144) Thanks to spolloni https://github.com/spolloni

0.19.0 (08-10-2021) ------------------

  • add client connection timeout (#140)

- remove explicit coroutine passing to asyncio.wait (#134) Thanks to decaz

0.18.1 (03-10-2020) ------------------

  • sync tests with new siosocks (#127)
  • some docs fixes
  • log level changes

0.18.0 (03-09-2020) ------------------

  • server: fix MLSX time format (#125)

- server: resolve server address from connection (#125) Thanks to PonyPC

0.17.2 (21-08-2020) ------------------

  • server: fix broken python -m aioftp after 3.7 migration

0.17.1 (14-08-2020) ------------------

  • common/stream: add readexactly proxy method

0.17.0 (11-08-2020) ------------------

  • tests: fix test_unlink_on_dir on POSIX compatible systems (#118)
  • docs: fix extra parentheses (#122)

- client: replace ClientSession with Client.context Thanks to AMDmi3, Olegt0rr

0.16.1 (09-07-2020) ------------------

  • client: strip date before parsing (#113)
  • client: logger no longer prints out plaintext password (#114)

- client: add custom passive commands to client (#116) Thanks to ndhansen

0.16.0 (11-03-2020) ------------------

- server: remove obsolete pass to pass_ command renaming Thanks to Puddly

  • client: fix leap year bug at parse_ls_date method

- all: add base exception class Thanks to decaz

0.15.0 (07-01-2020)

- server: use explicit mapping of available commands for security reasons Thanks to Puddly for report

0.14.0 (30-12-2019)

  • client: add socks proxy support via siosocks (#94)

- client: add custom list parser (#95) Thanks to purpleskyfall, VyachAp

0.13.0 (24-03-2019)

  • client: add windows list parser (#82)
  • client/server: fix implicit ssl mode (#89)
  • tests: move to pytest

- all: small fixes Thanks to jw4js, PonyPC

0.12.0 (15-10-2018)

- all: add implicit ftps mode support (#81) Thanks to alxpy, webknjaz

0.11.1 (30-08-2018)

  • server: fix memory pathio is not shared between connections

- client: add argument to list to allow manually specifying raw command (#78) Thanks to thirtyseven

0.11.0 (04-07-2018)

  • client: fix parsing ls modify time (#60)

- all: add python3.7 support (__aiter__ must be regular function since now) (#76, #77) Thanks to saulcruz, NickG123, rsichny, Modelmat, webknjaz

0.10.1 (01-03-2018)

- client: more flexible EPSV response parsing Thanks to p4l1ly

0.10.0 (03-02-2018)

  • server: fix ipv6 peername unpack
  • server: connection object is accessible from path-io layer since now
  • main: add command line argument to set version of IP protocol
  • setup: fix failed test session return zero exit code
  • client: fix download-mkdir (issue #68)
  • client/server: add initial ipv6 support (issue #63)

- client: change PASV to EPSV with fallback to PASV Thanks to jacobtomlinson, mbkr1992

0.9.0 (04-01-2018)

  • server: fix server address in passive mode
  • server: do not reraise dispatcher exceptions

- server: remove wait_closed, close is coroutine since now Thanks to yieyu, jkr78

0.8.1 (08-10-2017)

- client: ignore LIST lines, which can't be parsed Thanks to bachya

0.8.0 (06-08-2017)

- client/server: add explicit encoding Thanks to anan-lee

0.7.0 (17-04-2017)

  • client: add base LIST parsing
  • client: add client.list fallback on MLSD «not implemented» status code to LIST
  • client: add client.stat fallback on MLST «not implemented» status code to LIST
  • common: add setlocale context manager for LIST parsing, formatting and thread-safe usage of locale
  • server: add LIST support for non-english locales

- server: fix PASV sequencies before data transfer (latest PASV win) Thanks to jw4js, rsichny

0.6.3 (02-03-2017)

- stream.read will read whole data by default (as asyncio.StreamReader.read) Thanks to sametmax

0.6.2 (27-02-2017)

  • replace docopt with argparse
  • add syst server command

- improve client list documentation Thanks to thelostt, yieyu

0.6.1 (16-04-2016)

  • fix documentation main page client example

0.6.0 (16-04-2016)

  • fix modifed time field for list command result
  • add ClientSession context

- add REST command to server and client Thanks to rsichny

0.5.0 (12-02-2016)

  • change development status to production/stable
  • add configuration to restrict port range for passive server

- build LIST string with stat.filemode Thanks to rsichny

0.4.1 (21-12-2015)

  • improved performance on non-throttled streams
  • default path io layer for client and server is PathIO since now
  • added benchmark result

0.4.0 (17-12-2015)

  • async for for pathio list function
  • async context manager for streams and pathio files io
  • python 3.5 only
  • logging provided by "aioftp.client" and "aioftp.server"
  • all path errors are now reraised as PathIOError
  • server does not drop connection on path io errors since now, but return "451" code

0.3.1 (09-11-2015)

  • fixed setup.py long-description

0.3.0 (09-11-2015)

  • added handling of OSError in dispatcher
  • fixed client/server close not opened file in finally
  • handling PASS after login
  • handling miltiply USER commands
  • user manager for dealing with user accounts
  • fixed client usage WindowsPath instead of PurePosixPath on windows for virtual paths
  • client protected from "0.0.0.0" ip address in PASV
  • client use pathio
  • throttle deal with multiply connections
  • fixed throttle bug when slow path io (#20)
  • path io timeouts moved to pathio.py
  • with_timeout decorator for methods
  • StreamIO deals with timeouts

- all socket streams are ThrottleStreamIO since now Thanks to rsichny, tier2003

0.2.0 (22-09-2015)

  • client throttle
  • new server dispatcher (can wait for connections)
  • maximum connections per user/server
  • new client stream api
  • end of line character "rn" everywhere
  • setup.py support
  • tests via "python setup.py test"

- "sh" module removed from test requirements Thanks to rsichny, jettify

0.1.7 (03-09-2015)

  • bugfix on windows (can't make passive connection to 0.0.0.0:port)
  • default host is "127.0.0.1" since now
  • silently ignoring ipv6 sockets in server binding list

0.1.6 (03-09-2015)

  • bugfix on windows (ipv6 address come first in list of binded sockets)

0.1.5 (01-09-2015)

  • bugfix server on windows (PurePosixPath for virtual path)

0.1.4 (31-08-2015)

- close data connection after client disconnects Thanks to rsichny

0.1.3 (28-08-2015)

  • pep8 "Method definitions inside a class are surrounded by a single blank line"

- MemoryPathIO.Stats should include st_mode Thanks to rsichny

0.1.2 (11-06-2015)

  • aioftp now executes like script ("python -m aioftp")

0.1.1 (10-06-2015)

  • typos in server strings
  • docstrings for path abstraction layer

0.1.0 (05-06-2015)

  • server functionality
  • path abstraction layer

0.0.1 (24-04-2015)

  • first release (client only)