FLOSS Project Planets

Thorsten Alteholz: My Debian Activities in September 2021

Planet Debian - Sat, 2021-10-09 15:42

FTP master

This month I accepted 224 and rejected 47 packages. This is almost thrice the rejects of last month. Please, be more careful and check your package twice before uploading. The overall number of packages that got accepted was 233.

Debian LTS

This was my eighty-seventh month that I did some work for the Debian LTS initiative, started by Raphael Hertzog at Freexian.

This month my all in all workload has been 24.75h. During that time I did LTS and normal security uploads of:

  • [DLA 2755-1] btrbk security update for one CVE
  • [DLA 2762-1] grilo security update for one CVE
  • [DLA 2766-1] openssl security update for one CVE
  • [DLA 2774-1] openssl1.0 security update for one CVE
  • [DLA 2773-1] curl security update for two CVEs

I also started to work on exiv2 and faad2.

Last but not least I did some days of frontdesk duties.

Debian ELTS

This month was the thirty-ninth ELTS month.

Unfortunately during my allocated time I could not process any upload. I worked on openssl, curl and squashfs-tools but for one reason or another the prepared packages didn’t pass all tests. In order to avoid regressions, I postponed the uploads (meanwhile an ELA for curl was published …).

Last but not least I did some days of frontdesk duties.

Other stuff

On my neverending golang challenge I again uploaded some packages either for NEW or as source upload.

As Odyx took a break from all Debian activities, I volunteered to take care of the printing packages. Please be merciful when somethings breaks after I did an upload. My first printing upload was hplip

Categories: FLOSS Project Planets

Ritesh Raj Sarraf: Lotus to Lily

Planet Debian - Sat, 2021-10-09 12:22
The Louts story so far

My very first experience with water flowering plants was pretty good. I learnt a good deal of things; from setting up the pond, germinating the lotus seeds, setting up the right soil, witnessing the growth of the lotus plant, fish eco-system to take care of the pond. Overall, a lot of things learnt.

But I couldn’t succeed in getting the Lotus flower. A lot many reasons. The granite container developed some leakage, which I had to fix by emptying it, which might have caused some shock to the lotus. But more than that, in my understanding, the reason for not being able to flower the lotus, was the amount of sunlight. From what I have learned, these plants need a minimum of 6-8 hrs of sunlight to really give you with the flowering result, whereas the setup of my pond was on the ground with hardly 3-4 hrs of sun. And that too, with all the plants growing, resulted in indirect sunlight.

Lotus to Lily

For my new setup, I chose a large oval container. And this one, I placed on my terrace, carefully choosing a spot where it’d get 6-8 hrs of very bright sun on usual days. Other than that, the rest of the setup is pretty similar to my previous setup in the garden. Guppies, Solar Water Fountain etc.

Initial lily pond setup

The good thing about the terrace is that the setup gets ample amount of sun. You can see that in the picture above, with the amount of algae that has been formed. Something that is vital for the plant’s ecosystem.

I must thank my wonderful neighbor who kindly shared a sapling from their lily plant. They already had had success with flowering the lily. So I had high hopes to see the day come when I’d be happy to write down my experience in this blog post. Though, a lot of patience is needed. I got the lily some time in January this year. And it blossomed now, in October.

So, here’s me sharing my happiness here, in particular order of how I documented the process.

Monday morning greeted with a blossomed lily Lily Blossom Closeup Beautiful water reflection //autoplay off Your browser does not support the video tag. Dawn to Dusk

The other thing that I learned in this whole lily episode is that the flower goes back to sleeping at dusk. And back to flowering again at dawn. There’s so much to learn in the surrounding, only if you spare some time to the little things with mother nature.

Lily status at dusk Lily the next day

Not sure how long this phenomenon is to last, but overall witnessing this whole process has been mesmerizing.

This past week has been great. 🙏🏼

Categories: FLOSS Project Planets

remotecontrol @ Savannah: Corrections & Amplifications - WSJ - October 9th, 2021

GNU Planet! - Sat, 2021-10-09 07:42


The editor of the Wall Street Journal has retracted their article about the new Google Nest Thermostat feature by issuing a public correction announcement.

Categories: FLOSS Project Planets

KDE DEVLOG: Understanding Plasma's Panels

Planet KDE - Sat, 2021-10-09 06:21
Stay in the loop: https://t.me/veggeroblog If you want to help me make these videos: Patreon: https://www.patreon.com/niccolove Youtube: https://www.youtube.com/channel/UCONH73CdRXUjlh3-DdLGCPw/join Paypal: https://paypal.me/niccolove My website is https://niccolo.venerandi.com and if you want to contact me, my telegram handle is [at] veggero.
Categories: FLOSS Project Planets

Talk Python to Me: #337: Kedro for Maintainable Data Science

