Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #4606

I

ISciNumPy.dev

Personal blog · iscinumpy.dev/postprogrammingscience

ISciNumPy.dev is a personal blog at iscinumpy.dev about programming and science. Since 2021, 17 different Hacker News readers have linked it 29 times, most often “Should you use upper bound version constraints?”. It is still writing: the last post was on 2026-08-03, and you can follow it by feed.

Visit the blog
29mentions?
17HN people?
2021–2026first – last linked?
Links on Hacker News per year · peak 7 in 2024

Too few sampled comments (18) to say how often HN recommends it.?

Why HN links it

Python packaging posts by an infrastructure maintainer, linked for advice on version bounds, Poetry defaults, PEP 723 inline script metadata and uv. Commenters usually cite them as support for their own points.

Summarised by Claude from a sample of 18 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

My favorite posts and series C++11 C++14 C++17 C++20 C++23 C++26 2→3 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 macOS setup AS setup Windows setup SSH AI My classes and books Modern CMake CompClass se-for-sci SIMPLE-Py My wor

Most-linked posts?

  1. Should you use upper bound version constraints?
    10 people · 17 mentions · first linked 2021-12-10
  2. /post/poetry-versions/
    3 people · 3 mentions · first linked 2022-04-28
  3. How we made Python's packaging library 3x faster
    3 people · 3 mentions · first linked 2026-01-09
  4. /post/pep723/
    2 people · 2 mentions · first linked 2024-08-24

What Hacker News says?

  1. >I just want to use Django package XYZ that says it's only compatible with Django 3.X on Django 4. Indeed. One of the biggest recurring themes I've seen in Python packaging discussion is that package metadata can't be updated after the fact. When you publish something that depends on the just-released foolib N, you don't know if it will be compatible with foolib N+1 (you might not even be completely sure it will wor…

    Comment linking /post/bound-version-constraints/

    on “A year of uv: pros, cons, and should you migrate”
  2. Submitted Working to Make Python Lazy as a story · 51 points

    HN discussion
  3. > As mentioned in the article, being able to have inline dependencies in a single-file Python script and running it naturally is just beautiful. The syntax for this ( https://peps.python.org/pep-0723/ ) isn't uv's work, nor are they first to implement it ( https://iscinumpy.dev/post/pep723/ ). A shebang line like this requires the tool to be installed first, of course; I've repeatedly heard about how people want too…

    Comment linking /post/pep723/

    on “A year of uv: pros, cons, and should you migrate”
  4. Submitted Should you use upper bound version constraints? as a story · 46 points

    HN discussion
  5. ... So if the installer isn't going to ignore the version requirements, and thereby install an unsupported package that causes a breakage, then there isn't a problem with "scripts being broken because people didn't pin their dependencies". The packages listed in the PEP 723 metadata get installed by an installer, which resolves the listed (unpinned) dependencies to concrete ones (including transitive dependencies),…

    Comment linking /post/bound-version-constraints/

    on “Fun with uv and PEP 723”
  6. Submitted Should You Use Upper Bound Version Constraints? as a story · 39 points

    HN discussion
  7. https://iscinumpy.dev/post/poetry-versions/

    Comment linking /post/poetry-versions/

    on “Rye: A Hassle-Free Python Experience”
  8. Submitted Should You Use Upper Bound Version Constraints? as a story · 3 points

    HN discussion
  9. Relevant: https://iscinumpy.dev/post/bound-version-constraints/ Semver is hard; you never know what will break at least one of your users (see Hyrum's law), but on the other hand, clear backwards-compatibility breaks will often not affect a large fraction of users - if they preemptively declare that they won't support your next version, they may prevent Pip from finding a set of versions that would actually work jus…

    Comment linking /post/bound-version-constraints/

    on “Uv's killer feature is making ad-hoc environments easy”
  10. Submitted Starting with Agentic AI as a story · 2 points

    HN discussion
  11. > We can also make low-level optimizations during resolution, e.g., in version parsing, that are not possible in pure Python code. As a complete aside, uv can and does do this, but for this particular optimization I'm not sure how much absolute time it ends up saving compared to pure Python in real world resolution scenarios. uv's total memory usage isn't that much leaner than pip's, and for parsing speed it turned…

    Comment linking /post/packaging-faster/

    on “uv: Deduplicate all files in the wheel cache”
  12. Submitted How we made Python's packaging library 3x faster as a story · 1 points

    HN discussion
  13. Yes and no. There are different types of dependencies, and there are different rules for them, but here's an overview of the best practices: 1. For applications, scripts and services (i.e. "executable code"), during development, pin your direct dependencies; ideally to the current major or minor version, depending how much you trust their their authors to follow SemVer. Also make sure you regularly update and retest…

    Comment linking /post/bound-version-constraints/

    on “State of Python 3.13 performance: Free-threading”
  14. Submitted How we made Python's packaging library 3x faster as a story · 1 points

    HN discussion
  15. Except Poetry's recommendations/decisions around version capping doesn't make sense for libraries. https://iscinumpy.dev/post/bound-version-constraints/

    Comment linking /post/bound-version-constraints/

    on “PDM: A Modern Python Package Manager”
  16. Submitted Should You Use Upper Bound Version Constraints? as a story · 1 points

    HN discussion
  17. As a Python infra person, I would refine that to: If you're building an application, use Poetry. If you're building a library, use Flit. Use PEP621 metadata in pyproject.toml regardless. Poetry is much more focused on managing dependencies for applications than dealing with libraries that have to be used by other libraries or applications. See this deep discussion for some timely/relevant examples: https://iscinumpy…

    Comment linking /post/bound-version-constraints/

    on “PDM: A Modern Python Package Manager”
  18. Submitted Version Capping Is Evil as a story · 1 points

    HN discussion
  19. > What does this offer? Referring to the entire category in general: mainly, it offers to keep track of what you've installed, and help you set up reproducible scripts to install the same set of dependencies. Depending on the specific tool, additional functionality can vary widely. (Which is part of why there's no standard: there's no agreement on what the additional functionality should be.) > why do people conside…

    Comment linking /post/bound-version-constraints/

    on “Uv, a fast Python package and project manager”
  20. Cargo and Poetry treat different major versions of software as effectively different packages by default. However I've seen pushback against upper version bounds (which putting different major versions under different names is an extension of): https://iscinumpy.dev/post/bound-version-constraints/ . I'm not sure how to feel myself.

    Comment linking /post/bound-version-constraints/

    on “Google Analytics 4”
  21. I happen to have built the interpreters (not an entire toolchain) from source. But I could equally well have obtained them from a PPA or whatever else. On Windows I could have used the official installers. The point is that once I have base environments, creating venvs is trivial. (And really, the experience of building Python from source on Mint was about as smooth as I could have ever hoped for.) >when you update…

    Comment linking /post/bound-version-constraints/

    on “Astral: Next-Gen Python Tooling”
  22. From what I understand, Hatch fixes a core failure of Poetry & PDM: if you have a tool that is not a library (say Black), it should not be able to collide with another tool you are using (say TensorFlow). For a while, black and TensorFlow could not be installed in the same environment due to bad upper caps (In Python, never upper cap without proof it fails or will fail, see https://iscinumpy.dev/post/bound-version-c…

    Comment linking /post/bound-version-constraints/

    on “Show HN: Hatch 1.0.0 – Modern, extensible Python project management”
  23. Poetry does several things by default that are bad for libraries - see https://iscinumpy.dev/post/poetry-versions/ for some details.

    Comment linking /post/poetry-versions/

    on “Show HN: Hatch 1.0.0 – Modern, extensible Python project management”
  24. oh hi, sorry for the late reply. indeed you are right; i was typing from my phone and was a bit too hasty. i am not a fan of poetry after reading these; TLDR poetry does not support PEP621 about pyproject.toml either, and i feel this is the direction the python community has been going towards recently. * https://iscinumpy.dev/post/bound-version-constraints/ * https://iscinumpy.dev/post/poetry-versions/ also pdm is…

    Comment linking /post/poetry-versions/

    on “Making pip installs a little less slow”
  25. To discourage bash outside shell one-liners (where it is appropriate), fabric/invoke could be used. Bash/ssh commands are glued together using Python: https://docs.fabfile.org/en/latest/getting-started.html#adde... If you are Python dev, you could specify Python dependencies for script using pep 723 https://iscinumpy.dev/post/pep723/ (nix might be an overkill). For notebooks, workflows, personal playbooks, notes Org…

    Comment linking /post/pep723/

    on “Create an internal CLI using Just”
  26. baggiponte · 2022-12-21Recommends
    I wholeheartedly recommend PDM as a modern python package management tool: https://pdm.fming.dev/latest/ * greater PEP compliance with respect to poetry (and no upper boundary constraints on packages) * support for scripting * parallel installation Here is the opinion of somebody way more qualified than me: - https://iscinumpy.dev/post/poetry-versions/ - https://iscinumpy.dev/post/bound-version-constraints/

    Comment linking /post/bound-version-constraints/

    on “A not so unfortunate sharp edge in Pipenv”
  27. Yes, but it's (probably) the least worse thing they can do given how the "PyPI" ecosystem behaves. As PyPI does not allow replacement of artefacts (sdists, wheels, and older formats), and because there is no way to update/correct metadata for the artefacts, unless the uploader knew at upload time of incompatibilities between their package and and the upper-bounded reference (whether that is the Python interpreter or…

    Comment linking /post/bound-version-constraints/

    on “How uv got so fast”

Search all of HN for iscinumpy.dev

Linked by the same people?