зеркало из https://github.com/mozilla/sugardough.git
127 строки
4.2 KiB
Markdown
127 строки
4.2 KiB
Markdown
Sugardough
|
|
==========
|
|
|
|
**Sugardough is not activelly maintained and packages are out of date and insecure.**
|
|
|
|
Sugardough is a web application template based on Django. Sugardough is
|
|
built using [Cookiecutter](https://github.com/audreyr/cookiecutter).
|
|
|
|
Features:
|
|
* Django settings with environment variables, using [Decouple](https://github.com/henriquebastos/python-decouple)
|
|
* [Jinja2](http://jinja.pocoo.org/) template engine
|
|
* [Whitenoise](http://whitenoise.evans.io/)
|
|
* [Docker](https://docker.io/) ready, plus [Docker Compose](https://github.com/docker/compose) support.
|
|
* Sane [Flake8](http://flake8.readthedocs.org/en/2.2.3/) configuration.
|
|
* [NewRelic](https://newrelic.com/) ready.
|
|
* [Travis-CI](http://travis-ci.org/) ready.
|
|
* [Coveralls](http://coveralls.io/) ready.
|
|
* [Sphinx](http://sphinx-doc.org/) support and [ReadTheDocs](https://readthedocs.org/) ready.
|
|
* [peep](https://github.com/erikrose/peep) ready.
|
|
* [session-csrf](https://github.com/mozilla/django-session-csrf) included.
|
|
|
|
[![Requirements Status](https://img.shields.io/requires/github/mozilla/sugardough.svg)](https://requires.io/github/mozilla/sugardough/requirements/?branch=master)
|
|
|
|
Virtualenv
|
|
[![Build Status](https://img.shields.io/travis/mozilla/sugardough/master.svg)](https://travis-ci.org/mozilla/sugardough)
|
|
Docker
|
|
[![Build Status](https://ci.us-west.moz.works/buildStatus/icon?job=sugardough)](https://ci.us-west.moz.works/job/sugardough)
|
|
|
|
|
|
|
|
Create a sugardough project
|
|
---------------------------
|
|
|
|
1. Get cookiecutter:
|
|
|
|
```sh
|
|
$ pip install cookiecutter
|
|
```
|
|
2. Run cookiecutter with sugardough template
|
|
|
|
```sh
|
|
$ cookiecutter https://github.com/mozilla/sugardough
|
|
```
|
|
3. Done!
|
|
|
|
|
|
Contribute to sugardough
|
|
------------------------
|
|
|
|
To contribute to sugardough development:
|
|
|
|
1. Clone this repository
|
|
2. Create a [virtualenv](https://virtualenv.pypa.io/en/latest/).
|
|
3. Install development requirements using pip:
|
|
|
|
```sh
|
|
$ pip install -r requirements.txt
|
|
```
|
|
4. Update the [template directory], and [cookiecutter.json] as well with new
|
|
variables if needed.
|
|
5. Run the regeneration script that auto-creates a test site:
|
|
|
|
```sh
|
|
$ ./bin/regenerate.py
|
|
```
|
|
6. Launch the test site to see your changes:
|
|
|
|
```sh
|
|
$ cd test_project/sugardough
|
|
$ docker-compose up
|
|
```
|
|
6. Git commit changes.
|
|
7. Pull request!
|
|
|
|
[template directory]: https://github.com/mozilla/sugardough/tree/master/%7B%7B%20cookiecutter.project_name%20%7D%7D
|
|
[cookiecutter.json]: https://github.com/mozilla/sugardough/blob/master/cookiecutter.json
|
|
|
|
The `regenerate.py` command can also watch for changes and auto-regenerate the
|
|
test project:
|
|
|
|
```sh
|
|
$ ./bin/regenerate.py --watch
|
|
```
|
|
|
|
If you want the test project to use a different value for a variable than the
|
|
default defined in `cookiecutter.json`, add the value to your
|
|
`~/.cookiecutterrc` file:
|
|
|
|
```
|
|
default_context:
|
|
project_name: "Foo Bar"
|
|
```
|
|
|
|
|
|
Opinions
|
|
--------
|
|
|
|
* If you want to change the rules for **PEP8**, go and edit the `setup.cfg` file.
|
|
|
|
* If you want to use **MySQL** instead of PostgreSQL (which is default),
|
|
edit the generated `requirements.txt` file and remove the lines about
|
|
`psycopg2` then use `peep` to add the version of `MySQL-python` you want to
|
|
use. You will also need to edit the `.travis.yml` file accordingly.
|
|
|
|
* if you want to use **pytest** add in requirements.txt `pytest`, `py`,
|
|
`cov-core` and `pytest-django`.
|
|
For test coverage you'll also have to add `pytest-cov`.
|
|
Next you'll need to edit the `.travis.yml` file and edit the script part.
|
|
Instead of `coverage run manage.py test` it
|
|
`py.test --cov=sugardough`.
|
|
|
|
* Dockerfile uses Python 3. If you want Python 2 change the following line
|
|
```bash
|
|
apt-get install -y --no-install-recommends build-essential python3 python3-dev python3-pip \
|
|
```
|
|
to
|
|
```bash
|
|
apt-get install -y --no-install-recommends build-essential python python-dev python-pip
|
|
```
|
|
and remove the next two lines starting with `RUN update-alternatives`.
|
|
|
|
|
|
License
|
|
-------
|
|
|
|
Sugardough itself is licensed under the [Apache 2 license](http://www.apache.org/licenses/LICENSE-2.0). See the [LICENSE](LICENSE) file in this repository for the full text of the license. The website projects produced using sugardough use the [Mozilla Public License version 2](https://www.mozilla.org/MPL/2.0/) by default.
|