Planet Python - Sat, 2021-10-09 04:00
Have you heard of Kedro? It's a Python framework for creating reproducible, maintainable and modular data science code. <br/> <br/> We all know that reproducibility and related topics are important ones in the data science space. The freedom to pop open a notebook and just start exploring is much of the magic. <br/> <br/> Yet, that free-form style can lead to difficulties in versioning, reproducibility, collaboration, and moving to production. Solving these problems is the goal of Kedro. And we have 3 great guests from the Kedro community here to give us the rundown: Yetunde Dada, Waylon Walker, and Ivan Danov.<br/> <br/> <strong>Links from the show</strong><br/> <br/> <div><b>Waylong on Twitter</b>: <a href="https://twitter.com/_WaylonWalker" target="_blank" rel="noopener">@_WaylonWalker</a><br/> <b>Yetunda on Twitter</b>: <a href="https://twitter.com/yetudada" target="_blank" rel="noopener">@yetudada</a><br/> <b>Ivan on Twitter</b>: <a href="https://twitter.com/ivandanov" target="_blank" rel="noopener">@ivandanov</a><br/> <br/> <b>Kedro</b>: <a href="https://kedro.readthedocs.io/en/stable/" target="_blank" rel="noopener">kedro.readthedocs.io</a><br/> <b>Kedro on GitHub</b>: <a href="https://github.com/quantumblacklabs/kedro" target="_blank" rel="noopener">github.com</a><br/> <b>Join the Kedro Discord</b>: <a href="https://discord.gg/akJDeVaxnB" target="_blank" rel="noopener">discord.gg</a><br/> <br/> <b>Articles about Kedro by Waylan</b>: <a href="https://waylonwalker.com/kedro/" target="_blank" rel="noopener">waylonwalker.com</a><br/> <b>Kedro spaceflights tutorial</b>: <a href="https://kedro.readthedocs.io/en/stable/03_tutorial/01_spaceflights_tutorial.html" target="_blank" rel="noopener">kedro.readthedocs.io</a><br/> <b>“Hello World” on Kedro</b>: <a href="https://kedro.readthedocs.io/en/stable/02_get_started/03_hello_kedro.html" target="_blank" rel="noopener">kedro.readthedocs.io</a><br/> <b>Kedro Viz</b>: <a href="https://quantumblacklabs.github.io/kedro-viz/" target="_blank" rel="noopener">quantumblacklabs.github.io</a><br/> <b>Spaceflights Tutorial video</b>: <a href="https://www.youtube.com/watch?v=fTPAWzzWrOY" target="_blank" rel="noopener">youtube.com</a><br/> <b>Dynaconf package</b>: <a href="https://www.dynaconf.com/" target="_blank" rel="noopener">dynaconf.com</a><br/> <b>fsspec: Filesystem interfaces for Python</b>: <a href="https://filesystem-spec.readthedocs.io/en/latest/" target="_blank" rel="noopener">filesystem-spec.readthedocs.io</a><br/> <b>Neovim</b>: <a href="https://neovim.io/" target="_blank" rel="noopener">neovim.io</a><br/> <b>Watch this episode on YouTube</b>: <a href="https://www.youtube.com/watch?v=WTcjvwkXoY0" target="_blank" rel="noopener">youtube.com</a><br/> <b>Episode transcripts</b>: <a href="https://talkpython.fm/episodes/transcript/337/kedro-for-maintainable-data-science" target="_blank" rel="noopener">talkpython.fm</a><br/> <br/> <b>---------- Stay in touch with us ----------</b><br/> <b>Subscribe on YouTube (for live streams)</b>: <a href="https://talkpython.fm/youtube" target="_blank" rel="noopener">youtube.com</a><br/> <b>Follow Talk Python on Twitter</b>: <a href="https://twitter.com/talkpython" target="_blank" rel="noopener">@talkpython</a><br/> <b>Follow Michael on Twitter</b>: <a href="https://twitter.com/mkennedy" target="_blank" rel="noopener">@mkennedy</a><br/></div><br/> <strong>Sponsors</strong><br/> <a href='https://talkpython.fm/tabnine'>Tabnine</a><br> <a href='https://talkpython.fm/training'>Talk Python Training</a><br> <a href='https://talkpython.fm/assemblyai'>AssemblyAI</a>
Categories: FLOSS Project Planets

KDE Itinerary @ ITS City Hack Hamburg 2021

Planet KDE - Sat, 2021-10-09 04:00

After almost 19 month I finally got to attend a non-virtual event for KDE again, the ITS City Hack Hamburg 2021 last weekend. This has been a good opportunity for exchange and connecting with the Open Transport community, people and organizations we are collaborating with to make applications like KDE Itinerary or KTrip possible.

OpenTripPlanner and KPublicTransport

Meeting some of the people working on OpenTripPlanner (OTP) and operating instances of that has been particularly useful for KPublicTransport, our client library for realtime public transport data queries.

One issue we had been struggling with is automatically selecting the right instance for a given location. This has been complicated by some installations reporting bizarre bounding polygons. This is typically caused by a few issues in the data consumed by OTP. I got shown diagnostic tools and new API to identify those problems, which allows better bug reports to upstream, fixing OSM input data ourselves, and applying outlier filters we already have in the library anyway.

OpenTripPlanner diagnostic interface showing an unintended spike to the south-west.

A big topic at the event was combining public transport with means of individual transport for the first and last parts of a journey, say your own bike that you either need to park at the first station, or take with you on the train. This can evolve into rather complex scenarios the routing engines such as OTP have to deal with (where are available parking spots? is taking a bike on a train allowed and practically possible at that time of day? etc).

Our client API hasn’t exposed any of that so far, we just implicitly assumed the first and last part of a journey are traveled by walking. This is changing now, the first bits for supporting much fine-grained control over individual transport modes have already been integrated. Applications will also need support for this though, e.g. for remembering where you parked your own vehicle on the outbound journey, as the routing engine otherwise doesn’t know where you need to go to pick it up again for the return trip.

Events and the pandemic

Another interesting aspect was of course to see how non-virtual events can look like now, in particular also looking at how we can get KDE meetings/events back.

Both being fully vaccinated and daily rapid antigen tests were mandatory (which is way above the legally required minimum here), and a very spacious and well ventilated venue added some extra safety on top.

Masks reach their limits though once you eat together, or have a chat over coffee, which is inevitable over a course of 8+ hours per day.

I also found clear communication about the planned safety measure before signing up something that helped me decide to attend.

Technically this was a hybrid event, there was live streaming and remote participation via chat/video calls, but it’s hard to judge how well that worked for remote attendees from the on-site point-of-view.

A nice side-effect of the daily testing requirement was that I finally got my hands on a production EU DGC test certificate, which both KDE Itinerary and Plasma Mobile’s vaccination certificate manager were able to show without problems, in more detail than some of the official apps even.

Plasma Mobile's vaccination certificate app showing details of an EU DGC test certificate.

More events are coming, next week we’ll celebrate KDE’s 25th birthday, which will be an opportunity to also finally meet a few KDE people again who I haven’t seen in a long time. Very much looking forward to that :)

Categories: FLOSS Project Planets

This week in KDE: 🎶 Continuous integraaaaaaation 🎶

Planet KDE - Sat, 2021-10-09 00:10

At long last, KDE software is now covered by a GitLab-based continuous integration system, replacing the old Jenkins-based system used until now. The new one is much better and runs automatically on every merge request, making it much less likely that faulty code that fails to compile or regresses unit tests will be committed. The system is still its infancy and has not yet reached its full potential, but already it is helping us to save time and improve the quality of KDE software. Big thanks to KDE’s sysadmins for rolling out this system!

Another thing: Plasma 5.23 has been named the “Plasma 25th anniversary edition“, to commemorate 25 years of KDE! At this point, KDE is older than some of its users and contributors. Such longevity in a project lead largely by volunteers is quite impressive, if you ask me!

But wait, there’s more! A lot more. We’ve got new features, big improvements to the Breeze theme, Wayland bugfixes, keyboard navigation improvements… it’s been a big week!

New Features

Elisa now lets you optionally use the “favorite/not favorite” style of ratings, where you mark songs as favorites rather than giving them a specific number of stars (me: Nate Graham, Elisa 21.12):

