FLOSS Project Planets

Dirk Eddelbuettel: tidyCpp 0.0.7 on CRAN: Maintenance

Planet Debian - Sat, 2023-12-02 18:08

A maintenance release of the tidyCpp package arrived on CRAN this morning. The packages offers a clean C++ layer (as well as one small C++ helper class) on top of the C API for R which aims to make use of this robust (if awkward) C API a little easier and more consistent. See the vignette for motivating examples.

This release follows a number of other releases this week in accomodating the recently added -Wformat -Wformat-security from the development branch of R. It also includes a new example snippet illustrating creation of a numeric matrix.

The NEWS entry follows.

Changes in tidyCpp version 0.0.7 (2023-11-30)
  • Add an example for a numeric matrix creator

  • Update the continuous integration setup

  • Accomodate print format warnings from r-devel

Thanks to my CRANberries, there is also a diffstat report for this release. For questions, suggestions, or issues please use the issue tracker at the GitHub repo.

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

GNU Taler news: Launch of the TALER NGI PILOT

GNU Planet! - Sat, 2023-12-02 06:05
We are excited to announce the creation of an EU-funded consortium with the central objective to launch GNU Taler as a privacy-preserving payment system across Europe.
Categories: FLOSS Project Planets

October/November in KDE Itinerary

Planet KDE - Sat, 2023-12-02 04:30

It’s been two busy months for KDE Itinerary again since the last summary, with new journey timeline entries, public transport arrival search, nearby amenity discovery and many more improvements.

New Features Journey details in the timeline

After the update of the journey details page Mathis Brüchert also updated the timeline entry for train and bus trips. This can now be expanded inline to show the intermediate stops and ongoing delays and disruptions.

Expanded timeline entry for an ongoing train journey.

Eventually this should also show the trip progress when that information is available from onboard live data, but that’s not fully done yet.

Public transport arrival search

When adding train or bus trips from a manual search, it’s now also possible to search by arrival time rather than just by departure time.

Train journey search allowing to search by arrival time. Amenity search

The indoor map in Itinerary now can list all amenities in the building or area currently looked at. This enables things like finding a place to grab a coffee in a big train station or searching for a place to get food in the vicinity of your hotel, powered by OSM and without any search term ever leaving your device.

Itinerary's amenity search in the vicinity of a train station.

This post has some more details.

Exporting individual reservations

After adding the ability to export entire trips and sending them directly via KDE Connect to your phone it’s now also possible to do this for individual entries. This is available from the corresponding details pages.

OSM editing support

For OSM contributors Itinerary’s indoor map can now open the currently selected element directly in an OSM editor for fixing or improving map data.

Edit actions for a selected map element.

This supports iD, JOSM and Vespucci so far, this post has some more information.

Infrastructure Work Qt 6 Android APKs

With the transition of much of KDE’s software to Qt 6 underway, a big obstacle for Itinerary to follow along has been and still is the state of the Android support. There has been quite some progress around building Qt 6 based APKs recently though, which addressed several major blockers.

There have been three blog posts with more details:

We still need to get things to run properly as well though.

OSM raw data tiles

The OSM raw data tile server powering e.g. Itinerary’s train station maps has received a number of fixes and performance improvements, motivated by work on properly rendering directional lines (e.g. one way streets, escalators, cliffs/embankments, etc).

To support this work we now have a new automated test rig for the tile server code, which makes changing this code far less risky.

For more information, see this post.

OSM MapCSS renderer

There has been also more user-visible work on the OSM indoor map renderer, around the positioning and visibility of potentially overlapping icons and labels as well as for rendering of merged polygon and line casings.

Densely packed icons/labels with explicit overlap control for the entrances.

As those changes involve extra computational cost the map renderer also received a number of performance optimization to more than make up for that. More details can be found in this post.

Fixes & Improvements Travel document extractor
  • New or improved travel document extractors for 12go, Amadeus, booking.com, bookingkit, European Sleeper, Eurostar, FlixBus, GWR, Iberia, Motel One, no-q, PKP, Pretix, Renfe, Qatar Airways, SAS, Thalys and UK railway.
  • Improved generic extractors for ERA FCB and RCT2 ticket barcodes.
  • Fixed barcode decoding when PDFs apply a non-uniform scaling transformation.
  • Increase maximum document size threshold after encountering boarding pass PDFs bigger than 4Mb.
  • Fixed compatibility with libxml >= 2.11.
  • Improved workarounds for non-compliant Apple Wallet pass message catalogs.
  • Correctly compare times with and without timezones when merging reservation data.

All of this has been made possible thanks to your travel document donations!

Public transport data
  • Handle canceled stops in DB ICE onboard API journey data (can be seen in the first screenshot above).
  • Add onboard API support for Lufthansa, Eurostar and United.
  • Fixed Navitia coverage for Australia.
  • New tools to generate coverage area polygons from ISO 3166-1/2 boundaries for the Transport API Repository.
Itinerary app
  • Notification permissions for Android 13 are now supported, as described here.
