django-mobile-app-version


Namedjango-mobile-app-version JSON
Version 1.2.0 PyPI version JSON
download
home_pagehttps://github.com/javadnikbakht/django_mobile_app_version
SummaryPluggable app for your Django projects to modify your mobile app versions using your API.
upload_time2025-10-22 06:31:19
maintainerNone
docs_urlNone
authorMohammad Javad Nikbakht
requires_python>=3.13
licenseGPL-3.0
keywords django mobile app version api rest
VCS
bugtrack_url
requirements djangorestframework packaging
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # django-mobile-app-version

A Django app for managing mobile app versions through your API.

## Requirements

- Python 3.13+
- Django 3.0+
- Django REST Framework 3.14+

## Installation

```sh
pip install django-mobile-app-version
```

## Quick Start

1. Add `'mobile_app_version.apps.MobileAppVersionConfig'` to your `INSTALLED_APPS` in _`settings.py`_ module:
```python
INSTALLED_APPS = [
    ...
    'mobile_app_version.apps.MobileAppVersionConfig',
]
```

2. Include the Mobile App Version URLconf in your projects `urls.py` like this:
```python
path('app-versions', include('mobile_app_version')),
```

3. Run migrations to create the database tables:
```sh
python manage.py migrate mobile_app_version
```

If you clone this app directly in your project and have changes to application models, first run:
```sh
python manage.py makemigrations mobile_app_version
python manage.py migrate mobile_app_version
```

## Version Format

### Semantic Versioning

