mirror of
				https://github.com/astral-sh/ruff.git
				synced 2025-10-31 20:08:19 +00:00 
			
		
		
		
	 1a3befe8d6
			
		
	
	
		1a3befe8d6
		
			
		
	
	
	
	
		
			
			## Summary Minor documentation update to make `mypy_primer` instructions a bit more verbose/helpful for running against a local branch ## Test Plan N/A
		
			
				
	
	
		
			69 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Running `mypy_primer`
 | |
| 
 | |
| ## Basics
 | |
| 
 | |
| `mypy_primer` can be run using `uvx --from "…" mypy_primer`. For example, to see the help message, run:
 | |
| 
 | |
| ```sh
 | |
| uvx --from "git+https://github.com/hauntsaninja/mypy_primer" mypy_primer -h
 | |
| ```
 | |
| 
 | |
| Alternatively, you can install the forked version of `mypy_primer` using:
 | |
| 
 | |
| ```sh
 | |
| uv tool install "git+https://github.com/hauntsaninja/mypy_primer"
 | |
| ```
 | |
| 
 | |
| and then run it using `uvx mypy_primer` or just `mypy_primer`, if your `PATH` is set up accordingly (see: [Tool executables]).
 | |
| 
 | |
| ## Showing the diagnostics diff between two Git revisions
 | |
| 
 | |
| To show the diagnostics diff between two Git revisions (e.g. your feature branch and `main`), run:
 | |
| 
 | |
| ```sh
 | |
| mypy_primer \
 | |
|     --type-checker ty \
 | |
|     --old origin/main \
 | |
|     --new my/feature \
 | |
|     --debug \
 | |
|     --output concise \
 | |
|     --project-selector '/black$'
 | |
| ```
 | |
| 
 | |
| This will show the diagnostics diff for the `black` project between the `main` branch and your `my/feature` branch. To run the
 | |
| diff for all projects we currently enable in CI, use `--project-selector "/($(paste -s -d'|' crates/ty_python_semantic/resources/primer/good.txt))\$"`.
 | |
| 
 | |
| You can also take a look at the [full list of ecosystem projects]. Note that some of them might still need a `ty_paths` configuration
 | |
| option to work correctly.
 | |
| 
 | |
| ## Avoiding recompilation
 | |
| 
 | |
| If you want to run `mypy_primer` repeatedly, e.g. for different projects, but for the same combination of `--old` and `--new`, you
 | |
| can use set the `MYPY_PRIMER_NO_REBUILD` environment variable to avoid recompilation of ty:
 | |
| 
 | |
| ```sh
 | |
| MYPY_PRIMER_NO_REBUILD=1 mypy_primer …
 | |
| ```
 | |
| 
 | |
| ## Running from a local copy of the repository
 | |
| 
 | |
| If you are working on a local branch, you can use `mypy_primer`'s `--repo` option to specify the path to your local copy of the `ruff` repository.
 | |
| This allows `mypy_primer` to check out local branches:
 | |
| 
 | |
| ```sh
 | |
| mypy_primer --type-checker ty \
 | |
|   --repo ./ruff \
 | |
|   --old main \
 | |
|   --new my/local-branch \
 | |
|   --project-selector '/beartype$' \
 | |
|   --debug \
 | |
|   --output concise
 | |
| ```
 | |
| 
 | |
| Notes:
 | |
| 
 | |
| - You might need to clean up `/tmp/mypy_primer` in order for this to work correctly.
 | |
| - This must be run from _outside_ the `ruff` repo.
 | |
| 
 | |
| [full list of ecosystem projects]: https://github.com/hauntsaninja/mypy_primer/blob/master/mypy_primer/projects.py
 | |
| [tool executables]: https://docs.astral.sh/uv/concepts/tools/#tool-executables
 |