You can now scroll with a mouse wheel or touchpad over the Plasma calendar view to switch the month that is displayed (Tanbir Jishan, Frameworks 5.88)

Bugfixes & Performance Improvements

Okular no longer crashes when trying to display a Markdown file which includes an image that doesn’t have its alt text set (Albert Astals Cid, Okular 21.08.2)

Okular no longer crashes when opening a PDF with a malformed date value (Albert Astals Cid, Okular 21.08.3)

When using Dolphin’s filter feature in Details view, folders that lack any files that match the filter are no longer displayed (Eduardo Cruz, Dolphin 21.12)

In the Plasma wayland session, KWin no longer crashes when the computer wakes up but all screens have been marked as disabled; instead it now enabled the first connected but disabled screen so there’s at least one screen that can display things! (Xaver Hugl, Plasma 5.23)

In the Plasma Wayland session, XWayland apps no longer sometimes disappear when switching virtual desktops (Vlad Zahorodnii, Plasma 5.23)

In the Plasma Wayland session, text copied from within Plasma itself (e.g. from KRunner’s search field) now appears in the global clipboard as expected. This fixes the last of the major Wayland clipboard issues we’re aware of! (David Redondo, Plasma 5.23)

In the Plasma Wayland session, closing an app with a maximized window and then re-opening it now causes its window to be opened on the screen with the cursor on it, rather than always appearing on the left-most screen (Xaver Hugl, Plasma 5.23)

Right-clicking on desktop icons no longer shows the menu on the wrong screen of a multi-screen setup (David Redondo, Plasma 5.23)

Discover no longer sometimes shows the wrong installed version for Flatpak apps and runtimes with updates available (Aleix Pol Gonzalez, Plasma 5.23)

Pressing enter after entering a number in the spinbox to choose the thickness of a Plasma panel now makes the change take effect as you would expect (Fushan Wen, Plasma 5.23)

The Alt+O and Ctrl+Enter/Return keyboard shortcuts now work for closing the clipboard item editing window (Bharadwaj Raju, Plasma 5.23)

Right-clicking on the colors in the Color Picker widget’s expanded view now works (Bharadwaj Raju, Plasma 5.23)

In the Plasma Wayland session, the default Meta+Q shortcut to switch between activities now always works (Andrey Butirsky, Plasma 5.23)

The screen edge highlighting effect now appears more reliably in certain situations (Andrey Butirsky, Plasma 5.23)

Task Manager tooltips that are displaying media controls no longer sometimes overlay a horizontal scrollbar on the bottom (Fushan Wen, Plasma 5.23 with Frameworks 5.88)

Dolphin and Plasma and other apps no longer crash when undoing a file copy (Ahmad Samir, Frameworks 5.87)

Copying files from FAT32-formatted volumes no longer sometimes just fails and hangs forever (Oliver Freyermuth, Frameworks 5.88)

The “B” in the “Background color” label on Gwenview’s status bar is no longer partially cut off (Julius Zint, Frameworks 5.88)

All Plasma applets should be slightly snappier and use less memory thanks to some backend code re-working that was done recently (Noah Davis, Frameworks 5.88)

Colored icons on colored backgrounds in KDE apps should now intelligently re-color themselves to never have the same color as the background (Aleix Pol Gonzalez, Frameworks 5.88)

Plasma now saves any changes you made while in Edit Mode as soon as you exit from that mode, so your changes will be preserved if Plasma later crashes (Jan Blackquill, Frameworks 5.88)

The “Trash is full” error message is now phrased better and no longer overflows in Dolphin (me: Nate Graham, Frameworks 5.88)

User Interface Improvements

Ark’s preview window no longer displays a redundant Close button at the bottom of the window (Eugene Popov, Ark 21.12)

Left-clicking on a desktop icon while multiple icons are selected now de-selects the un-clicked-on icons after opening the one that was clicked on (Bharadwaj Raju, Plasma 5.23)

In the Plasma Wayland session with on a multi-screen setup, the cursor now appears on login in the center of the screen that is itself closest to being in the center of the arrangement (Vlad Zahorodnii, Plasma 5.23)

The focus effect for buttons, text fields, checkboxes, radio buttons, comboboxes, and spinboxes has been enlarged into a “focus ring” that should be much easier to visually distinguish at a glance (Noah Davis, Plasma 5.24):

System Settings’ Formats page has been rewritten in QtQuick, which fixes many UI-related issues with the old one and allows us to begin work on a large-scale overhaul of how locales are presented and configured–which will likely include merging the Languages page into this one to finally make the process of changing the system’s language easy, obvious, and reliable (Han Young, Plasma 5.24):

System Settings’ Night Color page now supports the “Highlight Changed Settings” feature (Benjamin Port, Plasma 5.24)

When you add the Weather applet to your panel or activate the built-in one in the System Tray, its popup now prompts you to configure it, rather than leaving it you you to figure out that this is needed (Bharadwaj Raju, Plasma 5.24):

Discover’s Update page now has a lighter weight style by only showing those “pills” on the right side for items that are in progress; otherwise, the size text just appears floating on the right-side of the item (me: Nate Graham, Plasma 5.24):

Basic UI elements in Plasma now follow the same style rolled out recently for KDE apps, which also improves the visibility of the focus effect particularly for sliders and checkboxes (Noah Davis, Frameworks 5.87):

Isn’t that pretty?

By default, KTextEditor-based apps like KWrite, Kate, and KDevelop now let you enclose text in parentheses or brackets by selecting the text and typing the opening parenthesis/bracket/etc. character (Jan Blackquill, Frameworks 5.88)

System Tray applets with expandable list items are now more keyboard-friendly: you can trigger an item’s default button with the Return/Enter key, expand it with the spacebar, collapse it with the Escape key, and show its context menu (if present) using the Menu Key on your keyboard, if it has one (Bharadwaj Raju, Frameworks 5.88)

Grid items in System Settings grid view pages now visually indicate when they have keyboard focus (Arjen Hiemstra, Frameworks 5.88)

…And everything else

Keep in mind that this blog only covers the tip of the iceberg! Tons of KDE apps whose development I don’t have time to follow aren’t represented here, and I also don’t mention backend refactoring, improved test coverage, and other changes that are generally not user-facing. If you’re hungry for more, check out https://planet.kde.org/, where you can find blog posts by other KDE contributors detailing the work they’re doing.

How You Can Help

Have a look at https://community.kde.org/Get_Involved to discover ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

Categories: FLOSS Project Planets

Dirk Eddelbuettel: corels 0.0.3 on CRAN: Update

