{"id":8693,"date":"2015-08-12T17:28:24","date_gmt":"2015-08-12T17:28:24","guid":{"rendered":"https:\/\/owncloud.com\/?p=8693"},"modified":"2015-08-12T17:28:24","modified_gmt":"2015-08-12T17:28:24","slug":"owncloud-server-development-second-half-of-july","status":"publish","type":"post","link":"https:\/\/owncloud.com\/de\/blogs\/owncloud-server-development-second-half-of-july\/","title":{"rendered":"ownCloud Server Development Second Half of July"},"content":{"rendered":"<p><div id=\"attachment_8764\" style=\"width: 320px\" class=\"wp-caption alignright\"><a href=\"https:\/\/owncloud.com\/wp-content\/uploads\/2015\/08\/5e4769f8-347d-11e5-9d63-d36d16cd66ca.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8764\" src=\"https:\/\/owncloud.com\/wp-content\/uploads\/2015\/08\/5e4769f8-347d-11e5-9d63-d36d16cd66ca-1024x627.png\" alt=\"openSSL\/NSS warnings\" width=\"300\" height=\"184\" class=\"size-large wp-image-8764\" \/><\/a><p id=\"caption-attachment-8764\" class=\"wp-caption-text\">new openSSL\/NSS warnings<\/p><\/div><br \/>\nIn this post we describe ownCloud core development in the last two weeks of July. Since the <a href=\"https:\/\/owncloud.com\/blog\/owncloud-development-in-the-first-half-of-july\/\">previous report<\/a> covering the massive amount of new features getting merged, there has been a bit of a shift towards stability, but there still is enough to write about in the new-and-fresh department. Read on and enjoy!<\/p>\n<p>If you have any input on the report, <a href=\"https:\/\/www.google.com\/+JosPoortvliet\" target=\"_blank\" rel=\"noopener\">let me know<\/a> or share in the comments section. On a related note, we&#8217;re kicking off a monthly ownCloud.org newsletter &#8211; the first will be send out this week. You can <a href=\"https:\/\/owncloud.com\/promote\/newsletter\/?pk_campaign=server_dev_070815\">sign up here.<\/a><\/p>\n<h2>Development<\/h2>\n<ul>\n<li><a href=\"#database\">Database Work<\/a><\/li>\n<li><a href=\"#download\">Adding Download Feedback<\/a><\/li>\n<li><a href=\"#design\">Design Details<\/a><\/li>\n<li><a href=\"#more\">And More<\/a><\/li>\n<li><a href=\"#news\">Blogs and Conference Program Announcement<\/a><\/li>\n<\/ul>\n<p><a name=\"database\"><\/a><\/p>\n<h3>Database Work<\/h3>\n<p>There has been work going on to improve the database handling in ownCloud. A public <a href=\"https:\/\/github.com\/owncloud\/core\/pull\/17413\" target=\"_blank\" rel=\"noopener\">API for Doctrine QueryBuilder and ExpressionBuilder<\/a> was added to ownCloud as part of a <a href=\"https:\/\/github.com\/owncloud\/core\/issues\/12502\" target=\"_blank\" rel=\"noopener\">bigger effort<\/a> to make writing SQL queries easier and less error prone. Note that this isn&#8217;t a full <a href=\"http:\/\/www.doctrine-project.org\/projects\/orm.html\" target=\"_blank\" rel=\"noopener\">&gt;Object Relational Mapper<\/a>, rather, it still requires SQL knowlege and allows easily adding custom terms while avoiding the ORM overhead. Of course, it also means SQL is not validated and developers have to make sure it works with the databases they target.<\/p>\n<p>Besides this API work, the MySQL code was made ready for newer database versions as well as PHP 7 by <a href=\"https:\/\/github.com\/owncloud\/core\/pull\/17963\" target=\"_blank\" rel=\"noopener\">moving the setup code to Doctrine<\/a> and the remains of MSSQL support <a href=\"https:\/\/github.com\/owncloud\/core\/pull\/17966\" target=\"_blank\" rel=\"noopener\">were cleaned up<\/a>.<br \/>\n<a name=\"download\"><\/a><br \/>\n<div id=\"attachment_8768\" style=\"width: 320px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8768\" src=\"https:\/\/owncloud.com\/wp-content\/uploads\/2015\/08\/old-and-new2.gif\" alt=\"old and new\" width=\"300\" height=\"137\" class=\"size-full wp-image-8768\" \/><p id=\"caption-attachment-8768\" class=\"wp-caption-text\">old and new<\/p><\/div><\/p>\n<h3>Adding Download Feedback<\/h3>\n<p>Much attention is paid to details the details within ownCloud, and <a href=\"https:\/\/github.com\/owncloud\/core\/pull\/17175#issuecomment-115532150\" target=\"_blank\" rel=\"noopener noreferrer\">this Pull Request<\/a> is proof. Starting with a &#8217;simple&#8216; pull request, <a href=\"https:\/\/github.com\/MorrisJobke\" target=\"_blank\" rel=\"noopener noreferrer\">Morris Jobke<\/a> opened a can of worms. It can occasionally take a while before the server can provide a file to users who click the download button in the Files app, so he wanted a spinner to appear when the user clicks. But how does the Javascript in Files know the download is started? First, it would show a spinner for a fixed 7 seconds &#8211; a solution nobody liked. He then proposed to send a random string within the download redirect. The server would set a cookie name, serve it to the browser and the Javascript would know the download has been started. This became the final implementation, however, <a href=\"https:\/\/github.com\/oparoz\" target=\"_blank\" rel=\"noopener noreferrer\">oparoz<\/a> asked for a generic solution as he&#8217;d like to use this in the Gallery app as well, and there might be other uses (the public download link page was mentioned already). <a href=\"https:\/\/github.com\/PVince81\" target=\"_blank\" rel=\"noopener noreferrer\">PVince81<\/a> pointed out that this would be problematic once the Files app moves to WebDAV as its backend (for more on that see <a href=\"https:\/\/owncloud.com\/blog\/owncloud-development-in-the-first-half-of-july\/#files\" target=\"_blank\" rel=\"noopener noreferrer\">this write-up<\/a>). There wasn&#8217;t much to be done about that now, so he brought up that he, like oparoz, would like to have the functionality separated as much as possible. Morris refactored the code, separating the download logic in a separate class. After code review, testing in various browsers and design feedback, the code was finally merged while adding the spinner to the download button on the public link page comes later.<br \/>\n<a name=\"design\"><\/a><br \/>\n<div id=\"attachment_8765\" style=\"width: 189px\" class=\"wp-caption alignright\"><a href=\"https:\/\/owncloud.com\/wp-content\/uploads\/2015\/08\/d6c4e2d2-3623-11e5-9895-491693263513.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8765\" src=\"https:\/\/owncloud.com\/wp-content\/uploads\/2015\/08\/d6c4e2d2-3623-11e5-9895-491693263513-169x300.png\" alt=\"Prettier ownCloud tabs!\" width=\"169\" height=\"300\" class=\"size-medium wp-image-8765\" \/><\/a><p id=\"caption-attachment-8765\" class=\"wp-caption-text\">Prettier tabs!<\/p><\/div><\/p>\n<h3>Visual details<\/h3>\n<p>To improve the look on Android L, <a href=\"https:\/\/github.com\/jancborchardt\" target=\"_blank\" rel=\"noopener noreferrer\">Jan-Christoph Borchardt<\/a> added <a href=\"https:\/\/github.com\/owncloud\/core\/pull\/17965\" target=\"_blank\" rel=\"noopener noreferrer\">&#8218;theme-color&#8216; to the mobile layout<\/a> and changed the look of <a href=\"https:\/\/github.com\/owncloud\/core\/pull\/17960\" target=\"_blank\" rel=\"noopener noreferrer\">password-protected links<\/a>. In other tiny-details-news, there is now a space between user and admin documentation so they <a href=\"https:\/\/github.com\/owncloud\/core\/pull\/17807\" target=\"_blank\" rel=\"noopener noreferrer\">don&#8217;t look like a single link anymore<\/a>. The description of the default encryption module <a href=\"https:\/\/github.com\/owncloud\/core\/pull\/17806\" target=\"_blank\" rel=\"noopener noreferrer\">was also improved<\/a> to ensure that users wouldn&#8217;t get confused about what it can and can&#8217;t do (see this <a href=\"https:\/\/owncloud.com\/blog\/encryption-2-0-in-owncloud-server-8-1\/\" target=\"_blank\" rel=\"noopener noreferrer\">blog for details on the new Encryption 2.0<\/a>).<br \/>\n<a name=\"more\"><\/a><\/p>\n<h3>And More<\/h3>\n<p>Other notable PR&#8217;s include:<\/p>\n<ul>\n<li>A <a href=\"https:\/\/github.com\/owncloud\/core\/pull\/17838\" target=\"_blank\" rel=\"noopener\">new hook was introduced<\/a> in our password handling code to allow apps to be written for specific password policy handling.<\/li>\n<li>The app checker now <a href=\"https:\/\/github.com\/owncloud\/core\/pull\/16935\" target=\"_blank\" rel=\"noopener\">warns for deprecated classes<\/a> as requested on the <a href=\"https:\/\/mailman.owncloud.org\/pipermail\/devel\/2015-June\/001301.html\" target=\"_blank\" rel=\"noopener\">ownCloud developer mailing list<\/a>.<\/li>\n<li>If you have an old openSSL or NSS version, ownCloud will now <a href=\"https:\/\/github.com\/owncloud\/core\/pull\/17912\" target=\"_blank\" rel=\"noopener\">give you a warning<\/a> in the admin settings. This is especially relevant for CentOS 6 users which have a very old NSS version and experience issues with Federated Cloud Sharing and the ownCloud app store.<\/li>\n<\/ul>\n<p>If you want to get involved in coding on ownCloud check out <a href=\"https:\/\/owncloud.com\/contribute\">this page<\/a>! You can join the development discussions on <a href=\"https:\/\/mailman.owncloud.org\/mailman\/listinfo\/devel\" target=\"_blank\" rel=\"noopener\">this page<\/a>.<br \/>\n<a name=\"news\"><\/a><\/p>\n<h2>Other ownCloud Happenings<\/h2>\n<p>On <a href=\"https:\/\/owncloud.com\/news\/\" target=\"_blank\" rel=\"noopener noreferrer\">Planet ownCloud<\/a>, we continued to publish blogs about what is new in the ownCloud 8.1 release, like a <a href=\"https:\/\/owncloud.com\/blog\/encryption-2-0-in-owncloud-server-8-1\/\" target=\"_blank\" rel=\"noopener noreferrer\">post about Encryption 2.0<\/a> and some more videos on our <a href=\"http:\/\/www.youtube.com\/ownclouders\" target=\"_blank\" rel=\"noopener noreferrer\">YouTube channel<\/a>, like <a href=\"https:\/\/www.youtube.com\/watch?v=3GSppxEhmZY\" target=\"_blank\" rel=\"noopener noreferrer\">how to create a public upload folder<\/a> and others in our <a href=\"https:\/\/www.youtube.com\/watch?v=8QeJKGyhFhk&amp;list=PLtZe22ggl2YDYSI-rrOy15SuaovMjB3fg\" target=\"_blank\" rel=\"noopener noreferrer\">tutorial playlist<\/a>. Morris Jobke blogged about <a href=\"http:\/\/morrisjobke.de\/2015\/07\/22\/Conditional-Logging-in-ownCloud\/\" target=\"_blank\" rel=\"noopener noreferrer\">conditional logging<\/a> and a more <a href=\"http:\/\/morrisjobke.de\/2015\/07\/23\/Verbose-ownCloud-upgrade\/\" target=\"_blank\" rel=\"noopener noreferrer\">verbose ownCloud upgrade<\/a> process.<\/p>\n<p><iframe width=\"320\" height=\"180\" src=\"https:\/\/www.youtube.com\/embed\/3GSppxEhmZY?rel=0\" frameborder=\"0\" allowfullscreen><\/iframe> <iframe width=\"320\" height=\"180\" src=\"https:\/\/www.youtube.com\/embed\/9-JEmlH2DEg?rel=0\" frameborder=\"0\" allowfullscreen><\/iframe> <iframe width=\"320\" height=\"180\" src=\"https:\/\/www.youtube.com\/embed\/teelHVdXD4k?rel=0\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>In <a href=\"https:\/\/owncloud.com\/conf\" target=\"_blank\" rel=\"noopener noreferrer\">ownCloud Contributor Conference<\/a> news, we announced our keynote speaker, <a href=\"https:\/\/owncloud.com\/blog\/announcing-the-owncloud-contributor-conference-keynote-speaker-angela-richter\/\" target=\"_blank\" rel=\"noopener noreferrer\">German Theater Director Angela Richter<\/a>, followed by the <a href=\"https:\/\/owncloud.com\/blog\/owncloud-contributor-conference-program\/\" target=\"_blank\" rel=\"noopener noreferrer\">full conference program<\/a>. We already have over 2^8 conference registrations so if you want to join &#8211; <a href=\"https:\/\/owncloud.com\/conf\" target=\"_blank\" rel=\"noopener noreferrer\">register soon<\/a>.<\/p>\n<p>Please note that if you&#8217;re an ownCloud contributor, you should get your blog aggregated on <a href=\"https:\/\/owncloud.com\/news\/\" target=\"_blank\" rel=\"noopener noreferrer\">owncloud.org\/news<\/a>! Ping <a href=\"https:\/\/www.google.com\/+JosPoortvliet\" target=\"_blank\" rel=\"noopener noreferrer\">Jos<\/a> with your RSS feed.<\/p>\n<p>If you&#8217;d like to meet other ownClouders, check out <a href=\"https:\/\/owncloud.com\/events\" target=\"_blank\" rel=\"noopener noreferrer\">owncloud.org\/events<\/a> and of course &#8211; joining the <a href=\"https:\/\/owncloud.com\/conf\" target=\"_blank\" rel=\"noopener noreferrer\">ownCloud Contributor Conference<\/a> should be high on your wish list!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this post we describe ownCloud core development in the last two weeks of July. Since the previous report covering the massive amount of new features getting merged, there has been a bit of a shift towards stability, but there still is enough to write about in the new-and-fresh department. Read on and enjoy! If [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":78665,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[332,333,335],"tags":[],"class_list":["post-8693","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coding","category-community","category-development"],"acf":[],"_links":{"self":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/8693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/comments?post=8693"}],"version-history":[{"count":0,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/posts\/8693\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/media\/78665"}],"wp:attachment":[{"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/media?parent=8693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/categories?post=8693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/owncloud.com\/de\/wp-json\/wp\/v2\/tags?post=8693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}