FLOSS Project Planets

Bounteous.com: The Evolution of Drupal: Discover the Features D7 Users Are Missing Out On

Planet Drupal - Fri, 2024-02-16 03:34
Organizations still using Drupal 7 are missing out on the flexibility, customization options, scalability, and marketing capabilities available in the newer versions. Drupal 10 allows for the management of consistent and engaging digital experiences across various channels, enhances search engine optimization, and enables web teams to deliver content more efficiently.
Categories: FLOSS Project Planets

Web Review, Week 2024-07

Planet KDE - Fri, 2024-02-16 02:38

Let’s go for my web review for the week 2024-07.

Non-code contributions are the secret to open source success · GitHub

Tags: tech, foss, community

Good reminder that contributions are not only about code. Documentation, support, release management and so on are very important as well and too often underrated.


Extending our Mastodon social media trial - BBC R&D

Tags: tech, bbc, social-media, fediverse

Looks like the BBC likes the fediverse experiment so far. Engagement is even better than on Twitter at times. Let’s hope they keep expanding.


European Court of Human Rights bans weakening of secure end-to-endencryption

Tags: tech, politics

Excellent news, let’s hope this thwarts the commission plans as expected.


Estimating the environmental impact of Generative-AI services using an LCA-based methodology

Tags: tech, ecology, energy, ai, machine-learning, gpt

Interesting paper evaluating a Life Cycle Assessment (LCA) method to estimate the power consumption and environmental impact of generative AI services. This is illustrated on a single service, hopefully we’ll see more such assessments.


Short history of all Windows UI frameworks and libraries

Tags: tech, windows, gui

Confused about which UI frameworks are used in Windows? Here is the list in chronological order.


The Stupidity Manifesto

Tags: culture, empathy

Definitely this, it’s better when you don’t make people feel stupid.


RSS is still pretty great

Tags: tech, rss, blog

Good explanation of what RSS is, where its weaknesses and strengths are.


Too dangerous for C++

Tags: tech, rust, c++, type-systems, multithreading

It’s hard to argue that the Rust type system isn’t superior to the C++ type system… it’s definitely nice how it actively prevents data races at compile time.


The History of Python: Why Python’s Integer Division Floors

Tags: tech, python, mathematics, floats

Some reasons why Python and C behave differently on this matter. It’s a source of mistakes.



Tags: tech, gpu, amd, nvidia, computation

Interesting project, could bring a boost in AMD GPUs usage for CUDA workloads.


Not just NVIDIA: GPU programming that runs everywhere

Tags: tech, python, gpu, computation, webgpu

Interesting to see WebGPU bindings for Python.


WebGPU Best Practices

Tags: tech, 3d, gpu, computation, webgpu

Looks like a nice list of resources to dive deeper with WebGPU


Open-source data multitool | VisiData

Tags: tech, tools, data, python

Looks like a nice tool for quick data exploration straight from the command line.


Magika: AI powered fast and efficient file type identification | Google Open Source Blog

Tags: tech, ai, machine-learning, tools, command-line

Interesting tool for file type detection. Seems very accurate too.


Why Bloat Is Still Software’s Biggest Vulnerability - IEEE Spectrum

Tags: tech, security, architecture, dependencies, supply-chain

Definitely this, the software bloat directly impacts the attack surface of what gets shipped. Even though this is far from a panacea in terms of security, it’s time for people to critically examine their dependencies also for other reasons.


Mastering Programming - by Kent Beck

Tags: tech, craftsmanship, programming

As always from Kent Beck, an excellent set of advices to improve you programming skills.


Deciphering Glyph :: Let Me Tell You A Secret

Tags: tech, communication, management, team

This is a bit cartoonish I’d say but there’s some truth to it. I indeed regularly get onto consulting gigs where you find out that the people already had the solution to their problem. In those cases it’s very often because communication channels are broken somewhere (team don’t feel at liberty to share what they noticed, managers having a hard time to listen, etc.).


Tracking Engineering Time - Jacob Kaplan-Moss

Tags: tech, management, metrics, estimates

Interesting approach when managing at a distance. It tries hard to stay lightweight which is definitely welcome.


What Is in Your Organizational Closet? - esther derby associates, inc.

Tags: management, organization