The `version` field follows [Semantic Versioning](https://semver.org/) format: **X.Y.Z**

- **X** (Major): Incremented for incompatible API changes
- **Y** (Minor): Incremented for backwards-compatible functionality additions  
- **Z** (Patch): Incremented for backwards-compatible bug fixes

#### Valid Version Examples
```
1.0.0
2.5.3
10.20.30
0.1.0
```

#### Invalid Version Examples
```
1.0          # Missing patch version
v1.0.0       # Prefix not allowed
1.0.0-alpha  # Pre-release tags not allowed
1.0.0.1      # Too many components
01.0.0       # Leading zeros not allowed
```

### API Usage

When creating or updating a mobile app version through the API, the version field must follow the semantic versioning format:

```python
# Valid request
{
    "version": "1.0.0",
    "platform_type": "ANDROID",
    "link": "https://example.com/app.apk",
    "forcing_update": true
}

# Invalid request - will return validation error
{
    "version": "v1.0.0",  # Error: Version must follow semantic versioning format (X.Y.Z)
    "platform_type": "ANDROID",
    "link": "https://example.com/app.apk"
}
```

### Error Messages

If an invalid version format is provided, you'll receive a clear error message:

```json
{
    "version": [
        "Version must follow semantic versioning format (X.Y.Z). Each component must be a non-negative integer. Example: 1.0.0, 2.3.4"
    ]
}
```

## Contributing

Interested in contributing? Please see our [CONTRIBUTING.md](CONTRIBUTING.md) for development setup instructions and guidelines.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/javadnikbakht/django_mobile_app_version",
    "name": "django-mobile-app-version",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.13",
    "maintainer_email": null,
    "keywords": "django, mobile, app, version, api, rest",
    "author": "Mohammad Javad Nikbakht",
    "author_email": "Mohammad Javad Nikbakht <javadnikbakht@mail.com>",
    "download_url": "https://files.pythonhosted.org/packages/be/33/c6e07f71bada70a1f7c9af54e04cae11319657e2114a424ab1127f2edfa8/django_mobile_app_version-1.2.0.tar.gz",
    "platform": null,
    "description": "# django-mobile-app-version\n\nA Django app for managing mobile app versions through your API.\n\n## Requirements\n\n- Python 3.13+\n- Django 3.0+\n- Django REST Framework 3.14+\n\n## Installation\n\n```sh\npip install django-mobile-app-version\n```\n\n## Quick Start\n\n1. Add `'mobile_app_version.apps.MobileAppVersionConfig'` to your `INSTALLED_APPS` in _`settings.py`_ module:\n```python\nINSTALLED_APPS = [\n    ...\n    'mobile_app_version.apps.MobileAppVersionConfig',\n]\n```\n\n2. Include the Mobile App Version URLconf in your projects `urls.py` like this:\n```python\npath('app-versions', include('mobile_app_version')),\n```\n\n3. Run migrations to create the database tables:\n```sh\npython manage.py migrate mobile_app_version\n```\n\nIf you clone this app directly in your project and have changes to application models, first run:\n```sh\npython manage.py makemigrations mobile_app_version\npython manage.py migrate mobile_app_version\n```\n\n## Version Format\n\n### Semantic Versioning\n\nThe `version` field follows [Semantic Versioning](https://semver.org/) format: **X.Y.Z**\n\n- **X** (Major): Incremented for incompatible API changes\n- **Y** (Minor): Incremented for backwards-compatible functionality additions  \n- **Z** (Patch): Incremented for backwards-compatible bug fixes\n\n#### Valid Version Examples\n```\n1.0.0\n2.5.3\n10.20.30\n0.1.0\n```\n\n#### Invalid Version Examples\n```\n1.0          # Missing patch version\nv1.0.0       # Prefix not allowed\n1.0.0-alpha  # Pre-release tags not allowed\n1.0.0.1      # Too many components\n01.0.0       # Leading zeros not allowed\n```\n\n### API Usage\n\nWhen creating or updating a mobile app version through the API, the version field must follow the semantic versioning format:\n\n```python\n# Valid request\n{\n    \"version\": \"1.0.0\",\n    \"platform_type\": \"ANDROID\",\n    \"link\": \"https://example.com/app.apk\",\n    \"forcing_update\": true\n}\n\n# Invalid request - will return validation error\n{\n    \"version\": \"v1.0.0\",  # Error: Version must follow semantic versioning format (X.Y.Z)\n    \"platform_type\": \"ANDROID\",\n    \"link\": \"https://example.com/app.apk\"\n}\n```\n\n### Error Messages\n\nIf an invalid version format is provided, you'll receive a clear error message:\n\n```json\n{\n    \"version\": [\n        \"Version must follow semantic versioning format (X.Y.Z). Each component must be a non-negative integer. Example: 1.0.0, 2.3.4\"\n    ]\n}\n```\n\n## Contributing\n\nInterested in contributing? Please see our [CONTRIBUTING.md](CONTRIBUTING.md) for development setup instructions and guidelines.\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "Pluggable app for your Django projects to modify your mobile app versions using your API.",
    "version": "1.2.0",
    "project_urls": {
        "Homepage": "https://github.com/javadnikbakht/django_mobile_app_version",
        "Release Notes": "https://github.com/javadnikbakht/django_mobile_app_version/releases",
        "Source": "https://github.com/javadnikbakht/django_mobile_app_version",
        "Tracker": "https://github.com/javadnikbakht/django_mobile_app_version/issues"
    },
    "split_keywords": [
        "django",
        " mobile",
        " app",
        " version",
        " api",
        " rest"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4aaf9ab08baa06056a6f56dcbf678a4a8b62757d51d6755096980d6cb9e66808",
                "md5": "c7fab2c1a17254c7783833330bc8011b",
                "sha256": "e437e9da0552f9871ace40b5ee3c7d01b47f70dcbaadc731bfae6679c3740396"
            },
            "downloads": -1,
            "filename": "django_mobile_app_version-1.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c7fab2c1a17254c7783833330bc8011b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.13",
            "size": 10434,
            "upload_time": "2025-10-22T06:31:19",
            "upload_time_iso_8601": "2025-10-22T06:31:19.134481Z",
            "url": "https://files.pythonhosted.org/packages/4a/af/9ab08baa06056a6f56dcbf678a4a8b62757d51d6755096980d6cb9e66808/django_mobile_app_version-1.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "be33c6e07f71bada70a1f7c9af54e04cae11319657e2114a424ab1127f2edfa8",
                "md5": "494dd592deb868406157fe23be48fa57",
                "sha256": "63b0760e3db58aa99d8e0fd7de379978694da0c1408bedca01e084bd1735cc6b"
            },
            "downloads": -1,
            "filename": "django_mobile_app_version-1.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "494dd592deb868406157fe23be48fa57",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.13",
            "size": 8637,
            "upload_time": "2025-10-22T06:31:19",
            "upload_time_iso_8601": "2025-10-22T06:31:19.987273Z",
            "url": "https://files.pythonhosted.org/packages/be/33/c6e07f71bada70a1f7c9af54e04cae11319657e2114a424ab1127f2edfa8/django_mobile_app_version-1.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-22 06:31:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "javadnikbakht",
    "github_project": "django_mobile_app_version",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "djangorestframework",
            "specs": [
                [
                    "==",
                    "3.14.0"
                ]
            ]
        },
        {
            "name": "packaging",
            "specs": [
                [
                    "==",
                    "21.3"
                ]
            ]
        }
    ],
    "lcname": "django-mobile-app-version"
}
        
Elapsed time: 2.95958s