Feeds

LostCarPark Drupal Blog: Drupal Advent Calendar day 18 - The Mentoring Initiative

Planet Drupal - Mon, 2023-12-18 02:00
Drupal Advent Calendar day 18 - The Mentoring Initiative james Mon, 12/18/2023 - 07:00

Once again, welcome to Day 18 of the Drupal Advent Calendar. Today we are joined by AmyJune Hineline (volkswagenchick), who is here to tell us about the Mentoring Initiative.

I am AmyJune Hineline, volkswagenchick on Drupal.org. I have been mentoring in the open source space since 2017 and was folded into the Drupal Mentor Coordination team in 2020. I have the privilege of being a non-code developer and have always advocated that non-code contributions are as important to the project as code.

I started in Drupal mentoring by presenting a version of the First Time Contributor Workshop at the...

Categories: FLOSS Project Planets

conf.kde.in 2024 in Pune, Maharashtra

Planet KDE - Sun, 2023-12-17 19:00

conf.kde.in 2024 will be hosted at COEP Technological University, Pune.

conf.kde.in aims to attract new KDE Community members, as well as seasoned developers. The contents of the conference provide updates on what is going on in the KDE Community and teaches newcomers how to start making meaningful contributions.

This event attracts speakers from all over India. It provides students with an excellent opportunity to interact with established open-source contributors, as well as developers from various industries working on open-source projects in the fields of automotive, embedded, mobile, and more.

conf.kde.in was started in 2011 at the R V College of Engineering, Bangalore by a group of Indian KDE contributors. Since then we have hosted six different editions, each in different universities and venues:

  • 2013, KDE Meetup, DA-IICT, Gandhinagar
  • conf.kde.in 2014, DA-IICT, Gandhinagar
  • conf.kde.in 2015, Amrita University, Kerala
  • conf.kde.in 2016, LNMIIT, Jaipur
  • conf.kde.in 2017, IIT Guwahati
  • conf.kde.in 2020, Maharaja Agrasen Institute of Technology, Delhi

Past events have been successful in attracting Indian students to mentoring programs such as Google Summer of Code (GSoC), Season of KDE, and Google Code-In. These programs have often successfully helped students become lifelong contributors to open-source communities, including KDE.

Call for papers

We are asking for talk proposals on topics relevant to the KDE community and technology, as well as workshops or presentations targeted towards new contributors.

Interesting topics include (but are not restricted to):

  • New people and organisations that are discovering KDE
  • Working towards giving people more digital freedom and autonomy with KDE
  • New technological developments in KDE
  • Guides on how to participate for new, intermediate and expert users
  • Showcases of projects by students participating in KDE mentorship programs
  • Anything else that might interest the audience

Have you got something interesting to present? Let us know about it! If you know of someone else who should present, encourage them to do so too.

Please submit your papers at the following link

COEP Technological University

COEP Technological University is a unitary public university of the Government of Maharashtra, situated on the banks of Mula river, Pune, Maharashtra, India. Established in 1854, it is the 3rd oldest engineering institute in India.

College of Engineering, Pune (COEP), chartered in 1854 is a nationally respected leader in technical education. The institute is distinguished by its commitment to finding solutions to the great predicaments of the day through advanced technology. The institute has a rich history and dedication to the pursuit of excellence. COEP offers a unique learning experience across a spectrum of academic and social experiences. With a firm footing in truth and humanity, the institute gives you an understanding of both technical developments and the ethics that go with it. The curriculum is designed to enhance your academic experience through opportunities like internships, study abroad programmes and research facilities. The hallmark of COEP education is its strong and widespread alumni network, support of the industry and the camaraderie that the institute shares with several foreign universities.

On 23 June 2022, the Government of Maharashtra issued a notification regarding the conversion of the college into an independent technological university.

CoFSUG

The COEP's Free Software Users Group (CoFSUG) is a volunteer group at the COEP Technological University that promotes the use and development of free and open source software. CoFSUG runs the FOSS Lab, FOSS Server, COEP Moodle, COEP LDAP Server, and COEP Wiki. The group carries out activities like installation festivals to teach GNU/Linux, workshops on Linux administration, Python, Drupal, and FOSS technologies, promoting software development under the GNU GPLv3 license, and Freedom Fridays to spread FOSS philosophy. It has in the past hosted the Fedora Users and Developers Conference 2011, Android app development workshops, spoken tutorials program from IIT Bombay, and summer coding projects for students on FOSS contributions. CoFSUG organizes FLOSSMEET, a flagship event to create awareness and encourages the use of free and open-source software. Previous editions hosted talks on technologies such as Docker, Kubernetes, open-source licenses, and OSINT, exploring RUST to name a few.

Overall, CoFSUG aims to advance the use of free and open source solutions in academia through hands-on training, student projects, and evangelism about the FOSS philosophy.

Categories: FLOSS Project Planets

Python⇒Speed: How many CPU cores can you actually use in parallel?

Planet Python - Sun, 2023-12-17 19:00

When you’re running a CPU-intensive parallel program, you often want to have a thread or process pool sized by the number of CPU cores on your machine. Fewer threads and you’re not taking advantage of all the cores, more than that and your program will start running slower as multiple threads compete for the same core. Or that’s the theory, anyway.

So how do you check how many cores your computer has? And is this actually good advice?

It turns out to be surprisingly tricky to nail down how many threads to run:

  • The Python standard library provides multiple APIs to get this info, but none are sufficient.
  • Even worse, because of CPU features like instruction-level parallelism and simultaneous threading (aka Hyper-threading on Intel CPUs), the number of cores you can effectively use depends on the code you have written!

Let’s see why it’s so difficult to figure out how many CPU cores your program can use, and then consider a potential solution.

Read more...
Categories: FLOSS Project Planets

Seth Michael Larson: Mahjong tiles and Unicode variation selectors

Planet Python - Sun, 2023-12-17 19:00
Mahjong tiles and Unicode variation selectors AboutBlogNewsletterLinks Mahjong tiles and Unicode variation selectors

Published 2023-12-18 by Seth Larson
Reading time: minutes

It's been a while since I've written about Unicode, so here's a short one about a Unicode feature I recently learned about wrapped inside an opportunity to admire the Mahjong glyphs.

Quoting Wikipedia, Mahjong is a tile-based game that was developed in the 19th century in China and has spread throughout the world. Similar to other classic games like Chess and French Playing Cards, Mahjong has its own block in Unicode (U+1F000 - U+1F02F) for all of the tiles.

Winds (U+1F000..U+1F003) 🀀🀁🀂🀃 Dragons (U+1F004..U+1F006) 🀄︎🀅🀆 Dots (U+1F019..U+1F021)
🀙🀚🀛🀜🀝🀞🀟🀠🀡 Bamboo (U+1F010..U+1F018)
🀐🀑🀒🀓🀔🀕🀖🀗🀘 Characters (U+1F007..U+1F00F)
🀇🀈🀉🀊🀋🀌🀍🀎🀏 Flowers (U+1F022..U+1F025)
🀢🀣🀤🀥 Seasons (U+1F026..U+1F029)
🀦🀧🀨🀩 Reverse (U+1F02B)
🀫 Red Dragon Emoji (U+1F004)
🀄

The Mahjong Unicode block has a single emoji in it: the Mahjong Red Dragon (🀄). So why then does it look like text in our table instead of how emojis usually look?

This effect is achieved using a feature called Unicode variation selectors.