Interesting idea… indeed organizations can carry legacy processes and ideas as well.


Bye for now!

Categories: FLOSS Project Planets

Mike Gabriel: Debian Edu 12 - Call for Testing

Planet Debian - Fri, 2024-02-16 02:09

This is a call for testing of Debian Edu based on Debian bookworm. With the Debian 12.5 point release all required packages have landed in the Debian Edu ISO images that allow you to install a Debian Edu system based on Debian 12.

ISO Image Downloads

You can find the Blueray Disc ISO image (use for main server installation) at: http://cdimage.debian.org/cdimage/release/current/amd64/iso-bd/debian-ed...

For standalone workstation installations or installations on an already up-and-running Debian Edu site, please use the netinst ISO image: http://cdimage.debian.org/cdimage/release/current/amd64/iso-cd/debian-ed...

Quick Start HowTo

For testing Debian Edu 12, set up e.g. LXD or libVirt and install (at least) three virtual machines. In your virtualization software prepare an internal network where the VMs can reach one another without needing access to your local network.

The three VMs:

  • setup a gateway VM (no DHCP service) at (e.g. OPNsense, pfSense, Debian Edu Router, etc.), two NICs: one uplink, one NIC in the internal network
  • install the Debian Edu mainserver from the ISO image on another VM, one NIC in the internal network
  • then boot a 3rd VM via PXE and install your first workstation, on NIC in the internal network

Happy testing!

Further Readings



Categories: FLOSS Project Planets

Capellic: Create an EasyCron job for every Pantheon multidev

Planet Drupal - Fri, 2024-02-16 00:00
We automated the creation of Easycron jobs when building a new Pantheon multidev.
Categories: FLOSS Project Planets

Lullabot: Lullabot Podcast: Navigating the Waters of Drupal Development with Tugboat

Planet Drupal - Thu, 2024-02-15 22:00

We embark on a journey, guided by a Tugboat, through the evolving landscape of Drupal development. This episode of the Lullabot Podcast dives deep into the world of Tugboat's seamless integration on Drupal.org. It's a pivotal tool that's redefining the paradigms of building, testing, and deploying Drupal projects.

Categories: FLOSS Project Planets

Drupalize.Me: New in Drupal 10.2: Create a New Field UI

Planet Drupal - Thu, 2024-02-15 18:43
New in Drupal 10.2: Create a New Field UI

In Drupal 10.2, you’ll notice a new UI when you create a new field. It’s designed to help you recall what each field type means, so that you can make the right choice. Let’s check it out.

Amber Matz Thu, 02/15/2024 - 17:43
Categories: FLOSS Project Planets

Drupal Core News: RFC Remove support for Windows in production in Drupal 11

Planet Drupal - Thu, 2024-02-15 16:49

Drupal added support for IIS in 2010 and we have supported that and WAMP (Running Apache and PHP on Windows). Unfortunately, we have never been able to provide automated testing for these environments.  And since 2010, the use of Microsoft products for hosting websites has declined. Because of this, the Drupal core committers propose drop support for Windows when used on production web sites in Drupal 11.

Support for development on Windows will continue. Drupal will continue to accept bug reports for Windows used in development environments,

The following links show the usage statistics used when making this proposal.

Comment period

Community feedback is sought on the proposed process. Please use this issue to add your input. The feedback period will last until Friday March 8 2024.

Categories: FLOSS Project Planets

PyCharm: PyCharm 2024.1 EAP 5: Model Cards for Hugging Face Models, Updates for the HTTP Client, and More

Planet Python - Thu, 2024-02-15 15:27

Our new EAP build for PyCharm 2024.1 is now available for you to download!

Packed with numerous new features and enhancements, PyCharm 2024.1 EAP 5 brings model cards for Hugging Face models and datasets, extended support for GitHub Actions, updates to the HTTP Client, and much more. We invite you to download this build and explore the fresh additions to the IDE.

You can download the new version from our website, update directly from the IDE or via the free Toolbox App, or use snaps for Ubuntu.

Download PyCharm 2024.1 EAP

Let’s dive into the extensive list of updates introduced in this build.

Hugging Face: Model cards for models and datasets

