Bug report
I recently moved from Linux back to a Mac. After a bunch of rsync commands I started to make sure stuff worked. When I got to my cpython repo, I couldn't get test_tools to pass because it continued to try and find a nonexistent Conda version of Python 3.9. (That always existed on my Linux box, so the problem was masked there.) Af first, I thought it was the Conda setup on the Mac, but eventually realized that the .../Doc/venv/binpython3 symlink was to the old Linux path. I eventually dumped .../Doc/venv altogether, after which everything worked as expected.
Your environment
My old environment was Ubuntu 22.04 LTS with a miniconda installation whose base Python executable was 3.9. My new environment is a Mac M1 running Monterey with a miniconda installation also using 3.9 as its base Python interpreter. The difference in paths though (/home/skip/miniconda3/... vs /Users/skip/miniconda3/...) exposed the problem.
- CPython versions tested on:
Up-to-date CPython repo on main branch.
- Operating system and architecture:
MacOS Monterey (M1 architecture)
Proposed solution:
While it's nice that the .gitignore file hides a bunch of extraneous detail, in this case I think it might have been nice if Doc/venv was revealed as not under Git's control. Alternately, it seems like make distclean should remove that directory.
Oddly enough, looking at the docclean target in the top-level Makefile, I see that it doesn't use the clean target in Doc/Makefile to do its dirty work. Nor is it used by any of the cleaner targets in that file.
docclean:
-rm -rf Doc/build
-rm -rf Doc/tools/sphinx Doc/tools/pygments Doc/tools/docutils
The two targets don't even clean up the same cruft. Here are the cleaner targets from Doc/Makefile
clean: clean-venv
-rm -rf build/*
clean-venv:
rm -rf $(VENVDIR)
Doc/tools/{sphinx,pygments,docutils} doesn' exist after executing make -C Doc html. I suspect the docclean target could simply be replaced by make -C Doc clean, and made a dependency of the distclean target.
Bug report
I recently moved from Linux back to a Mac. After a bunch of
rsynccommands I started to make sure stuff worked. When I got to my cpython repo, I couldn't gettest_toolsto pass because it continued to try and find a nonexistent Conda version of Python 3.9. (That always existed on my Linux box, so the problem was masked there.) Af first, I thought it was the Conda setup on the Mac, but eventually realized that the.../Doc/venv/binpython3symlink was to the old Linux path. I eventually dumped.../Doc/venvaltogether, after which everything worked as expected.Your environment
My old environment was Ubuntu 22.04 LTS with a miniconda installation whose base Python executable was 3.9. My new environment is a Mac M1 running Monterey with a miniconda installation also using 3.9 as its base Python interpreter. The difference in paths though (
/home/skip/miniconda3/...vs/Users/skip/miniconda3/...) exposed the problem.Up-to-date CPython repo on main branch.
MacOS Monterey (M1 architecture)
Proposed solution:
While it's nice that the
.gitignorefile hides a bunch of extraneous detail, in this case I think it might have been nice ifDoc/venvwas revealed as not under Git's control. Alternately, it seems likemake distcleanshould remove that directory.Oddly enough, looking at the
doccleantarget in the top-levelMakefile, I see that it doesn't use thecleantarget inDoc/Makefileto do its dirty work. Nor is it used by any of the cleaner targets in that file.The two targets don't even clean up the same cruft. Here are the cleaner targets from
Doc/MakefileDoc/tools/{sphinx,pygments,docutils}doesn' exist after executingmake -C Doc html. I suspect thedoccleantarget could simply be replaced bymake -C Doc clean, and made a dependency of thedistcleantarget.make docclean#98982make docclean(GH-98982) #99024make docclean(GH-98982) #99025