I'm adding resources for future reading for mine and Marie's #Python #packaging tutorial for #PyConUS, and I realised that I don't know any good #pytest tutorials for beginners. Does anyone have any reccommendations?
I'm adding resources for future reading for mine and Marie's #Python #packaging tutorial for #PyConUS, and I realised that I don't know any good #pytest tutorials for beginners. Does anyone have any reccommendations?
So #setuptools fun: if your source tree contains a symbolic link to a directory, setuptools may randomly either include the original directory in the source distribution, or move it where the symlink was, disregarding the original location.
So if you have:
a/a
a/b
a/c
b -> a
you'll randomly end up with either:
a/a a/b a/c (and no "b")
or:
b/a b/b b/c (and no "a")
How packages with multiple build systems to choose from (either officially supported, or user-maintained) work:
1. The package has a primary non-CMake build system.
2. A #CMake build system is added.
3. Random reverse dependencies start depending on CMake exports from given package.
4. Distributions start switching over to CMake.
5. CMake turns out to be broken (again) in the next release.
6. You don't know if you can switch back, because you have no clue if some of the reverse dependencies don't require CMake exports.
Wow! @brettcannon's PEP 751 “lock files format” has finally been accepted!
https://peps.python.org/pep-0751/
It's hard to overstate how big of a deal for the #Python #Packaging landscape this is!
A tool-agnostic format for per-platform/env dependency resolutions is what I've been dreaming of for years (https://github.com/jazzband/pip-tools/issues/1326#issuecomment-1834517252).
So, now that the urgent fires have been put out for the time being, let's talk what other fun stuff #setuptools are doing these days.
For example, they have implemented PEP 639 recently (new license metadata). While doing that, they immediately deprecated their previous `license-field` field, giving people until 2026-02-18 to update their projects. The deprecation warnings also gives a helpful hint that you need setuptools 77 for the new field, which was released… a week ago.
So yeah, setuptools pretty much tells you that you need to choose between the old solution that means that all the versions of your package using it will stop building next February, or the new solution which means that your package will now require a week-old setuptools release (and effectively kill support for EOL Python versions, for which some projects apparently still care).
And of course the #Python community will tell you to solve the problem by pinning dependencies. And guess what happens when people put arbitrary pins (say, <77) to silence this deprecation warning, and other people have >=77 dependency, because they use the new variant.
So… would you like to talk about flit, perhaps? Or hatchling?
PS. The best joke is that they're pointing at a packaging guide that hasn't even been updated yet and still states that setuptools do not implement PEP 639.
https://github.com/pypa/setuptools/blob/6ead555c5fb29bc57fe6105b1bffc163f56fd558/setuptools/config/_apply_pyprojecttoml.py#L100-L106
https://web.archive.org/web/20250324035753/https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license-files
"California banned polystyrene: So why is it still on store shelves?"
#US #USA #America #California #Polystyrene #Packaging
https://phys.org/news/2025-03-california-polystyrene-shelves.html
Domino meme:
1. #setuptools starting to finally normalize wheel filenames per PEP 491.
…
n. #PyCXX suddenly installing header files into `/usr/include/python*/cxx` instead of uppercase `CXX`.
Funny enough, it affects both #pip and #installer. Long story short, the include install path uses "distribution name", and in both cases the distribution name is apparently taken from the filename. Not sure if this is a bug or a feature, but I guess i'll file bugs. Installer even has a TODO item to determine whether they should be using original or normalized name.
https://social.treehouse.systems/@mgorny/114137227235533135
Yes, they did it. #setuptools literally made lots of #Python packages (such as requests) explode, apparently in order to resolve a problem with their own test suite. Sure, that stuff has been deprecated for a long time. But as I've said multiple times, *nobody* sees these deprecation warnings.
Well, unless they run #Gentoo, because we have literally the only Python package installer out there that catches and repeats setuptools deprecation warnings verbosely. But we don't have time to fix deprecations in upstream packages while upstreams are making sure to set up fires all over the place, all the time.
Lavera Men Sensitiv, eine Pflegeproduktserie für Männer, hat ein neues Verpackungsdesign erhalten. Im Zuge der Auffrischung des Packagings und Markendesigns wurde auch die Rezeptur der Produkte angepasst.
#Redesign #Packaging
https://www.designtagebuch.de/lavera-men-sensitiv-im-neuen-design/
Little penguins trapped in rubbish and starving
"The penguin likely starved to death because it couldn’t break free."
"March has been a bad month for Victoria's little penguins, with large numbers discovered dead on beaches in and around Warrnambool and west of Phillip Island. Those deaths have been linked to rising sea temperatures and overfishing of the penguin's natural prey."
>>
https://au.news.yahoo.com/aussies-asked-to-think-twice-after-devastating-find-in-25kg-of-rubbish-collected-at-new-pier-011501039.html
#birds #penguins #rubbish #entanglement #starvation #plastic #packaging #overfishing #NSW #wildlife
From pouch to pouch - a way of life
Slurping and slumping from toddler food pouch to smoothies to elderly food pouches
“Something you never saw 20 years ago that has become entirely normal is the sight of a young child in a pushchair slurping his or her lunch from the nozzle of a pouch. - a way of life that continues long after babyhood. Sucking smooth, sweet puree direct from a pouch is also a recipe for tooth decay.”
>>
https://www.theguardian.com/society/2025/mar/15/ultra-processed-babies-are-toddler-snacks-one-of-the-great-food-scandals-of-our-time
#food #packaging #foodpouch
Not enough package managers!
soar: A fast, modern package manager for static binaries, portable formats & more!
Distro-independent, supports automatic integration with existing packages & custom repos!
Written in Rust!
GitHub: https://github.com/pkgforge/soar
Pablum was a genuine breakthrough in nutrition, saving a myriad of babies from rickets and malnutrition.
Now imagine your brand being so bland it becomes the generic term for bland and things lacking in substance.
#Mozilla : "we’ve stepped away from making blanket claims that “We never sell your data”"
followed by a list of things that I don't want my #browser to do but Mozilla won't commit to.
@fedora with #Firefox 's #privacy focus no longer so clear, what are your options for preserving the privacy?
Is the official package going to be watched for problems and fixed by packagers?
Are you packaging forks?
A #PyPI riddle: one of the following projects is using trusted publishing (i.e. #SigStore signatures) and the other isn't. Can you tell which one does, and how can you tell? And yes, it's visible immediately on the top project page, you don't have to click anything.
https://pypi.org/project/ansible-keyring/
https://pypi.org/project/sampleproject/
Please CW your answers not to spoil. And if you can't, don't worry — this is one of the most horrible #UI ideas I've ever seen.