KDE Itinerary's notification settings.
  • Booking references, ticket numbers and program membership numbers can now be copied. This is useful when you have to enter them in e.g. a web form.
  • Online ticket import now also works for DB Next tickets (those with a 12 digit number rather than a 6 character alpha-numeric code).
  • Train coach layout actions are now in the seat section of the details page, and more seat details are shown on the event page.
  • Fixed various layout issues when displaying Apple Wallet passes.
  • Added more sanity checks for automatically adding transfers. This should fix nonsense transfers being added when flights or train tickets without times end up in the timeline in the wrong order.
  • Fixed the live status page showing broken content when no live data is available yet.
How you can help

Feedback and travel document samples are very much welcome, as are all other forms of contributions. The KDE Itinerary workboard or the more specialized indoor map workboard show what’s on the todo list, and are a good place for collecting new ideas. For questions and suggestions, please feel free to join us in the KDE Itinerary channel on Matrix.

Categories: FLOSS Project Planets

LostCarPark Drupal Blog: Drupal Advent Calendar day 2 - Subpathauto and Friends

Planet Drupal - Sat, 2023-12-02 02:00
Drupal Advent Calendar day 2 - Subpathauto and Friends james Sat, 12/02/2023 - 07:00

Welcome to the second day of the Drupal Advent Calendar. Behind today’s door, Josh Mitchell (joshuami) tells us about the Subpathauto module, and some neat tricks when using it in conjunction with other modules.

If you are a Drupal developer, you probably already know about the Pathauto module. A huge number of sites use Pathauto to create friendly URLs as opposed to Drupal defaults using IDs such as /node/1. 

These friendly URLs are as good for humans as for the machines determining search engine rankings. You can create a path alias for any entity type in Drupal: nodes (content), taxonomy…

Categories: FLOSS Project Planets

This week in KDE: changing the wallpaper from within System Settings

Planet KDE - Sat, 2023-12-02 01:10

Plasma 6 beta 1 has been released! And so far the feedback has been very positive. A few final features snuck in before we started on the mega bugfixing marathon, which began this week! Please do continue to test the beta and report bugs. Other useful activities include fixing bugs and donating to the Plasma 6 fundraiser.

KDE 6 Mega-Release

(Includes all software to be released on the February 28th mega-release: Plasma 6, Frameworks 6, and apps from Gear 24.02)

General infoOpen issues: 164

New features

You can now set the wallpaper for any of your screens from a page in System Settings! (Méven Car, link):

Discover now features a “Newly Published & Recently Updated” section on the main page when using Flatpak or Snap as your default apps backend, which makes the Linux app ecosystem feel more alive! Work is pending to also show this section when using distro packages for your default source, provided the distro actually ships relatively frequent updates to apps and not ancient years-old software all on the same date, which would make the section useless (Ivan Tkachenko, link):

The Night Light page in System Settings now shows you a graphical representation of the active and inactive periods as well as the transition times (Ismael Asensio, link):

Implemented a “Shake to find your cursor” KWin effect, similar to the one in macOS. Note that it’s off by default for now, so you’ll need to manually turn it on in System Settings’ Desktop Effects page if you want to use it (Vlad Zahorodnii, link)

Ark now offers a new “Extract here and delete archive” option for its context menu plugin! As part of the process of making this possible, we decided to remove infrequently-used items in the menu in favor of keeping the “Extract here, autodetect subfolder” option, which was the most useful one and has now been renamed to “Extract here” for clarity (Severin von Wnuck, link):

User Interface improvements

Auto-Hide panels now respect the user-configurable delay setting that currently affects other screen edge effects, so you can configure whether they will un-hide immediately upon being touched, or wait an amount of time of your choosing (Bharadwaj Raju, link)

The glow effect that appears when your pointer gets close to a screen edge or corner that will do something when touched now respects the system’s accent color (Ivan Tkachenko, link)

The Morphing Popups effect now animates with the standard easing curve, which feels more consistent and nicer and also makes it feel faster (Timothy Bautista, link)

KRunner and other KRunner-based searches like the one in Overview now have proper visual click feedback when you click on a search result (Kai Uwe Broulik, link)

Tool views and sidebar tabs in Kate can now be dragged-and-dropped to other locations (Waqar Ahmed, link 1 and link 2)

Hitting the Escape key in Spectacle while in Rectangular Region mode now takes you back to the main window instead of quitting the app (Noah Davis, link)

Bug fixes

Fixed the most common crash in Dolphin which could happen when copying a large number of files to another location, closing Dolphin’s window, and then interacting with the overwrite/skip dialog (Akseli Lahtinen, link)

Fixed another common crash in Dolphin that could happen after entering edit mode and then changing the Application Style (Akseli Lahtinen, link)

In the Plasma Wayland session, sub-menus from Kicker no longer go underneath a bottom panel, and windows marked “Keep above other windows” no longer also go above panel popups (David Edmundson, link 1 and link 2)

Fixed various visual glitches with the bouncy app launch feedback effect on Wayland when using a scale factor higher than 100% (Vlad Zahorodnii, link 1, link 2, and link 3)

Window titles that contain a hyphen character no longer get mangled when displayed in Task Manager preview popups (Niccolò Venerandi, link)

Fixed OSDs on the lock screen looking pointlessly different from OSDs shown everywhere else (Bharadwaj Raju, link)

When you have multiple Battery widgets, the “Manually block sleep and screen locking” switch is now synced between all of them (Natalie Clarius, link)


Added support for hardware cursors on NVIDIA GPUs (Doğukan Korkmaztürk, link)

