README.md

# 🎶 Choire - gleam dependency tooling

[![Package Version](https://img.shields.io/hexpm/v/choire)](https://hex.pm/packages/choire)
[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/choire/)

## Introduction

Choire works in a gleam monorepo or singular project. It does two things for you:
- Check for outdated dependencies
- Check for different version of the same dependency across different gleam apps

Importantly, this package does not perform any modifications or updates for you.
This design is intentional as to not mess up your project in any way.

## Usage

```sh
$ gleam add choire@1
```

```sh
$ gleam run -m choire
```

## Example

```sh
$ gleam run -m choire

> found 3 packages

> found a mismatch for: lustre
  v5.0.3 (./sample/sample_b/gleam.toml)
  v4.6.4 (./sample/sample_a/gleam.toml)

fetching latest stable dependency versions...

> found 1 upgradable dependencies in ./sample/sample_a/gleam.toml
  lustre v4.6.4 -> v5.0.3

```

## Hex API and Ratelimits

At the time of this writing, you can make 100 requests per minute to the HEX api as an
unauthenticated user and 500 per minute as an authenticated user
(https://hexpm.docs.apiary.io/#introduction/rate-limiting).

Since the limit resets after 60 seconds, this library will simply hold and wait for the limit
to reset and then continue fetching the package information.

## Acknowledgements

This package was heavily inspired by https://github.com/QuiiBz/sherif.

## License
[Apache License, Version 2.0](./LICENSE)

## Future Work

- [ ] support javascript target
- [ ] support custom hex api key
- [ ] additional configuration
  - [ ] log level
  - [ ] include exclude patterns
  - [ ] toggle dev deps