These codepoints are in the range U+FE00..U+FE0F. The variation selectors we're interested in today are U+FE0E and U+FE0F for “text-style” and “emoji-style” respectively.

The variation selector works by being placed after the character being modified. So the Mahjong Red Dragon in text-style would be "🀄\uFE0E" in Python. There's a giant list of codepoints that interact with the text and emoji variation characters, give them a look if you need this feature.

Thanks for reading! ♡ Did you find this article helpful and want more content like it? Get notified of new posts by subscribing to the RSS feed or the email newsletter.

This work is licensed under CC BY-SA 4.0

Categories: FLOSS Project Planets

An update on HDR and color management in KWin

Planet KDE - Sun, 2023-12-17 19:00

In my last post about HDR and color management I explained roughly how color management works, what we’re doing to make it work on Wayland and how far along we were with that in Plasma. That’s more than half a year ago now, so let’s take a look at what changed since then!

Color management with ICC profiles

KWin now supports ICC profiles: In display settings you can set one for each screen, and KWin will use that to adjust the colors accordingly.

Applications are still limited to sRGB for now. For Wayland native applications, a color management protocol is required to change that, so that apps can know about the colorspaces they can use, and so that KWin can know which colorspace their windows are actually using, and the upstream color management protocol for that is still not done yet. It’s getting close though! For example I have an implementation for it in a KWin branch, and Victoria Brekenfeld from System76 implemented a Vulkan layer using the protocol to allow applications to use the VK_EXT_swapchain_colorspace and VK_EXT_hdr_metadata Vulkan extensions, which can be used to run some applications and games with non-sRGB colorspaces.

Apps running through Xwayland are strictly limited to sRGB too, even if they have the ability to work with ICC profiles, as they have the same problem as Wayland native apps: Outside of manual overrides with application settings there’s now way to tell them to use a specific ICC profile or colorspace, and there’s also no way for KWin to know which profile or colorspace the application is using. Even if you set an ICC profile with an application setting, KWin still doesn’t know about that, so the colors will be wrong.1

It would be possible to introduce an “API” using X11 atoms to make at least the basic arbitrary primaries + sRGB EOTF case work though, so if any developers of apps that are still stuck with X11 for the foreseeable future would be interested in that, please contact me about it!

HDR

In Plasma 6 you can enable HDR in the display settings, which enables static HDR metadata signalling for the display, with the PQ EOTF and the display’s preferred brightness values, and sets the colorspace to rec.2020.

With that enabled, you get two additional settings:

  • “SDR Brightness” is, as the name suggests, the brightness KWin renders non-HDR stuff at, and effectively replaces the brightness setting that most displays disable when they’re in HDR mode
  • “SDR Color Intensity” is inspired by the color slider on the Steam Deck. For sRGB applications it scales the color gamut up to (at 100%) rec.2020, or more simply put, it makes the colors of non-HDR apps more intense, to counteract the bad gamut mapping many HDR displays do and make colors of SDR apps look more like when HDR is disabled

There’s some additional hidden settings to override bad brightness metadata from displays too. A GUI for that is still planned, but until that’s done you can use kscreen-doctor to override the brightness values your screen provides.

KWin now also uses gamma 2.2 instead of the sRGB piece-wise transfer function for sRGB applications, as that more closely matches what displays actually do in SDR mode. This means that in the dark regions of sRGB content things will now look like they do with HDR disabled, instead of things being a little bit brighter and looking kind of washed out.23


My last post ended at this point, with me saying that looking at boring sRGB apps in HDR mode would be all you could do for now… well, not anymore! While I already mentioned that Xwayland apps are restricted to sRGB, gamescope uses a Vulkan layer together with a custom Wayland protocol to bypass Xwayland almost entirely. This is how HDR is done on the Steam Deck OLED and it works well, so all that was still missing is a way for gamescope to pass the buffers and HDR metadata on to KWin.

To make that happen, Joshua Ashton from Valve and I put together a small Wayland protocol for doing HDR until the upstream protocol is done. I implemented it in KWin, forked Victoria’s Vulkan layer to make my own using that protocol and Joshua implemented HDR support for gamescope nested with the Vulkan extensions implemented by the layer.

The Plasma 6 beta is already shipping with that implementation in KWin, and with a few additional steps you can play most HDR capable games in the Wayland session:

  1. install the Vulkan layer
  2. install gamescope git master, or at least a version that’s new enough to have this commit
  3. run Steam with the following command: ENABLE_HDR_WSI=1 gamescope --hdr-enabled --hdr-debug-force-output --steam -- env ENABLE_GAMESCOPE_WSI=1 DXVK_HDR=1 DISABLE_HDR_WSI=1 steam

To explain a bit what that does, ENABLE_HDR_WSI=1 enables the Vulkan layer, which is off by default. gamscope --hdr-enabled --hdr-debug-force-output --steam runs gamescope with hdr force-enabled (automatically detecting and using HDR instead of that is planned) and with Steam integration, and env ENABLE_GAMESCOPE_WSI=1 DXVK_HDR=1 DISABLE_HDR_WSI=1 steam runs Steam with gamescope’s Vulkan layer enabled and mine disabled, so that they don’t conflict.

You can also adjust the brightness of sdr stuff in gamescope with the --hdr-sdr-content-nits flag; for a list of things you can do just check gamescope --help. The full command I’m using for my screen is

ENABLE_HDR_WSI=1 gamescope --fullscreen -w 5120 -h 1440 --hdr-enabled --hdr-debug-force-output --hdr-sdr-content-nits 600 --steam -- env ENABLE_GAMESCOPE_WSI=1 DXVK_HDR=1 DISABLE_HDR_WSI=1 steam -bigpicture

With that, Steam starts in a nested gamescope instance and games started in it have HDR working, as long as they use Proton 8 or newer. When this was initially implemented as a bunch of hacks at XDC this year there were issues with a few games, but right now, almost all the HDR capable games in my own Steam library work fine and look good in HDR. That includes

  • Ori and the Will of the Wisps
  • Cyberpunk 2077
  • God of War
  • Doom Eternal
  • Jedi: Fallen Order
  • Quake II RTX

Quake II RTX doesn’t even need gamescope! With ENABLE_HDR_WSI=1 SDL_VIDEODRIVER=wayland in the launch options for the game in Steam you can get a Linux- and Wayland-native game working with HDR, which is pretty cool.

I also have Spider-Man: Remastered and Spider-Man: Miles Morales, in both of which HDR also ‘works’, but it looks quite washed out vs. SDR. I found complaints about the same problem from Windows users online, so I assume the implementation in the games is just bad and there’s nothing wrong with the graphics stack around them.

(Sorry for showing SDR screenshots of HDR games, but HDR screenshots aren’t implemented yet, and it looks worse when I take a picture of the screen with my phone)


With the same Vulkan layer, you can also run other HDR-capable applications, like for example mpv:

ENABLE_HDR_WSI=1 mpv --vo=gpu-next --target-colorspace-hint --gpu-api=vulkan --gpu-context=waylandvk "path/to/video"

This time the video being played is actually HDR, without any hacks! And while my phone camera isn’t great at capturing HDR content in general, this is one of the cases where you can really see how HDR is actually better than SDR, especially on an OLED display:


The future