System Settings’ Firewall page has been fully ported to Qt6 (Guillaume Frognier and David Redondo, link)

KDE Connect’s Plasma widget has been fully ported to be compatible with Plasma 6 (Prajna Sariputra, link)

Automation & Systematization

Added an autotest to make sure that files and folders added to the desktop actually show up immediately (Fushan Wen, link)

Added an autotest to make sure that accent colors can be correctly extracted from wallpapers (Fushan Wen, link)

Added an autotest to make sure that Global Theme layouts can be correctly applied (Fushan Wen, link)

…And Everything Else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

We’re hosting our Plasma 6 fundraiser right now and need your help! Thanks to you we’re at 83% right of our goal of 500 members now! I think we might actually make it! If you like the work we’re doing, spreading the wealth is a great way to share the love.

If you’re a developer, work on Qt6/KF6/Plasma 6 issues! Which issues? These issues. Plasma 6 is very usable for daily driving now, but still in need of bug-fixing and polishing to get it into a releasable state by February.

Otherwise, visit https://community.kde.org/Get_Involved to discover other 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!

Categories: FLOSS Project Planets

Michael J. Ross: Proprietary vs. Open Source CMSs

Planet Drupal - Fri, 2023-12-01 19:00
Proprietary vs. Open Source CMSs Michael J. Ross 2023-12-02

If and when your organization needs a new website, in most cases the best approach is to build it upon a content management system (CMS), which is like a framework that allows the website owner to easily add and modify text and multimedia content by themselves, without having to rely upon any web developers or designers — who typically begin the process by identifying the needed capabilities of the site, configuring the CMS to make that possible, and crafting its visual design.

There are two general categories of CMSs from which you can choose: Open source or proprietary. Open source systems, as their name implies, consist of source code that is open to inspection by anyone, including the thousands of web developers who contribute to each CMS project, especially any group of them dedicated to finding and fixing security vulnerabilities in the code. Consequently, any such flaws in open source CMSs — such as WordPress and Drupal — are usually detected and repaired faster than those in commercial, homemade, or other proprietary systems. The security teams of open source projects typically comprise numerous skilled programmers who have diverse technical backgrounds and who take great pride in the quality of their work; after all, their names are clearly associated with the projects to which they are dedicated. This is quite unlike the unknown programmers who work at commercial firms and receive little publicity, especially when another security hole is discovered in the CMSs built and licensed by their employers.

In my experience as a web developer tasked countless times with replacing legacy websites built on proprietary platforms, clients who had allowed themselves to get locked into using such systems oftentimes find it much more difficult to transition away from any such platform, for several reasons: Each CMS has a unique way of storing page content, menu structure, content types, tags and tag assignments, etc. within its database. In turn, each one has a unique database design, making it prohibitively difficult to write code to try to automate the process of transitioning to an alternative platform (assuming such code has not already been produced by programmers who had faced the arduous process in the past). As a result, most such projects mean that your developers and content administrators will have to do most of that work by scratch.

Another downside to proprietary website systems is that the original developers who implemented the legacy system can even make it intentionally difficult to be replaced (perhaps thinking that this provides them with better job security). For instance, one of my former clients, a healthcare organization, hired me to replace a closed and heavily-licensed CMS, with something much more open and easily maintained. (For this particular project, I chose Drupal.) Not only was the legacy CMS poorly built and difficult to replace, but the original web firm had even gone to the trouble of encrypting on disk all of the client's PDF documents, and only decrypting them when displayed to users of the website. When the client asked the original developers (who knew they were being replaced) to decrypt the client's documents, they refused. As a result, one the project manager was compelled to view every one of those PDF documents online and then save the decrypted document, for use within the new website.

There are numerous other disadvantages to choosing a closed or otherwise proprietary website system. But for these reasons alone, if nothing else, you are almost always better off going with an open source CMS.

Copyright © 2023 Michael J. Ross. All rights reserved.
Categories: FLOSS Project Planets

Marcos Dione: ikiwiki to nikola: the script

Planet Python - Fri, 2023-12-01 18:31

People asked for it:

