I just updated my subversion (aka svn) server from FreeBSD 15.0-RELEASE-p9 to 15.1-RELEASE-p1. One of the steps is to run `pkg update` and it output: ``` New packages to be INSTALLED: py312-packaging: 26.2 [amd64-15-1-default] python312: 3.12.13_3 [amd64-15-1-default] Installed packages to be REINSTALLED: glib-2.86.4,2 [amd64-15-1-default] (direct dependency changed: python312) python3-3_4 [amd64-15-1-default] (direct dependency changed: python312) ``` I believe we had python 3.11 before. I proceeded with everything it suggested. Most things worked after, except we were unable to commit to svn. After some debugging, we found the cause was that we needed the `py312-subversion` package, whereas we had the `py311-subversion` package. Installing manually with `pkg install py312-subversion` added the new one and removed the old one: ``` The following 2 package(s) will be affected (of 0 checked): New packages to be INSTALLED: py312-subversion: 1.14.5 [amd64-15-1-default] Installed packages to be REMOVED: py311-subversion: 1.14.5 Number of packages to be removed: 1 Number of packages to be installed: 1 ``` This solved the svn commit issue. What I consider to be a bug is that no conflict was detected and nothing was warned about here. Once pkg decided to install `python312` should it not have raised some flag about the fact that we had `py311-subversion`?
The default Python was switched to 3.12. Please see UPDATING for details, including a way to help switch everything over. No conflict or warning is correct.
>The default Python was switched to 3.12. I figured as much. But the release notes don't even contain the word "python", see: https://www.freebsd.org/releases/15.1R/relnotes/ >No conflict or warning is correct. Why? It's not a pleasant upgrade experience.
Python is not, and has never been, a part of the base system. Ports has its own UPDATING file. With how we package Python in ports, it is generally possible to have multiple Python distributions/versions present in the environment, unlike some other operating system packaging systems. Files specific to a Python package are generally contained within a particular Python distribution's site-packages. Some packages, like py-subversion, do install files outside of site-packages, so only then would a conflict happen.