Make sure to create a backup before you start!
Read the updates documentation to find out how you can upgrade your Kimai installation to the latest stable release.
Before you leave ...
There might be more steps required which are version specific and need to be executed after the update. Read and perform EACH version specific task below, otherwise you risk data inconsistency or a broken installation!
Update as usual, nothing special for this release if you upgrade from 1.0 / 1.0.1.
Update as usual, nothing special for this release if you upgrade from 1.0.
This release contains several changes, as I still have the goal to stabilize the code base to prevent such "challenges" after 1.0 for a while.
New permissions are available. You have to add them to your local.yaml
ONLY if you use a custom permission structure,
otherwise you can't use the new features:
view_tag
- view all tagsdelete_tag
- delete tagsedit_exported_timesheet
- allows to edit records which were exportedrole_permissions
- view calculated permissions for user rolesbudget_activity
- view and edit budgets for activitiesbudget_project
- view and edit budgets for projectsbudget_customer
- view and edit budgets for customers
Removed permission:
system_actions
- removed experimental feature to flush app cache from the about screen
- API: Format for queries including a datetime object fixed to use HTML5 format (previously
2019-03-02 14:23
- now2019-03-02T14:23:00
) - Permission config: the
permissions
definition in yourlocal.yaml
needs to be verified/changed, as the internal structure was highly optimized to simplify the definition. Thanks to the new structure, you should be able to remove almost everything from yourlocal.yaml
(tip: start over from scratch!). Please read the updated permission docu. - default widgets were removed from
kimai.yaml
, that shouldn't cause any issues ... but if something is odd: look here for help
Remember to execute the necessary timezone conversion script, if you haven't updated to 0.8 before (see below)!
This release contains some BC breaks which were necessary before 1.0 will be released (now or never), to prevent those BC breaks after 1.0.
- Kimai requires PHP 7.2 now => PHP 7.1 expired 4 month ago
- The
.env
variableDATABASE_PREFIX
was removed and the table prefix is now hardcoded tokimai2_
. If you used another prefix, you have to rename your tables manually before starting the update process. You can delete the rowDATABASE_PREFIX
from your.env
file. - API: Format for DateTime objects changed, now including timezone identifier (previously
2019-03-02 14:23
- now2019-03-02T14:23:00+00:00
), see #718 - API: changed from snake_case to camelCase (affected fields: hourlyRate vs hourly_rate / fixedRate vs fixed_rate / orderNumber vs order_number / i18n config object)
- Plugin mechanism changed: existing Plugins have to be deleted or updated
New permissions are available:
system_configuration
- for accessing the new system configuration screensystem_actions
- for the experimental feature to flush your cache from the about screenplugins
- for accessing the new plugins screen
The setting kimai.timesheet.mode
replaces the setting kimai.timesheet.duration_only
. If you used the duration_only mode, you need to change your config:
# Before
kimai:
timesheet:
duration_only: true
# After
kimai:
timesheet:
mode: duration_only
Or switch the mode directly in the new System configuration screen within Kimai.
A bug fixing release. Remember to execute the necessary timezone conversion script, if you haven't updated to 0.8 before (see below)!
After you followed the normal update and database migration process (see above), you need to execute a bash command to convert your timesheet data for timezone support:
- Read this pull request BEFORE you follow the instructions to convert the
timezones in your existing time records with
bin/console kimai:convert-timezone
. Without that, you will end up with wrong times in your database.
- A new boolean setting
kimai.timesheet.rules.allow_future_times
was introduced - New permissions are available:
view_export
- for the new export featurecreate_export
- for the new export featureedit_export_own_timesheet
- for the new export featureedit_export_other_timesheet
- for the new export featuresystem_information
- to see the new about screen
The configuration kimai.theme.active_warning
was deprecated and should be replaced in your local.yaml,
read config docs for more information.
A bugfix release to address database compatibility issues with older MySQL/MariaDB versions.
The API has some minor BC breaks: some fields were renamed and entities have a larger attribute set than collections. Be aware that the API is still is development mode and shouldn't be considered stable for now.
Some configuration nodes were removed, if you have one of them in your local.yaml
you need to delete them before you start the update:
kimai.invoice.calculator
kimai.invoice.renderer
kimai.invoice.number_generator
The new config kimai.invoice.documents
was introduced, holding a list of directories (read more).
BC break: InvoiceTemplate name was changed from 255 characters to 60. If you used longer invoice-template names, they will be truncated when upgrading the database.
Please make sure that they are unique in the first 60 character before you upgrade your database with doctrine:migrations:migrate
.
In the time between 0.3 and 0.4 there was a release of composer that introduced a BC break, which leads to problems between Composer and Symfony Flex, resulting in an error like this when running it:
[ErrorException]
Declaration of Symfony\Flex\ParallelDownloader::getRemoteContents($originUrl, $fileUrl, $context) should be compatible with Composer\Util\RemoteFilesystem::getRemoteContents($originUrl, $fileUrl, $context, ?array &$responseHeaders = NULL)
This can be fixed by updating Composer and Flex before executing the Kimai update:
sudo composer self-update
sudo -u www-data composer update symfony/flex --no-plugins --no-scripts
You need to adjust your .env
file and add your from
address for all emails generated by Kimai 2:
Create a file and database backup before executing the following steps:
git pull origin master
sudo -u www-data composer install --no-dev --optimize-autoloader
sudo -u www-data bin/console cache:clear --env=prod
sudo -u www-data bin/console cache:warmup --env=prod
bin/console doctrine:migrations:version --add 20180701120000
bin/console doctrine:migrations:migrate