#! /usr/bin/python3 import argparse from datetime import datetime from glob import glob from os import stat from os.path import basename, splitext import re import sys import time footnote_re = re.compile(r'\[(?P<foot_number>\d+)\]') taglink_re = re.compile(r'\[\[!taglink (?P<tag_name>[^\]]*)\]\]') image_re = re.compile(r'\[\[!img (?P<path>.*)\]\]') format_start_re = re.compile(r'^\[\[!format (?P<language>.*) """$') format_end_re = re.compile(r'^"""\]\]$') def rewrite_footnotes_line(line, text_block, footnote_block, taglink_block, foot_number): new_line = line changed = False while footnote := footnote_re.search(new_line): # remove the []s start = footnote.start('foot_number') - 1 end = footnote.end('foot_number') + 1 prefix = new_line[:start] postfix = new_line[end:] foot_number = footnote.group('foot_number') if text_block: new_line = f"{prefix}[^{foot_number}]{postfix}" elif footnote_block: new_line = f"{prefix}[^{foot_number}]:{postfix}" else: raise ValueError('found a footnote in the taglink_block!') changed = True else: if not changed and footnote_block and len(line) > 0: # '[^]: ' <-- 5 extra chars new_line = f"{' ' * (len(foot_number) + 5)}{line.strip()}" return new_line, foot_number def rewrite_footnotes(src): lines = src.splitlines() hr_count = len([ line for line in lines if line.startswith('---') ]) new_lines = [] text_block = True footnote_block = False taglink_block = False hr_seen = 0 foot_number = '' for line in lines: line_length = len(line) if line_length > 4 and line[:4] == ' ': # it's an inline code block, leave alone new_lines.append(line) continue if line.startswith('---'): hr_seen += 1 # if there is only one hr, then we have text + taglink blocks # if there are two or more, it's text + footnote + taglink blocks if text_block and hr_count >= 2 and hr_seen == hr_count - 1: text_block = False footnote_block = True # don't keep it continue elif hr_seen == hr_count: text_block = False footnote_block = False taglink_block = True # we'll need it later new_lines.append(line) continue try: new_line, foot_number = rewrite_footnotes_line(line, text_block, footnote_block, taglink_block, foot_number) except Exception as e: print(f"got `{e}´ for `{line}´.") raise new_lines.append(new_line) return '\n'.join(new_lines) + '\n' def rewrite_taglinks(src): new_lines = [] new_tags = [] for line in src.splitlines(): if len(line) > 0 and line == '-' * len(line): # don't keep it continue tags = taglink_re.findall(line) if len(tags) > 0: new_tags.extend(tags) else: new_lines.append(line) return '\n'.join(new_lines) + '\n', new_tags def rewrite_images(src): new_lines = [] for line in src.splitlines(): image = image_re.search(line) if image is not None: # get the text before and after the whole directive start = image.start(0) end = image.end(0) prefix = line[:start] postfix = line[end:] path = image.group('path') # the root to which this 'absolute' path points is the website's root new_line = f"{prefix}![](/{path}){postfix}" new_lines.append(new_line) else: new_lines.append(line) return '\n'.join(new_lines) + '\n' lang_map = dict( py='python', sh='bash', ) def rewrite_format(src): new_lines = [] for line in src.splitlines(): start = format_start_re.match(line) if start is not None: lang = start.group('language') # if there's no mapping return the same lang new_line = f"```{lang_map.get(lang, lang)}" new_lines.append(new_line) continue if format_end_re.match(line): new_lines.append('```') continue new_lines.append(line) return '\n'.join(new_lines) + '\n' def titlify(src): words = src.split('-') words[0] = words[0].title() return ' '.join(words) def test_offesetify(): src = -3600 dst = '+0100' assert offsetify(src) == dst def offsetify(src): hours, seconds = divmod(src, 3600) # "offsets are always in minutes" sounds like one item in 'things dveloper believe about timezones' minutes, _ = divmod(seconds, 60) # NOTE: time.timezone returns seconds west of UTC, which is opposite of what usual offsets go if src > 0: sign = '-' else: sign = '+' return f"{sign}{-hours:02d}{minutes:02d}" def datify(src): '''1701288755.377908 -> 2023-11-29 21:12:35 +0100''' # BUG: I'm gonna assume current timezone. # thanks SirDonNick#python@libera.chat # dto=DT(2023,11,29, 12,13,59, tzinfo=UTC_TZ); DT.astimezone( dto , getTZ('Europe/Brussels') ) #==> 2023-11-29 13:13:59+01:00 offset = time.timezone dt = datetime.fromtimestamp(src) return f"{dt.strftime('%Y-%m-%d %H:%M:%S')} {offsetify(offset)}" # zoneinfo for some reason doesn't know about CEST, so I'll just hack a mapping here tzname_to_utc_offset = dict( CEST='+0200', CET='+0100', ) month_name_to_number = dict( jan= 1, ene= 1, feb= 2, mar= 3, apr= 4, abr= 4, may= 5, jun= 6, jul= 7, aug= 8, ago= 8, sep= 9, oct=10, nov=11, dec=12, dic=12, ) def dedatify(src): # 0 1 2 3 4 5 6 7 # src=['Posted', 'Sun', '26', 'Aug', '2012', '11:27:16', 'PM', 'CEST'] month = month_name_to_number[src[3].lower()] utc_offset = tzname_to_utc_offset[src[7]] h, m, s = [ int(x) for x in src[5].split(':') ] if src[6].upper() == 'PM': h += 12 # TODO: support 12PM return f"{src[4]}-{month:02d}-{int(src[2]):02d} {h:02d}:{m:02d}:{s:02d} {utc_offset}" def build_meta(filepath, tags, date=None): filename = splitext(basename(filepath))[0] if date is None: mtime = stat(filepath).st_mtime date_string = datify(mtime) else: date_string = dedatify(date) meta = f""".. title: {titlify(filename)} .. slug: {filename} .. date: {date_string} .. tags: {', '.join(tags)} .. type: text """ return filename, meta def import_post(opts): src = open(opts.filepath).read() mid, tags = rewrite_taglinks(rewrite_footnotes(src)) dst = rewrite_format(rewrite_images(mid)) if opts.date is None: filename, meta = build_meta(opts.filepath, tags) else: filename, meta = build_meta(opts.filepath, tags, date=opts.date) open(f"posts/{filename}.md", 'w+').write(dst) open(f"posts/{filename}.meta", 'w+').write(meta) def parse_args(): parser = argparse.ArgumentParser() parser.add_argument('filepath', metavar='FILE') parser.add_argument('-d', '--date', nargs=8, help='Just pass something like "Posted Wed 12 Sep 2012 08:19:23 PM CEST".') return parser.parse_args() if __name__ == '__main__': opts = parse_args() import_post(opts)

