Releases: LycheeOrg/Lychee
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
Version 4.5.0 - Refactoring of Model Architecture
Version 4.4.0 - Full support of PHP 8.0 and 8.1 - dropped 7.4
PHP 7.4 IS NOT LONGER SUPPORTED AND WILL NOT WORK. Expect error 500.
We are aware this may not be a popular decision.
Please accept the rationale of such change:
- Php supported version: we want to stay in the green zone, anything orange is ignored.
- PHP 8.0 brings lots of improvements: stronger typing, JIT... read more here
- Spatie requires in all their updated packages to be in version 8.0 (basically some of our dependencies).
What's Changed
- Fixes #1149 by @nagmat84 in #1154
- Fix diagnostics by @ildyria in #1152
- Upgrade composer and php version by @ildyria in #1145
- bump to version 4.4.0 + remove unnecessary php-intl requirement by @ildyria in #1157
- update codecov.yml by @ildyria in #1158
Full Changelog: v4.3.6...v4.4.0
Version 4.3.6 : Last version with php7.4 support!
THIS IS THE LAST VERSION OF LYCHEE WHICH SUPPORTS PHP 7.4.
fixes
#1059 : Add Cache busting.new
#1049 /fixes
#1011 : New Photos Email Notification- Send an email when new photos were added to albums that have been shared.
- Use the laravel notification system to send via SMTP,
env
settings will need to be set up. - It is set to send out emails once a week via cron, so the laravel cron job would need to be set up.
- Neither is required so if people don't want to set those up then it won't affect the operation of Lychee.
- Add admin setting to toggle the notification option, which enables a user level menu item to change their email. This is purely opt-in, so users can clear their email if they don't wish to receive the emails anymore.
- The email that gets sent out has been branded lychee, and will group the last week's worth of notifications and send them all out in one email to each user that has an email set up.
new
#1065 : Add Polish translation.new
#1071 : Avoid git rebase conflicts during development on other branchesnew
#1086 : cli sync from from server with option to delete, import via symlink, etc.new
#1097 : Make language more gender neutral.fixes
#1102 : Character limitation of table column logs.function causes server error 500 for deployments with long installation pathfixes
#1105 : Fix type issues related to thumbsfixes
#1108 : Fixes takestamps.- This should correct all instances of incorrect album min/max takestamps and as a bonus be computationally much less expensive.
fixes
#1110 :round
in php8 requires anint
orfloat
as the first argument.fixes
#1119 : No video upload when ffmpeg is missingnew
#1122 : Improved French translations.fixes
#1121 : Fix lychee:video_datafixes
#1033 : A bit of JS to prevent multiple submissions of the migration form.fixes
#1127 : The upload_processing_limit parameter only works when uploading images in the admin account. It does not work for images uploaded by other usersnew
#1142 : also support Caps on size format in diagnostics.fixes
#1146 : artisan optimize crashes with Unable to prepare routefixes
LycheeOrg/Lychee-front#270: Copy To... didn't work correctlyfixes
LycheeOrg/Lychee-front#273: Wrong support of ' (single quote) in some placesfixes
#1123: Album renaming did not work reliablynew
LycheeOrg/Lychee-front#276: Remember user preference for the visibility of the info sidebarfixes
LycheeOrg/Lychee-front#278: Fix the menu for smart and tag albums and in public mode, fix import into top-level albums view, fix empty info sidebar for albums
Full Changelog: v4.3.4...v4.3.6