Obviously there is still a lot to do. Color management is limited to either sRGB or full-blown rec.2020, you shouldn’t have to install stuff from Github yourself, and certainly shouldn’t have to mess around with the command line4 to play games and watch videos in HDR, HDR screenshots and HDR screen recording aren’t a thing yet, and many other small and big things need implementing or fixing. There’s a lot of work needed to make these things just work™ as they should outside of special cases like the gamescope embedded session.

Things are moving fast though, and I’m pretty happy with the progress we made so far.




  1. Note that if you do want or need to set an ICC profile in the application for some reason, setting a sRGB profile as the display profile is wrong. It must have rec.709 primaries, but with the gamma 2.2 transfer function instead of the piece-wise sRGB one so often used! 

  2. This is the reason for footnote 1 

  3. As far as I know, Windows 11 still does this wrong! 

  4. I recommend setting up .desktop files to automate that away if you want to use HDR more often. Right click on the application launcher in Plasma -> Edit Applications makes that pretty easy 

Categories: FLOSS Project Planets

Dirk Eddelbuettel: littler 0.3.19 on CRAN: Several Updates

Planet Debian - Sun, 2023-12-17 17:33

The twentieth release of littler as a CRAN package landed a few minutes ago, following in the now seventeen year history (!!) as a package started by Jeff in 2006, and joined by me a few weeks later.

littler is the first command-line interface for R as it predates Rscript. It allows for piping as well for shebang scripting via #!, uses command-line arguments more consistently and still starts faster. It also always loaded the methods package which Rscript only began to do in recent years.

littler lives on Linux and Unix, has its difficulties on macOS due to yet-another-braindeadedness there (who ever thought case-insensitive filesystems as a default were a good idea?) and simply does not exist on Windows (yet – the build system could be extended – see RInside for an existence proof, and volunteers are welcome!). See the FAQ vignette on how to add it to your PATH. A few examples are highlighted at the Github repo:, as well as in the examples vignette.

This release contains a fair number of small changes and improvements to some of the example scripts is run daily.

The full change description follows.

Changes in littler version 0.3.19 (2023-12-17)
  • Changes in examples scripts

    • The help or usage text display for r2u.r, ttt.r, check.r has been improved, expanded or corrected, respectively

    • installDeps.r has a new argument for dependency selection

    • An initial 'single test file' runner tttf.r has been added

    • r2u.r has two new options for setting / varying the Debian build version of package that is built, and one for BioConductor builds, one for a 'dry run' build, and a new --compile option

    • installRSPM.r, installPPM.r, installP3M.r have been updates to reflect the name changes

    • installRub.r now understands 'package@universe' too

    • tt.r flips the default of the --effects switch

My CRANberries service provides a comparison to the previous release. Full details for the littler release are provided as usual at the ChangeLog page, and also on the package docs website. The code is available via the GitHub repo, from tarballs and now of course also from its CRAN page and via install.packages("littler"). Binary packages are available directly in Debian as well as (in a day or two) Ubuntu binaries at CRAN thanks to the tireless Michael Rutter.

Comments and suggestions are welcome at the GitHub repo.

If you like this or other open-source work I do, you can 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

James Bennett: Don't use class methods on Django models

Planet Python - Sun, 2023-12-17 13:13

This is part of a series of posts I’m doing as a sort of Python/Django Advent calendar, offering a small tip or piece of information each day from the first Sunday of Advent through Christmas Eve. See the first post for an introduction.

Being methodical about Python

Python classes support three basic types of methods:

  • Instance methods, which are what you get by default when writing a def statement inside a class body. These are …

Read full entry

Categories: FLOSS Project Planets

Kay Hayen: Nuitka Release 1.9

Planet Python - Sun, 2023-12-17 08:25

This is to inform you about the new stable release of Nuitka. It is the extremely compatible Python compiler, “download now”.

This release has had a focus on improved startup time and compatibility with lazy loaders which has resulted in some optimization. There are also the usual amounts of bug fixes. For macOS and Linux there are lots of improvements that should make standalone mode for them robust with many more configurations.