Get all the information about any Hugging Face models or datasets you’re working with right inside PyCharm. Hover over a dataset or model name to view the description in a popup, or press F1 to open the Documentation tool window next to the editor. To navigate to the documentation on the Hugging Face website, use Cmd + Click (Ctrl + Click on Windows and Linux).

Frameworks and technologies Enhanced GitHub Actions support

We’ve enhanced support for GitHub Actions in the latest EAP release of PyCharm. Our developments focus on enriching your CI/CD workflows by providing increased efficiency and intelligent features designed specifically for GitHub Actions. Let’s delve into the details.

Workflow context support

Our latest update introduces extensive autocompletion support for various GitHub Action contexts, including github.*, env.*, steps.*, and inputs.*. 

This simplifies the process of scripting complex workflows and reduces the time developers spend searching for context-specific syntax and parameters.

You can also swiftly complete YAML structures and ensure your workflow scripts are error-free. 

Branding feature for action.yml

You can customize the appearance of your actions on GitHub with specific icons and color indicators directly in the YAML file using the branding feature. This functionality enables action creators to visually distinguish their actions in GitHub Marketplace and workflows, making them more recognizable and user-friendly. By specifying an icon and a color in the action.yml file, developers can convey the purpose of their actions at a glance, enhancing the overall user experience. This visual customization helps categorize actions and aids users in quickly identifying the tools they need for their CI/CD pipelines.

Docker image completion

This enhancement provides image and tag suggestions within GitHub workflow files, making it easier to integrate Docker containers into your actions.

JavaScript file path completion

File path completion automatically suggests file paths, simplifying configuring JavaScript actions and streamlining workflow execution.

HTTP Client improvements 

The HTTP Client now offers more authentication options, including the PKCE Authorization Code and Device Grant flows. It also supports extra parameters for token and authentication requests.

Now, the HTTP Client automatically handles the generation of code_challenge and passes code_verifier for token retrieval during PKCE requests.

We’ve upgraded the HTTP Client to utilize Netty as its low-level networking library. With support for SSL, proxies, and HTTP/2, this change allowed us to implement HTTP/2 support in the HTTP Client.

In addition, we’ve updated the appearance of the HTTP Client toolbar to align it with the new UI style, offering a more polished and cohesive look.

Optimized JSON schema processing 

To enhance user experience with JSON files, we’ve optimized the code behind JSON schema validation and completion. As a result, the IDE now handles this task faster and with reduced memory consumption. In real-life files with Azure Pipelines, schema inspections are now 10x faster.

Frontend development Vue Language Server is now enabled by default

In previous versions of PyCharm, the Vue Language Server was automatically enabled only for those projects that explicitly list TypeScript 5+ in a project’s dependencies (package.json). Starting with EAP 5, the Vue Language Server is enabled by default for all Vue (including Nuxt-based) projects.

The Vue Language Server has some known limitations in Vue 2 projects. Please let us know if you experience any problems. You can opt out of using the server in Settings | Languages & Frameworks | TypeScript | Vue:

Component usages for Vue, Svelte, and Astro components

We’ve added a Component usages Code Vision hint, which is available in Vue, Svelte, and Astro files. Using the hint, you can quickly look for usages of a specific component anywhere in the project:

Enhancements to the Structure tool window for React and JSX

The Structure tool window now displays React components and hooks, along with the structure of JSX. This includes nodes for conditional rendering and list rendering: 

Other JSX-powered libraries such as Preact and Solid are also supported.

Generate arrow functions with the Extract Method refactoring

The Extract Method refactoring now introduces an in-place option to generate the extracted function as an arrow function:  

These are the highlights of this week’s EAP build. You can also check out the release notes for the full list of implemented changes.  

Take the new features for a test drive, share your feedback with us via X (formerly Twitter) or in the comments below, and stay tuned for more updates! If you spot a bug, report it to our issue tracker

Categories: FLOSS Project Planets

MidCamp - Midwest Drupal Camp: MidCamp Needs You!

Planet Drupal - Thu, 2024-02-15 15:11
MidCamp Needs You! We need you!

If you've been looking for non-code opportunities to give back to the Drupal community, we have the perfect solution! Volunteer to help out at MidCamp 2024.  

