Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

.gitignore seems a bit too aggressive or make distclean isn't aggressive enough #97731

Copy link
Copy link
Closed
@smontanaro

Description

@smontanaro
Issue body actions

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.10only security fixesonly security fixes3.11only security fixesonly security fixes3.12only security fixesonly security fixesbuildThe build process and cross-buildThe build process and cross-builddeferred-blockertype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error

    Projects

    Status

    Done
    Show more project fields

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.