I removed all the tests, but they all looked like this:

def test_dedatify(): src = 'Posted Wed 12 Sep 2012 08:19:23 PM CEST'.split() dst = '2012-09-12 20:19:23 +0200' assert dedatify(src) == dst


Categories: FLOSS Project Planets

KDE neon and snaps, Debian Weekly report.

Planet KDE - Fri, 2023-12-01 13:05

While the winter sets in, I have been mostly busy following up on job leads and applying to anything and everything. Something has to stick… I am trying! Even out of industry.


This weeks main focus was getting involved and familiar with Debian rust-packaging. It is really quite different from other teams! I was successful and the MR is https://salsa.debian.org/rust-team/debcargo-conf/-/merge_requests/566 if anyone on the rust team can take a gander, I will upload when merged. I will get a few more under my belt next week now that I understand the process.

KDE neon:

Unfortunately, I did not have much time for neon, but I did get some red builds fixed and started uploading the new signing key for mauikit* applications.

KDE snaps:

A big thank you to Josh and Albert for merging all my MR’s and I have finished 23.08.3 releases to stable.

I released a new Krita 5.2.1 with some runtime fixes, please update.

Still no source of income so I must ask, if you have any spare change, please consider a donation.

Thank you, Scarlett


Categories: FLOSS Project Planets

Scarlett Gately Moore: KDE neon and snaps, Debian Weekly report.

Planet Debian - Fri, 2023-12-01 13:05

While the winter sets in, I have been mostly busy following up on job leads and applying to anything and everything. Something has to stick… I am trying! Even out of industry.


This weeks main focus was getting involved and familiar with Debian rust-packaging. It is really quite different from other teams! I was successful and the MR is https://salsa.debian.org/rust-team/debcargo-conf/-/merge_requests/566 if anyone on the rust team can take a gander, I will upload when merged. I will get a few more under my belt next week now that I understand the process.

KDE neon:

Unfortunately, I did not have much time for neon, but I did get some red builds fixed and started uploading the new signing key for mauikit* applications.

KDE snaps:

A big thank you to Josh and Albert for merging all my MR’s and I have finished 23.08.3 releases to stable.

I released a new Krita 5.2.1 with some runtime fixes, please update.

Still no source of income so I must ask, if you have any spare change, please consider a donation.

Thank you, Scarlett


Categories: FLOSS Project Planets

The Drop Times: Costa Rica 2023: A Glimpse into Success at Drupal Camp

Planet Drupal - Fri, 2023-12-01 12:39
Check out what went down at Drupal Camp 2023 in Costa Rica! Get insights into sessions and stories from tech folks. It's a peek into Costa Rica's tech world – something you don't wanna miss!
Categories: FLOSS Project Planets

FSF Events: Free Software Directory meeting on IRC: Friday, December 08, starting at 12:00 EST (17:00 UTC)

GNU Planet! - Fri, 2023-12-01 12:13
Join the FSF and friends on Friday, December 08, from 12:00 to 15:00 EST (17:00 to 20:00 UTC) to help improve the Free Software Directory.
Categories: FLOSS Project Planets

Gary Benson: GitLab YAML Docker Registry client

GNU Planet! - Fri, 2023-12-01 09:13

Have you written a Docker Registry API client in GitLab CI/CD YAML? I have.

# Delete candidate image from CI repository. clean-image: stage: .post except: - main variables: AUTH_API: "$CI_SERVER_URL/jwt/auth" SCOPE: "repository:$CI_PROJECT_PATH" REGISTRY_API: "https://$CI_REGISTRY/v2/$CI_PROJECT_PATH" before_script: - > which jq >/dev/null || (sudo apt-get update && sudo apt-get -y install jq) script: - echo "Deleting $CANDIDATE_IMAGE" - > TOKEN=$(curl -s -u "$CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD" "$AUTH_API?service=container_registry&scope=$SCOPE:delete,pull" | jq -r .token) - > DIGEST=$(curl -s -I -H "Authorization: Bearer $TOKEN" -H "Accept: application/vnd.docker.distribution.manifest.v2+json" "$REGISTRY_API/manifests/$CI_COMMIT_SHORT_SHA" | tr -d "\r" | grep -i "^docker-content-digest: " | sed "s/^[^:]*: *//") - > curl -s -X DELETE -H "Authorization: Bearer $TOKEN" "$REGISTRY_API/manifests/"$(echo $DIGEST | sed "s/:/%3A/g")
Categories: FLOSS Project Planets

Real Python: The Real Python Podcast – Episode #182: Building a Python JSON Parser &amp; Discussing Ideas for PEPs

Planet Python - Fri, 2023-12-01 07:00

Have you thought of a way to improve the Python language? How do you share your idea with core developers and start a discussion in the Python community? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder's Weekly articles and projects.

