An open API service indexing awesome lists of open source software.

https://github.com/robphoenix/configlet

Simple verification tool for exercism problem configuration.
https://github.com/robphoenix/configlet

Last synced: about 2 months ago
JSON representation

Simple verification tool for exercism problem configuration.

Awesome Lists containing this project

README

          

# Configlet

A tool for managing Exercism language track repositories.

## Lint

Exercism makes certain assumptions about language tracks. The configlet `lint` command makes it simple to verify up-front that the changes to a track's configuration, as well as changes and additions to the exercises will play nicely with the website.

`configlet lint` checks for the following configuration issues:

1. `config.json` contents that are invalid according to [the specification](https://github.com/exercism/problem-specifications/blob/master/CONTRIBUTING.md#track-configuration-file).
1. Inconsistencies between the lists of track slugs in `config.json` and the corresponding implementation files:
* Slugs referenced in `config.json` that have no corresponding implementation.
* Slugs referenced in `config.json` whose implementation is missing an example solution.
* Implementations for slugs that are not referenced in `config.json`.
* Implementations for slugs that have been declared as foregone in `config.json`.

## Format

Inspired by Go's [`gofmt`](https://blog.golang.org/go-fmt-your-code) tool, configlet's `fmt` command will consistently format a track's configuration files.

`configlet fmt` formats according to the following rules:

1. The JSON files, `config.json` and `maintainers.json` will be indented by 2 spaces.
1. In the `config.json` file:
* Exercises will have their list of topics sorted alphabetically.
* Topics names will be normalised to be lowercase and contain underscores in place of spaces.

### Usage

```bash
$ configlet [command]
```

If you have [installed the configlet binary](https://github.com/exercism/configlet/releases/latest)
and are at the root of an exercism language track, then you can run the following:

```bash
$ configlet [command] .
```