Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ludat/conferer
Configuration managment for haskell
https://github.com/ludat/conferer
configuration hackage hacktoberfest haskell
Last synced: 5 days ago
JSON representation
Configuration managment for haskell
- Host: GitHub
- URL: https://github.com/ludat/conferer
- Owner: ludat
- License: mpl-2.0
- Created: 2019-06-14T11:50:53.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-12T08:44:23.000Z (3 months ago)
- Last Synced: 2024-12-17T20:20:44.274Z (14 days ago)
- Topics: configuration, hackage, hacktoberfest, haskell
- Language: Haskell
- Homepage: https://conferer.ludat.io
- Size: 1.33 MB
- Stars: 21
- Watchers: 2
- Forks: 4
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Conferer
[![Hackage](https://img.shields.io/hackage/v/conferer)](https://hackage.haskell.org/package/conferer)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/ludat/conferer/haskell.yml?branch=master)](https://github.com/ludat/conferer/actions)
[![Hackage-Deps](https://img.shields.io/hackage-deps/v/conferer)](https://packdeps.haskellers.com/feed?needle=conferer)
[![License](https://img.shields.io/github/license/ludat/conferer)](https://www.mozilla.org/en-US/MPL/2.0/)Most user oriented information you can find in the website: [conferer.ludat.io](https://conferer.ludat.io/)
## Testing and CI
We have about 50 tests, mostly for the conferer package since it's the one with most of the logic
both sources and FromConfig packages also have some tests but they are not tested as throughtly.To run them do:
```shell
stack test # for everything
stack test conferer # to run only core library tests
stack test conferer-source-json # to run json source tests
stack test conferer-warp # to run warp fromConfig tests
```Our ci is pretty intense as well we test with the last 5 versions of ghc (oldest being 8.0.2)
and with the nightly provided by stack and on every platform (windows, linux and macOS).So I'm pretty confident that if someone introduces a platform dependent bug we'll catch it.
## Licensing
This library is released under the Mozilla Public License 2.0 which is a weak copyleft license.
As usual you can use this library for anything you want, the only difference is that **if you modify
the source and distribute** you must publish your modifications.You can use it for privative software, GPL'd code, in house development and distribute
it as much as you like.## Contributing
It's pretty simple, if you want to add a feature that already has a ticket just go ahead and create a PR
referencing the ticket.If you want to add a new feature that doesn't have a ticket then you can add a ticket first to validate
that the feature makes sense and then create a PR (you can create the PR without the ticket if you feel
like it).## Devlopment
Most of the time I use ghcid to run tests:
```bash
ghcid -c='stack repl --test --main-is conferer-aeson:test:specs' --run=':main' --warnings
```There you can replace `conferer-aeson` with the right package and that will run those tests, and also
reload if any of the other packages change.## The website
The website is based on [docusaurus](https://docusaurus.io/) so it's mostly generated from the
markdown stored in the [/docs](/docs) directory and built and deployed using
[netlify](https://www.netlify.com/).## Publishing new versions
Publishing a new version is done using stack and parallel, beware that packages in the
examples directory shouldn't be published.But sadly versions need to be bumped by hand following PVP.
So to actually publish a new version of packages:
```shell
find -name '*.cabal' | grep -v example | parallel --tty stack upload {//}
```## Future maybe things
* Interpolate keys with other keys: `{a: "db", b: "${a}_thing"}`, getting `b`
will give `"db_thing"` (maybe) even in different levels of configuration
* A LOT of sources
* A LOT of `FromConfig` implementations