News for hackers. Stuff that matters.
Re:OpenBSD won't update Firefox, advises users to switch to ESR by Avamander on Saturday January 11, 2020 @08:31PM (#22023798)
> praying my Python and other projects survive, just because I want a browser update or a security fix.

You mean you aren't familiar with Python's virtual environment system exactly intended for isolating development dependencies from system ones but you're blaming the distribution. Please.

Re:OpenBSD won't update Firefox, advises users to switch to ESR by rleigh on Sunday January 12, 2020 @05:25AM (#22025551)
Virtualenvs don't protect you completely. If any of the modules in the virtualenv depend upon libraries on the host system, and a lot of Python modules do either directly or indirectly, then there is a chance of breakage if any of the ABIs of these modules break or there's an incompatible ABI between any of the modules.

Even virtualenvs themselves can cause the breakage. Take "pylibtiff". It embeds a copy of libtiff. But, it's old and incompatible with other libraries on the base system. This can be libraries it depends upon, or it could be another copy of the same library. Either way, virtualenvs can cause more problems than they solve.

Re:OpenBSD won't update Firefox, advises users to switch to ESR by sunaurus on Sunday January 12, 2020 @03:03AM (#22025117)
None of my virtualenvs (on Linux or on OS X) survived the 3.7 -> 3.8 upgrade. Are you saying they shouldn't have broken?
Re:OpenBSD won't update Firefox, advises users to switch to ESR by pmontra on Sunday January 12, 2020 @04:05AM (#22025280)
Virtualenv lets you use only a Python interpreter that's already installed on your system. Usually the choice is between the latest v2 and v3 interpreter, at least on Debian derivatives. Every virtualenv is autoupgraded each time the OS upgrades its Pythons.

If you want to use multiple versions of Python and pin them, you should use something like asdf [1] and its Python plugin [2]. It's a version manager with support for many languages and more. I used it for Elixir, Node, PHP, Ruby and even PostgreSQL (I need different database versions in different projects.) I never used it for Python because I'm OK with being on the latest version so far.

With asdf I would expect to do something like this

  asdf install python 3.7.5
  mkdir my375project
  cd my375project
  asdf local python 3.7.5 # pick the version to use here
  python3 -m venv py375 --python=~/.asdf/installs/python/3.7.5/bin/python
  ~/.virtualenvs/py375/bin/activate
This virtualenv is going to stay on 3.7.5 forever.

[1] https://github.com/asdf-vm/asdf

[2] https://github.com/danhper/asdf-python