{"id":23627,"library":"done-xblock","title":"Done XBlock","description":"An Open edX XBlock that allows learners to mark a unit as 'done', providing a simple way to track completion in courseware. The latest version is 3.0.0, with a maintenance release cadence driven by automated dependency updates.","status":"active","version":"3.0.0","language":"python","source_language":"en","source_url":"https://github.com/openedx/DoneXBlock","tags":["xblock","openedx","edx","completion","done"],"install":[{"cmd":"pip install done-xblock","lang":"bash","label":"PyPI"}],"dependencies":[{"reason":"Required to run as an XBlock","package":"xblock","optional":false}],"imports":[{"note":"XBlock subclasses are typically imported by class name, not module","wrong":"import donexblock","symbol":"DoneXBlock","correct":"from donexblock import DoneXBlock"}],"quickstart":{"code":"from donexblock import DoneXBlock\n# DoneXBlock is typically registered in an Open edX environment via the XBlock registry.\n# To test in isolation, you can instanciate it with a runtime:\n# from xblock.runtime import KvsRuntime\n# runtime = KvsRuntime(...)\n# block = DoneXBlock(runtime)\nprint(\"DoneXBlock imported successfully\")","lang":"python","description":"Basic import and setup for testing the XBlock."},"warnings":[{"fix":"Ensure your Open edX platform version is compatible and follow the configuration guide.","message":"The XBlock must be configured with a proper scope storage; missing settings may cause unexpected behavior.","severity":"gotcha","affected_versions":">=3.0.0"},{"fix":"Use Python 3.8+ and pip install done-xblock>=3.0.0","message":"Version 3.0.0 dropped Python 2 support. Upgrade your environment if still on Python 2.","severity":"gotcha","affected_versions":">=3.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install with pip install done-xblock, then import from donexblock.","cause":"Installed the package as 'done-xblock' but tried to import a non-existent module 'donexblock'.","error":"ModuleNotFoundError: No module named 'donexblock'"},{"fix":"Use 'from donexblock import DoneXBlock'.","cause":"Imported 'donexblock' as a module instead of the class.","error":"AttributeError: module 'donexblock' has no attribute 'DoneXBlock'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}