Releases: nuxeo/nuxeo-drive
4.1.4
Core
- NXDRIVE-980: Renaming files server-side to solve duplicate issues results in wrong local files count
- NXDRIVE-1766: Fix extensions local server to listen on localhost
- NXDRIVE-695: File is not deleted on the server when the parent folder is renamed, while offline
- NXDRIVE-1695: Fix conflict resolving regression
- NXDRIVE-1392: Processor loops when a file is not found and locally created
- NXDRIVE-1671: Only cleanup well-formed folders in DirectEdit directory
- NXDRIVE-1746: Fix the
--ssl-no-verify
option from the CLI that is always set to False - NXDRIVE-1754: [macOS]
locale.getdefaultlocale()
fails with default language set to English - NXDRIVE-1780: Fix "Access online" context menu not opening the browser
- NXDRIVE-1642: [Windows] Fix renaming
- NXDRIVE-1660: Cannot rename root at the top level folder
- NXDRIVE-1673: Use native dialog when Qt is unavailable (for the fatal error screen only)
- NXDRIVE-1707: Set the UTF-8 encoding while opening/reading/writing text files
- NXDRIVE-1721: Fix
get_timestamp_from_date()
signature - NXDRIVE-1722: Correctly handle Unauthorized and Forbidden statuses
- NXDRIVE-1723: When selecting a local folder on auth, another folder is selected
- NXDRIVE-1727: Check for local folder rights and fail gracefully on permission error
- NXDRIVE-1731: Fix
UnboundLocalError: local variable 'handler_name' referenced before assignment
in Processor - NXDRIVE-1733: Fix missing "select" argument in open_local_file()
- NXDRIVE-1734: Ignore decoding issues when retrieving the path stored in xattrs
- NXDRIVE-1736: Filter out the
WinError 123
(about long file names too long) - NXDRIVE-1765: Skip inexistant files in DirectEdit's lock queue
- NXDRIVE-1773: Check the parent exists before trying to retrieve its details
- NXDRIVE-1774: Filter out urllib3 logging about "Certificate did not match..."
- NXDRIVE-1775: Bypass
PermissionError
raised from Path.resolve() - NXDRIVE-1776: Handle incorrect chunked encoding in Direct Edit's upload queue
- NXDRIVE-1777: Force re-download if a local file does not exist anymore but it is still referenced in the database
- NXDRIVE-1691: Make DAO attributes public
- NXDRIVE-1692: Make Engine's QueueManager public
- NXDRIVE-1728: Lower logging level of "Cannot find parent pair of postponed remote descendant, ..."
- NXDRIVE-1729: [macOS] Use EAFP to catch
FileNotFoundError
insend_content_sync_status()
- NXDRIVE-1735: Make Manager's engines public
- NXDRIVE-1740: Remove unpopular
Engine.get_errors()
- NXDRIVE-1779: Ensure the tmp folder is on the same partition than the sync folder
- NXDRIVE-1629: Enable to pause and resume downloads
- NXDRIVE-1669: Force write of file to disk
- NXDRIVE-1627: Pause all transfers when suspending the synchronization
- NXDRIVE-1628: Cleanup resumable upload implementation
- NXDRIVE-1683: Display a notification when DirectEdit'ing an inexistant document
- NXDRIVE-1700: Review
get_syncing_count()
- NXDRIVE-1714: Handle files transfers above 100 GB
- NXDRIVE-1717: Use
sizeof_fmt()
to have proper speed metrics - NXDRIVE-1744: Always use the full exception string when increasing an error
- NXDRIVE-1753: Improve uploads robustness
- NXDRIVE-1762: Display a progress bar when attaching the blob to a document
- NXDRIVE-1219: Use a dedicated temporary folder for downloads
- NXDRIVE-1474: Generate an AppImage for GNU/Linux distribution (not yet finished)
Tests
- NXDRIVE-1732: Better handling of the Direct Edit protocol
- NXDRIVE-1693: Fix file paths in the coverage report
- NXDRIVE-1687: Improve test results visualization
- NXDRIVE-1694: Add the SKIP envar to bypass specific actions
- NXDRIVE-1702: Enable concurrent pipeline builds
- NXDRIVE-1704: Add the current git branch in Sentry tags
- NXDRIVE-1769: Silence logging errors when running the tests suite
- NXDRIVE-1697: Add tests for the transfers pause/resume feature
Packaging / Build
- NXDRIVE-1793: Update pip before installing dependencies
- NXDRIVE-1703: Upgrade
sentry-sdk
- NXDRIVE-1760: Remove docstrings from packages
- NXDRIVE-1764: Upgrade to
PyInstaller
3.5 - NXDRIVE-1770: Upgrade from Python 3.7.3 to 3.7.4
Doc
- NXDRIVE-1745: Add a diff link in changes documentation
- NXDRIVE-1772: Share Windows scripts to ease day-to-day development
GUI
- NXDRIVE-1720: Fix a crash when selecting a root to sync
- NXDRIVE-1698: Display the progress bar when resuming an upload
- NXDRIVE-1752: Fix account removal when the server is not responding
- NXDRIVE-1681: Make server URL and local folder clickable in the Accounts settings
- NXDRIVE-1684: Display the file size in the systray
- NXDRIVE-1685: Display a progress bar when checking the file integrity
- NXDRIVE-1705: Add an option to remove local files when removing account
- NXDRIVE-1726: Show Account setting at statup if there is no account
- NXDRIVE-1688: Do not display the update channel in the release notes window
- NXDRIVE-1558: Display a progress bar when opening a file in DirectEdit
- NXDRIVE-1781: Display size details on progress of a download/upload
Download links:
4.1.3
Core
- NXDRIVE-1655: Initialize Remote upon connection
- NXDRIVE-1148: Better handle no space left on the device
- NXDRIVE-1616: Prevent double lock when DirectEdit'ing a document
- NXDRIVE-1639: Do not allow DirectEdit on older versions of document
- NXDRIVE-1644: Fix
LocalWatcher.rootMoved()
signal emitter - NXDRIVE-1657: Do not block the application on DirectEdit
- NXDRIVE-1661: Version compatibility function doesn't return the right result
- NXDRIVE-1676: Copy/overwrite db backup files instead of dumping/reading them
- NXDRIVE-1617: Accept events when the application is not frozen
- NXDRIVE-1618: Remove inexistant engines from the Manager engines list
- NXDRIVE-1631: [Windows] Handle files with the same name but different unicode norms
- NXDRIVE-1633: Fix supported partition check
- NXDRIVE-1634: Handle pair state moved-created as a conflict
- NXDRIVE-1637: [macOS] Skip unsaved documents in Photoshop and Illustrator
- NXDRIVE-1641: Fix bind-server CLI without the
--password
argument - NXDRIVE-1645: Fix bind-server CLI with bad
--password
value - NXDRIVE-1647: Check HTTPS when starting an engine
- NXDRIVE-1648: Removed whitespace characters from URLs
- NXDRIVE-1651: Expand environment variables in paths given to CLI arguments
- NXDRIVE-1662: [macOS] Handle
NSRangeException
while fetching opened documents in Adobe - NXDRIVE-1665: Ensure coherent response of ScrollDescendants
- NXDRIVE-1667: Filter out any error in
get_opened_files()
- NXDRIVE-1672: Ensure
Application.update_status()
is passed an Engine - NXDRIVE-1677: [Windows] Copy-paste and rename a local file while Drive is running does not work
- NXDRIVE-1682: Make the updater more robust against inappropriate server response
- NXDRIVE-1074: Remove Next engine source tree
- NXDRIVE-1251: Use the token everywhere
- NXDRIVE-1277: Review objects state export
- NXDRIVE-1636: Reduce ScrollDescendants calls for each folder
- NXDRIVE-1649: Review connection errors handling and logging
- NXDRIVE-1664: Add OS and Python versions to Sentry events
- NXDRIVE-1666: Handle lock conflicts in DirectEdit
- NXDRIVE-1668: Handle TrashPermissionError when moving a file to the trash
- NXDRIVE-1675: Catch
MemoryError
inFileInfo.get_digest()
- NXDRIVE-1632: [Windows] Prepare Nuitka switch
Tests
- NXDRIVE-1686: Improve testing of
guess_server_url()
- NXDRIVE-1583: [Windows] Add first integration tests: CLI arguments
- NXDRIVE-1623: [Windows] Add CLI sub-commands tests: clean-folder, console, bind-server and unbind-server
- NXDRIVE-1678: Re-run failed tests
Packaging / Build
- NXDRIVE-1624: Ensure the lock file integrity is correct
- NXDRIVE-1646: Fix SSH links in Jenkinsfiles
- NXDRIVE-1606: Publish ZIP'ed version of packages
Doc
- NXDRIVE-1635: Add "Version Added" in documentation parameters
- NXDRIVE-1654: Improve the support documentation
GUI
- NXDRIVE-1643: [Windows] Switch and radio button text is truncated with ellipsis with zoom at 175%
- NXDRIVE-1353: When "invalid credentials" occurs, display a direct link to log in in the account settings
- NXDRIVE-1572: Add a button to select/unselect all roots
- NXDRIVE-1575: Add a link to the update site on the fatal error window
- NXDRIVE-1580: When account is added, after filters are chosen, close the settings window
- NXDRIVE-1605: Display the server name next to the username in the accounts list
Download links:
4.1.2
Core
- NXDRIVE-1578: DirectEdit'ing a doc and saving multiple times by second fails
- NXDRIVE-1620: [Windows] Cannot rename a freshly created file
Tests
- NXDRIVE-1590: [Windows] Disable FS decorators when testing
GUI
- NXDRIVE-1572: Add a button to select/unselect all roots
Download links:
4.1.1
🔥 Big changes
- NXDRIVE-986: Creating a new folder then renaming generates meaningless URLs
⚠️ This is a big change as it will invalidate any shared URL containing the document's name. In other words, if one shared a simple URL, and if the document is renamed by anyone, the URL will end on a 404 error (not found). This is not the case if one used the official mecanism and shared the document using the "Share link" that is using the document's UID.
Core
- NXDRIVE-1608: Fix logging level setters
- NXDRIVE-1609: Application cannot handle nxdrive:// URL on first launch
- NXDRIVE-1612: [macOS] Improve running applications detection
- NXDRIVE-1613: Handle None
chunk_size
during upload - NXDRIVE-1614: Improve the
Action
class implementation - NXDRIVE-1571: Fix variable referenced before assignment in the
RemoteWatcher
- NXDRIVE-1588: Fix folders watch on Windows
- NXDRIVE-1600: [Windows]
OSError
withdatetime.fromtimestamp(t)
whent < 0
- NXDRIVE-1603: Improve URLs guesses upon connection
- NXDRIVE-1611: Add chunk upload options
- NXDRIVE-1601: Ensure SSL support when packaged
- NXDRIVE-1607: Improve URLs computation
Tests
- NXDRIVE-1593: Use java 11 for tests
Packaging / Build
- NXDRIVE-1573: Upgrade to Python from 3.6.7 to 3.6.8
GUI
- NXDRIVE-1557: Display progress bars in the systray menu
Download links:
4.1.0
🔥 Big changes
- NXDRIVE-1467: Implement FS decorator on Windows
- NXDRIVE-1109: Use the
pathlib
module to handle paths - NXDRIVE-1501: Prompt for confirmation when a user deletes a document locally
Core
- NXDRIVE-1492: Access to the local socket is denied
- NXDRIVE-1090: Long path names generates duplicata on folder creation
- NXDRIVE-1595: Fix malformed SSL certificate retrieving
- NXDRIVE-1585: Fix the french translation of
DATETIME_FORMAT
- NXDRIVE-1469: Display a message on forbidden DriveEdit action
- NXDRIVE-1550: Allow DirectEdit on custom xpath
- NXDRIVE-1493: Add DirectEdit support for the Adobe Creative Suite
- NXDRIVE-1519: Allow DirectEditing documents with the Folderish facet
- NXDRIVE-1221: Fix thread leaks
- NXDRIVE-1510: Handle
PermissionError
in get_open_files()` - NXDRIVE-1517: Ensure remote ref is always set
- NXDRIVE-1531: Fix QThread exception on exit
- NXDRIVE-1549: Fix DirectEdit unlock issue with missing Engine
- NXDRIVE-1574: DAO has no lock when Drive attempts to restore a db backup
- NXDRIVE-1497: Fix alert when a server is not responding
- NXDRIVE-1506: Do not fail on DirectEdit exit
- NXDRIVE-1511: Fix pair state for 'unsynchronized' and 'synchronized'
- NXDRIVE-1518: Fix watchdog observer
stop()
call - NXDRIVE-1523: (GNU/Linux) Handle paths with more than 143 chars on encrypted FS
- NXDRIVE-1540: Avoid renaming banned files
- NXDRIVE-1543: Make
LocalClient.exists()
return False on any OSError - NXDRIVE-1553: Check the uuid of a document before trashing it
- NXDRIVE-1555: Handle bad remote changes values
- NXDRIVE-1561: Display the fatal error screen only when necessary
- NXDRIVE-1562: Handle
MemoryError
in `get_open_files() - NXDRIVE-1567: Use UTF-8 as encoding when dumping a database
- NXDRIVE-1568: Fix authentication expired notification
- NXDRIVE-1587: Do not call Manager.stop() when the server is not compatible
- NXDRIVE-1588: Fix folders watch on Windows
- NXDRIVE-1596: Set the channel option to release by default
- NXDRIVE-1500: Review exception handling mechanisms
- NXDRIVE-1545: Avoid sending NotFound exceptions to Sentry
- NXDRIVE-1484: Backup manager and engine databases
- NXDRIVE-1494: Introduce specific getters and setters for database
- NXDRIVE-1559: Use separate prompts for downgrade in cases of incompatibility or wrong channel
- NXDRIVE-1468: Factorize FS decoration handling cross-platform
- NXDRIVE-1475: Use Sentry to share error logs
- NXDRIVE-1483: Ensure extensions are closed before upgrading
- NXDRIVE-1529: Review behavior of Windows registry functions
- NXDRIVE-1530: Handle
PermissionError
when trashing documents - NXDRIVE-1534: Do not consider HTTP timeouts as errors in the Remote Watcher
- NXDRIVE-1535: Handle
Unauthorized
errors from the Processor - NXDRIVE-1539: Fix invalid credentials handling when polling for changes
- NXDRIVE-1556: Display a warning when activating DEBUG logs about sensitive data
- NXDRIVE-1563: On macOS, prevent user from running the app from a modified path and inform them
- NXDRIVE-1569: Ignore Adobe InDesign lock files
- NXDRIVE-1594: Update log sharing dialog
- NXDRIVE-1597: Update options of type sequence instead of overwriting them
- NXDRIVE-1598: Ensure the QLocalSocket is connected before disconnection
- NXDRIVE-1537: Prompt the user for metrics sharing settings
Tests
- NXDRIVE-1503: Fix
test_collection.py
when it fails early - NXDRIVE-1536: Use mock'ed objects instead of manual swap
- NXDRIVE-818: Fix test_synchronize_no_space_left_on_device()
- NXDRIVE-1390: Fix pytest 3.9 warnings that break tests
- NXDRIVE-1514: Unskip
test_move_untrash_file_on_parent_with_no_rights()
since NXP-25066 has been resolved sometime ago - NXDRIVE-1546: Filter out
KeyboardInterrupt
errors from Sentry events - NXDRIVE-1542: Unlock tests parallelization!
- NXDRIVE-1436: Generate a unique test environment during the setup
Packaging / Build
- NXDRIVE-1521: Stick with pip 18.1
- NXDRIVE-1532: Fix several pyenv issues
Doc
- NXDRIVE-1522: Introduce DEPs 📖
GUI
- NXDRIVE-1489: Fix Resolution options display
- NXDRIVE-1527: Fix error display with long document title
- NXDRIVE-1528: Allow errors window to be resized
Download links:
4.0.4
Core
- NXDRIVE-1490: Fix certificate handling
Tests
- NXDRIVE-1448: Do not comment the job status multiple times
Download links:
4.0.3
Core
- NXDRIVE-927: Fix case sensitivity folder renaming on Windows
- NXDRIVE-1471: Do not alter the filename extension guessed from a Note
- NXDRIVE-1479: Handle Direct Edits with no xpath
- NXDRIVE-1481: Do not disclose the token in logs
- NXDRIVE-1477: Fix latest version computation in updater
- NXDRIVE-1464: Fix a crash when the engine database is removed
- NXDRIVE-1482: Do not raise error on null thread id
- NXDRIVE-1466: Add OS and Architecture dimensions to Analytics
- NXDRIVE-1480: Add "file" to ignored options
Packaging / Build
- NXDRIVE-1463: Do not abort on error in changelog.py
Doc
- NXDRIVE-1478: Add values interpolation section in the configuration documentation
GUI
- NXDRIVE-1465: Disable the auto-update switch when auto-update is disabled
Download links:
4.0.2
Changes in command line arguments:
- Added
ca-bundle
. - Added
channel
. - Deleted
beta-update-site-url
.
Core
- NXDRIVE-1433: Add the ca-bundle option to allow setting a custom SSL certificate
- NXDRIVE-1432: Remove automatic logout before login
- NXDRIVE-1347: Disable the auto-updater for development packaged version
- NXDRIVE-1438: Introduce update channels
GUI
- NXDRIVE-404: Handle custom SSL certificates
- NXDRIVE-1385: Missing translations
- NXDRIVE-1460: Better handle the path folder selection in account creation
Packaging / Build
- NXDRIVE-1458: Display "Nuxeo Drive" in Windows notifications center and tasks manager
Download links:
4.0.1
Changes in command line arguments:
• Changed consider-ssl-errors
with default as True
to ssl-no-verify
with default as False
.
Core
- NXDRIVE-1259: Be more consistent with file/folder renaming
- NXDRIVE-1434: Fix the "consider-ssl-errors" option implementation
- NXDRIVE-1213: Prevent ignored files from coming back in error after some time
- NXDRIVE-1236: Fix datetime.fromtimestamp() erronously throws an OSError on Windows
- NXDRIVE-1417: Handle null properties in objects instantation
- NXDRIVE-1419: Remove hotfixes requirements from versions.yml
- NXDRIVE-1430: Use SHA256 for Note checksum
- NXDRIVE-1428: Remove unused functions and methods
- NXDRIVE-1401: Clean up usage of deprecated server-side Automation operations
- NXDRIVE-1431: Replace Try, Except, Pass with contextlib.suppress()
- NXDRIVE-1254: Finalize type annotations
- NXDRIVE-1412: Replace "Synchronization completed" label by "Synchronization complete"
- NXDRIVE-1421: Enable text selection on server URL and destination folder
- NXDRIVE-1442: Rename the consider-ssl-error option to ssl-no-verify
- NXDRIVE-1250: Create the Windows sub-installer for additionnal features
- NXDRIVE-1405: Handle local INI system-wide configuration
GUI
- NXDRIVE-1418: Fix the error and conflict notifications' action
- NXDRIVE-1413: Prevent long server URL from moving folder and settings icons to the right
- NXDRIVE-1407: Display CLI arguments in the fatal error screen
- NXDRIVE-1410: Add a frame to systray layer
- NXDRIVE-1411: Use consistent icons to edit document / open local folder
Packaging / Build
- NXDRIVE-1389: Upgrade Python from 3.6.6 to 3.6.7
- NXDRIVE-1404: Create a Windows installer for system wide installation
Tests
- NXDRIVE-1444: Bump the server version from 10.3 to 10.10
Doc
- NXDRIVE-1424: Fix Windows uninstallation documentation
- NXDRIVE-1427: Update the GNU/Linux installation steps in the README
- NXDRIVE-1422: Move technical changes into individual change notes
- NXDRIVE-1425: Add 3.1.2 change notes
Download links:
4.0.0
New authentication process using the user's browser.
Changes in command line arguments:
- Removed
proxy-exceptions
- Removed
proxy-type
Breaking Changes
- NXDRIVE-691: Upgrade from Python 2.7.15 to Python 3.6.6
- NXDRIVE-692: Upgrade from PyQt 4.12.1 to PyQt 5.11.2
- NXDRIVE-825: Rely on the Python client for all Nuxeo API calls
- NXDRIVE-1068: Move proxy support to a dedicated module
- NXDRIVE-1226: Unsupport macOS 10.10 (Yosemite)
Core
- NXDRIVE-1171: Handle latin accents in Windows session usernames
- NXDRIVE-1239: DirectEdit should work after network loss
- NXDRIVE-1286: Ignore documents when the system cannot find the file
- NXDRIVE-659: Fix permissions awareness when resuming synchronization
- NXDRIVE-844: SIGSEGV when opening the conflicts window while syncing many documents
- NXDRIVE-1262: Do not rely on XCode on macOS
- NXDRIVE-1284: Set all required server versions for the auto-updater
- NXDRIVE-1369: Display a message and allow downgrade when Drive version >= 4.0 and server doesn't have browser login
- NXDRIVE-1244: Ensure Drive is closed before auto-upgrading on Windows
- NXDRIVE-1260: Remove "default-domain" from default URL when JSF UI is selected
- NXDRIVE-1307: Do not use
nxdrive
protocol from the FinderSync extension - NXDRIVE-1331: Conflict when synchronizing files with Japanese characters
- NXDRIVE-1333: Fix logging issues with non-latin characters on Windows
- NXDRIVE-1398: Allow stable updates when using the beta channel
- NXDRIVE-1247: Automatically restart Finder after installation from a version < 3.1.0
- NXDRIVE-1256: Fix the missing synchronization folder icon on Windows
- NXDRIVE-1296: Handle date based server version in the auto-update framework
- NXDRIVE-1320: Review the communication between Drive and the FinderSync extension
- NXDRIVE-1223: Use a fork of universal-analytics-python that supports Python 3
- NXDRIVE-1240: Use black for a big code clean-up
- NXDRIVE-1241: Set the --consider-ssl-errors argument default value to True
- NXDRIVE-1279: Use flake8 for another clean-up round
- NXDRIVE-1372: Remove some usages of deprecated server-side code
- NXDRIVE-1287: Better server error 500 reporting
- NXDRIVE-1384: Only allow update to 4.X when the new authentication flow is available
- NXDRIVE-605: Handle corrupted SQLite database
- NXDRIVE-1242: Use type annotations everywhere
- NXDRIVE-1282: Use the pre-commit tool to ensure a good quality code
- NXDRIVE-1313: Translator._tokenize() mutates the values list
- NXDRIVE-1339: Handle boolean parameters
- NXDRIVE-1291: Use the user's browser for authentication
- NXDRIVE-1238: [GDPR] Remove the username from statistics
Tests
- NXDRIVE-1178: Test automatic proxy configuration
- NXDRIVE-1281: Cover the whole DirectEdit feature with tests
- NXDRIVE-1201: Adapt Drive for new Trash API behavior
- NXDRIVE-1246: Fix pytest randombug plugin STRICT mode
- NXDRIVE-1299: Fix direct calls to fixtures in tests
- NXDRIVE-1298: Remove use of the mock third-party module
- NXDRIVE-1370: Use a random string for the database name and user in PGSQL
- NXDRIVE-1212: Disable all server converters, enabled on-demand
- NXDRIVE-1293: Tweak timeouts in testing jobs on Jenkins
- NXDRIVE-1316: Only run tests when code files are modified or build is launched manually
- NXDRIVE-1334: Improve the random bug pytest plugin: display the run number
- NXDRIVE-1336: Catch warnings when running tests
Packaging / Build
- NXDRIVE-1217: Hide the Dock icon on macOS
- NXDRIVE-1301: Fix PyQt5 QML paths to allow codesigning on macOS
- NXDRIVE-1342: Handle Windows session names with unicode
- NXDRIVE-1225: Be specific about pyobjc requirements
- NXDRIVE-1229: Do not install Drive in %APPDATA% but %LOCALAPPDATA% folder on Windows
- NXDRIVE-1232: Split the macOS installer build to support macOS 10.11
Doc
- NXDRIVE-1397: Use individual changelog file for each version
- NXDRIVE-1276: Add documentation about Nuxeo Platform support
GUI
- NXDRIVE-1195: Add a setting to let the user choose the icons set
- NXDRIVE-1249: Add "start on boot" option on windows
- NXDRIVE-1235: Disable Hebrew language as it is not translated
- NXDRIVE-1258: Better handle unknown digest algorithms
- NXDRIVE-1267: Add a notification when DirectEdit starts the download of a file
- NXDRIVE-1231: Add a message box to display fatal errors
- NXDRIVE-1300: Display an error on bad configuration parameters
- NXDRIVE-1306: Validate account and proxy popup on Enter key press
- NXDRIVE-1314: Add a placeholder text in server URL
- NXDRIVE-1324: When no synchronization roots are set, inform the user
- NXDRIVE-1325: Enable the click on the placeholder image to add an account
- NXDRIVE-1326: Add a feedback link in the "About" tab of Nuxeo Drive
Download links: