GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Conversation

Notices

  1. Embed this notice
    Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:06:12 JST Stargirl Stargirl

    So You Want to Solve Python Packaging: A Practical Guide

    First, the technical: Python is used by vastly different groups of people, some that don't identify as "developers". Those groups often have disparate expectations about how packaging should work. Some don't even know what a package is.

    In conversation Monday, 16-Jan-2023 20:06:12 JST from hachyderm.io permalink
    • Embed this notice
      rastilin (rastilin@aus.social)'s status on Monday, 16-Jan-2023 20:05:52 JST rastilin rastilin
      in reply to

      @stargirl

      I'm still upset that Python 3 broke Python 2.7 compatibility, I've still got systems built and running Python 2.7 and I always will.

      In conversation Monday, 16-Jan-2023 20:05:52 JST permalink
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:05:58 JST Stargirl Stargirl
      in reply to

      Go ahead and bookmark this so you can link to it every few months when another baby faced, naive, precious little developer thinks that they can slay the hydra because they only see one head.

      In conversation Monday, 16-Jan-2023 20:05:58 JST permalink
      Jake Hildreth (acorn) :blacker_heart_outline: repeated this.
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:05:59 JST Stargirl Stargirl
      in reply to

      So you want to fix Python packaging: you fucking can't. get lost.

      In conversation Monday, 16-Jan-2023 20:05:59 JST permalink
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:06:00 JST Stargirl Stargirl
      in reply to

      You gotta deal with the users and the stans. Wanna know why I stopped working on Python packaging? I got harassed for *months* because KR picked a fight with Reddit right when I dared to include pipenv on http://packaging.python.org. Fuck that.

      In conversation Monday, 16-Jan-2023 20:06:00 JST permalink

      Attachments

      1. No result found on File_thumbnail lookup.
        Python Packaging User Guide — Python Packaging User Guide
        The Python Packaging User Guide (PyPUG) is a collection of tutorials and guides for packaging Python software.
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:06:01 JST Stargirl Stargirl
      in reply to

      You gotta deal with downstream distributors and major users. Linux distros, Apple, Google, AWS, Anaconda, and so many more. Google's using Bazel to build their Python projects, good luck with that one!

      In conversation Monday, 16-Jan-2023 20:06:01 JST permalink
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:06:02 JST Stargirl Stargirl
      in reply to

      You gotta deal with the Python Core team and the steering council. They have consistently abdicated the details of packaging to the community. They aren't, at this time, very interesting in taking over packaging and telling the community how to manage their dependencies.

      In conversation Monday, 16-Jan-2023 20:06:02 JST permalink
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:06:03 JST Stargirl Stargirl
      in reply to

      You gotta deal with the politics: The PyPA which is completely volunteer and has all the responsibility of maintaining existing tools and practically no real authority or resources. They aren't a unified body, more of a loose collection of people that chat sometimes.

      In conversation Monday, 16-Jan-2023 20:06:03 JST permalink
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:06:04 JST Stargirl Stargirl
      in reply to

      You gotta convince a bunch of unpaid volunteers maintaining existing tools to give up their projects for your solution. Projects they built from the ground up for their own use case. You gotta write several PEPs and get them accepted.

      In conversation Monday, 16-Jan-2023 20:06:04 JST permalink
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:06:05 JST Stargirl Stargirl
      in reply to

      But let's assume for a moment that you can overcome those technical challenges. You can create a tool and workflow that works for the vast majority. Now you have to deal with people. You gotta convince a bunch of unpaid volunteers that you're right and that they should help.

      In conversation Monday, 16-Jan-2023 20:06:05 JST permalink
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:06:06 JST Stargirl Stargirl
      in reply to

      That's because web devs have different expectations. They *expect* to work with a packaging tool. They expect to find and install dependencies. They don't expect to work with a ton of native dependencies. They don't have the same problems.

      This only scratches the surface of the technical complexity here. The reason there are so many tools for managing Python dependencies is because Python is not a monoculture and different folks need different things.

      In conversation Monday, 16-Jan-2023 20:06:06 JST permalink
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:06:07 JST Stargirl Stargirl
      in reply to

      Fundamentally these users do not want to think about this shit, and they're a *huge* group of users. You know who does think about this shit? Web developers, and every time someone comes along with "Python packaging sucks and someone should fix it" they're a web dev.

      In conversation Monday, 16-Jan-2023 20:06:07 JST permalink
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:06:08 JST Stargirl Stargirl
      in reply to

      Precompilation is *hard*, especially for high-performance libraries. You can't just distribute a build will all the fancy vector extensions enabled cause someone on a different processor won't be able to use it. You wanna see a nightmare? Look at TensorFlow.

      In conversation Monday, 16-Jan-2023 20:06:08 JST permalink
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:06:09 JST Stargirl Stargirl
      in reply to

      The packages they use, however, are complex fucking monsters. They're a mix of C, C++, FORTAN, Haskell, Julia, and god knows what else. They don't want to waste time installing build tools and compiling these things. Their packages need to be precompiled and ready to go.

      In conversation Monday, 16-Jan-2023 20:06:09 JST permalink
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:06:10 JST Stargirl Stargirl
      in reply to

      So OS vendors want Python to be invisible to the user. They want it for system purposes, and they want to distribute python apps, scripts, and packages on their own terms. Cool. Let's pick another group: academics and researchers.

      They want to do their research. They don't want to program Python. They want to work their data, create visualizations, and very importantly: they want fellow researchers to be able to use their code. These folks don't really want to think about packaging.

      In conversation Monday, 16-Jan-2023 20:06:10 JST permalink
    • Embed this notice
      Stargirl (stargirl@hachyderm.io)'s status on Monday, 16-Jan-2023 20:06:11 JST Stargirl Stargirl
      in reply to

      Some don't even know they're using Python! Here's some examples: Python's in the Linux Standard Base and bunch of critical Linux stuff is written in Python. Distros gotta package those & their deps into their package database (deb/rpm).

      Most distros want nothing to do with the language-specific package manager. They want to manage everything though rpm/deb/portage/whatever and they don't want you fucking around with system packages. Ever got burned by Python included with macOS? Yeah, same deal

      In conversation Monday, 16-Jan-2023 20:06:11 JST permalink

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.