mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-31 15:42:03 -04:00
Created v5.3.74 - Release notes (markdown)
parent
02e5b8ea37
commit
3308c9a789
32
v5.3.74---Release-notes.md
Normal file
32
v5.3.74---Release-notes.md
Normal file
@ -0,0 +1,32 @@
|
||||
# v5.3.74
|
||||
|
||||
Starting from this release, we'll be making an effort to describe significant changes to the application to assist the community in knowing what to expect with releases.
|
||||
|
||||
One issue we saw with v5.3.73 was that a lot of self hosted installations were not able to run the post update hooks which called composer to update the vendor dependencies, this quickly broken a lot of running applications.
|
||||
|
||||
To counter this we have removed both composer and also the self-updater we were relying on. In its place is our own implementation of the self updater. This will pull in the full release file ( circa 200mb ) which also contains _all_ of the vendor dependencies so the chances of an update breaking should be greatly reduced. The cost of the larger file shouldn't be much of an issue for most people given bandwidth allowances nowadays.
|
||||
|
||||
> So how exactly does the updater work?
|
||||
|
||||
I'm glad you asked :).
|
||||
|
||||
The first step in the update process is to ensure the system can write the files into the directory. To do this, the webuser **must** be able to write to every file and directory recursively. So we iterate through the entire directory and check all files and folders. If we hit a file that is not writable, we immediately thrown an exception and stop the update process.
|
||||
|
||||
Once the filesystem check is complete, we pull in the latest full package from the github releases and download the zip file to the local file system. Once there we unpack and overwrite all the existing file with the new ones.
|
||||
|
||||
All that is left to do after this is to clear the cache, run migrations and then optimize the config cache here are the post extraction steps
|
||||
|
||||
```php
|
||||
$cacheCompiled = base_path('bootstrap/cache/compiled.php');
|
||||
if (file_exists($cacheCompiled)) { unlink ($cacheCompiled); }
|
||||
$cacheServices = base_path('bootstrap/cache/services.php');
|
||||
if (file_exists($cacheServices)) { unlink ($cacheServices); }
|
||||
|
||||
Artisan::call('clear-compiled');
|
||||
Artisan::call('route:clear');
|
||||
Artisan::call('view:clear');
|
||||
Artisan::call('migrate', ['--force' => true]);
|
||||
Artisan::call('optimize');
|
||||
```
|
||||
|
||||
This should bring your system up to date with the least amount of pain possible.
|
Loading…
x
Reference in New Issue
Block a user