From 77b7401bc6ac7125c395330010b715d8152df5c7 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Wed, 24 Jun 2015 12:47:41 +0200 Subject: [PATCH 1/2] Add some deprecation notes --- developer_manual/app/changelog.rst | 47 ++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/developer_manual/app/changelog.rst b/developer_manual/app/changelog.rst index 046880f39..1525535d6 100644 --- a/developer_manual/app/changelog.rst +++ b/developer_manual/app/changelog.rst @@ -9,14 +9,29 @@ The following changes went into ownCloud 8.1: Breaking changes ================ -None so far +The following breaking changes usually do only affect applications which misuse existing API or do not follow best practises. + +* The default Content-Security-Policy of AppFramework apps is now stricter but can be adjusted by developers. See https://github.com/owncloud/core/pull/13989 +* Parameters passed to OC.generateUrl are now automatically encoded, this behaviour can be adjusted by developers. See https://github.com/owncloud/core/pull/14266 +* Views constructed by OC\Files\View do not allow directory traversals anymore in the constructor. See https://github.com/owncloud/core/pull/14342 +* The CSRF token may now contain not URL compatible characters (for example the plus sign: +), developers have to ensure that the CSRF token is encoded properly before using it in URIs. +* The default RNG now returns all valid base64 characters +* OC.msg escapes the message now by default (see https://github.com/owncloud/core/pull/14208) + Features ======== * There is a new :doc:`OCSResponse and OCSController ` which allows you to easily migrate OCS code to the App Framework. This was added purely for compatibility reasons and the preferred way of doing APIs is using a :doc:`api` * You can now stream files in PHP by using the built in :doc:`StreamResponse `. * For more advanced usecases you can now implement the :doc:`CallbackResponse ` interface which allows your response to do its own response rendering +* Custom preview providers can now be implemented using ** OCP\IPreview::registerProvider** +* There is a mightier class for remote web service requests at **OCP\Http\Client** +* **OCP\\IImage** allows now basic image manipulations such as resizing or rotating +* **OCP\\Mail** allows sending mails in an object-oriented way now +* **OCP\\IRequest** contains more methods now such as getting the request URI +* **OCP\\Encryption** allows writing custom encryption backends +Furthermore all public APIs have received a **@since** annotation allowing developers to see when a function has been introduced. Deprecations ============ @@ -24,6 +39,34 @@ This is a deprecation roadmap which lists all current deprecation targets and wi .. note:: Deprecations on interfaces also affect the implementing classes! +11.1 +---- +* **OCP\\App::setActiveNavigationEntry** has been deprecated in favour of (**\\OCP\\INavigationManager**) +* **OCP\\BackgroundJob::registerJob** has been deprecated in favour of **OCP\\BackgroundJob\\IJobList** +* **OCP\\Contacts** functions has been deprecated in favour of **\\OCP\\Contacts\\IManager** +* **OCP\\DB** functions have been deprecated in favour of the ones in **\\OCP\\IDBConnection** +* **OCP\\Files::tmpFile** has been deprecated in favour of **\\OCP\\ITempManager::getTemporaryFile** +* **OCP\\Files::tmpFolder** has been deprecated in favour of **\\OCP\\ITempManager::getTemporaryFolder** +* **\\OCP\\IServerContainer::getDb** has been deprecated in favour of **\\OCP\\IServerContainer::getDatabaseConnection** +* **\\OCP\\IServerContainer::getHTTPHelper** has been deprecated in favour of **\\OCP\\Http\\Client\\IClientService** +* Legacy applications not using the AppFramework are now likely to use the deprecated **OCP\\JSON** and **OCP\\Response** code: + + * **\\OCP\\JSON** has been completely deprecated in favour of the AppFramework. Developers shall use the AppFramework instead of using the legacy **OCP\\JSON**code. This allows testable controllers and is highly encouraged. + * **\\OCP\\Response** has been completely deprecated in favour of the AppFramework. Developers shall use the AppFramework instead of using the legacy **OCP\\JSON**code. This allows testable controllers and is highly encouraged. + +* Diverse **OCP\\Users** function got deprecated in favour of **OCP\\IUserManager**: + + * **OCP\\Users::getUsers** has been deprecated in favour of **OCP\\IUserManager::search** + * **OCP\\Users::getDisplayName** has been deprecated in favour of **OCP\\IUserManager::getDisplayName** + * **OCP\\Users::getDisplayNames** has been deprecated in favour of **OCP\\IUserManager::searchDisplayName** + * **OCP\\Users::userExists** has been deprecated in favour of **OCP\\IUserManager::userExists** +* Various static **OCP\\Util** functions have been deprecated: + + * **OCP\\Util::linkToRoute** has been deprecated in favour of **\\OCP\\IURLGenerator::linkToRoute** + * **OCP\\Util::linkTo** has been deprecated in favour of **\\OCP\\IURLGenerator::linkTo** + * **OCP\\Util::imagePath** has been deprecated in favour of **\\OCP\\IURLGenerator::imagePath** + * **OCP\\Util::isValidPath** has been deprecated in favour of **\\OCP\\IURLGenerator::imagePath** + 10.0 ---- * **OCP\\IDb**: This interface and the implementing classes will be removed in favor of **OCP\\IDbConnection**. Various layers in between have also been removed to be consistent with the PDO classes. This leads to the following changes: @@ -57,4 +100,4 @@ This is a deprecation roadmap which lists all current deprecation targets and wi 8.1 --- -* `\\OC\\Preferences `_ and `\\OC_Preferences `_ \ No newline at end of file +* `\\OC\\Preferences `_ and `\\OC_Preferences `_ From 96d6d69c5b213591c35d9c3816676eac7428c45e Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Wed, 24 Jun 2015 13:37:45 +0200 Subject: [PATCH 2/2] Add feedback of Jos --- developer_manual/app/changelog.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/developer_manual/app/changelog.rst b/developer_manual/app/changelog.rst index 1525535d6..d69123111 100644 --- a/developer_manual/app/changelog.rst +++ b/developer_manual/app/changelog.rst @@ -24,7 +24,7 @@ Features * There is a new :doc:`OCSResponse and OCSController ` which allows you to easily migrate OCS code to the App Framework. This was added purely for compatibility reasons and the preferred way of doing APIs is using a :doc:`api` * You can now stream files in PHP by using the built in :doc:`StreamResponse `. * For more advanced usecases you can now implement the :doc:`CallbackResponse ` interface which allows your response to do its own response rendering -* Custom preview providers can now be implemented using ** OCP\IPreview::registerProvider** +* Custom preview providers can now be implemented using **OCP\IPreview::registerProvider** * There is a mightier class for remote web service requests at **OCP\Http\Client** * **OCP\\IImage** allows now basic image manipulations such as resizing or rotating * **OCP\\Mail** allows sending mails in an object-oriented way now @@ -41,7 +41,7 @@ This is a deprecation roadmap which lists all current deprecation targets and wi 11.1 ---- -* **OCP\\App::setActiveNavigationEntry** has been deprecated in favour of (**\\OCP\\INavigationManager**) +* **OCP\\App::setActiveNavigationEntry** has been deprecated in favour of **\\OCP\\INavigationManager** * **OCP\\BackgroundJob::registerJob** has been deprecated in favour of **OCP\\BackgroundJob\\IJobList** * **OCP\\Contacts** functions has been deprecated in favour of **\\OCP\\Contacts\\IManager** * **OCP\\DB** functions have been deprecated in favour of the ones in **\\OCP\\IDBConnection** @@ -51,8 +51,8 @@ This is a deprecation roadmap which lists all current deprecation targets and wi * **\\OCP\\IServerContainer::getHTTPHelper** has been deprecated in favour of **\\OCP\\Http\\Client\\IClientService** * Legacy applications not using the AppFramework are now likely to use the deprecated **OCP\\JSON** and **OCP\\Response** code: - * **\\OCP\\JSON** has been completely deprecated in favour of the AppFramework. Developers shall use the AppFramework instead of using the legacy **OCP\\JSON**code. This allows testable controllers and is highly encouraged. - * **\\OCP\\Response** has been completely deprecated in favour of the AppFramework. Developers shall use the AppFramework instead of using the legacy **OCP\\JSON**code. This allows testable controllers and is highly encouraged. + * **\\OCP\\JSON** has been completely deprecated in favour of the AppFramework. Developers shall use the AppFramework instead of using the legacy **OCP\\JSON** code. This allows testable controllers and is highly encouraged. + * **\\OCP\\Response** has been completely deprecated in favour of the AppFramework. Developers shall use the AppFramework instead of using the legacy **OCP\\JSON** code. This allows testable controllers and is highly encouraged. * Diverse **OCP\\Users** function got deprecated in favour of **OCP\\IUserManager**: