{"id":23085062,"url":"https://github.com/robotstudio/cookiecutter-bors-api","last_synced_at":"2025-09-12T00:16:33.225Z","repository":{"id":95754517,"uuid":"178955743","full_name":"RobotStudio/cookiecutter-bors-api","owner":"RobotStudio","description":"Generate an API integration for bors using cookiecutter","archived":false,"fork":false,"pushed_at":"2019-04-02T21:00:58.000Z","size":175,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-09T04:15:15.358Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RobotStudio.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.rst","funding":null,"license":null,"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}},"created_at":"2019-04-01T22:20:16.000Z","updated_at":"2019-04-01T22:36:12.000Z","dependencies_parsed_at":"2023-03-13T05:45:48.769Z","dependency_job_id":null,"html_url":"https://github.com/RobotStudio/cookiecutter-bors-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotStudio%2Fcookiecutter-bors-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotStudio%2Fcookiecutter-bors-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotStudio%2Fcookiecutter-bors-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotStudio%2Fcookiecutter-bors-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobotStudio","download_url":"https://codeload.github.com/RobotStudio/cookiecutter-bors-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247025174,"owners_count":20871128,"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","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-12-16T17:48:51.385Z","updated_at":"2025-04-03T15:23:51.043Z","avatar_url":"https://github.com/RobotStudio.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"===========================\nCookiecutter Django Package\n===========================\n\n.. image:: https://travis-ci.org/pydanny/cookiecutter-djangopackage.svg?branch=master\n    :target: https://travis-ci.org/pydanny/cookiecutter-djangopackage\n\nA cookiecutter_ template for creating reusable Django packages (installable apps) quickly.\n\n**Why?** Creating reusable Django packages has always been annoying. There are no defined/maintained\nbest practices (especially for ``setup.py``), so you end up cutting and pasting hacky, poorly understood,\noften legacy code from one project to the other. This template, inspired by `cookiecutter-pypackage`_,\nis designed to allow Django developers the ability to break free from cargo-cult configuration and follow\na common pattern dictated by the experts and maintained here.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _cookiecutter-pypackage: https://github.com/audreyr/cookiecutter-pypackage\n\nFeatures\n--------\n\n* Sane setup.py for easy PyPI registration/distribution\n* Travis-CI configuration\n* Codecov configuration\n* Tox configuration\n* Sphinx Documentation\n* BSD licensed by default\n* Basic model generation\n\nUsage\n-----\n\nFirst, create your empty repo on Github (in our example below, we would call it ``blogging_for_humans``) and set up your virtual environment with your favorite method.\n\n**Note**: Your project will be created with README.rst file containing a pypi badge, a travis-ci badge and a link to documentation on readthedocs.io. You don't need to have these accounts set up before using Cookiecutter or cookiecutter-djangopackage.\n\nNow, get Cookiecutter_. Trust me, it's awesome::\n\n    $ pip install cookiecutter\n\nNow run it against this repo::\n\n    $ cookiecutter gh:pydanny/cookiecutter-djangopackage\n\nYou'll be prompted for some questions, answer them, then it will create a directory that is your new package.\n\nLet's pretend you want to create a reusable Django app called \"Blogging-for-Humans\", with an app that can be placed\nin ``INSTALLED_APPS`` as \"blogging_for_humans\". Rather than have to copy/paste from other people's projects and\nthen fight enthusiasm-destroying app layout issues like `setup.py` configuration and creating test\nharnesses, you get Cookiecutter_ to do all the work.\n\n**Warning**: After this point, change 'Daniel Greenfeld', 'pydanny', etc to your own information.\n\nIt prompts you for information that it uses to create the app, with defaults in square brackets. Answer them::\n\n    Cloning into 'cookiecutter-djangopackage'...\n    remote: Counting objects: 49, done.\n    remote: Compressing objects: 100% (33/33), done.\n    remote: Total 49 (delta 6), reused 48 (delta 5)\n    Unpacking objects: 100% (49/49), done.\n    full_name [Your full name here]: Daniel Roy Greenfeld\n    email [you@example.com]: pydanny@gmail.com\n    github_username [yourname]: pydanny\n    project_name [dj-package]: Blogging-for-Humans\n    repo_name [blogging_for_humans]:\n    app_name [blogging_for_humans]:\n    project_short_description [Your project description goes here]: A sample Django package\n    models [Comma-separated list of models]: Scoop, Flavor\n    django_versions [1.11,2.0]:\n    version [0.1.0]:\n    create_example_project [N]:\n    Select open_source_license:\n    1 - MIT\n    2 - BSD\n    3 - ISCL\n    4 - Apache Software License 2.0\n    5 - Not open source\n    Choose from 1, 2, 3, 4, 5 [1]:\n\nEnter the project and take a look around::\n\n    $ cd blogging_for_humans/\n    $ ls\n\nCreate a GitHub repo and push it there::\n\n    $ git init\n    $ git add .\n    $ git commit -m \"first awesome commit\"\n    $ git remote add origin git@github.com:pydanny/blogging_for_humans.git\n    $ git push -u origin master\n\nNow take a look at your repo. Awesome, right?\n\nIt's time to write the code!!!\n\nRunning Tests\n~~~~~~~~~~~~~\n\nCode has been written, but does it actually work? Let's find out!\n\n::\n\n    source \u003cYOURVIRTUALENV\u003e/bin/activate\n    (myenv) $ pip install -r requirements_test.txt\n    (myenv) $ python runtests.py\n\nSetting up Travis\n~~~~~~~~~~~~~~~~~\n\nYou will need to explicitly activate your repo in your `Travis CI profile`_.\nIf the repo isn't showing up, run a manual synchronisation.\n\n.. _Travis CI profile: https://travis-ci.org/profile/\n\nIntegration with codecov.io\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nCode coverage is integrated with `Codecov`_. Make sure you have an account\nand that you've granted access to your repo. In case of a private repo, you\nwill need to generate a token and pass it when submitting coverage.\n\n.. _CodeCov: https://codecov.io/\n\nRegister on PyPI\n~~~~~~~~~~~~~~~~\n\nOnce you've got at least a prototype working and tests running, it's time to register the app on PyPI::\n\n    python setup.py register\n\n\nReleasing on PyPI\n~~~~~~~~~~~~~~~~~\n\nTime to release a new version? Easy!\n\nFirst, use `bumpversion` to up the release number::\n\n    $ pip install bumpversion\n    $ bumpversion --current-version VERSION_NUMBER minor --config-file setup.cfg\n\nWhere `VERSION_NUMBER` is the current version, e.g. `0.1.0`.\n\nThen run::\n\n    $ python setup.py publish\n\nIt will answer with something like::\n\n    You probably want to also tag the version now:\n          git tag -a 0.1.0 -m 'version 0.1.0'\n          git push --tags\n\nGo ahead and follow those instructions.\n\nAdd to Django Packages\n~~~~~~~~~~~~~~~~~~~~~~\n\nOnce you have a release, and assuming you have an account there,\njust go to https://www.djangopackages.com/packages/add/ and add it there.\n\nFollows Best Practices\n~~~~~~~~~~~~~~~~~~~~~~\n\n.. image:: https://cdn.shopify.com/s/files/1/0304/6901/products/2017-06-29-tsd11-sticker-02_medium.png?v=1523456754\n   :name: Two Scoops Logo\n   :align: center\n   :alt: Two Scoops of Django\n   :target: http://twoscoopspress.org/products/two-scoops-of-django-1-11\n\nThis project follows best practices as espoused in `Two Scoops of Django: Best Practices for Django 1.11`_.\n\n.. _`Two Scoops of Django: Best Practices for Django 1.11`: http://twoscoopspress.org/products/two-scoops-of-django-1-11\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotstudio%2Fcookiecutter-bors-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobotstudio%2Fcookiecutter-bors-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotstudio%2Fcookiecutter-bors-api/lists"}