Bug Fixes
  • Nuitka Action: Fix, the parsing code intended for the github action was not working as advertised. Fixed in 1.8.1 already.

  • Standalone: Follow soundfile change for their DLL names. Fixed in 1.8.1 already.

  • MSYS: Fix, the recent change to detect their Python flavor with 3.11 was done wrong. Fixed in 1.8.1 already.

  • Windows: Ignore MS API DLLs found from %PATH%. We only ignored them because they come from the Windows system folder, but if any program has them, then we did include them. Fixed in 1.8.1 already.

  • Standalone: Fix, calendar is used by time built-in module actually and therefore must be included. Fixed in 1.8.1 already.

  • Standalone: Added data file for unstructured package. Fixed in 1.8.1 already.

  • Standalone: Added data file for grpc package. Fixed in 1.8.1 already.

  • Standalone: Added missing dependency for skimage. Fixed in 1.8.1 already.

  • Python3.11: The dictionary copy code could crash on special kinds of dictionaries. Fixed in 1.8.2 already.

  • Standalone: Added data file required by ens of web3 package. Fixed in 1.8.2 already.

  • Fix, multiprocessing could not access attributes living in __main__ module, but only things elsewhere, breaking minimal examples. Fixed in 1.8.2 already.

  • Reports: Fix, the license of some packages in case it is UNKNOWN was not handling all the cases that wheels expose. Fixed in 1.8.2 already.

  • Fix, using --include-module and --include-package was behaving identical for packages. Made the former not include all of the package, but only the top level and what that uses.

  • Standalone: Added support for the lightning package. Fixed in 1.8.3 already.

  • Distutils: Fix, the platform tag was sometimes incorrect for wheels built. Fixed in 1.8.3 already.

  • Compatibility: Make the PySide2/PySide6 signal connection workaround more robust. It was not handling reuse of the same method properly and insisted on changing __name__ which some objects apparently dislike a lot. Fixed in 1.8.4 already.

  • Windows: Fix, need to use short path for the Python installation prefix, as it might be unicode path as well. Fixed in 1.8.4 already.

  • Fix, output spec %NONE% was not compiling anymore. Fixed in 1.8.4 already.

  • Reports: Avoid having short paths for DLL sources on Windows. Fixed in 1.8.4 already.

  • Fix, catch provided metadata from command line --include-distribution-metadata without including the package at runtime. Fixed in 1.8.4 already.

  • Python3.10+: Fix, was not properly initializing indicator variable used in the match re-formulation. The generated code still work, but this was an error on the logical level to use a variable un-initialized. Fixed in 1.8.4 already.

  • Standalone: Added missing DLLs for rlottie-python. Fixed in 1.8.4 already.

  • Standalone: Added missing implicit dependencies and also avoid duplication of DLLs for the av package. Fixed in 1.8.4 already.

  • Fix, was not handling errors when creating distribution objects. Fixed in 1.8.4 already.

  • macOS: Remove extended attributes from DLLs, e.g. finder can add them and it prevents code signing. Fixed in 1.8.4 already.

  • macOS: Workaround for signing tkinter data files properly, we just exclude the problematic ones, as they are going to be unused. Fixed in 1.8.4 already.

  • Standalone: Added hidden dependency of curl_cffi package. Fixed in 1.8.5 already.

  • Standalone: Added hidden dependency of tensorflow package. Fixed in 1.8.5 already.

  • Standalone: Added more kivymd data files. Fixed in 1.8.5 already.

  • Standalone: Added implicit dependency for winloop package. Fixed in 1.8.6 already.

  • Windows: Fix, do not resolve main program executable filename to long filename. Fixed in 1.8.5 already.

  • Windows: Fix, ignore ucrtbase runtime DLLs found from %PATH% as well. Fixed in 1.8.6 already.

  • Compatibility: Fix, the dill-compat plugin was regressed and support for dill version 0.3 was added.

  • Fix, need to include package name for joblib usage with --python-flag=-m to work properly.

  • Windows: Added support for newest joblib too, we no longer need to error for using the latest one.

  • Fix, attribute lookups becoming hard through node factories didn’t annotate possible exceptions.

  • Standalone: Added support for huggingface_hub vendored lazy loader variant.

  • Standalone: Added support for datasets module.

  • Plugins: Handle default plugin of matplotlib a lot better. Be more graceful when the query of the default one fails, and point to MPLBACKEND usage. Otherwise inform the user of the backend used for matplotlib so it can be checked.

  • Fix, --include-module on a package was including all of it rather than just top level, which was what it should do. For including the full package, there is --include-package instead.

  • macOS: Fix, need to check dependencies for the selected target arch precisely, otherwise DLLs and extension modules for the other arch can cause errors for our dependency analysis in standalone mode.

    • Also added support for getting DLL exported symbols on macOS which then allows to properly distinguish extension modules from mere DLLs on macOS, and not just Linux.

  • MSYS2: Fix, the GTK DLL name changed again.

  • Compatibility: Added support for .zip files being in python path as well.

  • Fix, when a sub-package module import is rejected for whatever reason, the programs attempt to import it, still implies an attempt to import the parent module. For extension modules in accelerated mode, this is of course common, but the containing package if any, is of course still to be included.

  • Fix, PySide6 in accelerated mode needs workarounds too, previously only standalone mode was avoiding the corruptions it was causing.

  • Fix, make the PySide2/PySide6 signal connection workaround also fix disconnection only. For signals that only ever got disconnected, but never connected, the workaround was not applied.

  • MSYS2: For standalone add more GI dlls.

  • Fix, inline copies of e.g. tqdm could be detected during compilation and even in place of the real package.

  • Standalone: Added proper support for timm without disabling JIT generally.

  • Python3.11: Fix, frozen stdlib modules must be turned off

    Otherwise the value of os.__file__ becomes wrong, and maybe more issues, as Nuitka is more compatible to full modules than the frozen modules are for standalone mode at least.

  • Python2: Avoid RuntimeWarning when using inline copy of tqdm.

  • Standalone: Added support for newer pydantic and its lazy loader.

  • Standalone: Add config for font data files of qtawesome package.

  • Plugins: Added workaround for PySide6 enums checking bytecode when some older enum values are used. The PySide6 means to detect method calls vs. type lookups to decide if to inject the default value for a flag value. With our workaround, enums behave as expected without that check being possible.

  • Standalone: Added support for gradio package.

  • Python3.6+: Added support for non-latin (for example Chinese) module names, these were not working correctly yet.

  • Python3: Fix, star importing from modules with non-UTF8 encodable names in the module dictionary crashed.

  • Python2: Fix, couldn’t list directories with unicode filenames in them, so that e.g. a Python3 created build directory with unicode module names was not possible to fully delete.

  • Compatibility: Added missing as_posix method to our resource reader objects.

  • Standalone: Added missing DLLs for PyAutoIt package.

  • Standalone: Added data files for the flask_restx package, for which --include-package-data also wouldn’t work, due to its strange handling when running in frozen mode.

  • Standalone: Added more metadata requirements for transformers package.

  • Standalone: Added support for newer transformers package.

  • Standalone: Added data files for yapf vendored lib2to3 package.

  • Plugins: Fix, was crashing on module patterns of submodules not existing in the yaml config implicit dependencies.

New Features
  • Plugins: Introduce an explicit hard import registry, that now can be expanded at compile time by plugins.

  • Plugins: Added support for lazy delayed loading, which removes the need for include-pyi-file as we inline its effect at compile time. Also, the dependencies of these kinds of packages no longer need to be overreaching and can analyze the code again. This is using the hard import registry plugin interface.

  • Linux: Standalone builds with PyPI packages no longer include system DLLs unless a new Yaml configuration for DLLs called package-system-dlls is configured, which will be necessary for GTK bindings probably. With this the included DLLs will more often be only ones suitable for use on other OSes. This should make Linux standalone somewhat easier, but still need to compile on old OS.

  • Reports: For distributions include the installer name, so we can tell pip, conda or system packages apart better.

  • Reports: For included modules, we now also attribute the distributions it directly uses modules from and the distribution the module itself belongs to was added as an attribute as well.

  • Reports: Added excluded module reasons to reporting, so that it can be told directly, which imports were found, but not followed to. Also added report reader capable of providing information from a compilation report.

  • Added support for FIPS compliance, a US security standard by NIST, that caused parts of Python used by Nuitka to be flagged.

  • Watch: Added option to control the update mode, handles now rc versions, so it can be used before and after Nuitka releases easily.

  • Watch: Added timeout for how long programs are allow to run.

  • Watch: Added ability to recognize fork loops happening, so test cases of e.g. joblib do not suddenly go wild on a break change in that or other packages.

  • macOS: The --list-package-dlls now needs to check target arch options, so we now delay the non-compiling options execution until it’s set, which also makes it cleaner code. Also, we can now distinguish real Python extension modules from mere DLLs on macOS too.

  • Standalone: Also ignore av and cv2 DLL collisions, making it more generic.

  • Standalone: Make tk-inter plugin more robust. Detect the tkinter version used and scan for its paths. Use path used when compiling tcl from source and check data directory paths for tcl and tk for expected files, and error out if they are not found. With these changes self-compiled Python as e.g. used in our commercial Linux container is supported too now.

  • Enhanced support for self compiled Python by using link libraries needed for static linked extension modules. This allows a better commercial Linux container build mainly.

Optimization
  • Optimization: Enhanced handling of aliased variables.

    Was not converting variable assignments from variables created during re-formulations to the dedicated nodes, potentially missing out on optimizations specific to that case, because it was then not recognized to be non-generic anymore later.

    Was not optimizing comparisons and truth checks for temporary variable references, missing out a lot of opportunities for optimization of code coming from re-formulations.

    When a variable is aliased, but the source variable is one that cannot escape or is even very hard value, we were not annotating that as well as possible, but now e.g. comparisons with constant values that are immutable are done even if aliased.

    Remove knowledge of variables assigned to other variables only if that value can actually escape, otherwise that has no real point.

  • Use variable length encoding for data blob size values. This removes size constraints in some cases, but also makes the representation of list, tuple, dict more compact, since they commonly have only a few elements, but we used 4 bytes for length, where the average should be close to one 1 byte per length item now.

  • Faster CRC32 with zlib, leading to much faster program startup, and faster checksums for cached mode of onefile, improving that a lot as well.

  • Windows: Updated MinGW64 to latest winlibs package, should produce even faster code and show stopping bugs in its binutils have apparently been fixed. This should now link a lot faster with LTO, due to using multiple processes.

  • Added support for builtins.open as hard import to open.

  • Scalability: Make sure we actually use __slots__ for our classes. Variables, code generation context, iteration handles, and type shapes didn’t really use those and that should speed their use up and therefore reduce Python compile time and memory usage.

  • Standalone: Removed one more automatic stdlib module textwrap as it otherwise uses a runner code with test code that is bloating with hello world code.

  • Fedora: Enabled LTO linking by default as well, it’s working, but Fedora Python is still not really good to use, since it doesn’t allow static linking of libpython.

  • Anti-Bloat: Avoid pytest usage in pooch package. Added in 1.8.1 already.

  • Anti-Bloat: Remove pdb usage from pyparsing package. Added in 1.8.2 already.

  • Anti-Bloat: Remove unittest usage in bitarray. module. Added in 1.8.2 already.

  • Anti-Bloat: Avoid lightning to cause use of its lightning.testing framework.

  • Anti-Bloat: Added override that that torch but only it can use unittest, it will not work otherwise.

  • Anti-Bloat: Avoid using IPython in gradio package.

  • Anti-Bloat: Avoid using IPython in altair package.

  • Anti-Bloat: Avoid using numba in pyqtgraph package.

  • Anti-Bloat: Avoid using triton in torch package.

  • Anti-Bloat: Avoid using unittest in multiprocess package.

  • Anti-Bloat: Avoid using setuptools with new mmcv package as well.

  • Anti-Bloat: Avoid URLs in numpy messages.

  • Code Generation: Dedicated helper function for fixed imports, that uses less C code for standard imports.

  • Standalone: Avoid including libz on Linux.

  • Quality: Use latest isort and rstchk versions.

