{"id":29604592,"url":"https://github.com/bhrutledge/pip-tools-outdated","last_synced_at":"2026-02-05T06:31:06.620Z","repository":{"id":71236627,"uuid":"320045848","full_name":"bhrutledge/pip-tools-outdated","owner":"bhrutledge","description":"Identifying outdated dependencies with pip-tools","archived":false,"fork":false,"pushed_at":"2022-10-28T15:04:16.000Z","size":12,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-20T15:40:03.251Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bhrutledge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-12-09T18:32:59.000Z","updated_at":"2022-11-01T16:00:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"3fe3653a-27a9-4ae5-9b57-b7d9ba5d26a9","html_url":"https://github.com/bhrutledge/pip-tools-outdated","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bhrutledge/pip-tools-outdated","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhrutledge%2Fpip-tools-outdated","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhrutledge%2Fpip-tools-outdated/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhrutledge%2Fpip-tools-outdated/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhrutledge%2Fpip-tools-outdated/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bhrutledge","download_url":"https://codeload.github.com/bhrutledge/pip-tools-outdated/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhrutledge%2Fpip-tools-outdated/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29114910,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T05:31:32.482Z","status":"ssl_error","status_checked_at":"2026-02-05T05:31:29.075Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-20T15:37:42.520Z","updated_at":"2026-02-05T06:31:06.615Z","avatar_url":"https://github.com/bhrutledge.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Identifying outdated dependencies with pip-tools\n\nGiven the high-level dependencies in [requirements.in](./requirements.in), and the current frozen packages in [requirements.txt](./requirements.txt) (compiled by [pip-tools](https://github.com/jazzband/pip-tools)), I would like to know which of my high-level dependencies are outdated.\n\nUnfortunately, `pip list --outdated` shows _all_ outdated packages in the active Python environment:\n\n```\n$ pip list --outdated\nPackage             Version Latest  Type\n------------------- ------- ------- -----\namqp                2.6.1   5.0.2   wheel\nbilliard            3.5.0.5 3.6.3.0 wheel\ncelery              4.2.2   5.0.4   wheel\nDjango              2.2.15  3.1.4   wheel\ndjango-cms          3.7.2   3.8.0   wheel\ndjangorestframework 3.11.0  3.12.2  wheel\nidna                2.8     2.10    wheel\nkombu               4.3.0   5.0.2   wheel\nrequests            2.21.0  2.25.0  wheel\nurllib3             1.24.3  1.26.2  wheel\nvine                1.3.0   5.0.0   wheel\n```\n\nThere are open issues to filter by a requirements file:\n\n- [Allow `pip list --outdated` to take a requirements file · Issue #3314 · pypa/pip](https://github.com/pypa/pip/issues/3314)\n- [Feature: A command like 'pip list -o' that only shows outdated packages in requirements.in · Issue #1167 · jazzband/pip-tools](https://github.com/jazzband/pip-tools/issues/1167)\n\nFor now, we can take advantage of the `# via` comments added by pip-tools to identify the dependencies that are declared in `requirements.in`:\n\n```\n$ grep 'via -r' requirements.txt | tee requirements.in.txt\ncelery==4.2.2             # via -r requirements.in\ndjango-cms==3.7.2         # via -r requirements.in\ndjango==2.2.15            # via -r requirements.in, django-classy-tags, django-cms, django-formtools, django-sekizai, django-treebeard, djangorestframework\ndjangorestframework==3.11.0  # via -r requirements.in\nrequests==2.21.0          # via -r requirements.in\n```\n\n**NOTE**: This requires using `pip-compile --annotation-style line` to generate `requirements.txt`.\n\nThen, we can use that as input to one of several tools that operate on requirements files.\n\n## [alanhamlett/pip-update-requirements](https://github.com/alanhamlett/pip-update-requirements)\n\n```\n$ pur -r requirements.in.txt\nUpdated celery: 4.2.2 -\u003e 5.0.4\nUpdated django-cms: 3.7.2 -\u003e 3.8.0\nUpdated django: 2.2.15 -\u003e 3.1.4\nUpdated djangorestframework: 3.11.0 -\u003e 3.12.2\nUpdated requests: 2.21.0 -\u003e 2.25.0\n```\n\nThis updates `requirements.in.txt` with the new versions, but does not install the new versions.\n\n## [simion/pip-upgrader](https://github.com/simion/pip-upgrader)\n\n```\n$ echo q | pip-upgrade requirements.in.txt \nFound valid requirements file(s): \nrequirements.in.txt\n1/5: celery ... upgrade available: 4.2.2 ==\u003e 5.0.4 (uploaded on 2020-12-08 12:51:27)\n2/5: django-cms ... upgrade available: 3.7.2 ==\u003e 3.8.0 (uploaded on 2020-10-28 12:25:57)\n3/5: django ... upgrade available: 2.2.15 ==\u003e 3.1.4 (uploaded on 2020-12-01 06:03:32)\n4/5: djangorestframework ... upgrade available: 3.11.0 ==\u003e 3.12.2 (uploaded on 2020-11-05 22:04:52)\n5/5: requests ... upgrade available: 2.21.0 ==\u003e 2.25.0 (uploaded on 2020-11-11 20:05:15)\n\nAvailable upgrades:\n+-----+-----------------------+-----------------+----------------+---------------------+\n| No. | Package               | Current version | Latest version | Release date        |\n+-----+-----------------------+-----------------+----------------+---------------------+\n|  1  |  celery               | 4.2.2           | 5.0.4          | 2020-12-08 12:51:27 |\n|  2  |  django-cms           | 3.7.2           | 3.8.0          | 2020-10-28 12:25:57 |\n|  3  |  django               | 2.2.15          | 3.1.4          | 2020-12-01 06:03:32 |\n|  4  |  djangorestframework  | 3.11.0          | 3.12.2         | 2020-11-05 22:04:52 |\n|  5  |  requests             | 2.21.0          | 2.25.0         | 2020-11-11 20:05:15 |\n+-----+-----------------------+-----------------+----------------+---------------------+\n\nPlease choose which packages should be upgraded. Choices: \"all\", \"q\" (quit), \"x\" (exit) or \"1 2 3\"\nChoice: Quit.\n\nUpgrade interrupted.\n```\n\nIf we didn't quit, this would install the new versions and update `requirements.in.txt`.\n\n## [eight04/pip-outdated](https://github.com/eight04/pip-outdated)\n\n```\n$ pip-outdated requirements.in.txt \nRed = unavailable/outdated/out of version specifier\nGreen = updatable\n+---------------------+-----------+--------+--------+\n| Name                | Installed | Wanted | Latest |\n+---------------------+-----------+--------+--------+\n| celery              | 4.2.2     | 4.2.2  | 5.0.4  |\n| django-cms          | 3.7.2     | 3.7.2  | 3.8.0  |\n| django              | 2.2.15    | 2.2.15 | 3.1.4  |\n| djangorestframework | 3.11.0    | 3.11.0 | 3.12.2 |\n| requests            | 2.21.0    | 2.21.0 | 2.25.0 |\n+---------------------+-----------+--------+--------+\n```\n\nThis doesn't modify any files or install packages. Requires Python 3.7+.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhrutledge%2Fpip-tools-outdated","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbhrutledge%2Fpip-tools-outdated","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbhrutledge%2Fpip-tools-outdated/lists"}