Releases: pypa/pipx
Releases · pypa/pipx
Release list
1.16.0
What's Changed
- 📝 docs: restore the 1.16.0 changelog fragments by @gaborbernat in #1961
Full Changelog: 1.15.2...1.16.0
1.15.2
1.15.1
What's Changed
- Keep trash cleanup non-fatal for locked files by @cyphercodes in #1848
- Fix
--withbeing dropped for PEP 723 scripts on the pip backend by @2ykwang in #1849 - Fix uninject leaving man page symlinks behind by @sronix in #1854
- Refresh metadata after runpip installs by @itscloud0 in #1855
- 🐛 fix(spec): accept local VCS URLs by @gaborbernat in #1859
- 🐛 fix(install): resolve local find-links by @gaborbernat in #1860
- 🐛 fix(ensurepath): configure global PATH by @gaborbernat in #1861
- 🐛 fix(metadata): tolerate corrupt files by @gaborbernat in #1863
- 🐛 fix(run): translate uv pip options by @gaborbernat in #1864
- 🐛 fix(install): keep force out of metadata by @gaborbernat in #1865
- 🐛 fix(paths): discover self-managed install by @gaborbernat in #1862
- 🧪 test(metadata): cover encoder fallback by @gaborbernat in #1866
- ♻️ refactor(run): order uv helpers after callers by @gaborbernat in #1867
- 🐛 fix(shared-libs): preserve pip arguments by @gaborbernat in #1868
- 🐛 fix(install): preserve editable argument by @gaborbernat in #1870
- 🐛 fix(install): resolve attached pip paths by @gaborbernat in #1871
- 🐛 fix(metadata): use atomic file replacement by @gaborbernat in #1869
- 🐛 fix(upgrade): preserve injected pip args by @gaborbernat in #1872
- 🐛 fix(uninject): remove suffixed apps by @gaborbernat in #1873
- 🐛 fix(environment): return user values by @gaborbernat in #1874
- 🐛 fix(emojis): handle missing stderr by @gaborbernat in #1875
- 🐛 fix(paths): ignore empty values by @gaborbernat in #1876
- 🐛 fix(cleanup): guard trash moves by @gaborbernat in #1877
- 🐛 fix(venv): parse metadata versions by @gaborbernat in #1878
- 🐛 fix(completion): slice canonical prefix by @gaborbernat in #1879
- 🐛 fix(interpreter): skip corrupt builds by @gaborbernat in #1880
- 🐛 fix(unpin): list changed packages by @gaborbernat in #1881
- 🐛 fix(run): skip cache tag sweep by @gaborbernat in #1882
- 🐛 fix(paths): defer path warnings by @gaborbernat in #1884
- 🐛 fix(animate): join spinner thread by @gaborbernat in #1883
- 🐛 fix(shared): enforce pip floor by @gaborbernat in #1885
- 🐛 fix(standalone): handle unsupported hosts by @gaborbernat in #1886
- 🐛 fix(standalone): filter tar extraction by @gaborbernat in #1887
- 🐛 fix(standalone): support early Python 3.10 by @gaborbernat in #1888
- 🐛 fix(standalone): bound network requests by @gaborbernat in #1889
- 🐛 fix(install): skip no-op maintenance by @gaborbernat in #1890
- ⚡ perf(shared): cache validity checks by @gaborbernat in #1891
- ⚡ perf(venv): cache site-packages path by @gaborbernat in #1892
- ⚡ perf(uninstall): inspect legacy venv once by @gaborbernat in #1893
- fix(run): infer app name for VCS URLs by @ychampion in #1894
- ⚡ perf(run): reuse PATH lookup by @gaborbernat in #1895
- ⚡ perf(cli): defer venv completion scan by @gaborbernat in #1896
- ⚡ perf(python): resolve default lazily by @gaborbernat in #1897
- ⚡ Index installed distributions during inspection by @gaborbernat in #1898
- ⚡ Compute environment values on demand by @gaborbernat in #1899
- ⚡ Reuse environment metadata during interpreter upgrades by @gaborbernat in #1900
- ⚡ Cache resolved context paths by @gaborbernat in #1901
- feat(install): reconcile existing packages with specs by @ychampion in #1902
- 🐛 fix(uninject): handle locked Windows apps by @gaborbernat in #1903
- 🐛 fix(cli): reject Windows alternate paths by @gaborbernat in #1904
- 🐛 fix(standalone): support Windows ARM64 by @gaborbernat in #1905
- 🐛 fix(run): preserve Windows console encoding by @gaborbernat in #1906
- 📝 docs(scope): define project boundaries by @gaborbernat in #1907
- 🐛 fix(shared): serialize maintenance by @gaborbernat in #1909
- ✨ feat(output): add upgrade results by @gaborbernat in #1910
- ✨ feat(shared): allow skipping maintenance by @gaborbernat in #1911
- ✨ feat(install): guide library setup by @gaborbernat in #1913
- ✨ feat(pin): add scriptable output by @gaborbernat in #1918
- Install pipx manpage from wheels by @gaborbernat in #1914
- ✨ feat(uninstall): add scriptable output by @gaborbernat in #1917
- 🐛 fix(cli): use per-environment state locks by @gaborbernat in #1915
- ✨ feat(health): repair broken environments by @gaborbernat in #1919
- ✨ feat(outdated): list available upgrades by @gaborbernat in #1916
- ✨ feat(expose): hide application resources by @gaborbernat in #1920
- 🐛 fix(list): show copied injected apps by @gaborbernat in #1921
- ✨ feat(install): require application names by @gaborbernat in #1922
- 🐛 fix(uv): allow forced reinstalls by @gaborbernat in #1925
- ✨ feat(install): support PEP 751 lock files by @gaborbernat in #1923
- ✨ feat(inject): support main-package extras by @gaborbernat in #1926
- ✨ feat(manifest): sync managed tools by @gaborbernat in #1929
- ✨ feat(expose): select dependency apps by @gaborbernat in #1928
- ✨ feat(policy): add dependency cooldowns by @gaborbernat in #1930
- ⚡ perf(upgrade): check updates in parallel by @gaborbernat in #1931
- ✨ feat(install): add selectable output by @gaborbernat in #1932
- ✨ feat(cache): manage run environments by @gaborbernat in #1933
- 🐛 fix(install): report structured failures by @gaborbernat in #1934
- ✨ feat(exec): run installed applications by @gaborbernat in #1935
- ✨ feat(inject): add selectable output by @gaborbernat in #1936
- 🐛 fix(expose): preserve colliding resources by @gaborbernat in #1937
- 🐛 fix(paths): preserve home symlinks by @gaborbernat in #1938
- ✨ feat(run): pass Python interpreter args by @gaborbernat in #1940
- ✨ feat(run): normalize inferred names by @gaborbernat in #1939
- 🐛 fix(shared): reject broken pip by @gaborbernat in #1941
- ✨ feat(install): persist PEP 723 scripts by @gaborbernat in #1942
- 🐛 fix(script): create Windows launchers by @gaborbernat in #1944
- ✨ feat(output): standardize format selection by @gaborbernat in #1943
- 🐛 fix(tests): isolate local_extras builds from the shared checkout by @gaborbernat in #1949
- ✨ feat(install): stream verbose installer output by @gaborbernat in #1945
- ✨ feat(list): select installed packages by name by @Samielakkad in #1948
- 🐛 fix(paths): use the platform directories for home and cache by @flying-sheep in #1947
- ✨ feat(install): show the installer download progress bar by @gaborbernat in #1950
- ✨ feat(reset): add pipx reset to start over from a fresh install by @gaborbernat in #1951
- ✨ feat(expose): link the completion scripts a package ships by @gaborbernat in #1952
- ✨ feat(install): honour the Python a package requires by @gaborbernat in #1953
- ✨ feat(reinstall): report through the shared renderer by @gaborbernat in #1954
- ✨ feat(output): report the scriptable commands as data by @gaborbernat in #1955
- 🐛 fix: harden pipx and modernize its tooling and docs by @gaborbernat...
1.15.0
1.14.1
What's Changed
- Use exact version in GHA comments by @facutuesca in #1830
- Preserve installer errors during package name detection by @marko1olo in #1836
- Fix pipx.util import cycle by @marko1olo in #1831
- Expose man pages for editable local installs by @marko1olo in #1832
- Restore package after interrupted reinstall by @puneetdixit200 in #1829
- Fix inject --force reinstall behavior by @marko1olo in #1833
- Fix pin --injected-only for pinned apps by @marko1olo in #1835
New Contributors
- @marko1olo made their first contribution in #1836
- @puneetdixit200 made their first contribution in #1829
Full Changelog: 1.14.0...1.14.1
1.14.0
What's Changed
- ci: declare workflow-level contents: read on 3 remaining workflows by @arpitjain099 in #1822
- Fix inject option parsing with --force before dependencies by @bubaizhanshen in #1820
- docs: fix self-managed ensurepath command by @EddieBSN in #1823
- chore(ci): restrict OIDC token to publish job by @facutuesca in #1826
- Add --no-path-check to skip the on-PATH check in pipx run by @findepi in #1825
- Add zizmor workflow and address findings by @facutuesca in #1827
- Fix release push auth with persist-credentials: false by @gaborbernat in #1828
New Contributors
- @arpitjain099 made their first contribution in #1822
- @bubaizhanshen made their first contribution in #1820
- @EddieBSN made their first contribution in #1823
- @facutuesca made their first contribution in #1826
- @findepi made their first contribution in #1825
Full Changelog: 1.13.0...1.14.0
1.13.0
What's Changed
- Add shared libs auto-upgrade opt-out by @Herrtian in #1809
- Fix app script shebang isolation by @sjh9714 in #1819
- Update deprecation message in get-pipx.py; obsoleted, not deprecated by @Spitfire1900 in #1813
- docs: clarify runpip cache warnings by @Sean-Kenneth-Doherty in #1815
- Refresh legacy standalone Python index cache by @Sean-Kenneth-Doherty in #1814
New Contributors
- @sjh9714 made their first contribution in #1819
- @Sean-Kenneth-Doherty made their first contribution in #1815
Full Changelog: 1.12.0...1.13.0
1.12.0
What's Changed
- feat: Support always fetching a standalone python interpreter by @13steinj in #1663
- ✨ feat(backends): add opt-in uv backend by @gaborbernat in #1806
Full Changelog: 1.11.2...1.12.0
1.11.2
What's Changed
- ci: bump setup-uv to maintained tag scheme by @henryiii in #1782
- ci: group dependabot updates by @henryiii in #1785
- feat: drop Python 3.9 by @henryiii in #1786
- chore: add towncrier default cats by @henryiii in #1787
- 🐛 fix(interpreter): resolve PIPX_DEFAULT_PYTHON like --python by @gaborbernat in #1791
- fix(#1575): Prevent CWD from being added to sys.path during subprocess calls by @picassothe3rd in #1792
- fix(main): don't treat existing CWD dir as package path by @Bojun-Vvibe in #1797
- chore: pytest log_level is better than log_cli_level by @henryiii in #1689
- Add help subcommand alias by @Herrtian in #1803
- Refactor/main dispatch set defaults by @Abdullah2240 in #1804
New Contributors
- @picassothe3rd made their first contribution in #1792
- @Bojun-Vvibe made their first contribution in #1797
- @Herrtian made their first contribution in #1803
- @Abdullah2240 made their first contribution in #1804
Full Changelog: 1.11.1...1.11.2
1.11.1
What's Changed
- 🐛 fix(uninject): preserve shared dependencies by @gaborbernat in #1767
- 🐛 fix(venv): support non-Latin Windows usernames by @gaborbernat in #1768
- 🐛 fix(install): show version and suggest upgrade by @gaborbernat in #1769
- 🐛 fix(install): ignore PIP_TARGET env var by @gaborbernat in #1770
- 🐛 fix(uninject): remove dependency app symlinks by @gaborbernat in #1771
- 🐛 fix(cli): error on -v/-q before subcommand by @gaborbernat in #1772
- 🐛 fix(shared_libs): remove setuptools after creation by @gaborbernat in #1773
Full Changelog: 1.11.0...1.11.1