gfal2-util release notes
========================

## Tue Dec 12 2023 Mihai Patrascoiu <mipatras@cern.ch> - 1.8.1
### Bug
- [DMC-1395] - Gfal2 CLI return code is not within bash return code range
- [gfal2-util/issues/1] - gfal-copy fails to complete the data transfer but returns exit code 0
- [cern-fts/gfal2-util/pull/5] - CommandRm should call CommandBase constructor (solve issue #4)
### New Feature
- [DMC-1344] - Propagate Scitags during TPC transfers
### Task
- [DMC-1327] - DMC packages for Centos Stream 9
- [DMC-1359] - Data Management Clients for Fedora 37
- [DMC-1379] - Move DMC projects to Alma8 and Alma9
- [DMC-1387] - Data Management Clients for Fedora 38
- [DMC-1389] - Port Gfal2 Python3 projects away from "distutils"

## Fri Sep 02 2022 Joao Lopes <batistal@cern.ch> - 1.8.0
### Bug
- [DMC-1328] - Exception with gfal-copy progress bar when source size is known and transfer rate is not reported yet
### New Feature
- [DMC-1319] - Renew gfal-legacy-bringonline command
- [DMC-1332] - Create gfal-archivepoll command
### Task
- [DMC-1336] - Data Management Clients for Fedora 36
- [DMC-1341] - Change gfal2-util license to Apache 2.0
### Improvement
- [DMC-1208] - Gfal2-util bringonline with "--from-file" option
- [gfal2-util/pull/7] - Add missing man page section for "gfal-legacy-register"
### Sub-task
- [DMC-1333] - Create a single file for tape commands in gfal-util
- [DMC-1342] - gfal-archivepoll with "--from-file" option
- [DMC-1343] - Create gfal-evict command

## Mon Mar 07 2022 Mihai Patrascoiu <mipatras@cern.ch> - 1.7.1
### Bug
- [DMC-1285] - Stuck transfers to XRoot sites with enabled TLS
- [DMC-1288] - Python3 "gfal-cat" fails on binary files
- [gfal2-util/pull/5] - DMC-1285: Transfers gets stuck when calling subprocess
### Task
- [DMC-1299] - Update man pages for gfal2-util
### Improvement
- [DMC-1308] - Move Data Management Clients to Fedora 34 & 35

## Thu Sep 23 2021 Joao Lopes <batistal@cern.ch> - 1.7.0
### Epic
- [DMC-1249] - Migrate CI infrastructure to gitlab-CI
### New Feature
- [DMC-1265] - Export SE token retrieval in Gfal2 Python binding
### Task
- [DMC-1250] - Gfal2 packages for Centos8
- [DMC-1264] - Gfal2 packages for Fedora >= 33

## Thu Nov 19 2020 Petr Vokac <petr.vokac at cern.ch> - 1.6.0
### Improvement
- [DMC-1223] make sources compatible with python 2.4 - 3.9
- [DMC-1223] automatically choose available python interpreter
  the one from GFAL_PYTHONBIN env is most preferred
  with fallback to python3, python2, python
- [DMC-1223] drop separate python3 code
- [DMC-1229] Introduce Gfal2 transfer parameter to enable/disable proxy delegation
- Fix the parsing of passed-in definitions to allow complex groups

## Mon Sep 14 2020 Mihai Patrascoiu <mipatras at cern.ch> - 1.5.4
### Bug
- [DMC-1212] - Prevent gfal2-copy output crashing when filesize is reported 0
- [DMC-1222] - gfal-rm reports return code 0 on MISSING file URLs
### Improvement
- [DMC-1225] - Allow gfal2 CLI clients to separate output generated by the clients from gfal2 library log output
- Change order of uid/gid to match POSIX 'ls -l'

## Thu Jul 11 2019 Andrea Manzi <amanzi at cern.ch> - 1.5.3
### Bug
- [DMC-1155] - gfal-rm with signed https URL gives 401 error
### Task
- [DMC-1150] - Set XrdSecGSIDELEGPROXY=1 in gfal-copy to enable XRD TPC with delegation

## Thu Feb 21 2019 Andrea Manzi <amanzi at cern.ch> - 1.5.2
### Bug
- [DMC-1070] - gfal-ls cannot list WebDAV directories
- [DMC-1142] - Shebang on gfal-utils commands should specify python2 instead of python
### Improvement
- [DMC-1124] - Add --copy-mode to gfal-copy
- [DMC-1077] - gfal-copy --just-copy stats dest

## Wed Jun 21 2017 Alejandro Alvarez <aalvarez at cern.ch> - 1.5.1
### Bug
- [DMC-933] - gfal-copy does stat/propfind even if --just-copy is given

## Mon Feb 06 2017 Alejandro Alvarez <aalvarez at cern.ch> - 1.5.0
### Bug
- [DMC-883] - gfal-ls fails when trying to evaluate the LS_COLORS envvar
- [DMC-899] - gfal2-util must use /usr/bin/env python as shebang
### New Feature
- [DMC-892] - Generalize checksum methods
### Improvement
- [DMC-880] - If the option -t is passed, make sure that Davix knows it

## Mon Aug 01 2016 Alejandro Alvarez <aalvarez at cern.ch> - 1.4.0
### New Feature
- [DMC-862] - /some/path: Automatically prefix things with file://
- [DMC-865] - If destination file is special type (i.e. stdout, null), do not fail
### Improvement
- [DMC-836] - Add bulk deletion option

## Mon Mar 07 2016 Alejandro Alvarez <aalvarez at cern.ch> - 1.3.2
### Bug
- [DMC-807] - gfal2-util: -4 and -6 flags do nothing
### Improvement
- [DMC-810] - Better document timeout vs transfer timeout

## Mon Nov 09 2015 Alejandro Alvarez <aalvarez at cern.ch> - 1.3.1
### Bug
- [DMC-767] - Register callbacks in gfal-copy
- [DMC-768] - Fix progress bar for gfal-copy

## Mon Oct 12 2015 Alejandro Alvarez <aalvarez at cern.ch> - 1.3.0
### Bug
- [DMC-723] - gfal2-copy does not allow adding new replicas to an LFC entry
### Epic
- [DMC-698] - Port DMC clients to MacOSX
### Improvement
- [DMC-672] - When listing extended attributes, do not stop on failure
- [DMC-674] - Validate version as part of the packaging
- [DMC-709] - In gfal-ls, show size before date, as with system's ls
- [DMC-710] - Add partial support for LS_COLORS
- [DMC-721] - Man pages for gfal-copy missing information on how to register into the LFC
### New Feature
- [DMC-706] - Add --full-time and --time-style flags to gfal-ls
- [DMC-730] - Add a gfal-chmod command

## Fri Apr 10 2015 Alejandro Alvarez <aalvarez at cern.ch> - 1.2.1
### Bug
- [DMC-599] - Transfer timeout not respected
- [DMC-628] - Stat surl before deciding if doing unlink or rmdir
### Improvement
- [DMC-649] - Core: Improve logger system, deprecate old methods
### New Feature
- [DMC-532] - gfal-copy -r (recursive)
- [DMC-545] - Provide --dry-run for gfal-rm
- [DMC-585] - Add a gfal-rename command
- [DMC-667] - Make version (--version/-V) flag more verbose

## Fri Nov 07 2014 Alejandro Alvarez <aalvarez at cern.ch> - 1.1.0
- [DMC-517] - Update gfal-copy manpage
- [DMC-522] - is_alive is not available in Python 2.4 (EL5)
- [DMC-442] - gfal-copy should accept a checksum parameter
- [DMC-467] - Create a cli around xattr+replicas to ease its use 
- [DMC-481] - Expose 'strict mode' parameter via Python bindings and gfal2-util
- [DMC-513] - New command gfal-stat
- [DMC-405] - support input from file in gfal-copy and gfal-del

## Wed Jul 02 2014 Alejandro Alvarez <aalvarez at cern.ch> - 1.0.0
- [LCGUTIL-313] - gfal-copy force not working
- [LCGUTIL-401] - Pass overwrite (--force) parameter to gfal2
- [LCGUTIL-415] - gfal-ls barfs with head (sometimes)
- [LCGUTIL-308] - gfal-cp to support chained copies?
- [LCGUTIL-314] - gfal2 default timeout
- [LCGUTIL-385] - GridFTP listing improvement (RELNOTE: session reuse enabled by default!)
- [LCGUTIL-387] - Add buffer size parameter to gfal-cp
- [LCGUTIL-392] - gfal-copy does not give the option to create parent directory
- [LCGUTIL-283] - add an option to specify credentials to gfal-utils tools
- [LCGUTIL-431] - Allow to do an ls with additional metadata
- [LCGUTIL-340] - gfal2 - utils : exception triggered on gfal2-ls -l
- [LCGUTIL-404] - gfal2-util broken on SL5
- [LCGUTIL-413] - gfal-ls -l should indicate file type

## Version 0.2.0 :
- [LCGUTIL-75] - gfal-tools : implement basic cancel logic in order to interrupt I/O operation
- [LCGUTIL-76] - gfal-utils : implement advanced cancel logic in order to interrupt I/O operation
- [LCGUTIL-208] - gfal-utils : gfal-ls should be able to stat() file and do long style listing of directory like "ls -l"
- [LCGUTIL-209] - gfal-utils : gfal-copy should have a progress bar to allow to follow the status of a transfer
- [LCGUTIL-252] - Add a gfal-gettturls (or similar)
- [LCGUTIL-247] - GFAL2-UTILS : gfal-utils interrupt cmd line are not triggered properly

## Version 0.0.14-0.1.alpha
- initial release of gfal-copy logic with basic third-party and copy support
- initial release of gfal-sum, the checksum calculation tool
- initial release of gfal-rm, remove file tools
- add support for spacetokens inside gfal-copy
- add fast cancel operation support inside gfal2-utils
- preview and demonstration purpose only

