ownCloud development in January
January was a month of preparation for ownCloud 8 (and recovery from the holidays!). Most of the activity was aimed at fixing bugs – but there were also some interesting new developments. In this post we’ll pull together activity from development lists, blogs, GitHub and other places. Tips are very much welcome! Ping Jos with […]
January was a month of preparation for ownCloud 8 (and recovery from the holidays!). Most of the activity was aimed at fixing bugs – but there were also some interesting new developments. In this post we’ll pull together activity from development lists, blogs, GitHub and other places. Tips are very much welcome! Ping Jos with your input.
The biggest items this month were the many improvements in the desktop client (sharing links from the file manager!), preparations for the ownCloud 8 release, a lot of performance work in core and a much improved passman app.
You can read a report covering development from December here.
January saw the merging of 325 pull requests, which was down from the almost 400 merges in December. About 50 of these were marked as fixing bugs, including the golden ‘showstopper’ tickets but in reality there were many more PR’s involving the improvement of existing functionality in preparation of the release so feature-wise there are fewer than usual. This is how it should be, of course, during a feature freeze!
the ownCloud core repo
Core had 177 PR’s merged. Let’s go over the highlights!
In the user interface department, there was:
- Georg Ehrke who used a Saturday to bring back ability to show animated gifs on the public sharing page
- Work on dropping the hide and show of new users in the user list makes the user list not jump around and speeds up loading
- Alphabetical sorting in the App manager
- The download button in shared folders downloads the current folder only instead of the entire share thanks to oparoz. Versions of shared files can be downloaded now
- A replacement for the outdated ‘shared’ people icon with regular share icon as fallback and tidied formatting of Amazon S3 and other check boxes with some clever CSS by rnicoll.
- A indication that the share owner is remote was added to the Files app and there was work on making the naming related to the encryption app consistent
A lot of performance work took place, much of it related to what we already described in the blog about blackfire.io
- For the many ownCloud deployments with millions of LDAP users, this PR will makes configuring users and groups more reliable
- Bypass the view when storing encryption keys
- Removing children from the cache in one query makes file deletion decrease from 11 seconds to less than one second when deleting 1GB in 136 files and from 53 sec to 1.6 when deleting 2gb in 700 files. Blackfire view
- The cache responses from the AppStore server made the loading of categories decrease from about 3 seconds to 200 milliseconds
- There was the simplification of ValidPath and added unit tests, making code faster AND better; verifying whether the value is already normalized; using isset() instead of strlen(); and using memcache for findBinaryPath
Several of these performance improvements require a cache like APC(u). Part of this functionality is built in into PHP 5.5 and higher but there is still room for improvement and it is recommended to run APCu.
Other changes that went into core include:
- One of the major features of ownCloud 8– full content width search results by butonic, made it in on January 6 and some refinements came in later including scroll to file in folder
- A big LDAP user cleanup made it into both oC 7 and 8–removing users from the ownCloud user list when they are removed from the LDAP server
- You can now download logfiles (and you’ll be warned if it is over 100 mb)
- A timeout was added for notifications. Some more work would be needed to modify all notifications to benefit from this
- Adam Will made it possible for the css/js asset directory to be relocated (‘assetdirectory’) This allows the directory where CSS/JS asset collections are written to be changed, in case \OC::$SERVERROOT is not writable
- Finally, adding a method to set/unset multiple config values with one write makes writing to config.php more robust
The Android app now has a file upload dialog with thumbnails thanks to TobiasKaminsky, and rhabbachi wrote an initial implementation of a download folder function in the Android app, which is now merged. The iOS app got the ability to share data with other iOS apps thanks to this PR.
The Desktop client gained the ability to share links from the desktop file browsers, work started by by Azelphur and finished with this PR by rullzer (more related code here). Rullzer got the folder list in the tray icon sorted. ckamm refactored the account logic in the client to prepare for the much requested multi-account feature and thanks to ryo-on we have much improved NetBSD support and chrodan submitted a patch to hide Ignored files in the recent changes context menu of the client. Combined with the work by the core client team fixing bugs, adding other features and improving performance, desktop client users have an exciting 1.8 release to look forward to. If you want, you can help test the upcoming release! You can grab binaries on the bottom of the install page and help us get this release out.
Other changes include:
- ocdev gained an appstore plugin so you can easily bring new apps in the appstore or update existing ones (some work is still needed server side). Raydiation also adjusted the app templates to the new ownCloud 8 improvements. See also our “what’s new for ownCloud application developers” article.
- The search_lucene app now also supports the new app-specific search in ownCloud 8, as well as the calendar, bookmarks and more.
- babelouest added some small fixes for the import in contacts and thanks to arkascha the shorty app now gets you a favicon!
- Last but not least, new work has been made on an Issue Reporter application which will, once completed, make reporting problems easier for both developers and users.
The above is little more than a taste of what has been going on. apps.owncloud.com has also had many, many updates and new apps. Just a few highlights:
- The passman password manager, at almost 4000 downloads, has gotten some serious new features, including a user friendly first-time wizard explaining its inner workings. The app has also been made mobile-friendly and several bug-fix releases have come out over the last weeks.
- A user registration script is now available. It would be a cool feature to have in ownCloud and the author is encouraged to submit his work to the Apps repo if he’s able to maintain it!
- Big updates to the polls app–Tasks is almost, but not quite, ready for ownCloud 8 and there’s a new embedded video stream app update.
If you want to get involved in coding on ownCloud – check out this page! People who want to fix issues in core or who want to build an ownCloud app will find links to the documentation. But if you are interested in translation, documentation, testing or anything else that helps ownCloud – you too should visit the contribute page!
Discussions and blogs
Conversations on the ownCloud development list included many announcements related to the upcoming release as well as conversations about API’s, the ownCloud Dolphin plugin, viewing medical DICOM images and much more. You can join the discussions on this page.
The ownCloud news page, aggregating blogs by ownCloud contributors, also had the usual activity. Post about ownCloud’s 5th birthday, our appearance at open source events SCALE and FOSDEM (find a calendar of more ownCloud events on owncloud.org/events), a blog about performance improvements going into ownCloud, and three blogs about what’s new in ownCloud 8 for users, system administrators and developers.
We hope you enjoyed the read!
Note: what we describe here is code going into ownCloud as part of an open, collaborative development process. There is no guarantee the technologies developed, even those merged, will make it to a release: bugs or other concerns might force the code to be removed again; and further additions or changes can modify its behavior. This blog is meant as a way to allow you to follow what goes on in development.