[ 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

Web Review, Week 2023-48

Planet KDE - Fri, 2023-12-01 06:29

Let’s go for my web review for the week 2023-48.

KDE’s 6th Megarelease - Beta 1 - KDE Community

Tags: tech, kde

The best time to test it and provide fixes is now!


PeerTube v6 is out, and powered by your ideas! – Framablog

Tags: tech, video, self-hosting

Another great release. Definitely welcome features.


Where Is OpenCV 5? - OpenCV

Tags: tech, graphics, opencv, vision

This is an important project, they’re starting a crowdfunding. Time to give back!


Red Hat Enterprise Linux 10 plans for Wayland and Xorg server

Tags: tech, redhat, wayland

The beginning of the end for X11. The writing is now on the wall.


New Outlook is good, both for yourself and 766 third parties

Tags: tech, microsoft, privacy

They respect privacy apparently… oh wait!


Pluralistic: The real AI fight

Tags: tech, ai, ethics

Excellent piece from Cory Doctorow, it’s a good summary of where the real debates about AI should be… and it’s nowhere near the OpenAI soap opera.


UK school pupils ‘using AI to create indecent imagery of other children’

Tags: tech, ai, gpt, criticism

School bullying has a new tool to its belt… and this one is rather creepy.


GAIA: A Benchmark for General AI Assistants

Tags: tech, ai, gpt, benchmarking

That’s the beginning of interesting benchmarks for AI assistants. Still a long way to go but this is a good start.


Neil Gaiman’s Radical Vision for the Future of the Internet - Cal Newport

Tags: tech, web, blog, social-media

Hopefully this becomes true. I wouldn’t mind a post-Social Media era of the Web.


An ode to the neo-grotesque web | Redowan’s Reflections

Tags: tech, web, blog, history, ux

There was definitely something we lost from the early days of the web. It was not perfect, far from it, but some of that spark is missing.


cohost! - “Paper: You Want My Password or a Dead Patient?”

Tags: tech, medecine, usability, security, safety

How the medical sector is struggling with badly designed software. Also important to note how security is just getting in the way of nurses and doctors jobs.


Secure DNS (DoT & DoH) is not enough

Tags: tech, browser, dns, privacy

Looking forward to Encrypted Client Hello to be widely available. This was no more clear text SNI, and privacy should be really ensured when browsing the web.


Beej’s Guide to Interprocess Communications

Tags: tech, unix, processes, communication

Looks like a good resource for someone who needs to get into IPC mechanisms on UNIX flavors.


Modern C++ Programming Course (C++11/14/17/20)

Tags: tech, c++, learning

Looks like a fairly comprehensive course to get started or refresh your Modern C++


On harmful overuse of std::move - The Old New Thing

Tags: tech, c++, performance

Seen this a bit too often indeed. When people learn about std::move they tend to sprinkle it too much preventing proper optimizations. Its use should be fairly limited usually.


Live and Let Die

Tags: tech, programming, c++, raii, resources

Interesting dive on the limits of destructors and when they’re called. This can have implications on how programs are stopped.


Brandt Bucher – A JIT Compiler for CPython

Tags: tech, python, compiler

If you wonder what’s happening on the JIT front in CPython land, here is a talk explaining what’s coming in 3.13.



Tags: tech, ai, machine-learning, gpt, vim, command-line, self-hosting, foss

Interesting terminal oriented tool to interacting with LLM. Let you choose to self-host or run locally.


Distribute and run LLMs with a single file

Tags: tech, ai, machine-learning, gpt, foss, portability

Interesting experiment. It makes for a very large file but there are a few clever tricks in there.


Using Polars in a Pandas world

Tags: tech, data, pandas, polars

Good things to keep in mind if you’re pondering between pandas or polars for your data processing.


Ray Marching Fog With Blue Noise « The blog at the bottom of the sea

Tags: tech, graphics, 3d, noise

I keep being baffled at how the right type of noise can really make a difference in the rendering of some effects.


Animotion — a visual CSS animation app

Tags: tech, web, css, animation, tools

Nice little editor for CSS animations. Should definitely help building those.


The Weirdest Bug I’ve Seen Yet

Tags: tech, debugging

Definitely a weird one… still a mystery and unfortunately will probably stay this way. Having the code source could have helped nail it down, could have been interesting.


CUPID—for joyful coding - Dan North & Associates Limited

Tags: tech, craftsmanship, design, programming, quality

This is a good set of properties to strive for. Since the SOLID principles start to show their age this might be a worthwhile alternative.


Code is run more than read

Tags: tech, business, craftsmanship, foss

Interesting food for thought. The later point about the tension between business and users lately is also a good one and should be kept in mind. That’s an ethical concern you find most in companies publishing Free Software though. It’s not the full packaged solution but a good starting point.


Supporting Sustainability

Tags: tech, project-management, communication, sustainability

Interesting set of advices for better communication and more sustainable production of software.


Be Indirect in Your Research Questionnaire to Gain More Honesty

Tags: sociology, polling

Definitely this. When polling the questions shouldn’t be too obvious, otherwise people will tell you what you want to hear.


Bye for now!

Categories: FLOSS Project Planets

The Drop Times: Calendar View Module Offering Simplified Drupal Calendars

Planet Drupal - Fri, 2023-12-01 06:24
Introducing Calendar View Module: a lightweight tool by Matthieu Scarset, that streamlines the complex process of calendar creation in Drupal. With a focus on simplicity, this module offers a user-friendly approach, allowing even those with limited technical expertise to effortlessly build calendars. Seamlessly compatible with various entity types and popular Drupal modules, the Calendar View Module puts control in the hands of users, offering flexibility in how results are displayed. Explore uncomplicated calendar management with this petite yet powerful Drupal addition.
Categories: FLOSS Project Planets

Tryton News: Newsletter December 2023

Planet Python - Fri, 2023-12-01 03:00

In the last month we focused on fixing bugs, improving the behaviour of things, speeding-up performance issues and adding new features for you.

Changes for the User Accounting, Invoicing and Payments

We ease the former unique constraint on IBAN account numbers to allow now multiple equal deactivated IBAN account numbers.

When changing the company or party of an invoice, now the tax identifier are cleared when they are no longer valid.

On payment terms we now display the fields to define the payment term delta in the correct order of application.

Now it is possible to shorten or extend the fiscal year as long as all periods are still in its date range.

On refunds we now show the external payment ID from the payment provider.

Now we order payable/receivable lines by maturity date or move date.

Parties and CRM

The height of the street widget is now reduced to three lines.

New Releases

We released bug fixes for the currently maintained long term supported series
7.0, 6.0 and the penultimate series 6.8.

Changes for the System Administrator

Tryton now fully supports the update of database records via CSV data. The missing piece has been the handling for removing links in xxx2Many fields on update, which is done now. To unlink or remove existing xxx2Many target records, just exclude them in the CSV data to import. This way the imported data is similar to the stored records in the database.

Now the Tryton client cleans-up all temporary files and directories on exit.

Changes for Implementers and Developers

Now it is possible to specify a database statement timeout on RPC calls. The new timeout parameter on RPC calls helps to avoid costly database queries. The default value is 60 sec and can be modified in the configuration.

We included a new policy to require documentation update for modules when contributing new feature to an existing module. We’ve been applying such rule for one month, which already improved the documentation of some modules.

A new contrib group have been included on the heptapod repository. This includes some tools related to Tryton which provide web integration, filestore integration and even a module to send SMS. We are happy to include more similar projects in the group, feel free to contribute yours!

Authors: @dave @pokoli @udono

1 post - 1 participant

Read full topic

Categories: FLOSS Project Planets

LostCarPark Drupal Blog: Drupal Advent Calendar day 1 - Gin Admin Theme

Planet Drupal - Fri, 2023-12-01 02:00
Drupal Advent Calendar day 1 - Gin Admin Theme james Fri, 12/01/2023 - 07:00

Welcome to the 2023 Drupal Advent Calendar. Behind today’s door, we find the Gin Admin Theme, with a fantastic write-up by Ludovic Favre (Grumpy74).

Since Drupal 10, Claro has been the default admin theme for Drupal websites. It added a new look and feel improving usability for Drupal site builders and administrators. But wouldn’t be amazing if you could add new features on top of it? Well, that’s exactly what Gin Admin Theme provides.

First of all, the Gin Admin theme maintainer, @saschaeggi, is a contributor on Claro theme and the Drupal Design System. This makes it hyper relevant in terms of…

Categories: FLOSS Project Planets

Maui Release Briefing # 4

Planet KDE - Thu, 2023-11-30 22:02
MauiKit: A Toolkit for Multi Adaptable User Interfaces.

Today, we bring you a report on the brand-new release of the Maui Project.

We are excited to announce the latest release of MauiKit version 3.0.2, our comprehensive user interface toolkit specifically designed for convergent interfaces, the complying frameworks, and an in-house developed set of convergent applications.

Built on the foundations of Qt Quick Controls, QML, and the power and stability of C++, MauiKit empowers developers to create adaptable and seamless user interfaces across a range of devices, and with this release, we are a step closer to finalizing the migration to a new major version – the upcoming MauiKit4 release, now fully documented.

Join us on this journey as we unveil the potential of MauiKit3 for building convergent interfaces, the roadmap towards MauiKit4 and its new additions, and finally discover the possibilities offered by the enhanced Maui App stack.


To follow the Maui Project’s development or to just say hi, you can join us on Telegram @mauiproject

We are present on Twitter and Mastodon:

Thanks to the KDE contributors who have helped translate the Maui Apps and Frameworks!

Downloads & Sources

You can get the stable release packages [APKs, AppImage, TARs] directly from the KDE downloads server at https://download.kde.org/stable/maui/

And if you are feeling a bit curious about the Maui DE, you can download the Manjaro-based image for **testing** the project’s state as a snapshot of MauiKit3.


Note: Please be aware that this is an ISO image from a third party.

All of the Maui repositories have the newly release branches and tags. You can get the sources right from the Maui group: https://invent.kde.org/maui

What’s new?

With this update, we have focused on publishing the comprehensive documentation for the recently ported MauiKit4 Frameworks, polishing and updating the upcoming MauiKit4 frameworks code base, and starting to get the Maui Applications into shape for the migration to MauiKit4 – all while fixing bugs, improving performance, and fine-tuning all visual details.

MauiKit3 & 4

While documenting the source code – for the ported MauiKit4 frameworks – a lot of the implementation details of the visual controls have been reviewed and refined, this has resulted in a more curated set of UI elements, performance boost, cleaner code an early addition of new features.


All of the frameworks have a new information header, with information about the module, such as version number, build version, and all of the open-source tools that are part of it.

A quick overview of the changes made include:

  • Startup optimizations for the ApplicationWindow
  • The SettingsDialog layout is now cleaner when using the accompanying SectionGroup and SectionItem controls
  • Fix regressions introduced with the dialogs now based on QQC2 Dialog component
  • The TabView overview preview thumbnails are now correctly scaled and more tab information, such as the custom color and tooltip text – are now used.
  • Lazy loading elements until they are needed resulting in small performance boost
  • The AboutDialog links are clearer without using any special styling, and some parts have been refactored for a cleaner source code
  • Fixes to the GridBrowserDelegate and ListBrowserDelegate checkable state
Terminal, TextEditor & FileBrowsing

The FileDialog issues on mobile devices with the single click preference have been solved. Another bunch of small fixes include fixes to the dialog buttons, the FileBrowser action dialogs, information about tag locations, and the addition of more methods to the file management classes.

MauiKitTerminal now exposes more interface properties for handling processes that have gone silent, and functions to correctly change the current working directory.

Documents, Accounts, Calendar &ImageTools

Added the header with module information, and started the porting work.

And, as for MauiKit4:

  • The Holder control can now have an image source as the emoji
  • Many corrections in the QML syntax for the definition of catching signals.
  • The SettingsDialog is now a detached window on desktop environments
  • Added a new control DialogWindow and BaseWindow, from which ApplicationWindow now inherits. The new DialogWindow is correctly set as a dialog window and it’s modal.
  • Simplify the implementation of controls, such as the InputDialog
  • Fixes to CSD buttons controls, and now respects hints of no resizable windows or windows that should not be minimized.
  • Added a build flag `-DBUILD_DEMO=ON` for building or skipping the MauiKit4 demo app.
  • Added documentation to the sources and example files for all the visual controls
  • The SectionItem has been changed into two different variants: SectionItem and FlexSectionItem, more information about their use cases is in the documentation linked in the section below
  • Some of the previously public types that were only part of the implementation have now become private, such as the SideBar for the SideBarView
MauiKit4 Documentation

Documentation has been published for the ported MauiKit4 frameworks, as part of the migration plan. As new frameworks get ported, the accompanying documentation will be published. You can find the documentation online at https://api.kde.org/mauikit/index.html

At the time of this release, the following frameworks have now been fully documented, and have a comprehensive list of example source files:

The documentation effort also resulted in a complete set of example source files, which can be used for interested users to quickly hack and learn about MauiKit4, and for testers – and unit tests, to monitor all parts are functional.

If you are interested in contributing to the project, or in developing a MauiKit-based application, and you find any issues, bugs about the documentation text readability, or any other comments, please feel free to open a bug report on the corresponding repository issues page, and/or joining us at our telegram public chat group, where any concerns or questions will be answered promptly.

MauiKit3 Apps

Among specific new features and updates listed below, all of the Maui apps have been updated to the latest MauiKit3 changes, which also include fixes to some regressions introduced in the porting to MauiKit4 – and have also received an initial set of tweaks to get ready for their migration to MauiKit4.

Fix regression to the new dialogs versus the previous implementation.

Updated translations to multiple languages, thanks to the KDE community.

Index, Vvave & Shelf

Index now allows previewing files by default instead of opening them in an external application, and the dialog can be detached on desktop environments. Some UI elements have been improved to be loaded only when needed.

In Index, the previewer model is now independent of the current directory model, and the previews of videos and audios now have a playback button for pausing and resuming.

The albums and artist view in Vvave, now display a quick play button on hovering over the cover, to quickly start playing a full album or artist collection.

Shelf correct browsing by categories.

Clip, Nota & Station

The alerts on Station, for inactive or silent processes are now optional and exposed in the settings dialog. Now the last session can be restored if preferred.

For Nota, the crashing issues on Android have been addressed. Menus and other elements are now being lazy-loaded, making the app quicker. Also, menus have been revised and the mobile contextual menu is now correctly working.

Fiery, Buho & More

Fiery now has detachable tabs.

Maui Shell Cask, Maui Settings & More

The session startup manager now has been fully ported to Qt6 and it’s working correctly.

Many fixes were done to the Cask panels and dock, fixing regressions introduced in the migration to MauiKit4. This is still a work in progress and more development will go into this for the upcoming release of the Shell in February.

2024 Roadmap

For the upcoming release scheduled for February, most of the work will go into the Shell and its sub-projects, as decided in the release chronogram, however, this will also be the time when the remaining MauiKit frameworks will be ported from Qt5 to Qt6, those include Documents, Terminal,ImageTools, TextEditor, Accounts.

It is expected that most of the Maui Applications will be ported to MauiKit4 Frameworks and Qt6, for their new release around May 2024. And by August release it is expected that all of the Maui Project has been successfully migrated to Qt6.

To follow the Maui Project’s development or say hi, you can join us on Telegram: https://t.me/mauiproject.

We are present on Twitter and Mastodon:

New release schedule


The post Maui Release Briefing # 4 appeared first on MauiKit — #UIFramework.

Categories: FLOSS Project Planets