We’re looking for amazing people to help with all kinds of tasks throughout the event including: 

  • For setup, we need help making sure registration is ready to roll, getting hats ready to move, and getting the rooms and walkways prepped for our amazing sessions.

  • For teardown, we need to undo all the setup including packing up all the rooms, the registration desk, cleaning signage, and making it look like we were never there.

Registration and Ticketing
  • We need ticket scanners, program dispersers, and people to answer questions.

Session Monitors
  • Help us to count heads, introduce the speakers and make sure they have what they need to thrive, and help with the in-room A/V (by calling our Fearless Leader / A/V Genius)

Choose Your Own Adventure
  • We won't turn away any help, so if there's something you'd like to do to help, just let us know!

Every volunteer will receive credit on Drupal.org, so be sure to include your profile name when you sign up to volunteer.

If you’re interested in volunteering or would like to find out more, please reach out to the #volunteers channel on the MidCamp Slack.

There will be a brief, online orientation leading up to the event to go over the volunteer opportunities in more detail. 


tweet: @midcamp
email: info@midcamp.org

Do volunteers still need a ticket?

Yes. While we appreciate your help, we still ask volunteers to purchase a ticket. We have flexible ticket options for you to choose from. As a volunteer you'll also get dibs on the MidCamp Archives... our seemingly endless box of vintage swag.

Categories: FLOSS Project Planets

The Drop Times: Drupal's Innovation and Future: 2024 and Beyond—Part 1

Planet Drupal - Thu, 2024-02-15 15:04
Discover the future of Drupal as we delve into insights from prominent community members like AmyJune Hineline, Michael Anello, and more. Explore upcoming advancements, organizational strategies, and the vital role of initiatives like Drupal Diversity & Inclusion in shaping a vibrant community.
Categories: FLOSS Project Planets

The Drop Times: Drupal's Innovation and Future: Share Your Perspectives!

Planet Drupal - Thu, 2024-02-15 15:04
Drupal's success story is written by its community and its users. As the web landscape evolves, understanding the Drupal community's vision for ensuring Drupal remains innovative, adaptable, and inclusive is important. To get a pulse on where Drupal is headed, The Drop Times is launching a special project to gather insights directly from people in the Drupal community and Drupal users. Your perspectives will shape a series of articles focused on "Drupal's Innovation and Future: 2024 and Beyond." In our first article, we connected with diverse experts exploring challenges and opportunities. Now, it's your turn!
Categories: FLOSS Project Planets

Python Insider: Python 3.13.0 alpha 4 is now available

Planet Python - Thu, 2024-02-15 11:09


Python 3.13.0 alpha 4 is now available:


This is an early developer preview of Python 3.13

Major new features of the 3.13 series, compared to 3.12

Python 3.13 is still in development. This release, 3.13.0a4, is the fourth of six planned alpha releases.

Alpha releases are intended to make it easier to test the current state of new features and bug fixes and to test the release process.

During the alpha phase, features may be added up until the start of the beta phase (2024-05-07) and, if necessary, may be modified or deleted up until the release candidate phase (2024-07-30). Please keep in mind that this is a preview release and its use is not recommended for production environments.

Many new features for Python 3.13 are still being planned and written. Work continues apace on both the work to remove the Global Interpeter Lock , and to improve Python performance. The most notable changes so far:

(Hey, fellow core developer, if a feature you find important is missing from this list, let Thomas know.)

The next pre-release of Python 3.13 will be 3.13.0a5, currently scheduled for 2023-03-12.

 More resources  Enjoy the new releases

Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation.

Regards from dusky Amsterdam,

Your release team,
Thomas Wouters
Ned Deily
Steve Dower
Łukasz Langa
Categories: FLOSS Project Planets

DrupalEasy: DrupalEasy Podcast S16E5 - Jim Birch - Recipes

Planet Drupal - Thu, 2024-02-15 10:00

We talk with Jim Birch about the Recipes strategic initiative for Drupal. 

URLs mentionedDrupalEasy News

Audio transcript 

We're using the machine-driven Amazon Transcribe service to provide an audio transcript of this episode.


Subscribe to our podcast on iTunes, Google Play, iHeart, Amazon, YouTube, or Spotify.

If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page.


Podcast edited by Amelia Anello.

Categories: FLOSS Project Planets