Organisational
  • Python3.12: Mark as unsupported for now, it does not yet compile on the C level again.

  • User Manual: Added description of deployment mode, this was not documented so far, but for some programs, dealing with them is now required.

  • User Manual: Improved --include-plugin-directory documentation to make it more clear what it is usable for and what not.

  • UI: Reject standard library paths for plugin directories given to --include-plugin-directory which is a frequent user error.

  • UI: When interrupting during Scons build with CTRL-C do not give a Nuitka call stack, there is no point in that one, rather just exit with a message saying the user interrupted the scons build.

  • UI: Make package data output from --list-package-data more understandable.

    We already had a count for DLLs too, and should not list directory name in case it’s empty and has no data files, otherwise this can confuse people.

  • UI: Make the progress bar react to terminal resizes. This avoids many of the distortions seen in Visual Code that seems to do it a lot.

  • UI: Added a mnemonic warning for macOS architecture cross compilation, that it will only work as well as Python does when limited to that arch. Read more on the info page for detailed information. Added in 1.8.4 already.

  • UI: Error exit for wrong/non-existent input files first. Otherwise e.g. complaints about not including anything can be given where project options were intended to solve that.

  • UI: Enhanced error message in case of not included imageio plugins. Added in 1.8.4 already.

  • UI: Enhanced messages from options nanny, showing the condition that was not passed.

  • UI: Improved download experience. When hitting CTRL-C during a download, delete the incomplete file immediately, otherwise it’s causing an error next run. Also added progress for downloads as well, so they do not sit there silent without a way to know how much is remaining.

  • UI: Also report errors happening during plugin init nicely.

  • Visual Code: Added ignore paths code spell checking. This only adds the most obvious things, more to come later.

  • Visual Code: Use environment for C include path configurations, and add one for use on macOS, this cleaned up a lot of inconsistencies in paths for the various existing platforms.

  • Debugging: Added experimental switch to disable free lists, so memory corruption issues can become easier to debug.

  • UI: Output clang and gcc versions in --version output as well.

  • UI: Add hint how to disable the warning message that asks to disable the console during debugging by explicit --enable-console usage.

  • UI: Do not consider aliases of options for ambiguous option error. Without this --no-progressbar and --no-progress-bar being both accepted, forced long version of options for no good reason.

  • Debugging: With --debug output failed query command that a plugin made. In this way it is easier to check what is wrong about it for the user already.

  • UI: Check if metadata included has the actual distribution package included. Otherwise we error out, as this would result in a RuntimeError when the program is attempting to use it.

  • UI: Harmonized help text quoting. We will also need that in order to generate the help texts for Nuitka-Action in the future. Currently this is not perfect yet.

  • Debugging: Added trace that allows us to see how long Py_Exit call takes, which might be a while in some cases.

  • User Manual: Made the Nuitka requirements top level chapter.

  • User Manual: Added promise to support newer Python versions as soon as possible.

  • User Manual: Added section about how Linux standalone is hard and needs special care.

  • Python3.11: Disallow to switch to g++ for too old gcc, with this Python version we have to use C11.

  • Quality: Remove inconsistencies with C python hex version literals in auto-format, which will also make searching code easier.

  • UI: More clear error message for asking package data of a module name that is not a package.

Cleanups
  • Dedicated node for fixed and built-in imports were added, which allow the general import node to be cleaner code.

  • Scons: Removed remaining win_target mode, this is long obsolete.

  • Spelling improvements by newer codespell, and generally, partially ported to 1.8.4 already so the Actions pass again.

  • Plugins: Move python code of dill-compat run time hook to separate file.

Tests
  • Run the distutils tests on macOS as well, so it’s made sure wheel creation is working there too, which it was though.

  • Avoid relative URLs in use during pyproject.toml tests, these fail to work on macOS at least.

  • Add GI GTK/GDK/Cairo standalone test for use with MSYS2. Eventually this should be run inside Nuitka-Watch against MSYS2 on a regular basis, but it doesn’t support this Python flavor yet.

  • Added test case with Chinese module names and identifiers that exposed issues.

  • Completed the PGO test case and actually verify it does what we want.

  • Added standalone test for setuptools. Since our anti-bloat works makes it not compiled with most packages, when it is, make sure it doesn’t expose Nuitka to some sort of issue by explicitly covering it.

  • Show tracebacks made in report creations on GitHub Actions and during RPM builds.

Summary

This is again massive in terms of new features supported. The lazy loader support is very important as it allows to handle more packages in better ways than just including everything.

The new added optimization are nice, esp. startup time will make a huge difference for many people, but mainly the focus was on supporting packages properly, and getting Nuitka-Watch to be able to detect breaking of packages from PyPI closer to when it happens.

And then of course, there is a tremendous amount of improvements for the UI, with lots features become even more rounded.

For Python 3.12 work has begun, but there is more to do for it. At this time it’s not clear how long it takes to add it. Stay tuned.

Categories: FLOSS Project Planets

LostCarPark Drupal Blog: Drupal Advent Calendar day 17 - Help Topics

Planet Drupal - Sun, 2023-12-17 02:00
Drupal Advent Calendar day 17 - Help Topics james Sun, 12/17/2023 - 07:00

Welcome back to day 17 of the Drupal Advent Calendar, where Amber Matz (amber-himes-matz) joins us to talk about the new Help Topics module that is part of Drupal Core in the new 10.2 version just released!

What’s up with Help Topics?

I’ve been working on the Help Topics module since Drupal 8 days, when we got it in as a core experimental module. It’s been a long and winding road, and throughout this journey, I’ve been mentored as a module maintainer and experienced both the fun and not-so-fun parts of contributing to Drupal. We’ve worked over many years to get Help Topics to “stable” and we are...

Tags
Categories: FLOSS Project Planets

Thomas Lange: Adding a writeable data partition to an ISO image

Planet Debian - Sat, 2023-12-16 16:24

