This ticket is to collect the critical changes for developers for Nextcloud 14.
AppFramework\Http\Request::getHeader now really only returns string (and not null) anymore (#7813)Security\ICrypto::decrypt now accepts strings only and also returns string only (#7825)OCP\AppFramework\Utility\ITimeFactory is strictly typed now (#7838)OCP\IL10N is strickly types which means that the t function expects an array (https://github.com/nextcloud/server/pull/8476) - see also #8497 for a relaxed version Removed from public interface
OCP\AppFramework/IAppContainer (#7839)OCP\Config (#7840)OCP\ISearch (#7842)OCP\Util (#7843)OCP constantes (#7844)OCP\Util (#8783) - sendMail, encryptedFiles, getServerHost, getServerProtocol, getRequestUri, getScriptNameOCP\IHelper (#8784)insertIfNotExist from OCP\DB (#8786)OCP\DB(#8787) - insertid, rollback, isErrorOCP\Response (#8792)OCP\Util (#8811)OCP\Contacts (#8816)OCP\BackgroundJob::registerJob (#8877)OCP\Files::tmpFile and OCP\Files::tmpFolder (#8878)OCP\JSON (#8879 & #8943)beginTransaction, commit and getErrorMessage from OCP\DB (#8914)OCP\Response (#8918)OCP\User::getDisplayNames (#8919)OCP\Share::resolveReshare (#8853)OCP\DB (https://github.com/nextcloud/server/pull/8985)Changed occ command interface:
occ upgrade does not have the option --no-app-disable anymore (it is used for PHP 7+ anyways already) (#7955)Changed available dependencies:
$fromMailAddress will not be available anymore - just define it in your apps dependency container if you need it (#8336)Changed public interfaces (that could be implemented by an app):
\OCP\Mail and the email templates got proper type hints: #8614OCP\Authentication\TwoFactorAuth got typehints and return types: https://github.com/nextcloud/server/pull/8981OCP\Migration\IMigrationStep has two new methods #9167 (covered if the apps use the abstract class SimpleMigrationStep which is the default)OCA.Search is now OCA.Search.Core. New standard for global search #9912 EMailTemplate child classes should use the %$1s notation for replacements to be future compatible and be able to reuse parameters #10291 Structural changes:
with-app-sidebar not required anymore to open the sidebar only use disappear on the sidebarsvg classe not required anymorewith-settings, with-icon not needed anymoreChanged behaviour:
AddUser POST:/users now allow empty password iff email is set and valid #8856 Changed config:
bucket/container parameter. See #8793mail_smtpmode can no longer be set to php. As this option is lost with the upgrade of phpmailer https://github.com/nextcloud/server/pull/9791Internals stuff:
OC_* namespace - we removed quite some classes, methods and constants from our internal namespace. If it was used by any app in the App Store we notified the owner of that app. Keep in mind that using the OC_ namespace is not official supported and can break any time without notice. So better not use it in your app.OC_Group_Backend got removed: https://github.com/nextcloud/server/pull/8988OC_Response::setStatus and the constants for status codes have been removed #10009Added APIs:
Deprecated APIs:
OCP\Files is deprecated #8922 OC_Theme class is deprecated, settings in config.php should be used https://github.com/nextcloud/server/pull/8994getGroup method replaced by getGroupUsers #8904 OCP\Util are deprecated and moved to the ILogger interface #9308OCP\AppFramework\Db\Mapper is deprecated move to OCP\AppFramework\Db\QBMapper https://github.com/nextcloud/server/pull/9444Changed outside facing stuff:
Admin:
ownCloud to Nextcloud: #10048occ maintenance:mode --on/--off and it was already in this state if will print Maintenance mode already enabled instead of the Maintenance mode enabled which was printed always before this change #10070I put this on our forum so app devs can give input:
https://help.nextcloud.com/t/changes-coming-in-nc-14-time-to-prepare/27790/2
@jospoortvliet mind removing the actual changes, so we have only one place where we need to update stuff?
@jospoortvliet mind removing the actual changes, so we have only one place where we need to update stuff?
Fixed it in the forums.
We just added:
OCP\IL10Nis strickly types which means that thetfunction expects an array (https://github.com/nextcloud/server/pull/8476) - see also #8497 for a relaxed version
But also check the OP to have the full list of changes we made so far.
OCP\Mail and the email templates got proper type hints: #8614
@MariusBluem We also need to update the "theme email template docs" then for 14 馃槈
apps that are enabled for groups can now provide public pages, that are available even if a user is not logged in - see #8593
@jospoortvliet Also something for the release notes.
- several deprecated functions from
OCP\Util(#8783) -sendMail,encryptedFiles,getServerHost,getServerProtocol,getRequestUri,getScriptName- remove deprecated interface
OCP\IHelper(#8784)- remove deprecated
insertIfNotExistfromOCP\DB(#8786)- remove more deprecated methods of
OCP\DB(#8787) -insertid,rollback,isError
Latest changes.
cleanup of
OC_*namespace - we removed quite some classes, methods and constants from our internal namespace. If it was used by any app in the App Store we notified the owner of that app. Keep in mind that using the OC_ namespace is not official supported and can break any time without notice. So better not use it in your app.
Added a note about the private namespace
remove some deprecated methods of
OCP\Response(#8792)
removed urlgenerator functions form OCP\Util (#8811)
remove deprecated
OCP\Contacts(#8816)
- removed deprecated
OCP\BackgroundJob::registerJob(#8877)- removed deprecated
OCP\Files::tmpFileandOCP\Files::tmpFolder(#8878)- removed deprecated
OCP\JSON::encodedPrint,OCP\JSON:: setContentTypeHeaderandOCP\JSON:: checkUserExists(#8879)
OCS API got a details endpoint for the user list #8847
- remove deprecated
beginTransaction,commitandgetErrorMessagefromOCP\DB(#8914)- remove deprecated
OCP\Response(#8918)
- removed deprecated
OCP\JSON(#8879 & #8943)- remove deprecated method
OCP\User::getDisplayNames(#8919)- remove
OCP\Share::resolveReshare(#8853)
Added from https://github.com/nextcloud/server/pull/8994
- Setting custom client URLs in a custom
OC_Themeclass is deprecated, settings in config.php should be used https://github.com/nextcloud/server/pull/8994
Blog posts about this right when 14 hit would have been great. I caught the one that just came out recently, and am just now realizing the OCP/DB's prepare is gone, meaning a rewrite of DB interactions. Can we start a process for blog posts on this early in the first beta?
Can we start a process for blog posts on this early in the first beta?
That was the plan, but somehow slipped through and was done quite late. Also as you can see we tried to reach out to people early if we found their projects on some hosting platform (we check GitHub and Gitlab and even emailed some).
Also the prepare statement was annotated with the deprecation text for 3 years now. Typically IDEs show this to you inline so that you are aware of this.
But sorry, that we missed to reach out to you :/ We try our best in the future.
@Fmstrat Also the plan is to have such an overview ticket for every major release to which developer could subscribe and get the information as soon as possible.
@morrisjobke That all sounds excellent! As for IDEs, I'm old school with vim in a terminal, so no real assistance there. 馃槈
It would also be great if there was one ticket for all releases that was locked down, then when you open a new ticket for the next release place a link in the master one. That way developers can subscribe to the master issue and not miss when the new one is created. Thanks!
It would also be great if there was one ticket for all releases that was locked down, then when you open a new ticket for the next release place a link in the master one. That way developers can subscribe to the master issue and not miss when the new one is created. Thanks!
We will have a look at this. Thanks for this valuable feedback.
For 14 this one is done. I will post here also the overview ticket that is planned and then we continue with this kind of ticket in 15.
@MorrisJobke Awesome, thank you! Posting the overview ticket here would be very helpful. I'll subscribe to that when it comes.
The Nextcloud 16 version of this is in #12915