Feeds
Dirk Eddelbuettel: RcppArmadillo 14.2.2-1 on CRAN: Small Upstream Fixes
Armadillo is a powerful and expressive C++ template library for linear algebra and scientific computing. It aims towards a good balance between speed and ease of use, has a syntax deliberately close to Matlab, and is useful for algorithm development directly in C++, or quick conversion of research code into production environments. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 1197 other packages on CRAN, downloaded 37.5 million times (per the partial logs from the cloud mirrors of CRAN), and the CSDA paper (preprint / vignette) by Conrad and myself has been cited 605 times according to Google Scholar.
Conrad released a minor version 14.2.2 yesterday. This followed a bit of recent work a few of us did in the ensmallen and mlpack repositories following the [14.2.0 release]. Use of (member functions) .min(index) and .max(index) was deprecated in Armadillo in favor of .index_mix() and .index_max(). By now ensmallen and mlpack have been updated at CRAN. To add some spice, CRAN emailed that the (very much unreleased as of now, but coming likely next spring) gcc-15 was unhappy with RcppArmadillo due to some Armadillo code. This likely related to the listed gcc-15 C++ change about “Qualified name lookup failure into the current instantiation”. Anyway, Conrad fixed it within days and that change too is part of this new version (as is a small behaviour normalization between the two indexing methods that matters in case of ties, this was in 14.2.1).
The changes since the last CRAN release are summarised below.
Changes in RcppArmadillo version 14.2.2-1 (2024-12-05)Upgraded to Armadillo release 14.2.2 (Smooth Caffeine)
Workarounds for regressions in pre-release versions of GCC 15
More selective detection of symmetric/hermitian matrices by various functions
Upgraded to Armadillo release 14.2.1 (Smooth Caffeine)
- Fix for index_min() and index_max() to ensure that the first index of equal extremum values is found
Courtesy of my CRANberries, there is a diffstat report relative to previous release. More detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the Rcpp R-Forge page.
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.
Aten Design Group: Drupal 11 is Here! What you Need to Know about New Development Features
Your organization may use Drupal as a CMS, application framework, site builder, or all of the above. Within the context of this article about new features in the latest version, I'd like you to think about Drupal as a system.
It provides some standard pieces—things like content types, users and roles, taxonomies—and standard ways of connecting them to one another. But out of the box, it's sort of a jumble of pieces, and requires putting those pieces together for it to be meaningful.
A lot of the features that you'll see in Drupal 11.0 are developer-focused, and mostly benefit people who are building or maintaining sites, and your end users won't necessarily notice anything different. But there are some new features that can impact content administrators.
Content AdminThere's a new admin menu available using the Navigation module, which was brought into Drupal core as an experimental module. It's been a long time coming, and I think it's wonderful. It works well with the default Claro admin theme, and makes working in Drupal admin UI feel more modern and friendly. If you've used the Gin admin theme, the new menu will feel familiar, because it shares many of the same ideas.
There are some cool things in CKEditor 5 like markdown shortcuts similar to those we’re used to in Slack and Google Docs. For example, if you start typing something like 1-period-space, those tools automatically start creating a numbered list for you. It also supports other shortcuts like asterisks for bold, underscores for italics, or number-signs for heading levels. I prefer keyboard shortcuts wherever possible, and this makes working within CKEditor significantly faster.
RecipesRecipes are a way of packaging up configurations and settings that deliver a certain kind of functionality. In Drupal 11 core, there are recipes for things like the basic page content type, document media type, and editorial workflow. These are site features that previously were created during site installation using the Standard profile, which then became a permanent part of your project.
Recipes are applied rather than installed, so they don't end up becoming a dependency of your site, and therefore, you don't get locked in. You can remove modules or update configuration without changing the original recipe. And if the recipe changes, it doesn't change your site unless you reapply it.
Unlike configuration management, recipes aren't all-or-nothing – meaning you can make a recipe for broad, general functionality or something super specific. Because recipes are so flexible and don't create dependencies to themselves, they can be easily combined and shared, or adapted to fit your own needs.
For site owners, recipes will be really useful because it will make adding new features considerably faster because you can apply one or more recipes, rather than having to build everything up yourself. Because recipes are easily shareable, you'll also be able to find recipes created by others. In fact there's already a “Recipes Cookbook” on drupal.org with various site starters and functionality-specific recipes.
At Aten, our Drupal developers will be able to use recipes to quickly recreate commonly-needed features that our projects require. For example: installing Aten's Mercury Editor module, standing up our default Single Directory Components, configuring our QA service and module, or setting up search functionality. And they'll allow us to share our work with others in a way that doesn't bind them to all the parts of our standard processes.
Single Directory ComponentsSpeaking of Single Directory Components, that module is now stable in Drupal 11.
Here we're using the term component as a piece of a web page that's modular and needs to be reusable. These are generic building blocks of pages that will appear throughout your site such as an accordion, call to action, banners, and slideshows.
Single Directory Components (SDC) are a way of organizing the files needed to display a single component (the Twig template, CSS, and JavaScript) into a folder. If you follow the naming conventions, Drupal will automatically generate a library to combine all of these for you. When you add an SDC to a page, Drupal will load the CSS and JavaScript for the components automatically.
Because SDCs are essentially self-contained, it's fairly easy to reuse them across different projects and entity types—things like Paragraphs or custom block types.
SDCs make the implementation of component libraries or design systems much easier because you can change Drupal's output to match whatever structure is needed. Aten makes heavy use of Single Directory Components for projects using Mercury Editor, our drag-and-drop content authoring experience that allows editors to preview content changes in real time.
WorkspacesThe Workspaces module is stable in Drupal 11. Workspaces allow you to create multiple copies of your live site and within these copies, you can work on changes like content edits or structural changes, and then deploy those changes to the live workspace.
It can allow you to do things like test out menu changes, completely reorganize a section of your site; or maybe you have seasonal content that all needs to go live at the same time. You could work on those within a new workspace (or in multiple workspaces). And then when those changes are ready to go live, they all happen at once.
Currently, we can do that with individual pages using content moderation and workflow, but it's always been hard to work on a big set of changes over time and preview them.
I've experimented with Workspaces in the past and with this stable release. Although I think it's a fantastic idea, because it's a different way of handling content changes, it may be incompatible with your content model or modules you're using.
If you're already doing anything with content moderation, layouts, or translations, Workspaces is going to add a new layer of complexity. It may require a lot of training and continued support before content administrators are comfortable with a new workflow.
Time to upgradeNow that I’ve laid out all of the new features of Drupal 11, it’s time to determine when and how to best upgrade your Drupal site. Get in touch with us for upgrade help.
Drupalize.Me: Understanding the Difference Between Cache Keys and Cache Tags in Drupal
Have you ever wondered "What is the difference between cache keys and cache tags?" One of our Drupalize.Me members wrote in asking about it, and the answer provides insight into how Drupal's Cache API works.
joe Fri, 12/06/2024 - 11:16MidCamp - Midwest Drupal Camp: MidCamp 2025 Planning Meetings Now on Wednesdays!
We’ve got an important scheduling update for all our MidCamp 2025 organizers! Starting in December 2024, our bi-weekly planning meetings will be moving from Mondays to Wednesdays.
Why the change?We’re shifting to Wednesdays to better accommodate everyone’s schedules and keep our planning momentum strong. These meetings are crucial for getting everything in place for MidCamp 2025, and we want as many voices as possible in the conversation.
What to Expect:- New Meeting Time: Every other Wednesday at 3:00 PM CT.
- First Meeting: Our first Wednesday meeting will be on December 11, 2024.
We appreciate everyone’s flexibility and can’t wait to keep the MidCamp 2025 planning energy high! If you have any questions or can’t make the new time, reach out in Slack or email us. We’re here to make sure you’re involved!
How to Join:All planning details will continue to be shared in our MidCamp Slack, so keep an eye on the #midcamp-organizers channel for updates and links. Not yet in Slack? Join the MidCamp Slack here!
ComputerMinds.co.uk: Views Data Export: Re-maintainership
If you have some data in a Drupal site, say a list of contact form submissions, or a list of content, you might want to provide a way for visitors to download that list as a CSV or Excel file: there's a module for that.
Views Data Export - The storyThis module has its roots firmly in the Drupal 6 glory days where basically every list in Drupal was a view. Had some blog posts: view; list of comments: view; images needing copyright review: view.
That made a simple extension module that could export that content to CSV or Excel really appealing, and the Views Bonus Pack module provided this functionality however, there were a number of issues. Top of our list of problems with it was that it tried to do the entire export in one big go, if you had a lot of data, then you were out of luck, you simply couldn't export it all. You'd have to do it page by page or something like that.
In our old office, we dreamed up a way to have Drupal's batch API iterate over the result pages and collect them all up into a single file for download.
Additionally, at the time we had a client who wanted to export data that was coming in pretty rapidly: they were getting submissions at the rate of several a second and needed to be able to accurately export all the submissions in one go, not getting any duplicates, etc.
We really wanted to be able to get this working nicely with the SQL backend for Views and found a way in MySQL to query and populate a table with the resultset in a single transaction. In this way, we would make an initial point-in-time copy of the data required to render the view, and then we could take our time to process through that data. As long as MySQL could query and write the data fast enough we could then use Drupal's Batch API to loop through the data at our leisure.
This approach worked nicely but needed to fork the Views Bonus module and so the Views Data Export module was born. In the years that followed: the module gained popularity, a Drupal 7 port, and something like 75,000 active sites using it.
Decline and Drupal 8ComputerMinds had never put in place any sort of proper amount of time to do maintenance for Views Data Export and so after many years and unattended bug reports, Drupal 8 rolled around and we didn't invest time in doing a Drupal 8 port either.
However, Drupal has a great community and someone else stepped up and offered to port and maintain Views Data Export.
However, the bugs and feature requests continued to pile up, and the port was more of a re-imagining than a direct port of the code. This was completely understandable since the underlying systems of Drupal and Views had massively changed in those years. And basically, we weren't involved in explaining what the Drupal 7 version was doing and why.
The module entered a period of very minimal maintenance and essentially only got further updates for critical bug fixes and new Drupal core versions.
Let me be clear that this is no slight against anyone who has done brilliant work on the Drupal 8, 9 or 10 versions of Views Data Export, but proper amounts of time and resources were never put into the module...until now.
Re-maintainershipRecently we've changed some internal priorities around so that we can spend more time giving back to the Drupal community, and this coincided with someone asking me to be a co-maintainer for Views Data Export so that they could add Drupal 11 support.
I thought about it a lot and waited for the other maintainers to weigh in, but ultimately decided that I wanted to get back involved in the maintainership of Views Data Export and thus declined the generous offer of help. I did then work to get a Drupal 11 version out.
Going forwardI aim to maintain Views Data Export.
I'm working on exactly how this works, but it starts by regularly spending time working on the project.
Now...the project pages and issue tracker on Drupal.org are in a bit of a dire state:
- The project page documentation is almost entirely the original text I wrote for Views Data Export for Drupal 6, so some of the information there is completely out of data.
- The issue queues have been left relatively unattended for a decent while, so we have (at the time of writing):
- 204 open bugs
- 276 other open issues.
- Several issues that are marked as RTBC that haven't been given any attention by the maintainers.
- Plenty of duplicate issues.
- Drupal.org issue queues are hard to read and work with, and slow :(
- The documentation is for Drupal 6/7 and is pretty bare-bones.
The code...well I've not read every line of code in the latest version of Views Data Export, I'm going to be doing that today to break up some of the issue queue management I'm going to be doing.
Drupal 7 versionAccording to the stats on Drupal.org there are still around 41,000 active Drupal 7 installs, and while those will be community EOLd in a month, I don't want to prematurely cut them off, so while I plan to close almost all of the Drupal 7 issues that I find, I won't mark the module unsupported as such. But that will happen in January 2025 anyway, when Drupal.org does that automatically.
Progress checkI intend to write an article like this one every 2 weeks detailing what has been done and what the plans for the future are. Mostly to keep me honest and focused! It's easy when starting on a bit of a big project like this to get lost and despondent about the size of the problem, so by trying to write about it, I'm hoping that I'll be able to look back and see progress even if won't always feel like any progress has been made!
Nonprofit Drupal posts: 2025 Nonprofit Summit Update: Breakout Leaders Wanted!
Hey nonprofit Drupal users, do you want a free ticket to DrupalCon Atlanta? Submit to be a breakout discussion leader at the Nonprofit Summit!
What are you talking about?The DA is interested in supporting community-driven content that is specifically relevant to nonprofit organization staff and related agencies at DrupalCon North America in Atlanta, Georgia, at the Nonprofit Summit on March 24, 2025.
We are looking for volunteers who would be interested in giving back to the community by contributing some subject matter expertise via a day of informal breakout sessions or other group activities. We are open to ideas!
Who are we looking for?Do you have some Drupal expertise or a recent experience with a Drupal project that you would like to share with others? Is there something about Drupal that you think is really cool that you would love to share with the nonprofit Drupal community?
What’s required?You will not be required to make slides! You don’t need to have lots of (or any) speaking experience! All you need is a willingness to facilitate a discussion group or engaging activity around a particular topic, and some expertise or enthusiasm for that topic that you wish to share.
How to Submit an Idea or TopicPlease fill out this form by January 31st. https://forms.gle/HBv1Za55MXr2sriPA
Discussion leaders will be selected by the Nonprofit Summit Planning Committee and will be notified by the middle of February.
Questions?Freelock Blog: Automatically track documentation requirements
One of our clients is a yacht club that has their own moorage, which they lease out to members. With several hundred slips, their insurance requires them to maintain proof of insurance, up-to-date vessel registrations, and regular electrical inspections for all boats moored at their facility.
In Washington all vessel registrations renew in June, but insurance and inspections can expire any time of year. The office needs to keep copies of these documents on file.
The Drop Times: Meet the Speakers: DrupalCon Singapore 2024 Part II
Web Review, Week 2024-49
Let’s go for my web review for the week 2024-49.
Pourquoi les médias devraient créer des serveurs Mastodon maintenantTags: tech, social-media, fediverse, bluesky, politics, business
Article in French
Very good piece explaining why the Ferdiverse is currently our only option for a decentralized social media platform. Maybe Bluesky will become another option… maybe… but so far it’s only empty promises with a real risk of capture.
Tags: tech, ai, machine-learning, gpt, copyright, law
Another lawsuit making progress against OpenAI and their shady practice.
Tags: tech, security, ai, machine-learning, gpt
Let’s hope security teams don’t get saturated with low quality security reports like this…
https://sethmlarson.dev/slop-security-reports
Tags: tech, ai, machine-learning, vision
Nice vision model. Looks like it strikes and interesting balance between performance and memory consumption. Looks doable to run cheaply and on premise.
https://huggingface.co/blog/smolvlm
Tags: tech, foss, hardware, networking
This is an excellent milestone reached for the OpenWrt project. Easily available hardware is a must. It’s rather cheap too.
https://sfconservancy.org/news/2024/nov/29/openwrt-one-wireless-router-now-ships-black-friday/
Tags: tech, unix, system
Good post about the very much overlooked fact that lots of command buffer internally when their output is not a TTY.
https://jvns.ca/blog/2024/11/29/why-pipes-get-stuck-buffering/
Tags: tech, compiler, gpu, research
Interesting research about feasibility of making compilers parallelized on the GPU. I wonder how far this will go.
https://dl.acm.org/doi/abs/10.1145⁄3528416.3530249
Tags: tech, c++, safety
Interesting piece, it highlights well the struggle for the C++ community to come up with a cohesive approach to improve safety. It doesn’t look like the solution is going to come from the standardization committee (unfortunately).
https://cor3ntin.github.io/posts/profiles/
Tags: tech, c++
Very nice improvements finally coming to structured bindings indeed. Should make them even more useful.
https://biowpn.github.io/bioweapon/2024/12/03/structured-bindings-cpp26.html
Tags: tech, language, benchmarking
Comparing languages based on some benchmark is probably a fool’s errand indeed. To many factors can change between language and benchmark implementations.
https://www.gingerbill.org/article/2024/01/22/comparing-language-benchmarks/
Tags: tech, web, frontend, react, criticism, product-management, performance
Excellent piece which shows why React (or Angular) is almost always a bad choice and that you’d be better off banking on the underlying web platform. It leads to better user experience full stop. The article also goes in great length debunking the claims which keep React dominant.
https://infrequently.org/2024/11/if-not-react-then-what/
Tags: tech, engineering, management
Nice example of organization to foster more autonomy and ownership in engineering teams. Clearly needs to be adapted to the project context but gives quite a few ideas. It strikes a nice balance at keeping both an individual and a team view of the responsibilities.
https://candost.blog/strong-ownership-culture-in-a-team/
Tags: tech, project-management, risk
Excellent article introducing how to analyse risks.
https://jacobian.org/2024/dec/4/risk-introduction/
Tags: tech, engineering, business, metrics
Good mulling for thought. It’s always a bit challenging to nicely explain the tie between engineering metrics and how they impact the business. This is a nice starting point.
https://icchasethi.medium.com/tying-engineering-metrics-to-business-metrics-f4df7651e026
Bye for now!
The Drop Times: Transforming Digital Luxury Experience: Aqua Expeditions’ Website Revamp Journey
PyCon: PyCon US 2025 Registration Launch!
The news you’ve been waiting for is finally here - registration for PyCon US 2025 is officially open!
PyCon US will take place May 14 - May 22, 2025, in Pittsburgh, Pennsylvania at the David L. Lawrence Convention Center. The core of the conference, May 16 - May 18, 2025, packs in three days worth of our community’s best talks, amazing keynote speakers, and our famed lightning talks to close out each day— but it is much more than that!
It’s gathering together with the members of our community, to learn from, share with, and connect. It’s joining a conversation in the hallway with the creators of open source projects. It’s taking yourself from beginner to intermediate; intermediate to advanced; or advanced to cutting edge. For some, it’s getting started with Python for the first time. We have loads of exciting plans in the works for this year, and we can’t wait to spend this special time with you!
How to RegisterOnce you have created an account on the PyCon US 2025 conference website, you can register via the registration button on your dashboard. Head over to our Registration Information page to get all the details on how to register.
Early Bird Registration RatesPyCon US is providing discounted rates for Corporate, Student, and Individual tickets for the first 500 tickets sold during the first 30 days that registration is open. Don’t wait, register now to receive your discount!- Early Bird Corporate - $750
- Early Bird Individual - $400
- Early Bird Student - $100
Regular rates will go into effect once early bird tickets sell out or after January 6, 2025.
Regular Registration Rates- Corporate - $800 USD
- Individual - $450 USD
- Student - $125 USD
PyCon US is committed to protecting the health and safety of our community. To ensure that we are gathering safely, we have implemented updated guidelines and protocols to be followed by all attendees during the event. We ask that you please review these guidelines prior to registration.
To support a safe environment and enjoyable experience for all, PyCon US attendees are also required as always to comply with our Code of Conduct, which you can review here.
T-shirts & PyLadies AuctionConference T-shirts and tickets to the PyLades Auction are not yet available but will be released in the coming weeks. Keep an eye out on the PyCon US 2025 website to be one of the first to know and grab yours while supplies last!
TutorialsTutorials will be presented on Wednesday, May 14, 2025, and Thursday, May 15, 2025. We are accepting proposals for tutorials through December 19, 2024. Find more information on how to submit your proposal via our website and our CfP platform. Once our program committee has scheduled the selected tutorials, you will be able to add them to your conference registration.
Watch for tutorial registration launch in February 2025. Opt-in for PyCon US News and follow us on Twitter, Mastodon, and the PSF LinkedIn for the announcement.
Sponsorship and Sponsor PresentationsSponsorship for PyCon US 2025 is open now, and you can see the details of our sponsorship options and apply directly on our Sponsorship Application page. We’re grateful to all of our sponsors, who make PyCon US possible.
For those interested in a paid speaking opportunity, Sponsor Presentations will take place Thursday, May 15, 2025. To reserve a slot for an hour-long Sponsor Presentation on the topic of your choice, please apply for Partner Level Sponsorship or higher and select the check mark next to “Sponsor Presentation.” Slots are limited and typically sell out, so please submit your request soon. Contact sponsors@python.org with any questions.
HotelsPyCon US has contracted special rates with nearby hotels. When you complete your registration for PyCon US 2025, you will be able to book a hotel reservation on your dashboard through our official housing bureau, Orchid Events. Booking through Orchid helps support PyCon US and it is the only way to get the conference rates, so book now while supplies last!
More information can be found on the Hotels page.
Note: Beware of Housing Pirates! PyCon US or Orchid Events will not be calling delegates to sell rooms. If you are contacted by an agency other than Orchid Events offering to make your hotel reservations, we urge you to not use their services. We cannot protect you against them if you do book a reservation.
Travel Grants - Applications now Open!Check out the Travel Grant page to learn more about the support we provide for travel, hotel, and registration to ensure that everyone has an opportunity to attend PyCon US. We actively encourage people to apply for travel grants and welcome applications from any attendees who otherwise would not be able to attend. Our goal is to support diversity and provide equity to attendees and attract Python developers at all experience levels from around the world. For questions about the application process, visit the Travel Grant FAQ page.
Cancellation FeesRegistration cancellations must be submitted in writing to pycon-reg@python.org and received by May 1, 2025, in order to receive a refund minus the $50 cancellation fee ($25 for students; waived for cancellation due to health reasons). No refunds will be granted for cancellations received after May 1, 2025, unless you must cancel for any health-related reasons (see more details in the Health & Safety Guidelines). In lieu of cancellation, you have the option to transfer your registration to another person. For details about transferring your registration, visit the registration page.
Call for Proposals - Deadline December 19th!There’s still time to submit your proposal to present a Talk, Charla, Poster, or Tutorial at PyCon US! More information on our website and on our CfP platform.
Community Booths - Applications now Open!Each year, we set aside booth space in the Expo Hall for nonprofit organizations and community open source projects that serve the Python community and the broader open source ecosystem. If that describes your organization or group, we’d love for you to apply for one of our complimentary Community Booths. Visit this page for more details.
Real Python: The Real Python Podcast – Episode #231: Good Python Programming Practices When New to the Language
What advice would you give to someone moving from another language to Python? What good programming practices are inherent to the language? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder's Weekly articles and projects.
[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]
Drupal Mountain Camp: EMPOWERING DIVERSITY: INCLUSION FUNDS FOR UNDERREPRESENTED VOICES
We are excited to introduce an initiative that not only reflects Drupal Mountain Camp's commitment to diversity, but also actively encourages the participation of underrepresented voices to promote inclusivity and diversity in the Drupal community. Open source communities were founded on the principle that diversity and varied perspectives strengthen the entire ecosystem. We are committed to providing opportunities for individuals from underrepresented groups to attend this year's event, share their experiences, and contribute to the thriving Drupal community.
What are Diversity Inclusion Funds?
Diversity and Inclusion funds offer complimentary tickets and financial support to facilitate individuals to participate in the Drupal Mountain Camp.
How to Apply: Eligibility Criteria:
To qualify, applicants should be a member of one of the following communities and are experiencing financial/economic hardship:
- Ability
- Age
- Ethnicity
- Gender
- Gender identity
- Race
- Religion
- Sexual orientation
- Socio-economic status/class
- Learning differences
- Family composition
Prospective applicants can request diversity tickets by filling out an application form found on the Drupal Mountain Camp website. The application requires basic information and a concise statement explaining the potential benefits of receiving the funds. The organizing committee will assess applications, considering eligibility criteria and the availability of funds. The application deadline for the Diversity and Inclusion Fund is January 31st.
How to Sponsor Diversity Tickets:Sponsoring diversity tickets is an opportunity for organizations and individuals to actively contribute to a more inclusive Drupal community. By sponsoring a diversity ticket and inclusion funds, you become a part of the bridge, enabling someone to participate who might otherwise face barriers.
Sponsorship as an Organization:Drupal Mountain Camp offers sponsorship opportunities for Diversity & Inclusion sponsors to contribute to free diversity tickets and funds aimed at encouraging diverse participation at the event. Sponsors will receive recognition during the event, showcasing their commitment to diversity and inclusion. Any remaining funds will be allocated towards the seamless organization of the event. Please check out the Sponsorship page for more details and contact information.
Sponsorship as an Individual:Drupal Mountain Camp extends the opportunity for individual sponsorship of Diversity tickets. You can buy one or more "Sponsor a Diversity Ticket" on the eventfrog.ch website. Your contribution will directly support the provision of complimentary tickets to foster diversity within the community.
Join us on this exciting journey, building bridges that strengthen the Drupal community, we invite you to join us in making Drupal Mountain Camp 2025 an unforgettable celebration of unity in diversity. Together, let's create an environment where everyone feels not only welcome but integral to the shared narrative of our community.
Golems GABB: Drupal Starshot
Ready for a Drupal revolution? At a recent keynote, Dries Buytaert, the mastermind behind Drupal, introduced Drupal Starshot, a groundbreaking initiative set to make building websites with Drupal incredibly simple.
"Drupal has always been known for its low-code capabilities. However, many competitors now offer similar features, and in some areas, they even surpass what Drupal provides. While Drupal is celebrated for its robustness, it can be challenging for newcomers, especially those with limited technical expertise. So in my keynote, I was excited to introduce Drupal Starshot, our "Moonshot" to make Drupal more accessible and easier to use." — said Dries.
Droptica: How to Quickly Create a Website for the Manufacturing Industry? Using Droopler
Creating a website for a manufacturing company requires thoughtful planning and customization of functionality to meet the needs of different user groups. Drupal, as a flexible CMS, offers tools to quickly and efficiently build web pages tailored to market requirements. In this article, we’ll discuss step-by-step how to create a modern and functional website for a manufacturing company using Drupal and its Droopler distribution.
LostCarPark Drupal Blog: Drupal Advent Calendar day 6 - Live Preview
With the launch of Drupal CMS will be a new trial experience, making it easier than ever for non-technical evaluators to try Drupal, without needing to set up a local environment or any special tools.
I spoke with Matt Glaman, who was leading the Live Preview track in the initial development stage.
Matt has done a lot of amazing work to allow a webserver running Drupal to run directly in the web browser on your computer. How does this work? Matt took PHP, along with a webserver and database engine, and compiled them into WebAssembly, which is a language that runs in the browser, a bit like…
TagsMorpht: Unleashing the power of Metatag custom tags
Reproducible Builds (diffoscope): diffoscope 284 released
The diffoscope maintainers are pleased to announce the release of diffoscope version 284. This version includes the following changes:
[ Chris Lamb ] * Simplify tests_quines.py::test_{differences,differences_deb} to use assert_diff and not mangle the expected test output. * Update some tests to support file(1) version 5.46. (Closes: reproducible-builds/diffoscope#395)You find out more by visiting the project homepage.
icecream!
Lots of KDE hacking these days, and that comes with compiling large amounts of code. Right now, I am installing, well building from source Plasma Mobile on an “old” laptop so I can test some patches natively on a touchscreen device. The machine has just two cores (hyperthreaded), so builds take rather long, especially if you build Qt and all that 80+ packages that are needed for a fully working Plasma system.
One of the tools that do an incredible job while being super flexible to use is icecream. Icecream (or “icecc“) allows you to distribute your build over multiple machines, it basically ships compile-jobs with all that’s needed to other machines on a local network, meaning you can parallelize your builds.
Icecream has this nice visualization tool, called icecream-monitor which you can stare at while your builds are running (in case you don’t have anyone handy for a sword-fight). In the screenshot you can see manta, the underpowered laptop doing a 32 parallel job build over the network. miro is my heavy workstation, 8 cores and 128GB of RAM, it duely gets the bulk of the work assigned, frame is my (Framework) laptop, which is also quite beefy, gets something to do too, but not taxed as heavily as that build monster in my basement office.
Icecream can be used with most environments that have you run your compiler locally. Different distros are no problem! Just a matching CPU architecture is needed. Icecream does its job by providing its own g++ and gcc binaries, which will relay the build jobs transparently to either your local machine or across the network. So you basically install it, adjust your PATH variable to make sure icecc’s g++ is found before your system’s compiler and start your build. Other machines you want to join in for the fun just need to run icecc-scheduler and they will be automatically discovered as build slaves on your network. If you want to further speed up builds, it works with ccache as well.
Please note that you only want to do this in a trusted environment, we’re shipping executables around the network without authorization!
Christian Ledermann: Trusted publishing ‐ It has never been easier to publish your python packages
Publishing Python packages used to be a daunting task, but not any more. Even better, it has become significantly more secure. Gone are the days of juggling usernames, passwords, or API tokens while relying on CLI tools. With trusted publishing, you simply provide PyPI with the details of your GitHub repository, and GitHub Actions takes care of the heavy lifting.
How to Publish Your Python Package with Trusted PublishingI will introduce a workflow that will publish your package to TestPyPi when a tag is created (on the development branch), or to PyPi when you merge to the main branch.
Prepare Your Package for PublishingEnsure your Python package follows PyPI’s packaging guidelines. At a minimum, you’ll need:
- A setup.py or pyproject.toml file defining your package metadata.
- Properly structured code with a clear directory layout.
- A README file to showcase your project on PyPI.
For a detailed checklist, refer to the Python Packaging User Guide.
Configure GitHub Actions in Your RepositoryLet's start by creating a new GitHub action .github/workflows/test-build-publish.yml.
This action will build your package and uploads the built wheel and the source distribution (SDist) as GitHub Actions artefacts.
Next, we add a step to publish to TestPyPI. This step will run whenever a tag is created, ensuring that the build from the previous step has completed successfully. Replace PROJECT_OWNER and PROJECT_NAME with the appropriate values for your repository.
This step downloads the artefacts created during the build process and uploads them to TestPyPI for testing.
In the last step, we will upload the package to PyPI when a pull request is merged into the main branch.
To ensure that only specific tags trigger the publishing workflow and maintain control over your release process.
Create a new environment test-release by navigating to Settings -> Environments in your GitHub repository.
Set up the environment and add a deployment tag rule.
Limit which branches and tags can deploy to this environment based on rules or naming patterns.
Limit which branches and tags can deploy to this environment based on naming patterns.
Configure the target tags.
The pattern [0-9]*.[0-9]*.[0-9]* matches semantic versioning tags such as 1.2.3, 0.1.0, or 2.5.1b3, but it excludes arbitrary tags like bugfix-567 or feature-update.
Repeat this for the release environment to protect the main branch in the same way, but this time targeting the main branch.
Set Up a PyPI Project and Link Your GitHub RepositoryCreate an account on TestPyPI if you don’t have one.
Navigate to your account, Publishing and add a new pending publisher.
Link your GitHub repository to the PyPI project by providing its name, your GitHub username, the repository name, the workflow name (test-build-publish.yml) and the environment name (test-release).
Repeat the above on PyPI with the environment name set to release.
Test the WorkflowNow whenever you create a tag on your development branch, it will trigger a release to be uploaded to TestPyPI and merging the development branch into main will upload a release to PyPI.
What Wasn't CoveredWhile this guide provides an introduction to trusted publishing workflows, there are additional steps and best practices you might consider implementing. For example, setting up branch protection rules can ensure only authorized collaborators can push tags or merge to protected branches, like main or develop. You can also enforce status checks or require pull request reviews before merging, adding another layer of quality assurance.
Have a look at my python-repository-template that covers additional enhancement to this workflow, such as requiring unit and static tests to pass, checking the package with pyroma and ensuring that your tag matches the version of your package with vercheck.
SummaryIf you've been holding back on sharing your work, now is the perfect time to try trusted publishing.
- Introducing 'Trusted Publishers' The Python Package Index Blog highlights a more secure publishing method that does not require long-lived passwords or API tokens to be shared with external systems
- Publishing to PyPI with a Trusted Publisher The official PyPI documentation to get started with using trusted publishers on PyPI.
- Building and testing Python in the official GitHub docs.