{"id":21721,"library":"pulpcore","title":"Pulpcore","description":"Pulp 3 is a platform for managing software packages and content repositories. pulpcore is the core Django application providing REST API, task scheduling, and plugin API. Current version 3.109.2, requires Python >=3.11, released monthly with LTS branches.","status":"active","version":"3.109.2","language":"python","source_language":"en","source_url":"https://github.com/pulp/pulpcore","tags":["pulp","package-management","content","repository","django","rest-api"],"install":[{"cmd":"pip install pulpcore","lang":"bash","label":"Install pulpcore"}],"dependencies":[{"reason":"Pulpcore is a Django application","package":"django","optional":false},{"reason":"Task scheduling (deprecated in favor of pulpcore-worker)","package":"celery","optional":true}],"imports":[{"note":"PulpPluginAppConfig moved to pulpcore.plugin in 3.0","wrong":"from pulpcore.app import PulpPluginAppConfig","symbol":"pulpcore.app.apps.PulpPluginAppConfig","correct":"from pulpcore.plugin import PulpPluginAppConfig"},{"note":"Models are under pulpcore.app.models, not pulpcore directly","wrong":"from pulpcore.models import Task","symbol":"Task","correct":"from pulpcore.app.models import Task"}],"quickstart":{"code":"from pulpcore.app.apps import PulpPluginAppConfig\n\nclass MyPluginAppConfig(PulpPluginAppConfig):\n    name = 'myplugin'\n    label = 'myplugin'\n    default = True\n\n# Or for basic API access:\nimport requests\nurl = os.environ.get('PULP_BASE_URL', 'https://pulp.example.com')\nresponse = requests.get(f'{url}/pulp/api/v3/status/')\nprint(response.json())","lang":"python","description":"Minimal plugin app config and API status check."},"warnings":[{"fix":"Upgrade to pulpcore >= 3.0 and use the new plugin system: from pulpcore.plugin import PulpPluginAppConfig.","message":"Pulp 3.0 introduced a completely new API and plugin architecture, incompatible with Pulp 2.","severity":"breaking","affected_versions":"<3.0.0"},{"fix":"Set WORKER_TYPE='redis' in settings, and run 'pulpcore-worker' instead of 'celery worker'.","message":"Celery-based task queue is deprecated; use pulpcore-worker (Redis-based) instead.","severity":"deprecated","affected_versions":">=3.108.0"},{"fix":"Adjust TASK_PREFER_DEFER or increase timeout settings. For large DBs, consider manual cleanup.","message":"The cleanup_old_versions task can be extremely slow on large databases; in 3.108+ it has been optimized but still may time out.","severity":"gotcha","affected_versions":">=3.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use 'from pulpcore.plugin import PulpPluginAppConfig'","cause":"Incorrect import path for PulpPluginAppConfig in newer versions.","error":"ModuleNotFoundError: No module named 'pulpcore.app.apps'"},{"fix":"Run 'pulpcore-manager migrate' to apply all migrations.","cause":"Missing migrations or wrong database applied.","error":"OperationalError: no such table: core_task"},{"fix":"Upgrade Python to >=3.11 as required by pulpcore >=3.109.","cause":"Using Python version earlier than 3.10 (pulpcore 3.109+ uses match statements).","error":"Invalid syntax: 'match' statement"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}