Metadata-Version: 2.4
Name: upgrade-all
Version: 0.1.0
Summary: Upgrade every installed package to the latest PyPI release — the 'pip upgrade-all' command pip never shipped.
Project-URL: Homepage, https://github.com/yourname/pip-upgrade-all
Project-URL: Issues, https://github.com/yourname/pip-upgrade-all/issues
License: MIT
License-File: LICENSE
Keywords: packages,pip,update,upgrade
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Installation/Setup
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.9
Requires-Dist: pip>=22.0
Description-Content-Type: text/markdown

# pip-upgrade-all

> The `pip upgrade-all` command pip never shipped.

Upgrades every package installed in the current Python environment to its
latest release on PyPI — using pip's own internal machinery, so resolution,
wheel caching, and hash-checking all work exactly as they do with a normal
`pip install -U` call.

## Install

```sh
pip install pip-upgrade-all
```

## Usage

```
pip-upgrade-all [options]
```

| Flag | Short | Description |
|------|-------|-------------|
| `--dry-run` | `-n` | Print what would be upgraded without doing anything |
| `--skip PKG` | `-s PKG` | Skip a package (repeatable) |
| `--user` | | Pass `--user` through to pip |
| `--index-url URL` | `-i URL` | Use a custom package index |
| `--verbose` | `-v` | Show pip's full output |
| `--version` | | Print version and exit |

### Examples

```sh
# Upgrade everything
pip-upgrade-all

# See what would change without touching anything
pip-upgrade-all --dry-run

# Upgrade everything except pip and setuptools
pip-upgrade-all --skip pip --skip setuptools

# Use a private index
pip-upgrade-all --index-url https://my.artifactory.example/simple/

# Pass extra flags straight through to pip (after --)
pip-upgrade-all -- --no-deps
```

### As a module

```sh
python -m pip_upgrade_all
```

### Programmatic API

```python
from pip_upgrade_all.__main__ import upgrade_all

exit_code = upgrade_all(skip=["pip", "setuptools"], verbose=True)
```

## Why does this exist?

The pip maintainers [decided](https://github.com/pypa/pip/pull/10491) that
environment-wide upgrade management is out of pip's scope. Fair enough —
but the need is real. This package fills that gap with a tiny, focused tool
that does exactly one thing.

## Caveats

- Upgrades are attempted in alphabetical order. If package A depends on an
  old version of B and you upgrade both, the resolver may complain. Use
  `--skip` to exclude packages you want to pin.
- Editable installs (`pip install -e .`) are included. Use `--skip` to
  exclude them if needed.
- System-managed Python environments (Homebrew, distro packages) may
  reject upgrades without `--user`.

## License

MIT
