# Outdated Package Tracker
> :warning: **Use at your own risk.**. Author is not responsible for any damage resulting from using this application.
### Show and update outdated versions of python packages in your project.
The app serves to:
- list in django admin all outdated python packages
- show dependent apps using each package
- locally update them one-by-one using django backend
- optionally, exposes via DRF an endpoint to ```PackHub``` application to allow remotely querying the list of outdated packages
## Installation
```
pip install django-packtrack
```
## Installed apps and dependencies
```python
# add to settings, INSTALLED_APPS:
"packtrack",
# dependencies for packtrack:
"oauth2_provider",
"rest_framework", # packtrack, packhub
"rest_framework_simplejwt", # packtrack
```
## Configuration
In the project settings, add ```REST_FRAMEWORK``` entry if not present, and optionally ```PACKTRACK_LATEST_VERSION_CACHE_TIME``` to modify the default 1 hour
```python
PACKTRACK_LATEST_VERSION_CACHE_TIME = timedelta(
hours=1
) # optional entry, default is 1 hour
REST_FRAMEWORK = {
"DEFAULT_AUTHENTICATION_CLASSES": (
"oauth2_provider.contrib.rest_framework.OAuth2Authentication", # for clientid/secret authentication
),
"DEFAULT_PERMISSION_CLASSES": ("rest_framework.permissions.IsAuthenticated",),
}
```
## CLI Usage
These commands are designed to be used from within the application interface, or via DRF, but if you really want to call them from CLI (rather than directly calling ```pip```), suit yourself :-)
The following management commands are available:
### ```update_package {package_name}```
Executes ```pip``` command updating the package to the most current version, as stored in PackageCache
## Django Admin /UI usage
In Django Admin, under ```PackTrack``` app, in the ```Outdated packages```:
- at the top right, hit "Updated Outdated Packages" button to refresh the list of outdated packages in your project
- in the list below, you can update each package by individually by clicking the "Update" button.
- to hide the updated packages, use the filter with option "Installed != Latest", to show only old packages.
In the "Update Logs" you can see what was updated and when, and you can examine the console outputs from each update.
## API usage
1. Configure Application in Django Oauth Toolkit, to get your Client ID, and Client Secret, e.g.:
- client type: Confidential
- Authorization grant type: Client credentials
- Hash client secret
2. You can then fetch the outdated packages from a site where PackTrack is running using ```/api/outdated-packages/``` endpoint.
Raw data
{
"_id": null,
"home_page": null,
"name": "django-packtrack",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "django, package, monitor, dependencies",
"author": null,
"author_email": "Grzegorz Krol <grze.krol@proton.me>",
"download_url": "https://files.pythonhosted.org/packages/b1/82/39b3f954484ca428621e708431f3dbc397d31a64c5fe04ad4821c7ade068/django_packtrack-24.9.2.tar.gz",
"platform": null,
"description": "# Outdated Package Tracker\n\n> :warning: **Use at your own risk.**. Author is not responsible for any damage resulting from using this application.\n\n### Show and update outdated versions of python packages in your project.\n\nThe app serves to:\n- list in django admin all outdated python packages\n- show dependent apps using each package\n- locally update them one-by-one using django backend\n- optionally, exposes via DRF an endpoint to ```PackHub``` application to allow remotely querying the list of outdated packages\n\n## Installation\n\n```\npip install django-packtrack\n```\n\n## Installed apps and dependencies\n\n```python\n # add to settings, INSTALLED_APPS:\n \"packtrack\",\n # dependencies for packtrack: \n \"oauth2_provider\",\n \"rest_framework\", # packtrack, packhub\n \"rest_framework_simplejwt\", # packtrack\n```\n\n## Configuration\n\nIn the project settings, add ```REST_FRAMEWORK``` entry if not present, and optionally ```PACKTRACK_LATEST_VERSION_CACHE_TIME``` to modify the default 1 hour\n\n```python\nPACKTRACK_LATEST_VERSION_CACHE_TIME = timedelta(\n hours=1\n) # optional entry, default is 1 hour\n\nREST_FRAMEWORK = {\n \"DEFAULT_AUTHENTICATION_CLASSES\": (\n \"oauth2_provider.contrib.rest_framework.OAuth2Authentication\", # for clientid/secret authentication\n ),\n \"DEFAULT_PERMISSION_CLASSES\": (\"rest_framework.permissions.IsAuthenticated\",),\n}\n```\n\n## CLI Usage\nThese commands are designed to be used from within the application interface, or via DRF, but if you really want to call them from CLI (rather than directly calling ```pip```), suit yourself :-)\n\nThe following management commands are available:\n\n### ```update_package {package_name}```\n\nExecutes ```pip``` command updating the package to the most current version, as stored in PackageCache\n\n## Django Admin /UI usage\n\nIn Django Admin, under ```PackTrack``` app, in the ```Outdated packages```:\n- at the top right, hit \"Updated Outdated Packages\" button to refresh the list of outdated packages in your project \n- in the list below, you can update each package by individually by clicking the \"Update\" button.\n- to hide the updated packages, use the filter with option \"Installed != Latest\", to show only old packages.\n\nIn the \"Update Logs\" you can see what was updated and when, and you can examine the console outputs from each update.\n\n## API usage\n1. Configure Application in Django Oauth Toolkit, to get your Client ID, and Client Secret, e.g.:\n - client type: Confidential\n - Authorization grant type: Client credentials\n - Hash client secret\n2. You can then fetch the outdated packages from a site where PackTrack is running using ```/api/outdated-packages/``` endpoint.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Django app for monitoring outdated packages and dependencies.",
"version": "24.9.2",
"project_urls": {
"homepage": "https://github.com/cjkpl/django-packtrack",
"repository": "https://github.com/cjkpl/django-packtrack"
},
"split_keywords": [
"django",
" package",
" monitor",
" dependencies"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bc32ccc0f964581721b07964db6926c521f6ed9fb4901f3c071f0930367ac482",
"md5": "911fdd2a8c1a25be66c75820227c07da",
"sha256": "d354be8faf51501330cbdd51a00bce4fdb3c931f6392c25c063d85ff5682dfa7"
},
"downloads": -1,
"filename": "django_packtrack-24.9.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "911fdd2a8c1a25be66c75820227c07da",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 34818,
"upload_time": "2024-09-11T11:01:56",
"upload_time_iso_8601": "2024-09-11T11:01:56.888355Z",
"url": "https://files.pythonhosted.org/packages/bc/32/ccc0f964581721b07964db6926c521f6ed9fb4901f3c071f0930367ac482/django_packtrack-24.9.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b18239b3f954484ca428621e708431f3dbc397d31a64c5fe04ad4821c7ade068",
"md5": "e26f831f46e32339b64a53bc0b0b8335",
"sha256": "7ef7d3124e49d6b05e6e153b62f96c6b342b1b53d7974f6fc8f2a48d6dc159e3"
},
"downloads": -1,
"filename": "django_packtrack-24.9.2.tar.gz",
"has_sig": false,
"md5_digest": "e26f831f46e32339b64a53bc0b0b8335",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 21183,
"upload_time": "2024-09-11T11:01:58",
"upload_time_iso_8601": "2024-09-11T11:01:58.174345Z",
"url": "https://files.pythonhosted.org/packages/b1/82/39b3f954484ca428621e708431f3dbc397d31a64c5fe04ad4821c7ade068/django_packtrack-24.9.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-11 11:01:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cjkpl",
"github_project": "django-packtrack",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "django",
"specs": [
[
">=",
"5.0"
]
]
},
{
"name": "djangorestframework",
"specs": []
},
{
"name": "djangorestframework-simplejwt",
"specs": []
},
{
"name": "oauth2_provider",
"specs": []
}
],
"lcname": "django-packtrack"
}