dlunch


Namedlunch JSON
Version 3.4.0 PyPI version JSON
download
home_pageNone
SummaryThe ultimate web app for a well organized lunch.
upload_time2024-11-13 01:22:57
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International
keywords python webapp lunch
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Data Lunch <!-- omit in toc -->

The ultimate web app for a well organized lunch.

## Table of contents

- [Table of contents](#table-of-contents)
- [Development environment setup](#development-environment-setup)
  - [Miniconda](#miniconda)
  - [Setup the development environment](#setup-the-development-environment)
  - [Environment variables](#environment-variables)
    - [General](#general)
    - [Docker and Google Cloud Platform](#docker-and-google-cloud-platform)
    - [TLS/SSL Certificate](#tlsssl-certificate)
    - [Encryption and Authorization](#encryption-and-authorization)
  - [Manually install the development environment](#manually-install-the-development-environment)
  - [Manually install data-lunch CLI](#manually-install-data-lunch-cli)
  - [Running the docker-compose system](#running-the-docker-compose-system)
  - [Running a single container](#running-a-single-container)
  - [Running locally](#running-locally)
- [Additional installations before contributing](#additional-installations-before-contributing)
  - [Pre-commit hooks](#pre-commit-hooks)
  - [Commitizen](#commitizen)
- [Release strategy from `development` to `main` branch](#release-strategy-from-development-to-main-branch)
- [Google Cloud Platform utilities](#google-cloud-platform-utilities)

<!-- DO NOT REMOVE THIS ANCHOR -->
<!-- Used by MkDocs generate_getting_started.py -->
<a id="doc-start"></a>

## Development environment setup

The following steps will guide you through the installation procedure.

### Miniconda

[Conda](https://docs.conda.io/en/latest/) is required for creating the development environment (it is suggested to install [Miniconda](https://docs.conda.io/en/latest/miniconda.html)).

### Setup the development environment

Use the setup script (`setup_dev_env.sh`) to install all the required development tools.

Use `source` to properly launch the script.

```
source setup_dev_env.sh
```

> [!IMPORTANT]
> The setup script will take care of setting up the development environment for you.
> The script installs:
> - 3 environments (`data-lunch` for development, `ci-cd` for _pre-commit_ and other utilities, `gc-sdk` for interacting with _Google Cloud Platform_)
> - _pre-commit_ hooks
> - `data-lunch` command line

### Environment variables

The following environment variables are required for running the _web app_, the _makefile_ or _utility scripts_.

#### General
| Variable | Type | Required | Description |
|----------|:----:|:--------:|-------------|
`PANEL_APP` | _str_ | ✔️ | app name, _data-lunch-app_ by default (used by `makefile`)
`PANEL_ENV` | _str_ | ✔️ | environment, e.g. _development_, _quality_, _production_, affects app configuration (_Hydra_) and build processes (_makefile_)
`PANEL_ARGS` | _str_ | ❌ | additional arguments passed to _Hydra_ (e.g. `panel/gui=major_release`) in _makefile_ and `docker-compose` commands
`PORT` | _int_ | ✔️ | port used by the web app (or the container), default to _5000_; affects app configuration and build process (it is used by _makefile_, _Hydra_ and _Docker_)

#### Docker and Google Cloud Platform
> [!NOTE]
> The following variables are mainly used during the building process or by external scripts.

| Variable | Type | Required | Description |
|----------|:----:|:--------:|-------------|
`DOCKER_USERNAME` | _str_ | ❌ | your _Docker Hub_ username, used by `makefile` and stats panel to extract container name
`IMAGE_VERSION` | _str_ | ❌ | _Docker_ image version, typically `stable` or `latest` (used by _makefile_ and `docker-compose` commands)
`GCLOUD_PROJECT` | _str_ | ❌ | _Google Cloud Platform_ `project_id`, used by `makefile` for _GCP's CLI_ authentication and for uploading the database to _gcp_ storage, if active in web app configuration files (see panel.scheduled_tasks)
`GCLOUD_BUCKET` | _str_ | ❌ | _Google Cloud Platform_ `bucket`, used for uploading database to _gcp_ storage, if active in web app configuration files (see panel.scheduled_tasks)
`MAIL_USER` | _str_ | ❌ | email client user, used for sending emails containing the instance IP, e.g._mywebappemail@email.com_ (used only for _Google Cloud Platform_)
`MAIL_APP_PASSWORD` | _str_ | ❌ | email client password used for sending emails containing the instance IP (used only for _Google Cloud Platform_)
`MAIL_RECIPIENTS` | _str_ | ❌ | email recipients as string, separated by `,` (used for sending emails containing the instance IP when hosted on _Google Cloud Platform_)
`DUCKDNS_URL` | _str_ | ❌ | _URL_ used in `compose_init.sh` to update dynamic address (see _Duck DNS's_ instructions for details, used when hosted on _Google Cloud Platform_)

#### TLS/SSL Certificate
> [!TIP]
> Use the command `make ssl-gen-certificate` to generate local SSL certificates.

| Variable | Type | Required | Description |
|----------|:----:|:--------:|-------------|
`CERT_EMAIL` | _str_ | ❌ | email for registering _SSL certificates_, shared with the authority _Let's Encrypt_ (via `certbot`); used by `docker-compose` commands
`DOMAIN` | _str_ | ❌ | domain name, e.g. _mywebapp.com_, used by `docker-compose` commands (`certbot`), in email generation (`scripts` folder) and to auto-generate SSL certificates

#### Encryption and Authorization
> [!NOTE]
> All variables used by _Postgresql_ are not required if `db=sqlite` (default value).  
> All variables used by _OAuth_ are not required if `server=no_auth` (default value).

> [!IMPORTANT]
> `DATA_LUNCH_COOKIE_SECRET` and `DATA_LUNCH_OAUTH_ENC_KEY` are required even if `server=no_auth` is set.

| Variable | Type | Required | Description |
|----------|:----:|:--------:|-------------|
`DATA_LUNCH_COOKIE_SECRET` | _str_ | ✔️ | _Secret_ used for securing the authentication cookie (use `make generate-secrets` to generate a valid secret)
`DATA_LUNCH_OAUTH_ENC_KEY` | _str_ | ✔️ | _Encription key_ used by the OAuth algorithm for encryption (use `make generate-secrets` to generate a valid secret)
`DATA_LUNCH_OAUTH_KEY` | _str_ | ❌ | _OAuth key_ used for configuring the OAuth provider (_GitHub_, _Azure_)
`DATA_LUNCH_OAUTH_SECRET` | _str_ | ❌ | _OAuth secret_ used for configuring the OAuth provider (_GitHub_, _Azure_)
`DATA_LUNCH_OAUTH_REDIRECT_URI` | _str_ | ❌ | _OAuth redirect uri_ used for configuring the OAuth provider (_GitHub_, _Azure_), do not set to use default value
`DATA_LUNCH_OAUTH_TENANT_ID` | _str_ | ❌ | _OAuth tenant id_ used for configuring the OAuth provider (_Azure_), do not set to use default value
`DATA_LUNCH_DB_USER` | _str_ | ❌ | _Postgresql_ user, do not set to use default value
`DATA_LUNCH_DB_PASSWORD` | _str_ | ❌ | _Postgresql_ password
`DATA_LUNCH_DB_HOST` | _str_ | ❌ | _Postgresql_ host, do not set to use default value
`DATA_LUNCH_DB_PORT` | _str_ | ❌ | _Postgresql_ port, do not set to use default value
`DATA_LUNCH_DB_DATABASE` | _str_ | ❌ | _Postgresql_ database, do not set to use default value
`DATA_LUNCH_DB_SCHEMA` | _str_ | ❌ | _Postgresql_ schema, do not set to use default value

### Manually install the development environment
> [!WARNING]
> This step is not required if the [setup script](#setup-the-development-environment) (`setup_dev_env.sh`) is used.

Use the terminal for navigating to the repository base directory.\
Use the following command in your terminal to create an environment named `data-lunch` manually.  
Otherwise use the [setup script](#setup-the-development-environment) to activate the guided installing procedure.

```
conda env create -f environment.yml
```

Activate the new _Conda_ environment with the following command.

```
conda activate data-lunch
```

### Manually install data-lunch CLI

> [!WARNING]
> This step is not required if the [setup script](#setup-the-development-environment) (`setup_dev_env.sh`) is used.

The CLI is distributed with setuptools instead of using Unix shebangs.  
It is a very simple utility to initialize and delete the app database. There are different use cases:

- Create/delete the _sqlite_ database used by the app
- Initialize/drop tables inside the _sqlite_ database

Use the following command for generating the CLI executable from the `setup.py` file, it will install your package locally.

```
pip install .
```

If you want to make some changes to the source code it is suggested to use the following option.

```
pip install --editable .
```

It will just link the package to the original location, basically meaning any changes to the original package would reflect directly in your environment.

Now you can activate the _Conda_ environment and access the _CLI_ commands directly from the terminal (without using annoying _shebangs_ or prepending `python` to run your _CLI_ calls).

Test that everything is working correctly with the following commands.

```
data-lunch --version
data-lunch --help
```

### Running the docker-compose system

Since this app will be deployed with an hosting service a _Dockerfile_ to build a container image is available.  
The docker compose file (see `docker-compose.yaml`) deploys the web app container along with a _load balancer_ (the _nginx_ container)
to improve the system scalability.

Look inside the `makefile` to see the `docker` and `docker-compose` options.

To build and run the dockerized system you have to install [Docker](https://docs.docker.com/get-docker/).  
Call the following `make` command to start the build process.

```
make docker-up-init docker-up-build
```

`up-init` initialize the _ssl certificate_ based on the selected environment (as set in the environment variable `PANEL_ENV`, i.e. _development_ or _production_).  
Call only `make` (without arguments) to trigger the same command.  
A missing or incomplete _ssl certificate folder_ will result in an `nginx` container failure on start-up.

Images are built and the two containers are started.  

You can then access your web app at `http://localhost:PORT` (where `PORT` will match the value set through the environment variable).

> [!NOTE]
> You can also use `make docker-up` to spin up the containers if you do not need to re-build any image or initialize ssl certificate folders.

> [!IMPORTANT]
> An additional container named `db` is started if `db=postgresql` is set

### Running a single container

It is possible to launch a single server by calling the following command.

```
make docker-build

make docker-run
```

You can then access your web app at `http://localhost:5000` (if the deafult `PORT` is selected).

### Running locally

Launch a local server with default options by calling the following command.

```
python -m dlunch
```

Use _Hydra_ arguments to alter the app behaviour.

```
python -m dlunch server=basic_auth
```

See [Hydra's documentation](https://hydra.cc/docs/intro/) for additional details.

## Additional installations before contributing

> [!WARNING]
> This step is not required if the [setup script](#setup-the-development-environment) (`setup_dev_env.sh`) is used.

Before contributing please create the `pre-commit` and `commitizen` environments.

```
cd requirements
conda env create -f pre-commit.yml
conda env create -f commitizen.yml
```

### Pre-commit hooks

> [!WARNING]
> This step is not required if the [setup script](#setup-the-development-environment) (`setup_dev_env.sh`) is used.

Then install the precommit hooks.

```
conda activate pre-commit
pre-commit install
pre-commit autoupdate
```

Optionally run hooks on all files.

```
pre-commit run --all-files
```

### Commitizen

> [!WARNING]
> This step is not required if the [setup script](#setup-the-development-environment) (`setup_dev_env.sh`) is used.

The _Commitizen_ hook checks that rules for _conventional commits_ are respected in commits messages.
Use the following command to enjoy _Commitizen's_ interactive prompt.

```
conda activate commitizen
cz commit
```

`cz c` is a shorther alias for `cz commit`.

## Release strategy from `development` to `main` branch

> [!CAUTION]
> This step is required only if the CI-CD pipeline on _GitHub_ does not work.

In order to take advantage of _Commitizen_ `bump` command follow this guideline.

First check that you are on the correct branch.

```
git checkout main
```

Then start the merge process forcing it to stop before commit (`--no-commit`) and without using the _fast forward_ strategy (`--no-ff`).

```
git merge development --no-commit --no-ff
```

Check that results match your expectations then commit (you can leave the default message).

```
git commit
```

Now _Commitizen_ `bump` command will add an additional commit with updated versions to every file listed inside `pyproject.toml`.

```
cz bump --no-verify
```

You can now merge results of the release process back to the `development` branch.

```
git checkout development
git merge main --no-ff
```

Use _"update files from last release"_ or the default text as commit message.

## Google Cloud Platform utilities

> [!WARNING]
> This step is not required if the [setup script](#setup-the-development-environment) (`setup_dev_env.sh`) is used.

The makefile has two rules for conviniently setting up and removing authentication credentials for _Google Cloud Platform_ command line interface: `gcp-config` and `gcp-revoke`.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "dlunch",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "python, webapp, lunch",
    "author": null,
    "author_email": "Michele Alberti <michele.alberti90@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/d6/9a/44b5c4c0b89071e6cfe245968ef8aa8b99bb58a42c300702ccc85a5fd5ba/dlunch-3.4.0.tar.gz",
    "platform": null,
    "description": "# Data Lunch <!-- omit in toc -->\n\nThe ultimate web app for a well organized lunch.\n\n## Table of contents\n\n- [Table of contents](#table-of-contents)\n- [Development environment setup](#development-environment-setup)\n  - [Miniconda](#miniconda)\n  - [Setup the development environment](#setup-the-development-environment)\n  - [Environment variables](#environment-variables)\n    - [General](#general)\n    - [Docker and Google Cloud Platform](#docker-and-google-cloud-platform)\n    - [TLS/SSL Certificate](#tlsssl-certificate)\n    - [Encryption and Authorization](#encryption-and-authorization)\n  - [Manually install the development environment](#manually-install-the-development-environment)\n  - [Manually install data-lunch CLI](#manually-install-data-lunch-cli)\n  - [Running the docker-compose system](#running-the-docker-compose-system)\n  - [Running a single container](#running-a-single-container)\n  - [Running locally](#running-locally)\n- [Additional installations before contributing](#additional-installations-before-contributing)\n  - [Pre-commit hooks](#pre-commit-hooks)\n  - [Commitizen](#commitizen)\n- [Release strategy from `development` to `main` branch](#release-strategy-from-development-to-main-branch)\n- [Google Cloud Platform utilities](#google-cloud-platform-utilities)\n\n<!-- DO NOT REMOVE THIS ANCHOR -->\n<!-- Used by MkDocs generate_getting_started.py -->\n<a id=\"doc-start\"></a>\n\n## Development environment setup\n\nThe following steps will guide you through the installation procedure.\n\n### Miniconda\n\n[Conda](https://docs.conda.io/en/latest/) is required for creating the development environment (it is suggested to install [Miniconda](https://docs.conda.io/en/latest/miniconda.html)).\n\n### Setup the development environment\n\nUse the setup script (`setup_dev_env.sh`) to install all the required development tools.\n\nUse `source` to properly launch the script.\n\n```\nsource setup_dev_env.sh\n```\n\n> [!IMPORTANT]\n> The setup script will take care of setting up the development environment for you.\n> The script installs:\n> - 3 environments (`data-lunch` for development, `ci-cd` for _pre-commit_ and other utilities, `gc-sdk` for interacting with _Google Cloud Platform_)\n> - _pre-commit_ hooks\n> - `data-lunch` command line\n\n### Environment variables\n\nThe following environment variables are required for running the _web app_, the _makefile_ or _utility scripts_.\n\n#### General\n| Variable | Type | Required | Description |\n|----------|:----:|:--------:|-------------|\n`PANEL_APP` | _str_ | \u2714\ufe0f | app name, _data-lunch-app_ by default (used by `makefile`)\n`PANEL_ENV` | _str_ | \u2714\ufe0f | environment, e.g. _development_, _quality_, _production_, affects app configuration (_Hydra_) and build processes (_makefile_)\n`PANEL_ARGS` | _str_ | \u274c | additional arguments passed to _Hydra_ (e.g. `panel/gui=major_release`) in _makefile_ and `docker-compose` commands\n`PORT` | _int_ | \u2714\ufe0f | port used by the web app (or the container), default to _5000_; affects app configuration and build process (it is used by _makefile_, _Hydra_ and _Docker_)\n\n#### Docker and Google Cloud Platform\n> [!NOTE]\n> The following variables are mainly used during the building process or by external scripts.\n\n| Variable | Type | Required | Description |\n|----------|:----:|:--------:|-------------|\n`DOCKER_USERNAME` | _str_ | \u274c | your _Docker Hub_ username, used by `makefile` and stats panel to extract container name\n`IMAGE_VERSION` | _str_ | \u274c | _Docker_ image version, typically `stable` or `latest` (used by _makefile_ and `docker-compose` commands)\n`GCLOUD_PROJECT` | _str_ | \u274c | _Google Cloud Platform_ `project_id`, used by `makefile` for _GCP's CLI_ authentication and for uploading the database to _gcp_ storage, if active in web app configuration files (see panel.scheduled_tasks)\n`GCLOUD_BUCKET` | _str_ | \u274c | _Google Cloud Platform_ `bucket`, used for uploading database to _gcp_ storage, if active in web app configuration files (see panel.scheduled_tasks)\n`MAIL_USER` | _str_ | \u274c | email client user, used for sending emails containing the instance IP, e.g._mywebappemail@email.com_ (used only for _Google Cloud Platform_)\n`MAIL_APP_PASSWORD` | _str_ | \u274c | email client password used for sending emails containing the instance IP (used only for _Google Cloud Platform_)\n`MAIL_RECIPIENTS` | _str_ | \u274c | email recipients as string, separated by `,` (used for sending emails containing the instance IP when hosted on _Google Cloud Platform_)\n`DUCKDNS_URL` | _str_ | \u274c | _URL_ used in `compose_init.sh` to update dynamic address (see _Duck DNS's_ instructions for details, used when hosted on _Google Cloud Platform_)\n\n#### TLS/SSL Certificate\n> [!TIP]\n> Use the command `make ssl-gen-certificate` to generate local SSL certificates.\n\n| Variable | Type | Required | Description |\n|----------|:----:|:--------:|-------------|\n`CERT_EMAIL` | _str_ | \u274c | email for registering _SSL certificates_, shared with the authority _Let's Encrypt_ (via `certbot`); used by `docker-compose` commands\n`DOMAIN` | _str_ | \u274c | domain name, e.g. _mywebapp.com_, used by `docker-compose` commands (`certbot`), in email generation (`scripts` folder) and to auto-generate SSL certificates\n\n#### Encryption and Authorization\n> [!NOTE]\n> All variables used by _Postgresql_ are not required if `db=sqlite` (default value).  \n> All variables used by _OAuth_ are not required if `server=no_auth` (default value).\n\n> [!IMPORTANT]\n> `DATA_LUNCH_COOKIE_SECRET` and `DATA_LUNCH_OAUTH_ENC_KEY` are required even if `server=no_auth` is set.\n\n| Variable | Type | Required | Description |\n|----------|:----:|:--------:|-------------|\n`DATA_LUNCH_COOKIE_SECRET` | _str_ | \u2714\ufe0f | _Secret_ used for securing the authentication cookie (use `make generate-secrets` to generate a valid secret)\n`DATA_LUNCH_OAUTH_ENC_KEY` | _str_ | \u2714\ufe0f | _Encription key_ used by the OAuth algorithm for encryption (use `make generate-secrets` to generate a valid secret)\n`DATA_LUNCH_OAUTH_KEY` | _str_ | \u274c | _OAuth key_ used for configuring the OAuth provider (_GitHub_, _Azure_)\n`DATA_LUNCH_OAUTH_SECRET` | _str_ | \u274c | _OAuth secret_ used for configuring the OAuth provider (_GitHub_, _Azure_)\n`DATA_LUNCH_OAUTH_REDIRECT_URI` | _str_ | \u274c | _OAuth redirect uri_ used for configuring the OAuth provider (_GitHub_, _Azure_), do not set to use default value\n`DATA_LUNCH_OAUTH_TENANT_ID` | _str_ | \u274c | _OAuth tenant id_ used for configuring the OAuth provider (_Azure_), do not set to use default value\n`DATA_LUNCH_DB_USER` | _str_ | \u274c | _Postgresql_ user, do not set to use default value\n`DATA_LUNCH_DB_PASSWORD` | _str_ | \u274c | _Postgresql_ password\n`DATA_LUNCH_DB_HOST` | _str_ | \u274c | _Postgresql_ host, do not set to use default value\n`DATA_LUNCH_DB_PORT` | _str_ | \u274c | _Postgresql_ port, do not set to use default value\n`DATA_LUNCH_DB_DATABASE` | _str_ | \u274c | _Postgresql_ database, do not set to use default value\n`DATA_LUNCH_DB_SCHEMA` | _str_ | \u274c | _Postgresql_ schema, do not set to use default value\n\n### Manually install the development environment\n> [!WARNING]\n> This step is not required if the [setup script](#setup-the-development-environment) (`setup_dev_env.sh`) is used.\n\nUse the terminal for navigating to the repository base directory.\\\nUse the following command in your terminal to create an environment named `data-lunch` manually.  \nOtherwise use the [setup script](#setup-the-development-environment) to activate the guided installing procedure.\n\n```\nconda env create -f environment.yml\n```\n\nActivate the new _Conda_ environment with the following command.\n\n```\nconda activate data-lunch\n```\n\n### Manually install data-lunch CLI\n\n> [!WARNING]\n> This step is not required if the [setup script](#setup-the-development-environment) (`setup_dev_env.sh`) is used.\n\nThe CLI is distributed with setuptools instead of using Unix shebangs.  \nIt is a very simple utility to initialize and delete the app database. There are different use cases:\n\n- Create/delete the _sqlite_ database used by the app\n- Initialize/drop tables inside the _sqlite_ database\n\nUse the following command for generating the CLI executable from the `setup.py` file, it will install your package locally.\n\n```\npip install .\n```\n\nIf you want to make some changes to the source code it is suggested to use the following option.\n\n```\npip install --editable .\n```\n\nIt will just link the package to the original location, basically meaning any changes to the original package would reflect directly in your environment.\n\nNow you can activate the _Conda_ environment and access the _CLI_ commands directly from the terminal (without using annoying _shebangs_ or prepending `python` to run your _CLI_ calls).\n\nTest that everything is working correctly with the following commands.\n\n```\ndata-lunch --version\ndata-lunch --help\n```\n\n### Running the docker-compose system\n\nSince this app will be deployed with an hosting service a _Dockerfile_ to build a container image is available.  \nThe docker compose file (see `docker-compose.yaml`) deploys the web app container along with a _load balancer_ (the _nginx_ container)\nto improve the system scalability.\n\nLook inside the `makefile` to see the `docker` and `docker-compose` options.\n\nTo build and run the dockerized system you have to install [Docker](https://docs.docker.com/get-docker/).  \nCall the following `make` command to start the build process.\n\n```\nmake docker-up-init docker-up-build\n```\n\n`up-init` initialize the _ssl certificate_ based on the selected environment (as set in the environment variable `PANEL_ENV`, i.e. _development_ or _production_).  \nCall only `make` (without arguments) to trigger the same command.  \nA missing or incomplete _ssl certificate folder_ will result in an `nginx` container failure on start-up.\n\nImages are built and the two containers are started.  \n\nYou can then access your web app at `http://localhost:PORT` (where `PORT` will match the value set through the environment variable).\n\n> [!NOTE]\n> You can also use `make docker-up` to spin up the containers if you do not need to re-build any image or initialize ssl certificate folders.\n\n> [!IMPORTANT]\n> An additional container named `db` is started if `db=postgresql` is set\n\n### Running a single container\n\nIt is possible to launch a single server by calling the following command.\n\n```\nmake docker-build\n\nmake docker-run\n```\n\nYou can then access your web app at `http://localhost:5000` (if the deafult `PORT` is selected).\n\n### Running locally\n\nLaunch a local server with default options by calling the following command.\n\n```\npython -m dlunch\n```\n\nUse _Hydra_ arguments to alter the app behaviour.\n\n```\npython -m dlunch server=basic_auth\n```\n\nSee [Hydra's documentation](https://hydra.cc/docs/intro/) for additional details.\n\n## Additional installations before contributing\n\n> [!WARNING]\n> This step is not required if the [setup script](#setup-the-development-environment) (`setup_dev_env.sh`) is used.\n\nBefore contributing please create the `pre-commit` and `commitizen` environments.\n\n```\ncd requirements\nconda env create -f pre-commit.yml\nconda env create -f commitizen.yml\n```\n\n### Pre-commit hooks\n\n> [!WARNING]\n> This step is not required if the [setup script](#setup-the-development-environment) (`setup_dev_env.sh`) is used.\n\nThen install the precommit hooks.\n\n```\nconda activate pre-commit\npre-commit install\npre-commit autoupdate\n```\n\nOptionally run hooks on all files.\n\n```\npre-commit run --all-files\n```\n\n### Commitizen\n\n> [!WARNING]\n> This step is not required if the [setup script](#setup-the-development-environment) (`setup_dev_env.sh`) is used.\n\nThe _Commitizen_ hook checks that rules for _conventional commits_ are respected in commits messages.\nUse the following command to enjoy _Commitizen's_ interactive prompt.\n\n```\nconda activate commitizen\ncz commit\n```\n\n`cz c` is a shorther alias for `cz commit`.\n\n## Release strategy from `development` to `main` branch\n\n> [!CAUTION]\n> This step is required only if the CI-CD pipeline on _GitHub_ does not work.\n\nIn order to take advantage of _Commitizen_ `bump` command follow this guideline.\n\nFirst check that you are on the correct branch.\n\n```\ngit checkout main\n```\n\nThen start the merge process forcing it to stop before commit (`--no-commit`) and without using the _fast forward_ strategy (`--no-ff`).\n\n```\ngit merge development --no-commit --no-ff\n```\n\nCheck that results match your expectations then commit (you can leave the default message).\n\n```\ngit commit\n```\n\nNow _Commitizen_ `bump` command will add an additional commit with updated versions to every file listed inside `pyproject.toml`.\n\n```\ncz bump --no-verify\n```\n\nYou can now merge results of the release process back to the `development` branch.\n\n```\ngit checkout development\ngit merge main --no-ff\n```\n\nUse _\"update files from last release\"_ or the default text as commit message.\n\n## Google Cloud Platform utilities\n\n> [!WARNING]\n> This step is not required if the [setup script](#setup-the-development-environment) (`setup_dev_env.sh`) is used.\n\nThe makefile has two rules for conviniently setting up and removing authentication credentials for _Google Cloud Platform_ command line interface: `gcp-config` and `gcp-revoke`.\n",
    "bugtrack_url": null,
    "license": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International",
    "summary": "The ultimate web app for a well organized lunch.",
    "version": "3.4.0",
    "project_urls": {
        "Homepage": "https://github.com/Michele-Alberti/data-lunch",
        "Issues": "https://github.com/Michele-Alberti/data-lunch/issues"
    },
    "split_keywords": [
        "python",
        " webapp",
        " lunch"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "86cd4557f954aef9782b49536b6c6906b484f54b32a5fd76f08f1964af80eaab",
                "md5": "dfc734f01e1d67758868e9dde7afdc97",
                "sha256": "73d6c9538fcce079c92a74660ca0b8c84023d8c0eb8dfbe6bf7b704f7bc679b3"
            },
            "downloads": -1,
            "filename": "dlunch-3.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "dfc734f01e1d67758868e9dde7afdc97",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 1716412,
            "upload_time": "2024-11-13T01:22:54",
            "upload_time_iso_8601": "2024-11-13T01:22:54.074889Z",
            "url": "https://files.pythonhosted.org/packages/86/cd/4557f954aef9782b49536b6c6906b484f54b32a5fd76f08f1964af80eaab/dlunch-3.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d69a44b5c4c0b89071e6cfe245968ef8aa8b99bb58a42c300702ccc85a5fd5ba",
                "md5": "6a631d348c1d772817baf938fb4b54c0",
                "sha256": "66d91ffb2da5bbc652e05f6914b8643ba02457c612abae6b63745c1ffe55762c"
            },
            "downloads": -1,
            "filename": "dlunch-3.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "6a631d348c1d772817baf938fb4b54c0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 1702606,
            "upload_time": "2024-11-13T01:22:57",
            "upload_time_iso_8601": "2024-11-13T01:22:57.022458Z",
            "url": "https://files.pythonhosted.org/packages/d6/9a/44b5c4c0b89071e6cfe245968ef8aa8b99bb58a42c300702ccc85a5fd5ba/dlunch-3.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-13 01:22:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Michele-Alberti",
    "github_project": "data-lunch",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "dlunch"
}
        
Elapsed time: 1.67753s