home.social

#hatchling — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #hatchling, aggregated by home.social.

fetched live
  1. CW: GenderQuest phase 1 complete -- see display name

    Phase 1 of my #GenderQuest is complete. I have realized I am a woman, contrary to what I believed for 56 years and change. For now, I'm sticking with my the name I've gone by all my life, "Pat," as perhaps the most androgynous (shortened) given name in the English-speaking Western world.

    This toot is the first public component of my transition.

    No element of medical transition can or will ever happen due to my physical health, even aside from other barriers, and that's fine.

    I don't yet know where GenderQuest will go from here. Presentation, shapewear, name and/or pronouns in different settings, I just don't know. I'll probably start shaving my face for the first time in over twenty years.

    But I don't have to know. This is good for now.

    Thank you all my friends for your support, to date and ongoing.

    #Transgender #Transition #Transwoman #GenderIdentity #Hatching #Hatchling #Hatched

  2. Pyrus playing with his niece, Elana, by tying a bell onto a string and dangling it around her #elana #pyrus #gryphon #dragon #hatchling #cave #magma

  3. I need some help packaging a python module that I built. It references a few different python files, and .csv within the folder structure, and searching leads me to examples/tutorials that are either too simple, or way too complex. I can't find anything bridging the gap.

    Any blogs, courses, tutorial, or even as a last resort youtube videos, that may help me out? #python #packaging #flit #setuptools #hatchling

    The project that I'm trying to package is here - git.jmkengineering.com/JMK_Eng

  4. As sand temperatures continue to rise, concerns about the future of sea #turtles are growing. Hotter nests not only skew sex ratios – producing more females – but also reduce #hatchling survival, slow growth, and increase the likelihood of physical deformities.
    #MarineBiology #Ecology #ClimateChange #Environmental #sflorg
    sflorg.com/2025/09/mb09302501.

  5. co jest gorsze niż #setuptools? Paczka, która przechodzi na #Hatchling, ale wewnętrznie woła w paskudny sposób setuptools, żeby zbudować rozszerzenie w C — i w ten sposób ignoruje budowanie poza katalogiem źródłowym.

    #Gentoo #PEP517

  6. What's worse than #setuptools? A package switching over to #Hatchling, then internally calling setuptools in an awful way to build a C extension, completely bypassing out-of-tree builds.

    #Gentoo #PEP517

  7. Mama Swan & wee Attenborough encouraging the second cygnet to emerge from its egg flickr.com/photos/woolamaloo_g
    This was literally the first moments of life for this tiny fella. Welcome to the planet, little one. Can't believe how fortunate I was to witness this little miracle happening.

    #Edinburgh #Edimbourg #photography #photographie #nature #NestFest #Hatchling #birth #swans #cygnes #cygnets #Wildlife #UnionCanal

  8. Zapomniałem się pochwalić: w systemie budowania #hatchling jest błąd, który sprawia, że przypadkowo instalowany jest niewłaściwy zestaw plików, jeżeli buduje się w katalogu, do którego ścieżka przypadkiem pokrywa się z jednym z wpisów gitignore.

    Na przykład, jak projekt ignoruje "var/", a my budujemy paczkę w /var/tmp…

    github.com/pypa/hatch/issues/1

    #Gentoo #PEP517

  9. Oh, I forgot to post that: there's a bug in #hatchling that makes it randomly install the wrong files if you're building in a path that just happens to match one of the gitignore entries.

    Say, if upstream ignores "var/", and you happen to be building inside /var/tmp…

    github.com/pypa/hatch/issues/1

    #Gentoo #PEP517

  10. W sumie mogę dać parę rekomendacji systemów budowania #PEP517.

    Dla paczek w samym Pythonie:

    1. #flit_core (pypi.org/project/flit-core/) — leciutki, prosty, i nie ma zależności (za wyjątkiem włączonego tomli dla starszych wersji Pythona).

    2. #hatchling (pypi.org/project/hatchling/) — popularny, duża funkcjonalność, ale ma sporo włączonych zależności, a testy są zależne od reszty projektu hatch (przez co w #Gentoo się mocno z tym męczymy).

    Dla paczek z rozszerzeniami w C: #meson-python (pypi.org/project/meson-python/) — połączenie szerokiej funkcjonalności i poprawności mesona z dobrą integracją z Pythonem.

    Dla paczek z rozserzeniami w Ruście: #maturin (pypi.org/project/maturin/) — po prostu dobry system budowania dla tego typu paczek.

    Stanowczo odradzam:

    A. #setuptools — mnóstwo włączonych do projektu zależności, które wynajdują koło na nowo (które można zastąpić zewnętrznymi, które z kolei mają cykliczną zależność od setuptools), ciągłe wycofywanie starej funkcjonalności (której wciąż używa mnóstwo paczek), wiele nierozwiązanych problemów (np. równoległe budowanie plików C jest częściowo popsute), sporo długu technicznego, a jeżeli to nie wystarcza, to do tego strasznie powolny.

    B. #poetry-core — trudny do poprawnego użycia system budowania, w którym bardzo łatwo popełnić błąd (a zgłaszałem już wiele pomyłek, które ludzie robili migrując swoje projekty).

    C. Praktycznie każdy inny system budowania — pisanie nowych backendów stało się banalne, więc każdy musi mieć swój. Do tego często mają mnóstwo zależności, które wynajdują koło na nowo (jak już ktoś chce wynaleźć własny system budowania, to może równie dobrze pójść na całość i wynaleźć wszystko), brak doświadczenia i tym samym powtarzają te same błędy przeszłości. A jeżeli tego nie wystarczy, to dodawanie pod nie paczek do dystrybucji to tylko kupa roboty bez żadnej realnej korzyści.

    #Python

  11. I suppose I could use my experience to give some #PEP517 build system recommendations.

    For pure #Python packages:

    1. #flit_core (pypi.org/project/flit-core/) — it's lightweight and simple, and has no dependencies (in modern Python versions, for older Pythons it vendors tomli).

    2. #hatchling (pypi.org/project/hatchling/) — it's popular and quite powerful, but has many vendored dependencies and no stand-alone test suite (which makes it painful to maintain in #Gentoo).

    For Python packages with C extensions: #meson-python (pypi.org/project/meson-python/) — which combines the power and correctness of meson build system with good very Python integration.

    For Python packages with Rust extensions: #maturin (pypi.org/project/maturin/) — which is simply a good builder for precisely that kind of packages.

    Now, I strongly discourage:

    A. #setuptools — lots of vendored NIH dependencies (that can alternatively be unvendored for cyclic deps), lots of deprecations over time (we're still seeing tons of deprecation warnings all over the place), many unsolved bugs (e.g. parallel C extension builds are broken in a few ways), a lot of technical debt, and if all that wasn't enough, it's slow.

    B. #poetry-core — a very tricky build system with lots of pitfalls (I've reported a lot of mistakes done when migrating to it).

    C. Practically any other build system — writing new backends is trivial, so everyone and their grandmother must have one. And then, they often carry a lot of NIH dependencies (if you're reinventing a build system, you may reinvent everything else), lack experience and reintroduce the same bugs. And if that wasn't enough, packaging them in distributions is a lot of work for no real benefit to anyone.

  12. Jakiś czas temu dwa systemy budowania #PEP517 dorobiły się funkcji weryfikacji klasyfikatorów #PyPI ("trove classifiers"). Na pierwszy rzut oka, ma to sens: wszak warto poinformować autorów paczek od razu, jeżeli gdzieś popełniono błąd i paczka zostanie odrzucona. Problem stanowi jednak fakt, że ta weryfikacja dotyczy również budowania paczek lokalnie — a więc użytkowników #Gentoo.

    Funkcję zbudowano w oparciu o paczkę "trove-classifiers". Ilekroć nowy klasyfikator dodawany jest do PyPI, wydawana jest nowa wersja tej paczki. Jeżeli używamy narzędzi takich jak `build` czy `pip`, każdorazowo z sieci instalowana jest najnowsza wersja tej paczki. Na Gentoo natomiast, o ile nie wymusimy tego zależnościami, użytkownik może mieć przestarzałą. Jeżeli wówczas spróbuje zainstalować paczkę Pythona, która używa nowszych klasyfikatorów, otrzyma mylący błąd o błędnym klasyfikatorze. Mylący, bowiem: 1) wbrew komunikatowi, klasyfikator jest poprawny; 2) nawet gdyby nie był, to problem nas w ogóle nie dotyczy.

    Dlatego też wystąpiliśmy z prośbą o możliwości wyłączenia tej funkcji. Choć zajęło to trochę czasu, opiekun paczki #Hatchling wykazał zrozumienie dla naszego problemu i zaakceptował moją łatkę. Z kolei opiekun #setuptools… no cóż, podjął się długiej i bezowocnej debaty, która poskutkowała zignorowaniem trywialnego rozwiązania głównego problemu ("niepotrzebna komplikacja"). Zamiast tego, zaproponowano nam rozwiązanie dosyć wątpliwe — całkowite wyłączenie weryfikacji poprawności pliku `pyproject.toml`. Rozwiązanie nieakceptowalne z dwóch powodów: 1) dlatego, że setuptools polega na tej weryfikacji (a więc przy błędach w pliku moglibyśmy dostać zepsutą instalację zamiast błędu); 2) dlatego, że przy budowaniu każdej paczki rzuca paskudnym ostrzeżeniem. W praktyce więc znęcalibyśmy się nad użytkownikami Gentoo, zarzucając ich fałszywymi ostrzeżeniami, i niektórzy z nich prawdopodobnie niepotrzebnie zgłaszaliby problem autorom właściwej paczki.

    Nie używajcie setuptools.

    github.com/pypa/hatch/issues/1
    github.com/pypa/setuptools/iss

    #Python

  13. Some time ago two #PEP517 build systems introduced #PyPI trove classifier verification. At a first glance, it makes sense. After all, if you made a mistake somewhere, you'd rather know early than when you try to upload the package. The problem is, that the verification fires for people building packages locally too — including #Gentoo users.

    Now, this function was based on the #Python "trove-classifiers" package. Whenever a new classifier is introduced, a new release of the package is made. When you're building a package using tools such as `build` or `pip` (isolated build), the newest version of this package is being installed from the Internet. On the other, a Gentoo user may have an old version, unless we enforce an upgrade via package dependencies. Then building packages that use newer classifiers will fail, and with a confusing message too. Confusing because: 1) contrary to the message, the classifier is valid; and 2) even if it weren't, it doesn't affect us in any way.

    And so we asked for an ability to disable this. While it took some time, the #Hatchling showed understanding and eventually merged my patch. On the other hand, the #setuptools maintainer… well, started a long and tedious debate that resulted in ignoring the trivial solution to the actual problem (as "unnecessary complexity"). Instead, we were given another option: we could entirely disable `pyproject.toml` validation. It's not really acceptable, for two reasons: 1) because setuptools actually rely on this validation (so removing it could result in broken package installs instead of an error, if the file is not valid), and 2) because it produces an awful warning on every package build. So we'd end up bullying Gentoo users with false warnings, and some of them would probably end up filing invalid bugs to various upstreams.

    The bottom line is: don't use setuptools.

    github.com/pypa/hatch/issues/1
    github.com/pypa/setuptools/iss

  14. @ofek Hello and welcome to Mastodon!

    #Python people: give @ofek a follow, he's the author of the #Hatch project manager and the #Hatchling build backend, plus cool tools like github.com/ofek/pypinfo, and wrote #PEP723 "Inline script metadata"!