Qt Creator 13 Beta released

Planet KDE - Thu, 2024-02-15 06:06

We are happy to announce the release of Qt Creator 13 Beta!

Categories: FLOSS Project Planets

Optimizing Embedded Product Design

Planet KDE - Thu, 2024-02-15 03:00

Choosing the right system-on-chip (SoC) is probably your first consideration when designing an embedded product, followed closely by deciding whether to use an off-the-shelf board or design your own.

The case for commercial boards in initial designs

For the first product in a new line, consider using a commercially available board that features your chosen SoC. This approach may slightly increase the cost per board compared to building a custom board yourself. However, it lets you build on a vendor’s considerable expertise in areas like SoC characteristics, architectural layout, proper bus design, and errata workarounds. Pre-existing boards offer a significant shortcut in getting your product to market as they can minimize prototype iterations and reduce the risk of crucial mistakes in layout. As you gain experience with your chosen silicon and start looking at moving to higher-volume production, you can then consider whether it makes sense to design and manufacture custom boards to reduce costs and introduce custom functionality.

First step: Picking a vendor

Selecting a CPU architecture is your very first step. While ARM is currently dominating the market, Intel x86 and RISC-V are other possible alternatives. Because toolchains like LLVM and GCC can support all these architectures, your decision will usually depend on factors such as vendor and community support, licensing, power consumption, and clock speeds. Once you’ve selected an architecture, comparing features and prices within that family becomes more straightforward.

Evaluating silicon vendor boards

Silicon vendors such as AMD, Intel, Nvidia, NXP, and Renesas all offer eval boards to help you evaluate their SoCs. These boards are excellent starting points but there are things to consider.

  • Feature overload. Because eval boards are intended to show off the capabilities of their chips, they are often loaded with features. That can be good for trial, but you don’t want to pay for unnecessary hardware once you move to volume production.
  • Limited availability. Eval boards are often intended for very limited distribution, making availability a serious concern. If you’re planning on a very small production run, this might not matter. But it also might force you to move to another platform before you’re ready.
  • Hardware consistency. Eval boards may not have the same process consistency as commercial products. That means you could get multiple hardware revs of the same board within a short timeframe, creating potential software compatibility nightmares and in-field surprises.
  • Support limitations. Support (either engineering assistance or device drivers) may not be at the level you need to build product. That includes some critical aspects such as OS updates. It’s possible the vendor has the capacity or process for consistently delivering commercial quality drivers for their boards that are compatible with the latest Linux releases, but you’ll likely need to ask.

It’s always advisable to consult with a sales representative before using an eval board in a production product. Their feedback can prevent future issues and, if necessary, direct you to distributors for better long-term alternatives.

Choosing a board provider

The other option for using pre-made boards is to go to a board vendor instead of a silicon vendor. They’re creating boards with the intent they’ll be incorporated into products rather than simply for evaluation. When selecting a board provider, consider all aspects, including one of the most important peripherals, the screen. For a more comprehensive guide on selecting hardware, refer to our paper on best practices: Designing Your First Embedded Linux Device: Choosing Your Hardware.

The post Optimizing Embedded Product Design appeared first on KDAB.

Categories: FLOSS Project Planets

ListenData: How to use variable in a query in pandas

Planet Python - Wed, 2024-02-14 23:45

Suppose you want to reference a variable in a query in pandas package in Python. This seems to be a straightforward task but it becomes daunting sometimes. Let's discuss it with examples in the article below.

Let's create a sample dataframe having 3 columns and 4 rows. This dataframe is used for demonstration purpose.

import pandas as pd df = pd.DataFrame({"col1" : range(1,5), "col2" : ['A A','B B','A A','B B'], "col3" : ['A A','A A','B B','B B'] }) Filter a value A A in column col2

In order to do reference of a variable in query, you need to use @.

Mention Value Explicitly
newdf = df.query("col2 == 'A A'") Reference Method
myval1 = 'A A' newdf = df.query("col2 == @myval1") How to Pass Column Name in Query

Instead of filtering value we are referring the column which we want to use for filtering.

myvar1 = 'col2' newdf2 = df.query("{0} == 'A A'".format(myvar1)) {0} takes a value of variable myvar1.
"{0} == 'A A'".format(myvar1) returns "col2 == 'A A'" How to Pass Multiple Columns in Query