Planet Debian - Fri, 2021-10-08 22:45

An updated version of the corels package is now on CRAN!

The change is chiefly an updated configure.ac (just like RcppGSL yesterday, RQuantLib two days ago, and littler three days ago.

If you like this or other open-source work I do, you can now sponsor me at GitHub.

This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.

Categories: FLOSS Project Planets

Podcast.__init__: Build Better Machine Learning Models By Understanding Their Decisions With SHAP

Planet Python - Fri, 2021-10-08 21:21
Machine learning and deep learning techniques are powerful tools for a large and growing number of applications. Unfortunately, it is difficult or impossible to understand the reasons for the answers that they give to the questions they are asked. In order to help shine some light on what information is being used to provide the outputs to your machine learning models Scott Lundberg created the SHAP project. In this episode he explains how it can be used to provide insight into which features are most impactful when generating an output, and how that insight can be applied to make more useful and informed design choices. This is a fascinating and important subject and this episode is an excellent exploration of how to start addressing the challenge of explainability.Summary

Machine learning and deep learning techniques are powerful tools for a large and growing number of applications. Unfortunately, it is difficult or impossible to understand the reasons for the answers that they give to the questions they are asked. In order to help shine some light on what information is being used to provide the outputs to your machine learning models Scott Lundberg created the SHAP project. In this episode he explains how it can be used to provide insight into which features are most impactful when generating an output, and how that insight can be applied to make more useful and informed design choices. This is a fascinating and important subject and this episode is an excellent exploration of how to start addressing the challenge of explainability.

  • Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science.
  • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
  • Your host as usual is Tobias Macey and today I’m interviewing Scott Lundberg about SHAP, a library that implements a game theoretic approach to explain the output of any machine learning model
  • Introductions
  • How did you get introduced to Python?
  • Can you describe what SHAP is and the story behind it?
  • What are some of the contexts that create the need to explain the reasoning behind the outputs of an ML model?
  • How do different types of models (deep learning, CNN/RNN, bayesian vs. frequentist, etc.) and different categories of ML (e.g. NLP, computer vision) influence the challenge of understanding the meaningful signals in their reasoning?
  • Taking a step back, how do you define "explainability" when discussing inferences produced by ML models?
    • What are the degrees of specificity/accuracy when seeking to understand the decision processes involved?
  • Can you describe how SHAP is implemented?
    • What are the signals that you are tracking to understand what features are being used to determine a given output?
    • What are the assumptions that you had as you started this project that have been challenged or updated as you explored the problem in greater depth?
  • Can you describe the workflow for someone using SHAP?
    • What are the challenges faced by practitioners in interpreting the visualizations generated from SHAP?
  • How much domain knowledge and context is necessary to use SHAP effectively?
  • What are the ongoing areas of research around tracking of ML decision processes?
  • How are you using SHAP in your own work?
  • What are the most interesting, innovative, or unexpected ways that you have seen SHAP used?
  • What are the most interesting, unexpected, or challenging lessons that you have learned while working on SHAP?
  • When is SHAP the wrong choice?
  • What do you have planned for the future of SHAP?
Keep In Touch Picks Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Categories: FLOSS Project Planets

Morpht: Announcing Sajari AI powered search for Drupal

Planet Drupal - Fri, 2021-10-08 21:04
Those of you who work with Drupal, you are probably familiar with the combination of using Search API with a search backend such as MySQL or Solr. A pluggable architecture makes Search API a good choice for indexing content in Drupal.
Categories: FLOSS Project Planets

KDE Ships Frameworks 5.87.0

Planet KDE - Fri, 2021-10-08 20:00

Saturday, 9 October 2021

KDE today announces the release of KDE Frameworks 5.87.0.

KDE Frameworks are 83 addon libraries to Qt which provide a wide variety of commonly needed functionality in mature, peer reviewed and well tested libraries with friendly licensing terms. For an introduction see the KDE Frameworks release announcement.

This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner.

New in this version Attica
  • Do not mark jobs that have been aborted as errored (bug 43820)
  • Ensure categories.xml is only fetched once in parallel
  • Do not start basejobs twice
Breeze Icons
  • Fix KTimeTracker icon sizes (bug 442993)
  • Tweaks to AnyDesk icons
  • Fix index.theme issues from !124
  • Add 22px variants of the preferences icons
  • Add AnyDesk icons
  • Add more Godot MIME icons
  • Add symlink for skanlite’s new icon name
  • Add process-working-symbolic, overhaul 22px animation
Extra CMake Modules
  • Add -Werror=init-self to the default CMAKE_CXX_FLAGS
  • Handle git remotes that aren’t called origin in _repository_name()
  • python: Bump maximum version for Python 3 module generator check
  • Avoid raising an error for submodule git trees
  • Make sphinx happier about syntax
  • Set the correct last modified time when creating an exception for a recurring event
  • icalformat_p.cpp - support ATTACH parameter FILENAME (bug 436161)
  • Add Qt5Gui as dependency in pkgconfig file
  • Read floating date time as LocalTime
  • Implement PERIOD support in RDATE (bug 271308)
  • Fix Warning: Property type “Int” is not a known QVariant type
  • Add support for static builds
  • Add compat code for KService based plugin loading
  • Introduce KCModuleProxy::isChanged method
  • Un-overload KCModuleProxy:changed signal
  • KCodecs::decodeRFC2047String(): return “UTF-8” when multiple charsets used
  • New shouldAutoSuggest property on KCompletion (bug 420966)
  • Android: Fix writing to config if path is a content:// Uri
  • kconfigini: Only open the file once to write
  • Allow KConfigXT to use KSharedConfig::openStateConfig
  • Do not emit deprecation warnings for overload which gets chosen by compiler
  • KStringHandler: add a new perlSplit() overload that takes a QStringView
  • Deprecate KPluginMetaData::extraInformation
  • Introduce UpdateLaunchEnvJob
  • Correct to make sure we use the matching ECM version
  • Make sure the object gets destroyed before the view
  • Add support for static builds
  • SimpleKCM: remove custom header and footer handling
  • Remove obsolete LGPL-2.0-only license text
  • Relicense remaining LGPL-2.0-only file
KDE GUI Addons
  • Use imported target for X11 libs
  • Relicense remaining files away from LGPL-2.0-only
  • Add missing static dependency to Config.cmake.in
  • Update Canadian holidays
  • avif: performance and quality improvements
  • Fix KDE shutdown bug
  • New job: KEMailClientLauncherJob
  • KACLEditWidget: improve the initial widget size
  • [KUrlNavigator] Add the ability to show hidden folders in the subdirectories popup
  • Add support for static builds
  • KUrlCompletion blocks autosuggestion from happening if the input is an exact directory path (bug 420966)
  • KDirOperator: provide an option to enable showing open-with item actions (bug 440748)
  • Fix permissions when copying files (bug 103331)
  • KFileItem: refresh() shouldn’t discard ACL attributes (bug 299155)
  • KPropertiesDialog: show text label with item name for readonly items too (bug 442237)
  • Disable ACL functionality in kpropertiesdialog on FreeBSD
  • KDirOperator: use show() when opening KPropertiesDialog
  • Use errors=remount-ro when mounting ext2/3/4
  • OpenUrlJob: skip HTTP schemeHandler when setEnableExternalBrowser(false)
  • KMountPoint: restore findByPath() behaviour, i.e. resolve symlinks
  • Sort service menus before inserting them in context menu
  • Deprecate config widget related methods in ThumbCreator
  • PageRow: Do not async load the global header (bug 442660)
  • NavigationTabButton: Fix hover effect staying even after touch release
  • Fix BreadcrumbControl on mobile when using layers
  • cmake: Remove intermediate target for kirigamiplugin post-build steps
  • Add NavigationToolBar component
  • Split off an AboutItem from AboutPage
  • Improve warning about QML Units implementations
  • [SwipeListItem] Fix view property
  • Fix breadcrumb header title on secondary layers in mobile mode
  • [FormLayout] Fix in-group spacing in narrow mode
  • Fix page header being shown even when it’s specified not to
  • Set activeFocusOnTab to false for ListSectionHeader
  • Support enter/return and up/down keys in Global drawer for navigation
  • ColumnView: Simplify Units property access
  • Remove unwanted “/” prefix from iconId
  • Relicense files from LGPL-2.0-only to LGPL-2.0-or-later
  • staticxml: Do not report installed packages for page != 0
  • Engine: Do not require waiting for the providers to tell our installed entries
  • Fix crash in DownloadWidget
  • Add licenses CC0 license info to non-copyrightable files
  • Add BSD-2-Clause license info to cmake files
  • Add CC0-1.0 license identifier to non-copyrightable files
  • Include a user agent on KNS requests
  • attica: use compile-time connects
  • Add support for static builds - fixes
  • Add missing find_package(Qt5Gui)
  • Add support for static builds
  • FileCopyJob: implement error handling
  • Page: Remind/notify users that everything here is 3rd-party content
  • Add support for static builds
  • Correct the version of Phonon that we use
  • Remove stray GL include
  • Remove unneeded dependencies from .kde-ci.yml
  • Mark README.md as non-copyrightable
  • Add license information for runner C++ template
  • Mark non-copyrightable files as CC0-1.0
  • Add license information to cmake files
  • Deprecate KAutostart class
  • Deprecate KService::parentApp
  • Deprecate KService::pluginKeyword property
  • The user is not selecting as soon as we clearSelection
  • Fix missing i18n (bug 442071)
  • Handle RTL text selection the same way as Qt (bug 397922)
  • KWayland depends on libraries/plasma-wayland-protocols
  • Make lupdate happier
  • KCharSelect: Added option to show all blocks found in the data file (in the section menu)
  • KFontChooser: the widget shouldn’t become wider when toggling show fixed only
  • Add missing Q_INIT_RESOURCE(kxmlgui)
  • Replace “Libraries” by “Components” to show KAboutComponents info
  • Introduce countryCode Modem3gpp API
Plasma Framework
  • Update plasmoidheading.svg : fix the typo line 96 “correntColor”
  • Containment: Rename panel edit action to “Enter Edit Mode”
  • Revert “Change busywidget to a gear” (bug 442525)
  • ExpandableListitem: Correct expanded view height calculation (bug 442537)
  • Port internal plugin cache away from supporting multiple namespaces
  • Remove defunct python and ruby script engines
  • Select the most efficient QR encoding mode rather than always using 8bit
  • plugins/barcode: Call it a “QR code” in the UI
  • Add Barcode plugin
  • Properly get the path from a QUrl
  • MenuSeparator: fix height being wrong, rewrite whole file to be more correct
  • Button, ToolButton: improve implicit sizing, correctly set default button state
  • Use more process-working-symbolic icon for busy spinner
  • Add support for static builds
  • Support extracting cpu model on ppc64
Syntax Highlighting
  • Add basic QML API docs
  • yara - add new 4.x keywords
  • Change license to MIT
  • Removed items that are generating errors for now
  • initial work on terraform syntax highlight
  • Port AbstractHighlighter::highlightLine to QStringView
Security information

The released code has been GPG-signed using the following key: pub rsa2048/58D0EE648A48B3BB 2016-09-05 David Faure faure@kde.org Primary key fingerprint: 53E6 B47B 45CE A3E0 D5B7 4577 58D0 EE64 8A48 B3BB

Categories: FLOSS Project Planets

Nuvole: Drupal for European Universities

Planet Drupal - Fri, 2021-10-08 15:23
Data-based perspectives from our DrupalCon 2021 session

Thank you for a great DrupalCon! Here are a few key findings and PDF slides from our Thursday talk, Drupal for European Universities: Data-based perspectives.

Drupal is not leading (and not even the runner-up)

Wordpress is the most popular CMS for European Universities (restricted to EEA Countries; data retrieved last week from all the the 1830 HEIs from those 30 countries). Surprise, Drupal is not the runner-up either: Typo3 beats it by a few installations.

But many countries still love Drupal

Wordpress (green in this map) leads in 15 countries, Drupal (blue) in 12, Typo3 in 2 (Germany, Austria), Joomla in Slovakia. This is a good sign for the expansion potential: Typo3's success is based on a couple countries only. The most Drupalized countries are Estonia (44% of HEIs sites are Drupal sites), Iceland (43%), Finland (34%), Italy (33%), Belgium (33%).

European Universities like Drupal 7

Drupal 7 (red in this map) is still the most common Drupal version for University sites in 16 countries. In 9 countries the most common version is Drupal 8 (yellow), only in 2 countries it's Drupal 9 (green); other EEA countries are omitted due to non-significant data.

Overall, Drupal 9 sites account for only about 10% of the total, with Drupal 6 (yes, 6!) still beating Drupal 9 in four countries. 45% of the Drupal websites used by European Universities are running on a version that will be unsupported in one month.

And the future?

Drupal 9 has a lot of solid selling points for Universities, see the slides below for a summary and a case study. But it needs to be marketed well to people who are still on Drupal 7, and still facing problems the Drupal community solved years ago.

It will be interesting to re-run the analysis in one month, perhaps in an extended version including the non-EEA countries that were left out of this initial survey, like the UK and Switzerland. Stay tuned!

Tags: DrupalConDrupal PlanetAttachments:  Drupal-for-Universities-DrupalCon-Europe-2021.pdf
Categories: FLOSS Project Planets

Neil Williams: Using Salsa with contrib and non-free

Planet Debian - Fri, 2021-10-08 11:45

OK, I know contrib and non-free aren't popular topics to many but I've had to sort out some simple CI for such contributions and I thought it best to document how to get it working. You will need access to the GitLab Settings for the project in Salsa - or ask someone to add some CI/CD variables on your behalf. (If CI isn't running at all, the settings will need to be modified to enable debian/salsa-ci.yml first, in the same way as packages in main).

The default Salsa config (debian/salsa-ci.yml) won't get a passing build for packages in contrib or non-free:

# For more information on what jobs are run see: # https://salsa.debian.org/salsa-ci-team/pipeline # --- include: - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml

Variables need to be added. piuparts can use the extra contrib and non-free components directly from these variables.

variables: RELEASE: 'unstable' SALSA_CI_COMPONENTS: 'main contrib non-free'

Many packages in contrib and non-free only support amd64 - so the i386 build job needs to be removed from the pipeline by extending the variables dictionary:

variables: RELEASE: 'unstable' SALSA_CI_COMPONENTS: 'main contrib non-free' SALSA_CI_DISABLE_BUILD_PACKAGE_I386: 1

The extra step is to add the apt source file variable to the CI/CD settings for the project.

The CI/CD settings are at a URL like:


Expand the section on Variables and add a <b>File</b> type variable:


Value: deb https://deb.debian.org/debian/ sid contrib non-free

The pipeline will run at the next push - alternatively, the CI/CD pipelines page has a "Run Pipeline" button. The settings added to the main CI/CD settings will be applied, so there is no need to add a variable at this stage. (This can be used to test the variables themselves but only with manually triggered CI pipelines.)

For more information and additional settings (for example disabling or allowing certain jobs to fail), check https://salsa.debian.org/salsa-ci-team/pipeline

Categories: FLOSS Project Planets

Trey Hunner: What's great about Python 3.10?

Planet Python - Fri, 2021-10-08 11:30

What changed in Python 3.10 and which of those changes matter for you?

I’ve spent this week playing with Python 3.10. I’ve primarily been working on solutions to Python Morsels exercises that embrace new Python 3.10 features. I’d like to share what I’ve found.

Easier troubleshooting with improved error messages

The biggest Python 3.10 improvements by far are all related improved error messages. I make typos all the time. Error messages that help me quickly figure out what’s wrong are really important.

I’ve already grown accustom to the process of deciphering many of Python’s more cryptic error messages. So while improved error messages are great for me, this change is especially big for new Python learners.

When I teach an introduction to Python course, some of the most common errors I help folks debug are:

  1. Missing colons at the end of a block of code
  2. Missing indentation or incorrect indentation in a block of code
  3. Misspelled variable names
  4. Brackets and braces that were never closed

Python 3.10 makes all of these errors (and more) much clearer for Python learners.

New Python users often forget to put a : to begin their code blocks. In Python 3.9 users would see this cryptic error message:

1 2 3 4 5 $ python3.10 temp.py 70 File "/home/trey/temp.py", line 4 if temperature < 65 ^ SyntaxError: invalid syntax

Python 3.10 makes this much clearer:

1 2 3 4 5 $ python3.10 temp.py 70 File "/home/trey/temp.py", line 4 if temperature < 65 ^ SyntaxError: expected ':'

Indentation errors are clearer too (that after 'if' statement on line 4 is new):

1 2 3 4 5 $ python3.10 temp.py 70 File "/home/trey/temp.py", line 5 print("Too cold") ^ IndentationError: expected an indented block after 'if' statement on line 4

And incorrect variable and attribute names now show a suggestion:

1 2 3 4 5 $ python3.10 temp.py 70 Traceback (most recent call last): File "/home/trey/temp.py", line 4, in <module> if temparature < 65: NameError: name 'temparature' is not defined. Did you mean: 'temperature'?

I’m really excited about that one because I make typos in variable names pretty much daily.

The error message shown for unclosed brackets, braces, and parentheses is also much more helpful.

Python used to show us the next line of code after an unclosed brace:

1 2 3 4 5 $ python3.9 temp.py 70 File "/home/trey/temp.py", line 6 elif temperature > 80: ^ SyntaxError: invalid syntax

Now it instead points to the opening brace that was left unclosed:

1 2 3 4 5 $ python3.10 temp.py 70 File "/home/trey/temp.py", line 5 print("Too cold" ^ SyntaxError: '(' was never closed

You can find more details on these improved error messages in the better error messages section of the “What’s new in Python 3.10” documentation.

While Python 3.10 does include other changes (read on if you’re interested), these improved error messages are the one 3.10 improvement that all Python users will notice.

IDLE is more visually consistent

Here’s another feature that affects new Python users: the look of IDLE improved a bit. IDLE now uses spaces for indentation instead of tabs (unlike the built-in REPL) and the familiar ... in front of REPL continuation lines is now present in IDLE within a sidebar.

Before IDLE looked like this:

Now IDLE looks like this:

Looks a lot more like the Python REPL on the command-prompt, right?

Length-checking for the zip function

There’s a Python Morsels exercise called strict_zip. It’s now become a “re-implement this already built-in functionality” exercise. Still useful for the sake of learning how zip is implemented, but no longer useful day-to-day code.

Why isn’t it useful? Because zip now accepts a strict argument! So if you’re working with iterables that might be different lengths but shouldn’t be, passing strict=True is now recommended when using zip.

Structural pattern matching

The big Python 3.10 feature everyone is talking about is structural pattern matching. This feature is very powerful but probably not very relevant for most Python users.

One important note about this feature: match and case are still allowable variable names so all your existing code should keep working (they’re soft keywords).

Matching the shape and contents of an iterable

You could look at the new match/case statement as like tuple unpacking with a lot more than just length-checking.

Compare this snippet of code from a Django template tag:

1 2 3 4 args = token.split_contents() if len(args) != 5 or args[1] != 'for' or args[3] != 'as': raise TemplateSyntaxError("'%s' requires 'for string as variable' (got %r)" % (args[0], args[1:])) return GetLanguageInfoNode(parser.compile_filter(args[2]), args[4])

To the same snippet refactored to use structural pattern matching:

1 2 3 4 5 match token.split_contents(): case [name, "for", code "as" info]: return GetLanguageInfoNode(parser.compile_filter(code), info) case [name, *rest]: raise TemplateSyntaxError(f"'{name}' requires 'for string as variable' (got {rest!r})")

Notice that the second approach allows us to describe both the number of variables we’re unpacking our data into and the names to unpack into (just like tuple unpacking) while also matching the second and third values against the strings for and as. If those strings don’t show up in the expected positions, we raise an appropriate exception.

Structural pattern matching is really handy for implementing simple parsers, like Django’s template language. I’m looking forward to seeing Django’s refactored template code in 2025 (after Python 3.9 support ends).

Complex type checking

Structural pattern matching also excels at type checking. Strong type checking is usually discouraged in Python, but it does come crop up from time to time.

The most common place I see isinstance checks is in operator overloading dunder methods (__eq__, __lt__, __add__, __sub__, etc). I’ve already upgraded some Python Morsels solutions to compare and contrast match-case and isinstance and I’m finding it more verbose in some cases but also occasionally somewhat clearer.

For example this code snippet (again from Django):

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if isinstance(value, str): # Handle strings first for performance reasons. return value elif isinstance(value, bool): # Make sure booleans don't get treated as numbers return str(value) elif isinstance(value, (decimal.Decimal, float, int)): if use_l10n is False: return str(value) return number_format(value, use_l10n=use_l10n) elif isinstance(value, datetime.datetime): return date_format(value, 'DATETIME_FORMAT', use_l10n=use_l10n) elif isinstance(value, datetime.date): return date_format(value, use_l10n=use_l10n) elif isinstance(value, datetime.time): return time_format(value, 'TIME_FORMAT', use_l10n=use_l10n) return value

Can be replaced by this code snippet instead:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 match value: case str(): # Handle strings first for performance reasons. return value case bool(): # Make sure booleans don't get treated as numbers return str(value) case decimal.Decimal() | float() | int(): if use_l10n is False: return str(value) return number_format(value, use_l10n=use_l10n) case datetime.datetime(): return date_format(value, 'DATETIME_FORMAT', use_l10n=use_l10n) case datetime.date(): return date_format(value, use_l10n=use_l10n) case datetime.time(): return time_format(value, 'TIME_FORMAT', use_l10n=use_l10n) case _: return value

Note how much shorter each condition is. That case syntax definitely takes some getting used to, but I do find it a bit easier to read in long isinstance chains like this.

Bisecting with a key

Python’s bisect module is really handy for quickly finding an item within a sorted list.

For me, the bisect module is mostly a reminder of how infrequently I need to care about the binary search algorithms I learned in Computer Science classes. But for those times you do need to find an item in a sorted list, bisect is great.

As of Python 3.10, all the binary search helpers in the bisect module now accept a key argument. So you can now quickly search within a case insensitively-sorted list of strings for the string you’re looking for.

1 2 3 4 5 6 7 8 9 10 11 12 >>> fruits = sorted(['Watermelon','loquat', 'Apple', 'jujube'], key=str.lower) >>> fruits ['Apple', 'jujube', 'loquat', 'Watermelon'] >>> import bisect >>> bisect.insort(fruits, 'Lemon', key=str.lower) >>> fruits ['Apple', 'jujube', 'Lemon', 'loquat', 'Watermelon'] >>> i = bisect.bisect(fruits, 'lime', key=str.lower) >>> fruits[i] == 'lime' False >>> fruits[i] 'loquat'

Doing a search that involved a key function was surprisingly tricky before Python 3.10.

Slots for data classes

Have a data class (especially a frozen one) and want to make it more memory-efficient? You can add a __slots__ attribute but you’ll need to type all the field names out yourself.

1 2 3 4 5 6 7 from dataclasses import dataclass @dataclass class Point: __slots__ = ('x', 'y') x: float y: float

In Python 3.10 you can now use slots=True instead:

1 2 3 4 5 6 from dataclasses import dataclass @dataclass(slots=True) class Point: x: float y: float

This feature was actually included in the original dataclass implementation but removed before Python 3.7’s release (Guido suggested including it in a later Python version if users expressed interest and we did).

Creating a dataclass with __slots__ added manually won’t allow for default field values, which is why slots=True is so handy. There’s a very smaller quirk with slots=True though: super calls break when slots=True is used because this causes a new class object to be created which breaks the magic of super. But unless you’re using calling super().__setattr__ in the __post_init__ method of a frozen dataclass instead of calling object.__setattr__, this quirk likely won’t affect you.

Type annotation improvements

If you use type annotations, type unions are even easier now using the | operator (in addition to typing.Union). Other big additions in type annotation land include parameter specification variables, type aliases, and user-defined type guards. I still don’t use type annotations often, but these features are a pretty big deal for Python devs who do.

Also if you’re introspecting annotations, calling the inspect.get_annotations function is recommended over accessing __annotations__ directly or calling the typing.get_type_hints function.

Checking for default file encoding issues

You can also now ask Python to emit warnings when you fail to specify an explicit file encoding (this is very relevant when writing cross operating system compatible code).

Just run Python with -X warn_default_encoding and you’ll see a loud error message if you’re not specifying encodings everyone you open files up:

1 2 3 4 $ python3.10 -X warn_default_encoding count_lines.py declaration-of-independence.txt /home/trey/count_lines.py:3: EncodingWarning: 'encoding' argument not specified with open(sys.argv[1]) as f: 67 Plus lots more

The changes above are the main ones I’ve found useful when updating Python Morsels exercises over the last week. There are many more changes in Python 3.10 though.

Here are a few more things I looked into, and plan to play with later:

  • keyword-only dataclass fields
  • The fileinput.input (handy for handling standard input or a file) function now accepts an encoding argument
  • importlib deprecations: some of my dynamic module importing code was using features that are now deprecated in Python 3.10 (you’ll notice obvious deprecation warnings if your code needs updating too)
  • Dictionary views have a mapping attribute now: if you’re making your own dictionary-like objects, you should probably add a mapping attribute to your keys/values/items views as well (this will definitely crop up in Python Morsels exercises in the future)
  • When using multiple context managers in a single with block, parentheses can now be used to wrap them onto the next line (this was actually added in Python 3.9 but unofficially)
  • The names of standard library modules and built-in modules are now included in sys.stdlib_module_names and sys.builtin_module_names: I’ve occasionally needed to distinguish between third party and standard library modules dynamically and this makes that a lot easier
  • sys.orig_argv includes the full list of command-line arguments (including the Python interpreter and all arguments passed to it) which could be useful when inspecting how your Python process was launched or when re-launching your Python process with the same arguments

Structural pattern matching is great and the various other syntax, standard library, and builtins improvements are lovely too. But the biggest improvement by far are the new error messages.

And you know what’s even better news than the new errors in Python 3.10? Python 3.11 will include even better error messages!

Deepen your Python skills every week

If you’d like to deepen your Python skills and finding excuses to try out new Python features, join Python Morsels.

Python Morsels currently includes 170 Python exercises and 80 Python screencasts with a new short screencast/article hybrid added each week. This service is all about hands-on skill building (we learn and grow through doing, not just reading/watching).

I’d love for you to come learn Python with me! 💖

Categories: FLOSS Project Planets

Web Review, Week 2021-40

Planet KDE - Fri, 2021-10-08 11:04

Let’s go for my web review for the week 2021-40. I got to admit it’s heavily loaded in Facebook related content this time… It is kind of unsurprising though with the “terrific” week they had.

Understanding How Facebook Disappeared from the Internet

Tags: tech, networking, facebook, internet

Interesting explanation of a major BGP mistake.


Facebook whistleblower Frances Haugen details company’s misleading efforts on 60 Minutes - CBS News

Tags: tech, facebook, social-media, surveillance, misinformation

Toxic architecture illustrated… It’s very brave for such a whistleblower to come forward with that much insider information.


Why you shouldn’t buy Facebook Ray-Ban smart glasses - European Digital Rights (EDRi)

Tags: tech, facebook, surveillance

I just hope they will have the same fate than the Google Glass (as in: not become a mass consumer product with a regular spectacles design)… Otherwise if they sell well, it’ll be tough to not be impacted by them. Even if you don’t own any.


Facebook banned me for life because I created the tool Unfollow Everything.

Tags: tech, facebook, social-media

It’s really a stream of bad news for that social network this week… I can’t help but wonder if a turning point is coming for them.


New study reveals iPhones aren’t as private as you think | Tom’s Guide

Tags: tech, privacy, surveillance, apple, google

The “Apple is better at privacy” argument was looking really like a fallacy to me. And indeed, it’s getting clearer that it was greatly exaggerated…


I’m sorry · Discussion #39 · dotnet-foundation/Home · GitHub

Tags: tech, dotnet, microsoft, governance, free-software

It looks like the .NET Foundation in in some turmoil at the moment. From the look of that discussion it seems that there are a few major governance issue. Also it looks like not everyone looked into the small prints when they joined.


Gentle introduction to GPUs inner workings | vkSegfault

Tags: tech, gpu, hardware, 3d

Somewhat in-depth introduction to how GPUs work internally.


My Logging Best Practices – Thomas Uhrig

Tags: tech, logging

Nice set of simple rules to improve the quality of your logs.


Understanding AWK

Tags: tech, command-line, awk

This is a good primer of an essential tool in our box.


How to Delegate Meeting Attendance - Jacob Kaplan-Moss

Tags: management, delegation

Good wrap-up with a practical example.


Bye for now!

Categories: FLOSS Project Planets

Chris Lamb: Reproducible Builds: Increasing the Integrity of Software Supply Chains (2021)

Planet Debian - Fri, 2021-10-08 10:22

I didn't blog about it at the time, but a paper I co-authored with Stefano Zacchiroli was accepted by IEEE Software in April of this year. Titled Reproducible Builds: Increasing the Integrity of Software Supply Chains, the abstract of the paper is as follows:

Although it is possible to increase confidence in Free and Open Source Software (FOSS) by reviewing its source code, trusting code is not the same as trusting its executable counterparts. These are typically built and distributed by third-party vendors with severe security consequences if their supply chains are compromised.

In this paper, we present reproducible builds, an approach that can determine whether generated binaries correspond with their original source code. We first define the problem and then provide insight into the challenges of making real-world software build in a "reproducible" manner — that is, when every build generates bit-for-bit identical results. Through the experience of the Reproducible Builds project making the Debian Linux distribution reproducible, we also describe the affinity between reproducibility and quality assurance (QA).

The full text of the paper can be found in PDF format and should appear, with an alternative layout, within a forthcoming issue of the physical IEEE Software magazine.

Categories: FLOSS Project Planets

EuroPython Society: New EuroPython Fellows

Planet Python - Fri, 2021-10-08 08:01

The board has selected two new EuroPython Fellows, after receiving nominations from the membership:

EuroPython Fellows

EuroPython Fellows have contributed significantly towards our mission, the EuroPython conference and the Society as an organization. They are eligible for a lifetime free attendance of the EuroPython conference and will be listed on our EuroPython Society Fellow Grant page in recognition of their work.

Laura has been very active in the early days of the conference, especially in running the EuroPython editions in Gothenburg and helping with the selection process for later editions.

Oier was one of the team members who ran the conference in Bilbao. Sadly, he passed away last year, so we can only recognize him for his efforts posthumously. Still, we believe that he would have liked his new status.

The EuroPython Society Board would like to congratulate and thank Laura and Oier for their tireless work towards our goals.

Many thanks,
EuroPython Society

Categories: FLOSS Project Planets

Real Python: The Real Python Podcast – Episode #81: Exploring the New Features of Python 3.10

Planet Python - Fri, 2021-10-08 08:00

Python 3.10 is here! This week on the show, two former guests and Real Python authors return to talk about the new version. Geir Arne Hjelle's article was posted to the site Monday, and it's titled "Python 3.10: Cool New Features for You to Try". Christopher Trudeau's video course came out on Tuesday, and it covers the topics from the article with multiple visual examples of Python 3.10 code.

[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]

Categories: FLOSS Project Planets

DrupalCon News: Call for speakers is due 29th October and Event Contribution Opportunities are open!

Planet Drupal - Fri, 2021-10-08 05:52

Do you have Drupal experiences or knowledge to share? Speaking at DrupalCon is a great way to not only share your expertise, but also to build your network and connect with others. Contributing your voice drives Drupal’s continued success. This will be our first in-person conference since 2019 and we could not be more excited to see you all in-person!

Categories: FLOSS Project Planets

Agiledrop.com Blog: Recapping our experience from DrupalCon Europe 2021

Planet Drupal - Fri, 2021-10-08 05:35

DrupalCon Europe took place this week. In this post, we revisit some of our favorite moments from the event.

Categories: FLOSS Project Planets