Releases: LycheeOrg/Lychee
Version 4.6.2-RC1 - Upgrade to Laravel 9 and Improved front-end
What's Changed
- Arrayable DTO using reflection by @ildyria in #1529
- Adopt new modern dialog by @nagmat84 in #1519
- Consolidate localization by @nagmat84 in #1494
- Add option to skip diagnostic checks by @qwerty287 in #1558
- File cleanups and remove Homestead by @qwerty287 in #1563
- Upgrade to Laravel 9 + switch to Laragear/WebAuthn by @ildyria in #1469
- Add option to append tags by @qwerty287 in #1564
- composer update by @ildyria in #1571
- V4.6.2 by @ildyria in #1574
Full Changelog: v4.6.1...v4.6.2-RC1
Version 4.6.1
IMPORTANT
- This update contains a Security Update which fix multiple XSS vulnerability and update the Content Security Policy.
- This update will drop the API key in favor to Authorization token.
As a result, once the migration is applied the old API token won't work anymore.
What's Changed
- Drop page support by @ildyria in #1489
- Add user and better structure to session json by @nagmat84 in #1443
- Move 'installation:complete' to web instead of per route by @ildyria in #1467
- Cleaning config table by @ildyria in #1491
- Update Exec.php by @corrilan in #1153
- Ensure that Admin rights are overloading others by @ildyria in #1508
- Improve config options by @qwerty287 in #1366
- Fixes #1514 by @nagmat84 in #1515
- Shared albums should not consider the
require_link
property. by @ildyria in #1480 - Improve API client usability by @qwerty287 in #1368
- Improve & fix CSP by @ildyria in #1528
- Fixes #1506 by @nagmat84 in #1516
- Remove use directive by @nagmat84 in #1537
- i18n(ES) by @joebordes in #1541
- i18n(EN) grammar and syntax detected by Grammarly by @joebordes in #1542
- Fix dead Installation/Build link in readme.md by @PeterDaveHello in #1543
- Typofixes by @nexxai in #1544
- Add an option to regenerate square thumbs by @kamil4 in #1545
- add exec check by @ildyria in #1540
- Add csp exceptions by @kamil4 in #1551
New Contributors
- @corrilan made their first contribution in #1153
- @joebordes made their first contribution in #1541
- @PeterDaveHello made their first contribution in #1543
- @nexxai made their first contribution in #1544
Full Changelog: v4.6.0...v4.6.1
Version 4.6.1 RC1
IMPORTANT
- This update contains a Security Update which fix multiple XSS vulnerability and update the Content Security Policy.
- This update will drop the API key in favor to Authorization token.
As a result, once the migration is applied the old API token won't work anymore.
What's Changed
- Drop page support by @ildyria in #1489
- Add user and better structure to session json by @nagmat84 in #1443
- Move 'installation:complete' to web instead of per route by @ildyria in #1467
- Cleaning config table by @ildyria in #1491
- Update Exec.php by @corrilan in #1153
- Ensure that Admin rights are overloading others by @ildyria in #1508
- Improve config options by @qwerty287 in #1366
- Fixes #1514 by @nagmat84 in #1515
- Shared albums should not consider the
require_link
property. by @ildyria in #1480 - Improve API client usability by @qwerty287 in #1368
- Improve & fix CSP by @ildyria in #1528
- version 4.6.1 by @ildyria in #1533
New Contributors
Full Changelog: v4.6.0...v4.6.1-RC1
Version 4.6.0 - Refactoring of Authentication layer - Admin login changed!
Important
Once the migration is applied, should you wish to rollback, you will need to reset your admin user otherwise it will not be possible to log as admin anymore.
What's Changed
- Provide an ASCII fallback for multibyte filenames by @kamil4 in #1453
- Cleanup download tests by @nagmat84 in #1457
- Run
npm install
in post-merge hook by @qwerty287 in #1445 - Authorization tests by @nagmat84 in #1414
- Fix CI badge in readme by @d7415 in #1460
- just remove --no-suggest by @ildyria in #1463
- Use Laravel Auth facade. by @ildyria in #1403
- Fix user test by @nagmat84 in #1471
- Fixes #1473 by @nagmat84 in #1475
- Fixes #1472 by @nagmat84 in #1474
- sync Front-end by @ildyria in #1479
- Pull Request template by @ildyria in #1485
- v4.6.0-RC3 by @ildyria in #1486
- remove $locale in favor of Lang::get() by @ildyria in #1490
- fix Installation by @ildyria in #1495
- Fix installation again. by @ildyria in #1505
Full Changelog: v4.5.3...v4.6.0
Version 4.6.0 RC3 - Refactoring of Authentication layer - Admin login changed!
Important
Once the migration is applied, should you wish to rollback, you will need to reset your admin user otherwise it will not be possible to log as admin anymore.
What's Changed
- Fixes #1473 by @nagmat84 in #1475 (v4.6.0-RC)
- Fixes #1472 by @nagmat84 in #1474 (v4.6.0-RC)
- Provide an ASCII fallback for multibyte filenames by @kamil4 in #1453
- Cleanup download tests by @nagmat84 in #1457
- Run
npm install
in post-merge hook by @qwerty287 in #1445 - Authorization tests by @nagmat84 in #1414
- Fix CI badge in readme by @d7415 in #1460
- just remove --no-suggest by @ildyria in #1463
- Use Laravel Auth facade. by @ildyria in #1403
Full Changelog: v4.5.3...v4.6.0-RC3
Version 4.6.0 RC2 - Refactoring of Authentication layer - Admin login changed!
Important
Once the migration is applied, should you wish to rollback, you will need to reset your admin user otherwise it will not be possible to log as admin anymore.
What's Changed
- Fixes #1473 by @nagmat84 in #1475 (v4.6.0-RC)
- Fixes #1472 by @nagmat84 in #1474 (v4.6.0-RC)
- Provide an ASCII fallback for multibyte filenames by @kamil4 in #1453
- Cleanup download tests by @nagmat84 in #1457
- Run
npm install
in post-merge hook by @qwerty287 in #1445 - Authorization tests by @nagmat84 in #1414
- Fix CI badge in readme by @d7415 in #1460
- just remove --no-suggest by @ildyria in #1463
- Use Laravel Auth facade. by @ildyria in #1403
Full Changelog: v4.5.3...v4.6.0-RC2
Version 4.6.0 RC - Refactoring of Authentication layer - Admin login changed!
Important
Once the migration is applied, should you wish to rollback, you will need to reset your admin user otherwise it will not be possible to log as admin anymore.
What's Changed
- Provide an ASCII fallback for multibyte filenames by @kamil4 in #1453
- Cleanup download tests by @nagmat84 in #1457
- Run
npm install
in post-merge hook by @qwerty287 in #1445 - Authorization tests by @nagmat84 in #1414
- Fix CI badge in readme by @d7415 in #1460
- just remove --no-suggest by @ildyria in #1463
- Use Laravel Auth facade. by @ildyria in #1403
Full Changelog: v4.5.3...v4.6.0-RC
Version 4.5.3 - New folder structure & more
This is official release making the step from 4.4.0.
IMPORTANT
- The internal representation of Albums changed with version 4.5.0; we strongly recommend that you BACK UP YOUR DATABASE BEFORE UPDATING.
- The folder structure changed for images; please check the required directory permissions.
Read more here ».
Notable Modifications (since 4.4.0)
-
New ID scheme. Albums and photos are migrated to a new ID scheme. Previously, albums and photos used time-based integer IDs. The new IDs are truly 144bit of randomness encoded in Base64 as a 24-character string; e.g., if your photo had the URL
https://my-domain.tld/r/16102925744307/16102927818284
before, it may have the URLhttps://my-domain.tld/r/GTqZfSso3nPeCnTNW4ovisgC/jM6KkmlK7X0LtVas5MjrHtTO
after the migration. This means, external links to your albums or photos will stop working. However, we implemented a redirection service. You can enable/disable the re-direction service underSettings
>More
>legacy_id_redirection
. This gives you time to migrate any external reference to the new IDs. We also generate a log entry every time the redirection service is used. This log contains the legacy and new ID as well as information where the request came from. This may help you with the migration of your external links. -
New folder structure for images:
- Deep directory structure. Instead of all images of a certain kind residing in a single, flat directory (potentially containing thousands of files), we now have two additional two-letter directory levels under each kind (e.g., images are stored as
medium/ba/d0/9a28ec995ead4877dfa1befa2d3b.jpg
). - HiDPI (
@2x
) variants now reside in their own directories. big
has been renamed tooriginal
.
Note that this only affects newly added photos; those added in the past are not moved to new locations. Also, see the note above about directory permissions.
- Deep directory structure. Instead of all images of a certain kind residing in a single, flat directory (potentially containing thousands of files), we now have two additional two-letter directory levels under each kind (e.g., images are stored as
-
Refactoring of the internal architecture and the representation of albums. While this didn't add any major new features, a number of optimizations have been put in place to speed up various operations, e.g., on installations with many hundreds of albums. Because this requires a particularly complex database migration, those with existing installations should pay attention to the note above about backing up their database.
-
Refactoring of error handling and reporting. This should result in more meaningful error messages both in the web front end and in the server logs (instead of the old cryptic "Server error or API not found" messages).
-
Refactoring of the file handling during upload/import. Instead of using temporary files and (re-)reading them many times, we now rely on file streams. This not only speeds up processing during upload/import (by around 50% in our tests), but is also an important step towards future support for the use of AWS S3 as image storage.
-
New features in the web front end :
- QR code added in the sharing menu.
- GPX tracks can be added to albums for displaying together with photos on the map.
- Drag/drop support added for albums and photos to facilitate more intuitive Move/Merge
-
ZIP compression level can now be changed and the compression can be disabled.
-
Support of Vietnamese language.
What's Changed (since 4.5.2)
- Moved unit tests for root album into separate class by @nagmat84 in #1416
- Add some tests by @qwerty287 in #1395
- move the traits to the class as it is only used once by @ildyria in #1425
- Fix test interaction with smart albums by @nagmat84 in #1428
- Fix album unit tests by @nagmat84 in #1427
- Security fix: Unsorted photos by @nagmat84 in #1430
- Improve cicd by @ildyria in #1424
- add JetBrain Open Source Community Support by @ildyria in #1442
- Make VideoHandler support optional by @kamil4 in #1439
- Update dependencies and add NPM lockfile by @qwerty287 in #1440
- Ensure consistent sorting of albums in list of shares by @nagmat84 in #1429
- Added options for ZIP compression by @nagmat84 in #1436
- Update readme.md by @ildyria in #1450
- version 4.5.3 by @ildyria in #1447
Full Changelog: v4.5.2...v4.5.3
Version 4.5.2 - Use Filestreams, Improve handling of Errors - Add QR code sharing
What's Changed
- Center search clear
X
by @qwerty287 in #1264 - Added more file to gitignore by @nagmat84 in #1282
- Fixes 1280 by @nagmat84 in #1284
- More efficient deletion (but ugly) by @nagmat84 in #1277
- Update composer.lock by @nagmat84 in #1285
- Fix rollback code for mysql by @kamil4 in #1289
- Added file extension to temporary files by @nagmat84 in #1275
- Add file ext to tmp file by @nagmat84 in #1290
- Fix version of php-exif instead of using dev by @ildyria in #1292
- Add locale variable by @qwerty287 in #1291
- Update php-exif to 0.7.5 by @kamil4 in #1296
- Use server's default timezone as default timezone by @qwerty287 in #1297
- Consistent JSON API incl. Proper Handling of Errors (2nd half of big refactoring) by @nagmat84 in #1217
- Add album tracks by @qwerty287 in #1274
- Add QR code locales by @qwerty287 in #1260
- Fix coloring in scripts by @qwerty287 in #1305
- Fix livewire search
X
by @qwerty287 in #1306 - Exception-free wrapper for Laravel's
report
method. by @nagmat84 in #1315 - Fixes #1311 by @nagmat84 in #1317
- php artisan lychee:sync failing with Unresolvable dependency resolving bool $enableCLIFormatting by @mederel in #1319
- Fixes #1323. by @nagmat84 in #1327
- Sync frontend for drag / drop by @qwerty287 in #1308
- Create CONTRIBUTING.md by @ildyria in #1331
- Make Linter happy about tests by @nagmat84 in #1332
- simplify actions by @ildyria in #1335
- Improve file handling by @nagmat84 in #1309
- Update dependencies by @qwerty287 in #1337
- Fixes #1330 by @nagmat84 in #1339
- Bump guzzlehttp/guzzle from 7.4.2 to 7.4.3 by @dependabot in #1347
- Remove executable bit from non-executable files by @nagmat84 in #1348
- Fixes #1342 by @nagmat84 in #1349
- Test samples for pending PR. by @nagmat84 in #1352
- Fix of tests for console commands for pending PR. by @nagmat84 in #1353
- Fix missing photos var and add photo title by @qwerty287 in #1360
- Remove Google Fonts by @qwerty287 in #1302
- Update PHPExif and sync frontend by @qwerty287 in #1362
- Migrate install_files scripts to PHP and add more config to
.env
by @qwerty287 in #1361 - Override
key:generete
command to fix recreating key every time by @qwerty287 in #1364 - Bump guzzlehttp/guzzle from 7.4.3 to 7.4.4 by @dependabot in #1365
- Bump guzzlehttp/guzzle from 7.4.4 to 7.4.5 by @dependabot in #1376
- Synchronize/update the list of PHP extensions by @kamil4 in #1375
- New locale strings by @kamil4 in #1377
- Extractor uses EXIFtool for all types of media, if available. by @nagmat84 in #1379
- Enable phpstan by @ildyria in #1336
- Fix GD (broken by #1336) by @kamil4 in #1386
- Restore code to fix image dimensions post-rotation by @kamil4 in #1389
- fixes #1390 by @ildyria in #1392
- Ensure a local timestamp for mov videos by @kamil4 in #1387
- Add vietnamese file by @hiensarahly in #1382
- Fix untranslatable strings by @qwerty287 in #1371
- add check about exec + diagnostics output by @ildyria in #1397
- Make migration of filesize more robust wrt. broken DB by @ildyria in #1394
- remove old workflow runs by @ildyria in #1393
- remove broken pipeline by @ildyria in #1400
- Update to php-exif 0.7.8 by @kamil4 in #1401
- Improve safety and reliability of lychee:ghostbuster by @nagmat84 in #1405
- SQLite does not return a
int
ongetCode()
but astring
. by @ildyria in #1407 - Update php-exif to 0.7.9 by @kamil4 in #1408
- Add "Clear" button to logs by @qwerty287 in #1374
- Update php-exif to 0.7.10 by @kamil4 in #1413
- Use filestreams by @nagmat84 in #1351
New Contributors
- @mederel made their first contribution in #1319
- @hiensarahly made their first contribution in #1382
Full Changelog: v4.5.1...v4.5.2
Version 4.5.1 - SQL Optimizations and fixes
What's Changed
- Add indices to speed up query for album covers by @nagmat84 in #1196
- Fixes #1192 by @nagmat84 in #1194
- add migration to enforce optimization of tables by @ildyria in #1199
- Added diagnostic for default timezone setting. by @nagmat84 in #1207
- Improved file handling by @nagmat84 in #1203
- Fix some potential null references by @nagmat84 in #1213
- Fixes #1208 by @nagmat84 in #1212
- Fix import of video files and thumbnail generation by @kamil4 in #1219
- Fixes #1221 by @nagmat84 in #1222
- Explicitly round new dimensions to integer by @kamil4 in #1235
- Move filesize to size variants by @Chostakovitch in #1239
- Belated sync of frontend for PR #1239 by @nagmat84 in #1245
- Added a console command to fix the tree by @nagmat84 in #1252
- Speed up
POST api/Album::getPositionData
by @nagmat84 in #1256 - Fix geoposition types by @nagmat84 in #1258
- Fix dead links by @qwerty287 in #1263
- Fix untranslatable strings by @qwerty287 in #1270
- Fix the path to the ImageOptimizer class by @kamil4 in #1273
- Added shortcuts via
RewriteRule
to .htaccess by @nagmat84 in #1272 - Add missing indices by @nagmat84 in #1278
Full Changelog: v4.5.0...v4.5.1