Incase you want to pass multiple columns as variables in query. Here we are using columns col2 and col3.

myvar1 = 'col2' myvar2 = 'col3' newdf2 = df.query("{0} == 'A A' & {1} == 'B B'".format(myvar1, myvar2))

"{0} == 'A A' & {1} == 'B B'".format(myvar1, myvar2) is equivalent to "col2 == 'A A' & col3 == 'B B'"

How to Handle Space in Column Name

Let's rename column col2 by including a space in between for illustration purpose.

df.rename(columns={'col2':'col 2'}, inplace = True)

By using backticks `` you can pass a column which contains space.

myvar1 = '`col 2`' newdf = df.query("{0} == 'A A'".format(myvar1)) This post appeared first on ListenData
Categories: FLOSS Project Planets

PyCon: Support PyLadies: Donate to the PyLadies Charity Auction at PyCon US 2024!

Planet Python - Wed, 2024-02-14 23:00

PyCon US 2024 is quickly approaching and we can’t wait to see all of you there! This year, we are reaching out to our community to help support one of our favorite events: the PyLadies Charity Auction. We know our wonderful community is bursting with creative, artsy, and generous folks. That’s why we are sending out a community wide call to donate items to this year’s auction. If you’d like to support PyLadies by making a donation, please fill out the PyLadies Charity Auction donation form. To learn more about the event and what to donate, read on!

What to Donate

Need inspiration? Over the years, we’ve seen that people love to bid on items that are artsy, nerdy, and Python-specific. Art, decor, customized tech, and vintage PyCon or Python related swag are all examples of things that will inspire a friendly bidding war. To get more inspiration search ‘PyLadies Auction’ on social media or check out the PyLadies Instagram.

Items that are personalized or have a story tend to attract bidders– DIYers, artists, crafters, and collectors, this is your time to shine! It's also worth thinking about what will show up well on stage. We have a magnifying camera, but smaller and less colorful items like jewelry and watches might be harder for bidders to see than a big piece of art or an adorable, bright colored snake stuffy! On that note, this year we will be holding a raffle at the PyLadies Auction. If you have smaller items– like vintage swag, stickers, or even pens (iykyk)– they can go into the raffle.

Please note that we cannot accept donations of guns, alcohol, cars, real estate, or houses. We may decline other gifts that are inappropriate or impractical at the PSF’s discretion (for example, sorry, no real pythons!).

If you’ve got an item to contribute that you’d like to share in a sneak preview, feel free to post a photo and tag us on the social media platform of your choice!

Donation details

To donate an item, please fill out the PyLadies Charity Auction donation form. This form asks for required information around the person or organization donating, item specifics, and logistics. You will need to indicate if you will ship the item in advance or deliver it in person. You will receive shipping information once you complete the form. The deadline for donations is May 16th, 2024 (that’s the Thursday before the event!).

About the PyLadies Charity Auction

The twelfth PyLadies Charity Auction will be held in-person during PyCon US 2024 in Pittsburgh, Pennsylvania. It’s an evening of fun and refreshments while supporting the PyLadies community!

The Entry cover charge of $35.00 includes dinner and a drink ticket, while the Supporter cover charge of $50.00 includes dinner, a drink ticket, and a $15.00 contribution to PyLadies. Everyone who attends will also have access to the cash bar. To save your place at the Auction, add the PyLadies Auction to your PyCon US registration via your dashboard. Last year we sold out quickly, so if you’d like to go, reserve your ticket soon!

Categories: FLOSS Project Planets

Drupalize.Me: PHP Attributes for Drupal Plugins

Planet Drupal - Wed, 2024-02-14 20:06
PHP Attributes for Drupal Plugins

As of PHP 8.1, the PHP language has native support for attributes that are compatible with Drupal’s plugin system use case. As a result, Drupal will transition from the use of annotations to PHP attributes, to supply metadata and configuration for plugins. This will require developers to learn the new PHP attributes syntax, and update their existing code to use it. For now Drupal will continue to support both annotations and attributes. But the proverbial clock is ticking.

So let’s take a look at how we got here, and what you’ll need to do to update your code for future versions of Drupal.

