{"id":20037734,"url":"https://github.com/openedx/edx-cookiecutters","last_synced_at":"2025-08-21T15:33:12.584Z","repository":{"id":36982030,"uuid":"260021084","full_name":"openedx/edx-cookiecutters","owner":"openedx","description":"Open edx public templates for apps, libraries and services.","archived":false,"fork":false,"pushed_at":"2025-08-13T18:34:30.000Z","size":878,"stargazers_count":30,"open_issues_count":25,"forks_count":29,"subscribers_count":50,"default_branch":"master","last_synced_at":"2025-08-13T20:45:56.739Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openedx.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-04-29T19:18:59.000Z","updated_at":"2025-08-13T18:34:33.000Z","dependencies_parsed_at":"2024-02-12T09:18:43.914Z","dependency_job_id":"20e741fa-c31b-40fa-88ed-75fa030840f3","html_url":"https://github.com/openedx/edx-cookiecutters","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/openedx/edx-cookiecutters","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fedx-cookiecutters","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fedx-cookiecutters/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fedx-cookiecutters/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fedx-cookiecutters/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openedx","download_url":"https://codeload.github.com/openedx/edx-cookiecutters/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Fedx-cookiecutters/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271500361,"owners_count":24770375,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T10:21:28.730Z","updated_at":"2025-08-21T15:33:12.252Z","avatar_url":"https://github.com/openedx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"edx-cookiecutters\n#################\n\nThis repository holds most of the Open edX public cookiecutters.\n\nAvailable cookiecutters\n***********************\n\ncookiecutter-django-ida\n    for creating new independently deployable apps (IDAs).\n\ncookiecutter-django-app\n    for creating reusable Django packages (installable apps).\n\ncookiecutter-python-library\n    for creating a Python package that follows Open edX standards.\n\ncookiecutter-xblock\n    for creating an XBlock repository and a Dockerfile for building and running your XBlock in the xblock-sdk workbench.\n\n\nUsing the cookiecutters\n***********************\n\n1. One Time Setup\n=================\n\n.. code-block:: bash\n\n  # Clone the repository\n  git clone git@github.com:openedx/edx-cookiecutters.git\n  cd edx-cookiecutters\n\n  # Set up a virtualenv using virtualenvwrapper with the same name as the repo and activate it\n  mkvirtualenv -p python3.12 edx-cookiecutters\n\n2. Create a cookiecutter Repository\n===================================\n\nThese instructions assume you have cloned this repository and are currently in its head dir. You will need a virtualenv for running the cookiecutter. You can discard it once the cookiecutter has made your new repo.\n\n.. code-block:: bash\n\n    make requirements  # from inside edx-cookiecutter repo\n\n    # Replace \u003cOUTPUT-DIRECTORY\u003e with the base directory; your new directory will go inside.\n    # Replace \u003cCOOKIECUTTER-NAME\u003e with one of the available cookiecutters documented above.\n    cookiecutter -o \u003cOUTPUT-DIRECTORY\u003e \u003cCOOKIECUTTER-NAME\u003e\n\n3. TODOs after running cookiecutter\n===================================\n\n- Modify project ``README.rst``.\n- Modify the \"requirements upgrade workflow\" at ``.github/workflows/upgrade-python-requirements.yml`` and add ``team_reviewers`` and the ``email_address`` of the team/person.\n- Modify project ``docs/decisions/0001-purpose-of-this-repo.rst`` ADR.\n- Commit and push to GitHub\n- On GitHub, update repo's \"About\" description\n\nUpdating cookiecutters\n**********************\n\nIf you find anything that is outdated in the cookiecutters in this repository, please create a PR with updates.\n\n\n**Note:** Some of the cookiecutters in this repository use the layered cookiecutter approach. If you are modifying these, please see `Local Debugging of the layered cookiecutters`_ section below.\n\n.. _Local Debugging of the layered cookiecutters: #local-debugging-of-the-layered-cookiecutters\n\n\nDirections for contributing to this repository\n==============================================\n\n.. code-block:: bash\n\n  # Clone the repository\n  git clone git@github.com:openedx/edx-cookiecutters.git\n  cd edx-cookiecutters\n\n  # Set up a virtualenv using virtualenvwrapper with the same name as the repo and activate it\n  mkvirtualenv -p python3.12 edx-cookiecutters\n  # Activate the virtualenv\n  workon edx-cookiecutters\n\n  # Grab the latest code\n  git checkout master\n  git pull\n\n  # Install/update the dev requirements\n  make requirements\n\n  # Run the tests and quality checks (to verify the status before you make any changes**\n  make validate\n\n  # Make a new branch for your changes\n  git checkout -b \u003cyour_github_username\u003e/\u003cshort_description\u003e\n\n  # Using your favorite editor, edit the code to make your change.\n  vim …\n\n  # Run your new tests\n  pytest ./path/to/new/tests\n\n  # Run all the tests and quality checks\n  make validate\n\n  # Commit all your changes\n  git commit …\n  git push\n\n  # Open a PR and ask for review.\n\n\nCookiecutters using layered approach\n====================================\n\n- cookiecutter-python-library\n- cookiecutter-django-app\n- cookiecutter-django-ida\n- cookiecutter-xblock\n\nIf you are updating above cookiecutters, please see `0003-layered-cookiecutter ADR\n\u003c./docs/decisions/0003-layered-cookiecutter.rst\u003e`_ and `How-to modify layered cookiecutters\n\u003c./docs/how_tos/modifying_layered_cookiecutter.rst\u003e`_.\n\nLocal Debugging of the layered cookiecutters\n--------------------------------------------\n\nTo ensure that the layered cookiecutters pull from your local code,\ninstead of GitHub, run cookiecutter like:\n\n.. code-block:: bash\n\n    make cookiecutter-\u003cTEMPLATE-NAME\u003e\n\neg:\n\n.. code-block:: bash\n\n    make cookiecutter-django-app\n    make cookiecutter-django-ida\n    make cookiecutter-python-library\n    make cookiecutter-xblock\n\n\nDecisions\n*********\n\nSee `0003-layered-cookiecutter ADR \u003c./docs/decisions/0003-layered-cookiecutter.rst\u003e`_ for details on layering cookiecutters to share boilerplate files.\n\nCommunity\n*********\n\nContributing\n============\n\nContributions are very welcome. Tests can be run with `tox`_. Please ensure the coverage at least stays the same before you submit a pull request.\n\nLicense\n=======\n\nThe code in this repository is licensed under the Apache Software License 2.0 unless\notherwise noted. Please see `LICENSE.txt`_ for details.\n\n\nReporting Security Issues\n=========================\n\nPlease do not report security issues in public. Please email security@openedx.org.\n\nGetting Help\n============\n\nIf you're having trouble, we have discussion forums at https://discuss.openedx.org where you can connect with others in the community.\n\nOur real-time conversations are on Slack. You can request a `Slack invitation`_, then join our `community Slack workspace`_.\n\nFor more information about these options, see the `Getting Help \u003chttps://openedx.org/getting-help\u003e`__ page.\n\n.. _Slack invitation: https://openedx.org/slack\n.. _community Slack workspace: https://openedx.slack.com/\n.. _tox: https://tox.readthedocs.io/en/latest/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Fedx-cookiecutters","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenedx%2Fedx-cookiecutters","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Fedx-cookiecutters/lists"}