# revision-apply-metadata

## What causes this lambda to run?

Invoked as part of the review-complete state machine workflow for approved revisions.

## What does this lambda do?

1. Check if the given release correction needs to be applied and contains release
   metadata updates.
2. If updates need to be applied, it will apply them.

## Install

Requires: python3.11

```sh
make pip_dev
```

Direct dependencies are listed in `requirements-to-freeze.txt` and locked with
their own dependencies in `requirements.txt`. `requirements.txt` is imported into
`requirements-test.txt` and testing dependencies are listed. To bump versions
of dependencies, update the version in `requirements-to-freeze.txt` and run
`make pip_lock_versions` to regenerate `requirements.txt`.

## Development

```sh
# Run the function locally using a test event and print results
make dev

# Run linting
make lint

# Run tests
make test

# Build the docker image, launch it, and run linting and tests against it
make docker_test

# Rebuild your local env from scratch
make clean pip_dev
```

### Docker Stack

The docker stack offers an environment like the one on AWS for developing against.

```sh
# Bring the function up in a docker-compose stack. The container will mount
# src dir so it will update immediately as you develop.
make docker_up

# Send a mock event to the function
make docker_event

# Bring the stack down
make docker_down
```