Some years ago a customer needed a live ISO containing a customized FAI environment (not for installing but for extended hardware stress tests), but on an USB stick with the possibility to store the logs of the tests on the USB stick. But an ISO file system (iso9660) remains read-only, even when put onto an USB stick. I had the idea to add another partition onto the USB stick after the ISO was written to it (using cp or dd). You can use fdisk with an ISO file, add a new partition, loop mount the ISO and format this partition. That's all. This worked perfect for my customer.

I forgot this idea for a while but a few weeks ago I remembered it. What could be possible when my FAI (Fully Automatic Installation) image would also provide such a partition? Which things could be provided on this partition?

Could I provide a FAI ISO and my users would be able to easily put their own .deb package onto it without remastering the ISO or building an ISO on their own?

Now here's the shell script, that extends an ISO or an USB stick with an ext4 or exFAT partition and set the file system label to MY-DATA.

https://github.com/faiproject/fai/blob/master/bin/mk-data-partition

Examples how to use mk-data-partition Add a data partition of size 1G to the Debian installer ISO using an ext4 partition # mk-data-partition -s 1G debian-12.2.0-amd64-netinst.iso Create the data partition using an exFAT file system on USB named /dev/sdb. First copy (or dd) the ISO onto the USB stick. Then add the data partition to the USB stick. # cp faicd64-large_6.0.3.iso /dev/sdb # mk-data-partition -F /dev/sdb Create the data partition and copy directories A and B to it # mk-data-partition -c debian-12.2.0-amd64-netinst.iso A B

The next FAI version will use this in different parts of an installation. A blog post about this will follow.

A new idea for our Debian installer ISO

