Mobile device usage is surging as people use them to read content, shop online, and find information on the go. Users are proven to be happier and more willing to spend time and money on your site when it loads fast and responds quickly to their actions. Adding performance to the ever-growing list of project responsibilities can seem daunting, but it doesn't have to be.
In this full-day training, we will address every step in the process of improving frontend performance: auditing a site for problems, creating an effective solution, testing sites to ensure that the work was successful, and implementing automation tools that prevent regressions from creeping back into the codebase. Additionally, we will offer tools and suggestions to help your organization adopt a culture of performance, boosting its visibility in discussions and allowing your team to expose performance problems earlier in the development cycle, long before launch.
Wait, $langcode? What the Heck?
If that was the most polite thought that crossed your mind when dealing with the Drupal 7 Field API, please read on.
No matter whether you build complex multilingual sites, or whether just hearing the words “Drupal” and “language” in the same sentence makes you want to hide in the darkest corner of your office, there are a few language-related notions that you really need to know to write Drupal 8 code that works properly. After all, language is an intrinsic property of textual content, and since Drupal is supposed to manage content, having to deal with language does not seem such a peregrine idea, does it?Speaking of Content
Historically, content in Drupal is a user-friendly way to refer to nodes. However, in Drupal 8, content has a broader meaning: it refers to any entity type which stores information usually meant to be experienced in some form by a certain set of site users.
Content entities, such as nodes, comments, terms, custom blocks, custom menu links, and users, are all examples of this kind of entity type. The other main category is Configuration entities: node types, views, fields, menus, and roles, are meant to store information mainly related to determining the site behavior. Note that this distinction may not always be so clear-cut, as in some cases the choice of picking one category or the other may be determined mainly by implementation details, as in the case of module-provided menu links.
To sum up, when in Drupal 8 we speak of content, most of the time we are referring to content entity types.Multilingual Content: A Bit of History
In Drupal 7, a new way of translating content was introduced by adding native multilingual support to the Field API. That allowed the ability to store multilingual values for any field attached to any entity type. But code that implements business logic needs to explicitly deal with field language, which implies a very poor developer experience (DX); i.e., this infamous field data structure:
I recently got a new lens, which I'm still trying to learn how to properly use ☺. The new lens is the Nikon 300m f/4E PF ED VR (wow, that's a mouthful of acronyms…) and it's as good as I expected, except that it seems that it's too good for the person using it (me).
Physically, the lens is indeed very light and very easy to hand-hold; it's barely heavier and longer than the 70-300mm f/4-5.6 zoom, although a bit more bulky. I was fearing something "bigger" and heavier for a fixed-aperture lens, even after hearing all the good reports about it, but it was better than I expected. I was also slightly concerned, this being a prime lens, about finding the subject fast, especially if smaller or far away. It turned out that if the lens is focused at somewhat the right distance (not at the opposite end), it is not a real problem.
So, as the first test/learning exercise, I did a couple of hour long walks outdoor, photographing random subjects. First day I used the lens by itself, on the second day I added the Nikon TC-14E(III) tele-converter, for a 420mm focal length. All pictures below except the Huskies are non-cropped, just down-sampled (they have the original field of view); the Husky pictures were cropped.
In all cases, camera was set to semi-manual mode, mostly at 1/1000s or 1/2000s, various apertures between f/4 and f/8; this means wide open or stopped down one (when with the tele-converter) or two stops. Semi-manual as auto-ISO was on. Lens focus limiter on, VR either active or sport (to help with the viewfinder image mostly, at this speed), camera set to AF-C and group mode most of the time.
Also, all pictures were shot hand-held, with bad technique - until somebody stopped me, turns out he was a photographer, and showed me how to properly hold a telephoto lens; thanks, whoever you were!
The "random subjects" parts worked only somewhat, as (at first) the subjects were not too interesting; air-plane flying high above - check, fast focus (although it is easy to focus on a plane in clear sky), or close, static subjects:
Birds flying around - almost check, fast focus (both with just the lens and with the TC), although I learned that shooting flying birds while panning needs 1/2000s - my initial attempt at 1/1000s was not enough to eliminate either panning blur or wing-tip blur (both depend on the speed of the respective action); in any case, initial focus acquisition is speedy enough for me. A couple of examples (first without, second with the TC; in the second one, I was unprepared when the I saw the bird from the corner of my eye, and managed to bring up the camera and take exactly one photo before the bird was gone):
Another attempt was to focus on dogs jumping in the water. Here the problem was different: focusing on the correct object! The splashing around meant that there were lots of water droplets both in front and behind the dog, the dog being partially obscured by them. I don't know what AF settings would have helped here (maybe 3D tracking pre-focused on the black dog)? I had a low success rate on the first attempt, so I'll have to try again. The lens did correctly track the wrong thing, though ☺. Examples:
Once the dog caught its target, the lens focused well enough, of course, but not perfect; it might need some AF fine-tuning or photographer upgrade ☺:
At one point, I was lucky to have a dog running towards me; focus tracking on a subject approaching the camera is a good test for the lens (and camera) auto-focus performance. I was pleasantly surprised, given my failure to track left-to-right flying birds (which should be easier!):
In any case, I was walking and thinking on how to improve on my technique, when I saw in the distance a pair of dogs (Husky's, I believe) which were very active. This case was relatively easy for the camera and lens, since they were moving only left-to-right, instead of forward-backward, so the focus distance was mostly constant, and I just had to pan. Full gallery here, two examples:
These two dogs had an education value beyond the "how is the lens performing"; they were so fast, active (they kept going at it non-stop for a good number of minutes) and playful that they made my day brighter ☺.
So, that concludes my first test of this lens and the 1.4 tele-converter. Conclusion: equipment good, need to upgrade the photographer!
I was walking in the city with my camera and a wide (35mm) lens. I also took in the bag a macro lens, "just in case", although I wasn't sure what would it be useful for, beyond a solitary flower here and there.
But as luck would have it, I stumbled upon a floral arrangement which was host to a lot of working bees, bumblebees and ants. Perfect opportunity for some attempts at macro work! Especially as I didn't do many such attempts "outside" before.
A few of the photographs turned out "OK". Not good, as there were multiple things fighting against my lack of skills and experience.
First, aperture. From normal photography, I thought that f/8 is a small aperture. Turns out that f/8 is not enough to have the entire body of a bee in focus! f/16 is good from the depth-of-field point of view, but then the light is not good enough.
Second, wind. Not in the sense of blur - high shutter speed combats wind-induced blur, but the movement of the subject due to wind makes it very hard to focus properly, either automatically or manually, as the depth of field is very thin.
In any case, learned something more. The first and last pictures in this set are my favourites; the first one due to the detail in the wings (in stark contrast to the lack of detail in the body), and the last one due to the soft colours. Here they are, or check out the entire set:
In the third installment of REST Easy, our RESTful module tutorial series, we’ll take a look at how to filter your API endpoints for results, a great feature that brings in the power of Entity Field Query for your APIs.
For the second time since I joined Debian, I missed DebConf. This time, mostly for two completely happy reasons (which have, of course, grown up quite significatively):
But adding to that very important factor, early-to-mid August is possibly the worst date for me to attend DebConf — As that's when we start classes at UNAM, and I really don't want to delegate introducing my class to somebody else (besides it being or not possible).
Life has been quite busy here. Besides starting my seventh semester as a teacher (finally being able to present my book on operating systems to the students!), I also took on teaching two modules for a diploma-course on embedded Linux. I'm co- teaching the "User-space Linux" module together with Gabriel Saldaña, and will teach the "Boot process" module with Sandino Araico. There are many things that should be improved about the covered program, but we are having good fun working our way on it; Gabriel and I have given two (out of six) 6hr sessions each, and have reached the point where it is actually becoming fun :)
As for Debian... I have been doing minimal maintenance work. Answering to some keyring tickets, or taking care of only high-profile important issues. I do not have time to do much. I have been wanting to do some interesting analysis on the evolution of our keyring for several months, but have not had the time to follow it up. Will do at some point, /mehopes.
Anyway... This post is probably just because I need to somehow be there at our community's highest social, technical exchange period in the year. That is, there's not much to report, it's only me waving from home!
In the first article on Drupal 8 module development we looked a bit at the routing aspect of this process. We’ve seen that creating pages with paths is now a matter of declaring routes that match up with controllers. The latter, as we’ve seen, can return a render array that gets interpreted into markup and displayed in the main content area of that page. However, did you know that under the hood, Drupal actually transforms that array into a Response object according to the dictates of Symfony’s HTTPKernelInterface?
In this article, I would like us to go deeper into the internals of Drupal 8 (and Symfony2) and look at what actually happens (and can happen) from the moment a request is made by a user to the one in which they see something returned in response. The example I mentioned above is just one direction this process can go in, and today we are also going to see other possibilities. The goal is to understand the flexibility of the system which in turn can help us build awesome applications.
Before going into it, I strongly recommend you check out this diagram which does an amazing job at synthesizing what is often referred to as the render pipeline. Though in my opinion it represents more than the name implies because the render system is only part of what’s depicted, albeit a big one.
Continue reading %From Request to Response: A Journey into Drupal 8 Internals%
We recommend using Drupal as a content management system platform for our client projects for many reasons, not least of which is that it is a widely adopted, free, open source solution. Here are some of the strengths that we see our clients benefiting from when they use the Drupal content management system.
A question that I'm asked repeatedly recently is why I chose not to use an existing library for serialising data structures in Obnam. This blog post is the answer.
Obnam is a backup program, and it needs to store various data about files. This includes stat(2) information about each file in the live data, as well as data Obnam needs to keep track of everything. At run-time, Obnam keeps this data in memory data structures, such as Python dicts. For storage, these data structures need to be converted, serialised, to and from streams of bytes.
The are a variety of libraries for doing this, designed for different purposes and with their own constraints and pitfalls. Python's standard library comes with the cPickle library, for example, but its serialisation format is not guaranteed to be compatible with any other version of Python.
For Obnam, I need something that will last a long time. I do not want to have to deal with a library changing its serialisation format, as that would mean either that Obnam can't handle old backups, or that I need to start maintaining the old version of the library.
A way to look at this is that any dependencies your software have a cost, and that cost should be smaller than the benefit you get from them.
For example, Obnam depends on the paramiko library to implement the SSH protocol. This library has some cost, and I've run into one or two bugs in it that have been rather unfortunate. However, the benefit it brings is huge: I don't have to implement SSH myself. I'm happy to have Obnam depend on paramiko.
For the serialisation thing, I wrote my own library, after a small about of research into existing ones. Research time is a cost, too.
Mine is somewhat Obnam specific, in that it can make some assumptions about the data to be serialised, and this allows a simpler library. A generic library would have to handle a number of special cases that mine can ignore.
It took me less than an hour to write this twice. I first wrote a quick prototype and a little microbenchmark to see if my approach would be feasible. Then I deleted that code, and started from scratch, TDD style, to make sure the code was reliable. The cost of writing my own serialisation code was less than the cost of finding, let alone evaluating existing libraries.
It may be that my own library turns out to be inadequate. Then, and only then, is when I start researching other libraries. Until then, I'll avoid the cost of research to find a suitable library, the cost of learning the chosen one, the cost of integrating it into Obnam, the cost to porters of Obnam of dealing with a new dependency, and the risk of the library changing in ways that are unsuitable for Obnam.
Obviously, writing your own code has costs, too. Designing and implementing a library is a cost, as is maintaining it (debugging, changes in requirements, etc).
Write your own or use existing code? It's a cost/benefit analysis. There's no clear one answer that's always correct.
I have been searching for a way to make Drupal output cleaner, lighter, more semantic HTML since I started theming. We all know Drupal core, and it's many contrib modules have a tendency to inject a couple-two-tree divs in 'dere. I have tried many different ways, much to the chagrin of the developers I have worked with, most of them probably not worth the effort I put in. That is until now!
The goal of my approach here is to minimize the markup that Drupal puts out, and gain complete control over the what and the where of the markup. I can gain control of the fields using the Fences module; control over the templates in my theme; and gain even more control over the placement and what gets loaded using ctools Page Manager and Panels. I will step through each of this in detail below.
Last week we attended Drupalaton for the second year in a row. It was so valuable to us last year we couldn’t resist returning, especially after attending the great events Drupalaton & Drupal Dev Days Szeged last year. See our blog post from last year Drupalaton 2014.What is Drupalaton?
It is a 4 day Drupal Camp which takes place on the edge of Lake Balaton, the largest lake in Central Europe. It started off as a group of 50 Hungarian Drupalers that knew each other quite well, as a Drupal Camp in the city of Pécs. After it grew the local community decided to move it to Balaton and change the name. After 1 year they decided to open it up to a much wider community, so in 2013 lots of attendees came from neighbouring countries.
Last year in 2014 there were 79 attendees from 13 countries including Belgium, France, Finland, Germany, Netherlands, Spain, Sweden, Switzerland, the UK. This year it was great to see us reach 115 attendees from a more diverse group of countries, many of which re-attending for years (including Pieter Frenssen).What makes Drupalaton unique to other DrupalCamps?
- Sessions - Longer, friendlier & more interactive.
- Weather - At 35C during the trip it was great to make sure relaxation was had. Having the lake a few steps outside the hotel was very much welcomed.
- Social activities - Morning jogs, group meals, evening drinks, boat party, grill party, swimming together on the lake, Go Karting.
- People - The great weather and opportunities for socialising make it an amazing environment to make new and strengthen existing friendships. Some attendees brought their children who also made new friends!
We can’t say how much we appreciated all of the organisation effort that went into the event. The team was led by Tamás ‘York’ Pintér, with support from Zsófi Major, Gábor Reisinger, István Csáki. They are the real heroes of the event, and in addition to the months of organisation, they put in lots of additional time from early in the morning until the late night socials. They deserve a huge round of applause.Extended sessions/talks
These were longer than usual 1 hour given at other Drupal Camps & Drupal Cons, but also in a workshop format. These were upto 3 hours in length, people had their laptops out on tables and were encouraged to ask the speakers questions as they went.Boat party
This was a lot of fun and also a very good opportunity for attendees to exchange experiences and knowledge with eachother. There was tasty food, beer thanks to the fantastic sponsors. The boat journey was perfectly timed to give a view of an amazing sunset.Grill party & the Drupalaton song
More tasty food followed, truly a feast which was much appreciated. Here some played poker with Druid's scrum cards and others played with the children, all before we were treated to a perfomance of the Drupalaton song. There were guitars and singing provided by Ruben Teijeiro, Gergely Csonka, Ernő Zsemlye & Tamás Hajas who gave us 'Drupal Get Commit' and the catchy chorus "We’re up all night to get a commit". YouTube video.Fun games
5Net from Hungary gave puzzle pieces in everyone’s goodie bags which were used to create a giant jigsaw puzzle with the Drupalaton logo. REEA from Romania brought a unique game Crokinole, in which you slide pieces into circles and knock your opponents’ ones out, during which I won a t-shirt & mug after beating my opponent.Family friendly
Lake Balaton is a popular holiday destination for the whole family which is one of the reasons many Drupal attendees brought their partners and children. It is very pleasing to see how happy everyone is and how much they interacted with the rest of us during the social time. It is good fun for the whole family and encourages them to all become friends with each other too. Perhaps in future events we could even have sessions for children, what do you think?Drupal in Hungary
With famous Hungarian Drupalers including Gábor Hojtsy & chx , it was a different environment than you would normally see them in. I was very pleased to find out about how the Drupal community started to grow adoption in the country, especially in the early days.Drupal in Central & Eastern Europe
Drupal companies in the area are keen to get away from the outside world seeing them as a cheap place to outsource to. They prefer to work on a partnership basis where you gain a relationship with team members, instead of ‘resources’. It is interesting to see that they are increasingly working on local client projects too. I was glad to see many friends again from the nearby countries of Serbia, Romania, Slovakia again from last year as well as other camps. For some local attendees Drupalaton has become an affordable alternative to DrupalCons as wages are generally a lot lower than in Western Europe. It will be exciting to see what happens with Drupal Iron Camp next year in Budapest, an event that aims to showcase the talent of the area and provide accessible Drupal training with low cost tickets.Photos
Tamás ‘TeeCee’ Szügyi has perfected his art of photographing Drupal events with precision and was everywhere capturing it all. He has added photos to this Flickr group. If you have any photos please share them there too.Next year
For 2016’s event the dates have been announced for 11-14th August. Hope to see you all at Drupalaton again next year!Image - Top: Tags: DrupalDrupal CampDrupal Planet
Yet another relatively minor update.
What with all the other stuff that's been going on in my life in the past year, I never updated my backport script to support backports to jessie or to reflect the new stable release. This release does that, at some email prompting (thank you!).
It also adds a new -A or --architecture flag to specify which build architecture to pass to pdebuild. I have no idea if this works, but it at least should in theory.
You can get the latest version of my backport script from my scripts page.
Today is the day for minor software releases. It's amazing how much more free time I have when I'm not unpacking boxes.
Osamu Aoki submitted a bug report a while back asing for --update, --create, and --login to be supported as options to git-pbuilder, in addition to the versions without leading hyphens, since pbuilder and cowbuilder require the hyphens and people are used to typing them. I've finally merged his patch and released git-pbuilder 1.35 with that change. It will probably show up in git-buildpackage shortly.
(Still need to rewrite this script in Python one of these days so that it can be properly and fully merged with git-buildpackage.)
You can get the latest version of git-pbuilder from my scripts page.
Sorry for posting so late, we're very busy at DebConf15!
Happy 22nd birthday Debian!
Just came back from a wonderful time hiking with my daughter at the finale Hike the Greenbelt event at the Backlands/McIntosh Run! This photo slideshow is from my HP snapshot camera which unfortunately has dust in the lens. But I felt it was more important to get them up soon than to get them perfect, so please click the photo below to start the slideshow. I want to thank everyone who made this event a success, and not going to name specific names as I’m sure I’ll miss someone important. But thanks especially to Martin, the leader of our group.
The Asus t100 tablet is this amazing and odd little thing: it sells for under $200, yet has a full-featured Atom 64-bit CPU, 2GB RAM, 32 or 64GB SSD, etc. By default, it ships with Windows 8.1. It has a detachable keyboard, so it can be used as a tablet or a very small 10″ laptop.
I have never been a fan of Windows on it. It does the trick for web browsing and email, but I’d like to ssh into my machines sometimes, and I just can’t bring myself to type sensitive passwords into Windows.
I decided to try installing Debian on it. After a lot of abortive starts due to the UEFI-only firmware, I got jessie installed. (The installer was fine; it was Debian Live that wouldn’t boot.) I got wifi and battery status working via an upgrade to the 4.1 kernel. A little $10 Edimax USB adapter was handy to spare a bunch of copying via USB disks.
I have been using XFCE with XMonad for so many years that I am somewhat a stranger to other desktop environments. XMonad isn’t really suitable for a tablet, however, so I thought I’d try Gnome, especially after a fairly glowing review about its use on a tablet.
I am already disappointed after just a few minutes. There is no suspend button on the menu. Some Googling showed that holding Alt while hovering over the power off button will change it to a suspend button. And indeed it does. But… uh, what? That is so common and so non-obvious. And pushing the power button does… nothing. That’s right, nothing. Apparently the way to enable some action when you push the power button is to type in a settings command in a terminal. There’s no setting in the settings panel.
I initially ditched Gnome some years ago due to its penchant for removing features. I had hoped that this much time later, it would have passed that stage, but I’m already disappointed. I was hoping for some really nice integration with the system. But my XFCE setup has a very clear “When power button is pressed” setting. I have no idea why Gnome doesn’t.
Also, the touch screen works fine and it registers my touches, but whenever I touch anywhere, the cursor disappears. Weird, eh?
There are some things to fix yet on the tablet (sound, brightness adjustment, and making suspend reliable) but others have solved these in Ubuntu so I don’t think it’ll be too hard.
In the meantime, any suggestions regarding Gnome? Is it just going to annoy me? Maybe I should try KDE also. I’ve heard good things about Plasma Active, but don’t see it in Debian though.
It is still an open question what the Debian Project Leader wears under their kilt.
Debconf15 started yesterday and as expected, talk rooms are always fully crowded! I had to stand up in a couple of talks and I watched another couple of them from outside thanks to the real time streaming.
Thanks to the fantastic work of the video team, video recordings of the talks from yesterday have started to be available at http://meetings-archive.debian.net/pub/debian-meetings/2015/debconf15/.
I would heartily recommend you to watch “Debian’s Central Role in the Future of Software Freedom” by Bradley M. Kuhn (video available).
I was expecting a good talk and Bradley exceeded my expectations.
I also got to meet again Simon Kainz and to get my DUCK branded lighter from the duck challenge :)
After dinner, we celebrated Debian’s 22 birthday, that’s exactly today. We had a wonderful cake made by DebConf attendees made by small pieces of pastry with fruits drawing a mosaic with a Debian swirl.
While the cake was a very nice detail, the best part of it was watching the people making the cake. Everybody had a great time and this kind of things are what make Debian (and DebConf) great. When people work together to make something wonderful.
What happened in the reproducible builds effort this week:Toolchain fixes
- Stéphane Glondu uploaded dh-ocaml/1.0.10 which now generates *.info with a deterministic order. Original patch by Chris Lamb. Stéphane also uploaded ocaml/4.02.3-1 to experimental which enables ocamldoc to build reproducible manpages using a patch by Valentin Lorentz.
- Paul Gevers uploaded pasdoc/0.14.0-1 with upstream changes which should make the generated documentation reproducible by default.
- Osamu Aoki uploaded debiandoc-sgml/1.2.31-1 adding spport for a DEBIANDOC_DATE environment variable to override the content of the <date> tag.
- Dmitry Shachnev uploaded sphinx/1.3.1-4 which fixes many reproducibility issues and add support for SOURCE_DATE_EPOCH.
The following packages became reproducible due to changes in their build dependencies: backup-manager, cheese, coinor-csdp, coinor-dylp, ebook-speaker, freefem, indent, libjbcrypt-java, qtquick1-opensource-src, ruby-coffee-script, ruby-distribution, schroot, twittering-mode.
The following packages became reproducible after getting fixed:
- abook/0.6.0~pre2-5 by Denis Briand.
- ada-reference-manual/1:2012.2-6 by Nicolas Boulenguez.
- aegisub/3.2.2+dfsg-1 uploaded by Sebastian Reichel, original patch by Juan Picca.
- casablanca/2.5.0-1 uploaded by Gianfranco Costamagna, fix by Mattia Rizzolo.
- dpatch/2.0.37 by Gergely Nagy.
- ganeti/2.14.1-1~exp1 by Apollon Oikonomopoulos.
- gperf/3.0.4-2 by Hilko Bengen, report by akira.
- htdig/1:3.2.0b6-14 uploaded by Ralf Treinen, original patch by Chris Lamb.
- icedove/38.1.0-1 uploaded by Christoph Goehre, report by Lunar.
- kamailio/4.3.1-2 by Victor Seva.
- leveldb/1.18-3 uploaded by Laszlo Boszormenyi, original patch by Reiner Herrmann.
- librostlab-blast/1.0.1-5 uploaded by Andreas Tille, original patch by Chris Lamb.
- linux-tools/4.1.4-1 by Ben Hutchings.
- nitpic/0.1-16 uploaded by Ralf Treinen, patches by Chris Lamb (#777492) and akira (#793708).
- openscad/2015.03-1+dfsg-1 uploaded by Christian M. Amsüss, fixed upstream.
- pciutils/1:3.3.1-1 uploaded by Anibal Monsalve Salazar, origial patch by Reiner Herrmann.
- pyepr/0.9.3-1 uploaded by Antonio Valentino, original patch by Juan Picca.
- pytables/3.2.1-1 by Antonio Valentino.
- python-xlib/0.14+20091101-3 by Andrew Shadura, report by akira.
- rrdtool/1.5.4-3 by Jean-Michel Vourgère.
- sgmltools-lite/184.108.40.206.cvs.20010909-18 uploaded by Ralf Treinen, patches by Chris Lamb (#777011) and akira (#793720).
- uhd/3.8.5-2 by A. Maitland Bottoms.
- xfireworks/1.3-10 uploaded by Yukiharu YABUKI, original patch by Chris Lamb.
Some uploads fixed some reproducibility issues but not all of them:
- ben/0.7.1 uploaded by Mehdi Dogguy, original patch by Reiner Herrmann.
- debiandoc-sgml-doc/1.1.24 uploaded by Osamu Aoki, initial patch by Dhole.
- ifrench-gut/1:1.0-31 uploaded by Lionel Elie Mamane, original patch by Valentin Lorentz.
- qdjango/0.6.0-1 uploaded by Jeremy Lainé, fixed upstream, original patch by akira.
- spectacle/0.25-1 assembled by Philippe Coval, original patch by Chris Lamb.
Patches submitted which have not made their way to the archive yet:
- #795203 on xlsx2csv by Dhole: set PODDATE to the date of the latest debian/changelog entry.
- #795392 on blkreplay by Dhole: tell pod2man to use the date of the latest debian/changelog entry.
- #795394 on libitpp by Dhole: use SOURCE_DATE_EPOCH as source for the manpage date instead of the currentdate.
- #795395 on adblock-plus by Dhole: set TZ to UTC when using zip.
- #795438 on wims-extra by Chris Lamb: ask grep to cope with non-UTF8 files.
- #795441 on aprx by Chris Lamb: use SOURCE_DATE_EPOCH as source for the manpage date instead of the currentdate.
- #795462 on ogre-1.9 by Chris Lamb: removes timestamps from the documentation system.
- #795484 on ruby-rmagick by Chris Lamb: patch the bindings to allow the PRNG seed to be set, and set it to a fixed value when generating examples.
- #795562 on htp by Chris Lamb: export TZ=UTC in debian/rules.
Work on testing several architectures has continued. (Mattia/h01ger)Package reviews
29 reviews have been removed, 187 added and 34 updated this week.
172 new FTBFS reports were filled, 137 solely by Chris West (Faux).
josch spent time investigating the issue with fonts in PDF files.
Chris Lamb documented the issue affecting documentation generated by ocamldoc.Misc.
h01ger and Lunar also used CCCamp15 as an opportunity to have discussions with members of several different projects about reproducible builds. Good news should be coming soon.