Welcome to the ownCloud community update for the first half of July – covering a crazy month! We released ownCloud 8.1 and published many blogs and videos about what’s new and improved. In coding news, work on 8.2 has started with work towards moving the Files app to WebDAV, revival of the Bookmarks app and the merge of many feature branches.
ownCloud Server 8.1
The biggest news this month is the release of ownCloud Server 8.1! This release brought many new features and performance improvements. You can find a short overview of them in the announcement and on the dedicated page on owncloud.org.
We published more details about the new release in blogs like the introduction of release channels, how to upgrade to ownCloud Server 8.1, the improvements to the Documents app, and how to configure the new caching features. We also published a blog about what changed in ownCloud Server 8.1 for developers.
In Other Blogs
Development on the Upcoming Release
With the release of ownCloud 8.1, development of 8.2 has kicked off and there is a lot going on. Below we summarize progress in some major areas.
- Moving Files app to WebDAV
- Improving the OCS API
- Using Public API Internally
- PHP 7 Compatibility
- Flysystem Storage Backend Support
- Reviving Bookmarks
- Command Line Tool Improvements
- Other ownCloud Happenings
Moving Files app to WebDAV
A long-time goal has seen recent progress– moving the Files app to use the WebDAV interface. Reducing the number of code paths for file management, this will make it easier to test and improve ownCloud file handling.
Currently there are two ways in which files are managed, WebDAV and private PHP AJAX end points in the Files app. By moving the Files app over to using the WebDAV API, we concentrate future efforts in one place. As the WebDAV API is used by our mobile and desktop clients as well as any other WebDAV tool, performance and stability improvements will benefit those as well.
A lot of work is required to make this work. The Files app has previews, icons, favorite and sharing information, chunked upload and much more. Some of this is already available in the WebDAV API, as the clients have had a need for it, but much will still has to be added. Some interesting challenges are related to performance, like batch file deletion or moving. Older ownCloud releases used to delete or move files one by one, creating a huge number of database, network and file system operations. Newer ownCloud releases bundle such operations, something currently not available for WebDAV.
However, fixing these issues will greatly benefit the clients as well, as they can also make use of the new capabilities to improve their own performance and feature set. Moreover, the WebDAV backend, being based on the well-known SabreDAV, has several capabilities and advantages over the custom AJAX API’s. One of those advantages is using ‚part files‘ internally, which makes it easy to resume uploads or retry parts which went wrong. This also helps deal with concurrency issues where, for example, a mobile or desktop client starts to sync a file before it is completely uploaded in the web interface (example). Similar issues exist with regards to encryption.
Other related work includes the ability to use webdav to serve zip files. More significantly, this also ties in with the conversations around a next generation chunking method for the client, with first a blog introducing the challenge here and a follow-up with more details to the proposal. As this work is about using the capabilities of WebDAV, the Files app will be able to use the same interface.
Right now progress on moving the Files app to WebDAV has stalled due to a compatibility issue–Internet Explorer 8 is incapable of handling the needed WebDAV commands, creating issues for the new Files app. Unless IE 8 support gets dropped or another work around implemented, introduction of the new WebDAV based Files app might have to be delayed to a later release.
Improving the OCS API
Complementing WebDAV, the OCS API is the other half of the external interface ownCloud offers to third party developers to access data provided by ownCloud apps. It is documented here.
There is work going on to improve the OCS API. To support Smashbox testing, an OCS API was developed for sending, receiving, accepting, and declining remote shares and OCS Share API link shares now always have a URL which fixes issue 16488. As that issue explains, this makes sure that the URL is correct (since we use the URL generator to get the route) and not depend on a client generating the correct URL. It also ensures that if the URL would change in the future the client would directly generate the new URL. It would also make it easier to write an app for URL shortening.
Using Public API Internally
As described above, the Files app uses private PHP AJAX functionality rather than using the public OCS and WebDAV APIs to bring data from an ownCloud Server to the browser. Within the ownCloud Server, a similar situation exists where many ownCloud server apps have been developed using non-public functionality from the Core to do their work (the
OC_ namespaces). Often there are public APIs (
\OCP namespaces) available and this duplication is also due for cleanup.
Work on this is tracked in issue 4774 and the developers are hopeful that most instances of API duplication can be dealt with during the ownCloud 8.2 release cycle. This “dogfooding” will have similar benefits overall as those in the Files app– reducing the number of code paths allows more focused testing, bug fixing and improvement efforts.
There is quite some progress to report, for example this work which moves files_external to use public API, a pull request moving many core apps from internal OC_Log::write to OCP\Util, this PR which moves the files sharing app (mostly) to OCP\DB and this work on the files app.
PHP 7 Compatibility
As you might know, the PHP community is preparing for the release of PHP 7 for the end of this year. This first major release in quite some years will bring significant performance improvements between cleanups and new features. ownCloud developers have been making some modifications to ensure that ownCloud will run on this new PHP, like this PR.
Flysystem Storage Backend Support
A new generic storage backend for flysystem adapters was merged. This allows developers to create a storage backend for any external storage supported by flysystem with minimal effort. Flysystem supports many backends already and new ones are easy to build. An example can be found in this Azure external storage backend. Now existing ownCloud external storage systems will have to be adapted to make use of this, decreasing the amount of code ownCloud has to maintain. There is already progress in this area for the FTP external storage app.
Blizzz blogged about his decision to make the ownCloud bookmarks app “prosper and flourish” again. He went through the open issues and pull requests, closing many, cleaning others, merging some and fixing more. A beta release has been made and you can expect a final release with many improvements in the ownCloud app store soon.
Command Line Tool Improvements
A final improvement we want to highlight is the work on the occ command line tool. It is now possible to delete older versions of files with the occ tool. Similarly, occ can now get rid of deleted files in the trash. There was also work on a new feature to get/set configuration attributes and several improvements to configure the verbosity of the occ command.
If you want to get involved in coding on ownCloud – check out this page!
Other ownCloud Happenings
On Planet ownCloud, a post from ownCloud.com featured a video of the Datto announcement of ownCloud partnership. This article (forbes.com) explains that Datto, a company with over 5 million customers world-wide, now ships ownCloud as part of their storage solutions. The writer points out that, in the crowded Enterprise File Sync and Share market, solutions have to provide something unique and many companies are looking for ways to store their data on-premise, benefiting from the security advantages this brings. Watch the announcement video at dattocon 2015 on owncloud.com
We hope you enjoyed this fresh report from ownCloud development!
Thanks to Vincent Petry and others for the tireless catching of embarrassing mistakes