{ "info": { "author": "Stanford OpenEdX", "author_email": "dev@lagunita.stanford.edu", "bugtrack_url": null, "classifiers": [], "description": "Part of `edX code`__.\n\n__ http://code.edx.org/\n\nXBlock Courseware Components |build-status| |coverage-status|\n=============================================================\n\nXBlock is a component architecture by edX.org for building courseware.\n\nThis is a pre-alpha release of the XBlock API, to gather input from potential\nusers of the API. We like what is here, but are open to suggestions for\nchanges. We will be implementing this shortly in the edX LMS.\n\nThis repo contains the core code for implementing XBlocks.\n\n\nBackground\n----------\n\nEdX courseware is built out of components that are combined hierarchically.\nThese include components like the video player, `LON-CAPA`_ problems, as well\nas compound components like learning sequences. We are developing a\nsecond-generation API for these components called XBlocks. Although they're in\na prototype stage, we like the API, and want to collaborate with others to\ndevelop them into an industry standard. This is our proposed API and\nspecification for XBlocks.\n\n.. _LON-CAPA: http://www.lon-capa.org/\n\nHow does this differ from existing industry standards like `Learning Tools\nInteroperability`_ (LTI) and `SCORM`_? On a high level, XBlocks is a Python\nlanguage-level API, and it provides sensible defaults for things like storing\ndata. XBlocks could be wrapped up in LTI, and one could make an LTI XBlock. The\ncore reason to write an XBlock is that it is deployable. You can give us the\ncode to an XBlock, and we can embed it in our courseware. LTI would require you\nto give us a virtual machine image which ran it.\n\n.. _Learning Tools Interoperability: http://www.imsglobal.org/toolsinteroperability2.cfm\n.. _SCORM: http://scorm.com/scorm-explained/\n\n\nInstallation\n------------\n\nThis code runs on Python 2.7. If you prefer to use Python 3, there is `a fork\nof XBlock that provides Python 3 support`_, but this fork is not yet supported\nby edX.\n\n1. Get a local copy of this repo.\n\n2. (Optional) Create and activate a virtualenv to work in.\n\n3. Install the requirements and register the XBlock entry points with (you may\n need to sudo this if you don't use virtualenv):\n\n $ pip install -r requirements.txt\n\n.. _a fork of XBlock that provides Python 3 support: https://github.com/singingwolfboy/XBlock/tree/py3\n\n\nTesting\n--------\n\nTo run the test suite:\n\n $ nosetests\n\nThis will run:\n\n * Unit tests of the XBlock core and runtime.\n\nTo run the test suite under coverage:\n\n $ coverage run -m nose\n\nto execute the tests. Then to view the coverage report:\n\n $ coverage report\n\nSee the `coverage.py`_ docs for more info and options.\n\n.. _coverage.py: http://nedbatchelder.com/code/coverage/\n\n\nStyle Testing\n-------------\n\nWe use two tools - ``pylint`` and ``pep8`` - to manage the code quality and style\nof all Python files in this repo. Our goal is to maintain zero reported pylint\nand pep8 violations at all times.\n\nTo run these tools on a single file:\n\n $ pylint path/to/file.py\n\n $ pep8 path/to/file.py\n\nTo run these tools on the whole project:\n\n $ pylint .\n\n $ pep8 .\n\nWe do not abide by all pylint and pep8 violations. You can check out which violations\nwe ignore by viewing the contents of `pylintrc`_ and `setup.cfg`_. Before making a pull\nrequest, you should ensure that your branch does not add any new quality violations\nby checking your code with these tools.\n\n.. _pylintrc: https://github.com/edx/XBlock/blob/master/pylintrc\n.. _setup.cfg: https://github.com/edx/XBlock/blob/master/setup.cfg\n\nYou can run these tests automatically before pushing code to github (and running\nthe validation in Travis) by activating the `pre-push` script\n\n cd .git/hooks\n ln -s ../../script/pre-push\n cd -\n\n\nUsing the XBlock-SDK\n-------------------\n\nThe XBlock-SDK exists in a separate repository. The SDK contains useful tools for\ndeveloping your own XBlocks, such as a template XBlock generator, sample XBlocks\nthat demonstrate XBlock functionality.\n\nYou can find it in its own repository: https://github.com/edx/xblock-sdk\n\n\nDocumentation\n-------------\n\nThe docs for the XBlock API is on Read The Docs: https://xblock.readthedocs.org .\n\n\n\nReading the code\n----------------\n\nThere are distinct layers to this code. In the docstrings, we've tried to make\nclear which layer the code lives in, though sometimes the lines are blurred:\n\n1. **XBlock** The sample XBlock code. This is the most important, it is the\n code that most third parties will be writing, and demonstrates the XBlock\n interfaces.\n\n2. **Runtime** The runtime code that we think will be common to all runtimes.\n This is the behind-the-scenes code edX will write to make XBlocks work.\n This layer may not be real code here, but we'll need to write real code to\n perform these functions.\n\n\nMaking your own XBlock\n----------------------\n\nMaking an XBlock can be as simple as creating a Python class with a few\nspecific methods.\n\nInstructions for constructing a new XBlock along with examples can be found in\nthe XBlock SDK: https://github.com/edx/xblock-sdk\n\n\nLicense\n-------\n\nThe code in this repository is licensed the Apache 2.0 license unless otherwise\nnoted.\n\nPlease see ``LICENSE.txt`` for details.\n\n\nHow to Contribute\n-----------------\n\nContributions are very welcome. The easiest way is to fork this repo, and then\nmake a pull request from your fork. The first time you make a pull request, you\nmay be asked to sign a Contributor Agreement.\n\nPlease refer to our `contributor guidelines `_ in the main edx-platform repo for\nimportant additional information.\n\n\nReporting Security Issues\n-------------------------\n\nPlease do not report security issues in public. Please email security@edx.org\n\nPackaging\n---------\n\nTo package a new release, first tag the commit to be released\n\n $VERSION=0.5\n git tag -a -m \"XBlock version $VERSION\" xblock-$VERSION\n\nthen upload to PyPI\n\n make package\n\nAll of the heavy lifting is handled by python-versioneer (https://github.com/warner/python-versioneer)\n\n\nMailing List and IRC Channel\n----------------------------\n\nYou can discuss this code on the `edx-code Google Group`__ or in the\n``#edx-code`` IRC channel on Freenode.\n\n__ https://groups.google.com/group/edx-code\n\n.. |build-status| image:: https://travis-ci.org/edx/XBlock.svg?branch=master\n :target: https://travis-ci.org/edx/XBlock\n.. |coverage-status| image:: https://coveralls.io/repos/edx/XBlock/badge.svg\n :target: https://coveralls.io/r/edx/XBlock\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Stanford-Online", "keywords": null, "license": "Apache 2.0", "maintainer": null, "maintainer_email": null, "name": "xblock-openedx", "package_url": "https://pypi.org/project/xblock-openedx/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/xblock-openedx/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/Stanford-Online" }, "release_url": "https://pypi.org/project/xblock-openedx/0.4.1/", "requires_dist": null, "requires_python": null, "summary": "XBlock Core Library", "version": "0.4.1" }, "last_serial": 2371935, "releases": { "0.4.1": [ { "comment_text": "", "digests": { "md5": "4347fd4fe9fa1dce167fcf38f82c3d5a", "sha256": "5e0202e95d4b375b4a1a0ab2b584a8fb8137acaf1b95a194cf4a42380b8da507" }, "downloads": -1, "filename": "xblock-openedx-0.4.1.tar.gz", "has_sig": false, "md5_digest": "4347fd4fe9fa1dce167fcf38f82c3d5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57608, "upload_time": "2016-09-29T21:08:30", "url": "https://files.pythonhosted.org/packages/59/49/43691b07cf3cf30183031bcd73bc46710adc85a6af1927f80f8e57f150f3/xblock-openedx-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4347fd4fe9fa1dce167fcf38f82c3d5a", "sha256": "5e0202e95d4b375b4a1a0ab2b584a8fb8137acaf1b95a194cf4a42380b8da507" }, "downloads": -1, "filename": "xblock-openedx-0.4.1.tar.gz", "has_sig": false, "md5_digest": "4347fd4fe9fa1dce167fcf38f82c3d5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57608, "upload_time": "2016-09-29T21:08:30", "url": "https://files.pythonhosted.org/packages/59/49/43691b07cf3cf30183031bcd73bc46710adc85a6af1927f80f8e57f150f3/xblock-openedx-0.4.1.tar.gz" } ] }