Here are my ideas how the Debian installer could use such a partition if it automatically detects and mounts it (by it's file system label):

  • Look for a preseed file and use this (without explicitly specifying it via boot parameters)
  • User could provide its own set of packages that the installer will install
  • d-i could show a menu (like tasksel) and the user can select packages from the data partition
  • Save installation logs onto this partition
  • Provide a postinst script, that is run during the first boot of the newly installed system

The advantage of this approach is that there's no need for the user to remaster the official Debian installer ISO, which is not easy for end users. We only have to extend the installer to use files from this data partition in some portions of the installation. Additional udebs, packages or firmware could automatically be used by the installer. Companies could easily create an OEM installer of Debian.

What do you think about this idea? Please send feedback to lange@debian.org

Categories: FLOSS Project Planets

James Bennett: Say what you mean in a regex

Planet Python - Sat, 2023-12-16 15:55

This is part of a series of posts I’m doing as a sort of Python/Django Advent calendar, offering a small tip or piece of information each day from the first Sunday of Advent through Christmas Eve. See the first post for an introduction.

An URL-y warning

Suppose you’re writing a blog in Django, and you get to the point where you’re setting up the URLs for the entries. Django has two ways to write …

Read full entry

Categories: FLOSS Project Planets

KDE Android apps porting update

Planet KDE - Sat, 2023-12-16 05:30

Following the recent posts on porting KDE Android applications to KF6, CI/CD changes for APKs and changes to packaging of KDE Android apps here’s an update on where we are meanwhile with switching KDE’s Android apps to KF6.

Infrastructure improvements Style plugin packaging fixes

There have been two crucial fixes which finally give us generally starting and visually correct apps:

  • Fixed loading of the Kirigami QML plugin (MR 1394).
  • Fixed bundling of the Breeze Qt Quick Controls style with androiddeployqt (MR 1395 and MR 84).
KTrip with Breeze style and working translations. APK optimizations

The Qt 6 based APKs tend to be noticeably larger than what we used to have with Qt 5. There’s multiple reasons for that:

  • Depending on Qt5Compat graphical effects costs about 4 MB storage / 1.5 MB download size due to its runtime dependency on the shader compilation pipeline. A handful of remaining uses have been removed from Kirigami meanwhile, with MR 1407 being the last one.
  • Remaining uses of the Qt.labs.platform module pull in QtWidgets as a dependency. For Qt 5 we used to have a patch to avoid that, for Qt 6 we need to find every single use and port away from that. That’s another 6.5 MB storage / 2.5 MB download size.
  • We used to have a much more minimal Craft default configuration for Qt 5. This has changed as more apps ended up needing a more diverse set of dependencies (such as the full ffmpeg stack for Tokodon, or support for signed PDFs in Okular), as well as Craft itself having become a more widely used part of our infrastructure on all platforms. Work on enabling application-specific minimized builds of particular heavy dependencies is ongoing (e.g. MR 740 or MR 743).

The above mentioned numbers might seem small on their own, but that’s to be seen against typically 20-30Mb APKs and are for things that are largely unused, ie. this is an easy 10-20% gain which doesn’t just affect every user but also our build and distribution infrastructure.

Permission checks

On Android applications need to explicitly request permissions for accessing certain components or information, such as the camera or the current location. That’s neither new nor related to the transition to Qt 6, but re-testing on a fresh installation on the latest Android version has exposed a few places where we missed these runtime permission requests.

Qt 6 has new API for doing this, but with Qt 6.5 that is still somewhat cumbersome to use as it’s only available on platforms with a permission system. While you can ifdef that in C++ it’s very inconvenient in QML, either way not good for easy and maintainable code (see e.g. the use in KWeatherCore).

With Qt 6.6 this significantly improved as the permission API is now available unconditionally on all platforms and just always reports “permission already granted” on platforms without a permission system, resulting in much simpler code (see e.g. the use in Qrca).

Qrca requesting camera permissions. Video processing

An issue that turned out to be particularly challenging has been a crash in KF’s barcode scanner when used after an application had been suspended at any point in time previously. Suspending applications happens on Android when an app is no longer in the foreground, so this is a very common scenario, and we have at least 4 apps with integrated barcode scanning.

Meanwhile we have at least identified the underlying cause in Qt Multimedia code, where some RHI state invalidated by suspension isn’t properly restored/reset after resuming. A crude patch for addressing that is meanwhile in review, whether that turns out to be the right way to fix this remains to be seen.

Dark mode support

Something we have been missing so far and that became easier to implement with Qt 6 is automatic support for the dark UI mode. While we have the style for this, we lacked the detection and automatic switching logic on Android so far, which has changed now:

There’s still one missing piece before we can enable this unconditionally though, we lack support for icon re-coloring on Android, or alternatively for bundling Breeze Dark icons.

Alligator with Breeze Dark color scheme but hardly visible icons. Emoji glyph rendering

A rather severe issue for apps like NeoChat or Tokodon was the lack of emoji glyph rendering in Qt 6 apps. This was a result of using fewer bundled dependencies of Qt but building those libraries ourselves instead, and thus ending up with a Freetype build that lacked support for PNG glyphs.

Once identified this was a matter of changing a few settings in Craft, and a minor patch to libpng’s pkgconfig file.

KTrip backend selection page with emoji flags. Application status Working

For some applications we meanwhile have a continuous F-Droid publishing in the nightly repository enabled again, using “works at least as well as the previous Qt 5 nightly build” as decision criteria:

In progress

There’s a few apps that have generally working Qt 6 APKs in general but are blocked on specific issues:

  • Alligator fails to add and fetch feeds.
  • Qrca and Vakzination are both blocked on the above mentioned video processing issue.
  • NeoChat still shows visual glitches in avatar textures and is also affected by the barcode scanner crash.
No Qt 6 APK builds yet

The third group are apps in various stages of porting to Qt 6 and with no port of their APK builds yet:

Itinerary

Personally my goal here is of course to get Itinerary working with Qt 6 in time for the 24.02 release, without disrupting users of the nightly build F-Droid repository. That’s why my focus has been on apps containing or using building blocks relevant for Itinerary (such as all of the above mentioned infrastructure issues).

With all of that in place the actual port of Itinerary is then hopefully not such a big deal anymore, in particular with the nasty barcode scanning crash fixed.

How you can help

You can help with porting and polishing the apps still needing work! Here’s the checklist I tend to follow for that:

  • The application is fully ported to Qt 6 and works on Linux with QT_QUICK_CONTROLS_MOBILE=1 and QT_QUICK_CONTROLS_STLYE set to org.kde.breeze or Material respectively.
  • There is a passing Android CI job.
  • The APK packaging has been ported as described here.
  • There is a CI job building the APK, as described here.
  • The APK does actually start on a phone or inside the emulator. With all the above mentioned work this is rarely a problem anymore, but can still happen due to a missing dependency for example.
  • There is an application-specific Craft exclusion list as described here.
  • Check if all icons show up as they do on desktop. Bundling icons is a rather error prone aspect of APK packaging.
  • If the app uses anything requiring special permissions (camera, location, notifications, etc) check whether those are properly requested. This benefits from testing on a very recent Android version.
  • Check if continuous publishing to the nightly F-Droid repository is enabled here.

If you want to help and/or have questions, feel free to join us in the KDE Android Matrix channel.

Categories: FLOSS Project Planets

LostCarPark Drupal Blog: Drupal Advent Calendar day 16 - Cookie Consent

Planet Drupal - Sat, 2023-12-16 02:00
Drupal Advent Calendar day 16 - Cookie Consent james Sat, 12/16/2023 - 07:00

It's day 16, and time to open another door of the Drupal Advent Calendar. Today we are joined by João Limas (jolimas) to talk about cookies.

What are cookies, and why do we need them?

Cookies are small pieces of data stored on a user's device by a web browser while the user is browsing a website. The web server sends these pieces of data to the browser and then sends them back unchanged by the browser each time it accesses that server.

Cookies serve various purposes and play a crucial role in enhancing the user experience on the web. They are used to remember your preferences, such as your...

Tags
Categories: FLOSS Project Planets

This week in KDE: un-flashy important stability work

Planet KDE - Sat, 2023-12-16 00:51

Everyone kept hammering on the bugs this week. As a result, the number of open Plasma 6 issues decreased, and so did the number of older high and very high priority Plasma issues! I’m feeling really good about this release. Daily driving it is already a pleasure. I think it might be a winner.

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: 199

UI improvements

The “Advanced Power Settings” page in System settings has now been folded up into a sub-page of the “Energy Settings” page (Jakob Petsovits, link):

Made a variety of improvements to the way device batteries are shown on Info Center’s “Energy” page: more device types are now identified correctly, and their device models are now shown so you can more easily distinguish batteries from different devices of the same type (Shubham Arora, link 1, link 2, link 3, link 4)

When you try to connect to a Wi-Fi network but enter the wrong password, you’re now informed of this immediately instead of having to wait a while to learn why it didn’t connect successfully (David Redondo, link)

The Breeze-themed Telegram icon has been updated to better match Telegram’s own branding (Onur Ankut, link):

The Breeze cursor theme now includes more pre-generated sizes, making its cursors look better at various scale factors and in more apps and toolkits that don’t yet conform to the cursor-shape-v1 Wayland protocol (Jin Liu, link)

Ark’s integrated viewer window now remembers its window size the next time you open it (Ilya Pominov, link)

In Spectacle’s Rectangular Region mode, you can now hold down the Shift key to see the magnifier while moving the box using arrow keys (Noah Davis, link)

Bug fixes

Important note: I don’t mention fixes for bugs that were never released to users; it’s just too much for me (it would probably be too much for you to read as well), and most people never encountered them in the first place. Because we’re in the middle of a big Plasma dev cycle, there are a lot of these bugs! So big thanks to everyone who’s made it a priority to fix them!

KWin can no longer crash when told by an app to open window with an invalid size (Xaver Hugl, link)

Editing an app’s .desktop file in such a manner that the file’s Exec= value ends up containing an equals sign no longer causes the properties dialog to crash the next time you use it to edit the same file (Harald Sitter, link)

Fixed a common random Plasma crash (David Redondo, link)

You can no longer crash KMenuEdit by creating a new entry, immediately deleting it, and then clicking “Save” (Harald Sitter, link)

In the Plasma Wayland session, the power and session actions once again work after KWin has crashed (David Edmundson, link)

Fixed several visual glitches related to missing pixels when using multiple screens with any of them having a fractional scale factor (Yifan Zhu, link 1 and link 2)

When using Dolphin’s Details mode to view a folder tree, expanding a folder no longer orders the items incorrectly when the parent view was sorted by size (Akseli Lahtinen, link)

Changes to the cursor size now take effect in Plasma immediately, without needing to restart plasmashell (Vlad Zahorodnii and others, link)

Using the “Cut” command on files and folders in Dolphin once again causes them to become visually desaturated (Jin Liu, link)

GTK4 apps now use the current KWin-provided window closing animation, instead of just disappearing immediately (Vlad Zahorodnii, link)

When using Elisa in mobile mode, its playlist sidebar can once again be closed (Kevin Kofler, link)

The Plasma-themed spinbox UI element now works properly with a wider variety of 3rd-party styling–hopefully all of them! (Marco Martin, link)

Other bug information of note:

Performance & Technical

The Overview effect is now much faster to launch and has smoother animations; this work is now largely done and it represents a major improvement! (Vlad Zahorodnii, Marco Martin, and Arjen Hiemstra, link 1 and link 2)

…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 now at 91% of our goal of 500 new KDE e.V. members! That’s really close to 95%, which is close to 100%! So 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

Beginning of Season of KDE 2024!

Planet KDE - Fri, 2023-12-15 19:00
Beginning of SoK 2024!

New year, new Season!

This year, we are trying out a new way to handle the program. No more season.kde.org, everything is on invent.kde.org.

For mentors

Send a request to kde-soc-management@kde.org to be added to the group of mentors watch the project so you get notified when contributors create their proposals.

We will create a side issue which lets you select the projects you want to mentor and the ones you reject.

Note that you should not write in the comments whether the projects have been accepted or rejected until the admins publish the results.

For proposals

Create a new issue in our repository using the template sok_proposal. Add your proposal and tell the potential mentors about your idea. The issue will be confidential, meaning only you and the mentors will have access. The template will automatically add the labels for the program. You must not modify them.

If your project is accepted, it will become public, so don't enter any confidential personal information here.

If it already exists, select a label corresponding to your project. It will make filtering easier. If it the label does not exist, ping someone in the kde-soc channel, and an admin will add it when they can.

Selection

The issues will be labelled as accepted or rejected. Accepted projects will become visible.

Progress

Then, until the end of event, you will work on your chosen task, helped along by your mentors. At the end of the task, the projects will be labelled completed or not completed depending on their status.

KDE expects you to write and publish at least two blog posts. If you don't have a blog, create a pull request in this repository to create a blog post and we will post it on this website. One post needs to be written during the project to explain your progress.

Then, KDE encourages yout to post a shared blog post along with all the other participants at the end of SoK to sum up what has been done. This post will be published on this website.

The admins will then contact the participants that completed their projects to get information on where to send your KDE goodies.

Categories: FLOSS Project Planets

Test and Code: 211: Stamp out test dependencies with pytest plugins

Planet Python - Fri, 2023-12-15 18:17

We want to be able to run tests in a suite, and debug them in isolation, and have the behavior be the same.  
If the behavior is different in isolation vs in a suite, it's a nightmare to debug. 

In this episode, we'll talk about:

  • Causes of dependence
  • Testing for dependencies using plugins
  • Debugging test dependencies

Plugins discussed:

  • pytest-randomly
  • pytest-reverse
  • pytest-random-order



Sponsored by PyCharm Pro

The Complete pytest Course

  • For the fastest way to learn pytest, go to courses.pythontest.com
  • Whether your new to testing or pytest, or just want to maximize your efficiency and effectiveness when testing.


<p>We want to be able to run tests in a suite, and debug them in isolation, and have the behavior be the same.  <br>If the behavior is different in isolation vs in a suite, it's a nightmare to debug. </p><p>In this episode, we'll talk about:</p><ul> <li>Causes of dependence</li> <li>Testing for dependencies using plugins</li> <li>Debugging test dependencies</li> </ul><p>Plugins discussed:</p><ul> <li>pytest-randomly</li> <li>pytest-reverse</li> <li>pytest-random-order</li> </ul><p><br></p> <br><p><strong>Sponsored by PyCharm Pro</strong></p><ul> <li>Use code PYTEST for 20% off PyCharm Professional at <a href="https://www.jetbrains.com/pycharm/">jetbrains.com/pycharm</a> </li> <li>First 10 to sign up this month get a free month of AI Assistant</li> <li>See how easy it is to run pytest from PyCharm at <a href="https://pythontest.com/pycharm/">pythontest.com/pycharm</a> </li> </ul><p><strong>The Complete pytest Course</strong></p><ul> <li>For the fastest way to learn pytest, go to <a href="https://courses.pythontest.com/p/complete-pytest-course">courses.pythontest.com</a> </li> <li>Whether your new to testing or pytest, or just want to maximize your efficiency and effectiveness when testing.</li> </ul><p><br></p>
Categories: FLOSS Project Planets

GNUnet News: Update for NGI Zero Entrust: GNS to DNS Migration and Zone Management

GNU Planet! - Fri, 2023-12-15 18:00
Update for NGI Zero Entrust: GNS to DNS Migration and Zone Management

We are happy to announce that we have successfully completed two Milestones:

  • Milestone 2a: A GNS Registrar Backend.
  • Milestone 2b: A GNS Registrar Frontend.

The resulting code can be found in the usual place . There are no tarballs available for the time being. The component is built with simplicity and privacy in mind: There are no accounts required; we also refrained from using JavaScript for the front end (for now). This component effectively replaces the "first-come, first-served" GNS name registration service previously shipped as part of GNUnet. Hence the service at https://fcfs.gnunet.org has been replaced. The registrar integrates with GNU Taler , allowing you to test both functionalities at the same time! Don't worry, you do not have to use actual money, as you can use the demo currency from the Taler demonstrator to register names for a relatively small portion of the play money you receive when you sign up there.

We encourage you to try it out now and register you own zone key. We plan to ship this zone in the default configuration of the upcoming GNUnet 0.21 release under the domain ".pin.gns.alt". Note that current releases are incompatible with GNUnet, and this also applies to the node connected to our registrar deployment.

Watch this space and the mailing list for updates!

This work is generously funded by NLnet as part of their NGI Zero Entrust Programme .

Categories: FLOSS Project Planets

KDE: Snaps, KDEneon, Debian and my future.

Planet KDE - Fri, 2023-12-15 16:33

First I want to thank KDE for this wonderful write up on LinkedIn. https://www.linkedin.com/posts/kde_akademy-2023-over-a-million-reasons-why-activity-7139965489153208320-PNem?utm_source=share&utm_medium=member_desktop It made my heart explode with happiness as I prepped for my interview on Monday. I didn’t get the job ( Just the usual “we were very impressed with your experience, but we went with another candidate” ). I think the cosmos is determined for me to hold out for the ‘project’ even though it is only part time work, it is work and if I have learned nothing else this year, I have learned how to live on a very tight budget! It turns out many of the things we think we need, we don’t. So with hard work of Kevin Ottens ( Thank you!!!! ), this should be finalized after the first of the year. This plan also allows me time for KDEneon and Debian work. I am happy with it and look forward to the coming year and the exciting things to come.

My holiday plans are to help the Debian KDE team with the KF6 packaging, On-going KDEneon efforts, and continue to make sure the snaps Qt6 transition is a painless as possible. I will also be working on the qt6 kde-neon extension.

In closing, despite my terrible luck with job-hunting, I am in an amazing community and I am truly grateful to each and every one of you. It has been a great year and I have added many new things to my skillset and I look forward to many more next year.

As usual, it is that time of month where I have not raised enough to pay my internet bill ( phone company taking an extra 200.00 didn’t help ) If you can spare any change ( any amount helps! ) please consider a donation https://gofund.me/b74e4c6f Thank you!

I hope everyone has a wonderful <insert your holiday here> !!!!!

~ Scarlett

Categories: FLOSS Project Planets

Scarlett Gately Moore: KDE: Snaps, KDEneon, Debian and my future.

Planet Debian - Fri, 2023-12-15 16:33

First I want to thank KDE for this wonderful write up on LinkedIn. https://www.linkedin.com/posts/kde_akademy-2023-over-a-million-reasons-why-activity-7139965489153208320-PNem?utm_source=share&utm_medium=member_desktop It made my heart explode with happiness as I prepped for my interview on Monday. I didn’t get the job ( Just the usual “we were very impressed with your experience, but we went with another candidate” ). I think the cosmos is determined for me to hold out for the ‘project’ even though it is only part time work, it is work and if I have learned nothing else this year, I have learned how to live on a very tight budget! It turns out many of the things we think we need, we don’t. So with hard work of Kevin Ottens ( Thank you!!!! ), this should be finalized after the first of the year. This plan also allows me time for KDEneon and Debian work. I am happy with it and look forward to the coming year and the exciting things to come.

My holiday plans are to help the Debian KDE team with the KF6 packaging, On-going KDEneon efforts, and continue to make sure the snaps Qt6 transition is a painless as possible. I will also be working on the qt6 kde-neon extension.

In closing, despite my terrible luck with job-hunting, I am in an amazing community and I am truly grateful to each and every one of you. It has been a great year and I have added many new things to my skillset and I look forward to many more next year.

As usual, it is that time of month where I have not raised enough to pay my internet bill ( phone company taking an extra 200.00 didn’t help ) If you can spare any change ( any amount helps! ) please consider a donation https://gofund.me/b74e4c6f Thank you!

I hope everyone has a wonderful <insert your holiday here> !!!!!

~ Scarlett

Categories: FLOSS Project Planets

ImageX: Accessibility Elements, Part 1: Alt Text in Drupal — Mission, Settings, New Developments

Planet Drupal - Fri, 2023-12-15 16:10

Authored by: Nadiia Nykolaichuk

We firmly believe that website accessibility is of utmost importance. Which is why we are kicking off a series of articles dedicated to the elements it cannot exist without. Of course, accessibility embraces a myriad of aspects, but we decided to choose some of the most essential ones and dig a little deeper into how each of them works. 

Categories: FLOSS Project Planets

Pages