ownCloud development in April, May and June
The busy time leading up to the ownCloud release has made it hard to keep up with development. As the value of outdated reports is minimal, this report will merely summarize work done over the last three months, after which we’ll put renewed effort in keeping up by re-instating weekly reports. These will have a […]
The busy time leading up to the ownCloud release has made it hard to keep up with development. As the value of outdated reports is minimal, this report will merely summarize work done over the last three months, after which we’ll put renewed effort in keeping up by re-instating weekly reports. These will have a reduced area of coverage to make regular updates feasible.
This report, therefore, covers May and June, focusing on what took place in the core repository of ownCloud.
During April, May and June developers were mostly concerned with getting ready for the ownCloud 8.1 release. Since our report on March there have been feature additions, but finishing functionality merged during March has been the focus.
In the three months we are covering here there have been over 560 pull requests that were merged in core alone – with a total of about 1215. As much work outside of the core takes place by direct commit rather than through pull request. It isn’t farfetched to conclude that core might be central to ownCloud, but at least half the work that benefits ownCloud users takes place outside of this repository, in the many apps developed by the ownCloud community. And that is not even covering those apps developed outside of the ownCloud project!
Not all major new ownCloud 8.1 features were in before April 1st. These were merged between April and the end of June:
- An example theme was merged here
- We now show the Federated Cloud ID in the Personal settings, as part of a larger effort to make cross-cloud sharing easier
- We got some of the nice links to the documentation in the Admin screen
- This introduced the trust levels in the app store. Here’s the PR for Encryption 2.0
- To get more information on the upgrade process, you can now give the -v paramater to the command line tool and it will give you more information about what is going on. Another verbosity option is available for the app-check function
- Work is progressing on making core apps use the public API where possible. It seems the end goal is in sight and the participating developers have set their eyes on finishing this cleanup for 8.2. Expect more information about this effort in a future report
As a taste of some of the performance-related PR’s, this introduces a stat cache for WebDAV and this one cache’s language choice, while this improvement to the preview class helps bring preview generation time up from minutes down to seconds. To allow storage to deal with copy and move commands more efficiently, this PR implements logic to let backends handle these operations and this PR makes it possible to directly access storage when working over WebDAV, saving lots of database accesses.
There has been a lot more of these, one of the reasons why ownCloud 8.1 is significantly faster than previous releases.
Another area where a lot of effort was put in over the covered time period was to set up Smashbox for testing ownCloud. Smashbox is an automated testing tool developed by our Atom-smashing friends at CERN. We covered this in two blogs introducing Smashbox and describing how it is put to use.
ownCloud 8.1 has seen quite some work on file locking, like the addition of a file lock during download. This is part of an effort to make sure ownCloud cannot, even in the weirdest of circumstances, overwrite or lose files (see the many items tagged with feature: locking in github). ownCloud already does file locking to ensure two users can’t access the same file at the same time, but this takes place at the file system level. This will stop one user from overwriting a file being written by another user – but in between separate file operations, such as each individual file being uploaded to a folder, other operations can still take place. If, for example, one user uploads a big file to a folder on external storage which gets renamed by another user at the same time, strange things could happen. The new, high-level locking will ensure that the user who started his/her endeavor last will receive an error message, while the first user will finish successfully. In case of the sync client, it will automatically retry later.
ownCloud 8.1 introduces high level file locking as an experimental feature which has to be turned on in
config.php. As it is only relevant to very large installations, while being very invasive and recently developed, it was decided to keep it off by default.
- This provides a security hardening improvement to ownCloud. It came from an issue filed here as result of an external security audit done on ownCloud (this was the only problem found!)
- A PR by Rullzer makes it possible to update passwords via the OCS API. Find more details about changes relevant for developers in ownCloud 8.1 in this blog post
- Oparoz added BPG support and recognition of various config files while mts and mt2s are now also supported. Oparoz also contributed a nicer looking preview screen
- If you insist in your user name to have a @ sign, now you can without breaking Federated Cloud Sharing
- this PR should speed up the upgrade process a bit while this PR makes sure that maintenance mode state persists after upgrade (if it was on, it’ll stay on – and if it wasn’t, it will be turned off again)
- By setting the right
config.phpyou can automatically enable debug logging (this is documented here
- This PR is part of the new caching changes, also described in this blog
- There is no longer a built in WebDAV view in ownCloud and this PR added a notice to explain that to users
- As Windows Server is no longer supported with ownCloud 8.1, this PR makes sure users don’t accidentally install it anyway
- This PR makes some changes needed for the introduction of a command line app for ownCloud
- Small but sweet: you can limit activity notifications to favorites
If you want to get involved in coding on ownCloud – check out this page!
Other ownCloud Happenings
We published a lot of blogs on Planet ownCloud during the last three months:
- Two blogs about how ownCloud uses Sabre/DAV and how we work with Fruux, the company behind Sabre/DAV. Pt 1, pt 2
- The announcement of the ownCloud Contributor Conference dates, the call for papers and our publishing of a series of interviews taped at the conference last year
- A report on the Hackathon in Nuremberg and a blog about ownCloud’s presence at events like SCALE and FOSDEM. Find a calendar of more ownCloud events on owncloud.org/events!
- The announcement that ownCloud 8.1 will not support Windows Server
We hope you enjoyed this development overview! Stay tuned for an overview of what happened in the first weeks of July.