joe Wed, 02/14/2024 - 19:06
Categories: FLOSS Project Planets

Matt Layman: Algorithmic Art with Python

Planet Python - Wed, 2024-02-14 19:00
NOTE: The audio is a bit low. I did my best to boost the volume. Sorry for not dialing this in better during recording
Categories: FLOSS Project Planets

Armin Ronacher: Rye Grows With UV

Planet Python - Wed, 2024-02-14 19:00

Two weeks ago I asked the question again about What Rye should be. There has been one thing that I have not publicly shared before and that is that ever since Rye exists I have also been talking to Charlie Marsh about Python packaging and Python tooling. It turns out that we had some shared ideas of what an ideal Python tooling landscape would look like. That has lead to some very interesting back and forths. To make a potentially very long story short: Together with Astral's release of uv they will take stewardship of Rye. For the details read on.

For me Rye is an exciting test bed of what Python tooling can be. I have been using this test bed to run a of experiments over the last year. I learned a lot about what is missing in the ecosystem by building it and where the challenges are. What I enjoyed the most of working on it so far has been the feedback from various people on it. I wanted to explore what a “cargo for Python” is like and it's becoming ever more evident what that might look like. At the same time from the very start I was very clear in questioning its existence.

Since we were talking I was able to run an experiment which has been to put in Astral's uv as replacement for pip-tools. If you are not familiar with it yet: uv today is a drop-in replacement for pip-tools and venv. The why is pretty clear: it's much faster than pip-tools. Instead of taking 5 seconds to sync a virtualenv, it's almost instant. It's hard to overstate how impactful this is in terms of developer experience.

For entirely unrelated reasons Rye today already picks some of Astral's tools to power other functionality. If you invoke rye fmt and rye check it behind the scenes uses Astral's ruff to do so. They are fast, sufficiently oppinonated and they do not require installing them into the virtualenv of the project. They are quickly becoming the obvious choice if you are used to excellent tooling from other ecosystems. So as it stands, three things that Rye does are either already picking Astral tools, or will soon default to doing so.

This led to a few conversations if it would make sense for Astral to continue the work on Rye and build it out into that “cargo for Python”. I'm very much convinced that there should be such a tool and that is something Charlie from Astral shares. Where we landed is a plan that looks like the following:

Rye will continue to be a test bed for what Python tooling can be. We will move the project under Astral's stewardship with the desire to use it to further explore what a good UX can be and we will be quite liberal in trying different things. For instance now that the package installation process is blazing fast, I really want to see if we can remove the need of calling sync manually. There are also a lot of questions remaining like how to make the most of the indygreg builds or what lock files should look like in a Python world. I also want to go deep on exploring a multi-version Python import system.

Rye will turn into a blessed breeding ground of different things. As the user experience becomes more obvious uv itself will turn from what it is today — low level plumbing — into that higher level tool with a clear migration path of folks using rye to that new uv.

To try Rye on top of uv today install or update to the latest version and enable the experimental uv support:

$ rye config --set-bool behavior.use-uv=true

To learn more about uv and rye head over to GitHub:

You might have some more questions about this so I compiled a basic FAQ:

Why not make Rye the cargo for Python?
This in many ways might look like the obvious question. The answer is quite simple: Rye as it exists today is unlikely to be the final solution. For a start code wise it's pretty brittle coming from it cobbling together various tools. It's a duck-taped solution that was built to sketch up what can be, for my very own uses. It is however incredibly useful to play and explore possible solutions.
Will Rye retired for uv?
Not today, but the desire is that these tools eventually converge into one.
Will you continue to contribute and maintain Rye?
Short answer: yes. Long answer is that me contributing to my own tool has been a pretty spotty thing over the last year. There was in fact almost a multi month hiatus where the only changes to Rye were bumping Python versions and fixing minor issues and that not because it was perfect. The reason more was that I realized that Rye runs into fundamental issues that are really gnarly to resolve which can be quite frustrating to attack as a side project. So I want to continue to be involved in one way or another, but this is a project much larger than me and I do not have the motivation to give it enough of that push myself.
Will I join Astral?
No :-)
Is there a song about Python packaging?

Thanks to AI there is.

Categories: FLOSS Project Planets