git.iko.soy/rowtype-yoga/purescript-vault
on master help sign in
4 files changed+92−13
since splitsnapshots
unifiedsplit
CHANGELOG.md+12−1 CONTRIBUTING.md+49−2 README.md+30−9 bower.json+1−1
CHANGELOG.md+12−1
@@ -4,6 +4,17 @@ Notable changes to this project are documented in this file. The format is based
44
55## [Unreleased]
66
7+Breaking changes:
8+
9+New features:
10+
11+Bugfixes:
12+
13+Other improvements:
14+- Updated the project for its new home in the Rowtype Yoga organization. ([c86a9a9](https://github.com/rowtype-yoga/purescript-vault/commit/c86a9a97840bb871e7b687f3056fedead99b925b) by @nsaunders)
15+
16+## [1.0.0] - 2023-03-09
17+
718Breaking changes:
819- Updated to v0.15 of the compiler, dropping support for previous versions. (#1 by @nsaunders)
920
@@ -14,7 +25,7 @@ Bugfixes:
1425- Fixed `union` function which previously ignored the first argument. (#2 by @nsaunders)
1526
1627Other improvements:
17−- Updated the project to the standards of the [purescript-contrib](https://github.com/purescript-contrib) organization. ([713fd52](https://github.com/purescript-community/purescript-vault/commit/713fd521362c2833cea5f9ef3afb1e600164b903) by @nsaunders)
28+- Updated the project to the standards of the [purescript-contrib](https://github.com/purescript-contrib) organization. ([713fd52](https://github.com/rowtype-yoga/purescript-vault/commit/713fd521362c2833cea5f9ef3afb1e600164b903) by @nsaunders)
1829- Updated the test suite to include better coverage. (#2 by @nsaunders)
1930- New implementation removes FFI code. (#3 by @nsaunders)
2031
CONTRIBUTING.md+49−2
@@ -1,3 +1,50 @@
1−# Contributing to Vault
1+Contributing
2+============
23
3−Thanks for your interest in contributing to `vault`! We welcome new contributions regardless of your level of experience or familiarity with PureScript.
4+Welcome, and thanks for your interest in Vault. Whether you are new to PureScript or here to teach us new tricks, we're glad to have you and look forward to your contributions. Listed below are a few ways you can help.
5+
6+Asking questions
7+----------------
8+If you have a question, please [open an issue](https://github.com/rowtype-yoga/purescript-vault/issues/new?labels=question) to discuss it. This might help us to find a defect; reveal an opportunity to improve the documentation or developer experience; or help someone facing a similar issue in the future.
9+
10+Reporting bugs
11+--------------
12+Please [open an issue](https://github.com/rowtype-yoga/purescript-vault/issues/new?labels=bug&template=bug-report.md) to discuss any defects you find.
13+
14+Enhancements
15+------------
16+Please [open an issue](https://github.com/rowtype-yoga/purescript-vault/issues/new?labels=enhancement&template=change-request.md) to discuss potential enhancements to the library. When submitting design ideas, please note that, for the most part, this library is intended as a direct port of the Haskell [vault](https://hackage.haskell.org/package/vault) package as described in [this blog post](https://apfelmus.nfshost.com/blog/2011/09/04-vault.html).
17+
18+Improving documentation
19+-----------------------
20+Please share any suggestions for improving or adding to the documentation by [submitting a pull request](https://github.com/rowtype-yoga/purescript-vault/compare) or [opening an issue](https://github.com/rowtype-yoga/purescript-vault/issues/new?labels=documentation).
21+
22+Sharing resources
23+-----------------
24+If you have created a tutorial, auxiliary library, interesting code example, or other resource related to Vault, please [share it with the PureScript community](https://discourse.purescript.org). Increasing awareness will bring more users (and potential contributors) to the project.
25+
26+Submitting code
27+---------------
28+Pull requests are welcome, but we ask that you [open an issue](https://github.com/rowtype-yoga/purescript-vault/issues/new) to discuss your plans before making any significant investment of your valuable time.
29+
30+### Development environment
31+
32+You can use [Nix](https://github.com/NixOS/nix) to create a development environment with all required tooling. Simply run `nix-shell` in the root project directory, and you'll have everything you need to get started.
33+
34+### Making changes
35+
36+* After making any changes, run `purs-tidy format-in-place src test` to format the code.
37+* Unit test(s) should accompany each change.
38+
39+### Preparing your submission
40+
41+Please verify your changes before submitting a pull request using the following commands:
42+1. `purs-tidy check src test`, which ensures that modules in the `src` and `test` directories conform to the project's formatting standards; and
43+1. `spago -x test.dhall test`, which runs the unit tests.
44+
45+### Submitting a pull request
46+
47+When you are ready to [submit a pull request](https://github.com/rowtype-yoga/purescript-vault/compare), please make sure to include:
48+1. a brief description of the change;
49+1. a link to the related issue, if applicable; and
50+1. any design considerations you feel are important.
README.md+30−9
@@ -1,13 +1,13 @@
11# Vault
22
3−[![CI](https://github.com/purescript-community/purescript-vault/workflows/CI/badge.svg?branch=master)](https://github.com/purescript-community/purescript-vault/actions?query=workflow%3ACI+branch%3Amaster)
4−[![Release](https://img.shields.io/github/release/purescript-community/purescript-vault.svg)](https://github.com/purescript-community/purescript-vault/releases)
3+[![CI](https://github.com/rowtype-yoga/purescript-vault/workflows/CI/badge.svg?branch=master)](https://github.com/rowtype-yoga/purescript-vault/actions?query=workflow%3ACI+branch%3Amaster)
4+[![Release](https://img.shields.io/github/release/rowtype-yoga/purescript-vault.svg)](https://github.com/rowtype-yoga/purescript-vault/releases)
55[![Pursuit](https://pursuit.purescript.org/packages/purescript-vault/badge)](https://pursuit.purescript.org/packages/purescript-vault)
66[![Maintainer: nsaunders](https://img.shields.io/badge/maintainer-nsaunders-teal.svg)](https://github.com/nsaunders)
77
8−A typed, persistent store for values of arbitrary types. This is a port of the haskell [Vault](https://github.com/HeinrichApfelmus/vault) library Heinrich Apfelmus.
8+A typed, persistent store for values of arbitrary types, ported from the Haskell [Vault](https://github.com/HeinrichApfelmus/vault) library by Heinrich Apfelmus.
99
10−Think of it as Map that can store for values of arbitrary types, but it's type-safe. You can store of any types by creating Key a first, this key used to parameterized the type you are going to store in vault.
10+Think of a vault like a map that can store any value in a type-safe manner. The first step is to generate a new `Key a` value using the `newKey` function. Then, use `insert`, `lookup`, `delete`, etc., just like their [Data.Map](https://pursuit.purescript.org/packages/purescript-ordered-collections/3.0.0/docs/Data.Map) analogs.
1111
1212```purescript
1313data Vault
@@ -15,8 +15,8 @@ data Key a
1515
1616newKey :: forall a. Effect (Key a)
1717empty :: Vault
18−lookup :: forall a. Key a -> Vault -> Maybe a
1918insert :: forall a. Key a -> a -> Vault -> Vault
19+lookup :: forall a. Key a -> Vault -> Maybe a
2020delete :: forall a. Key a -> Vault -> Vault
2121adjust :: forall a. (a -> a) -> Key a -> Vault -> Vault
2222```
@@ -29,13 +29,34 @@ Install `vault` with [Spago](https://github.com/purescript/spago):
2929spago install vault
3030```
3131
32+If `vault` is not included in your package set, include it in `packages.dhall`, e.g.
33+
34+```dhall
35+let upstream = -- <package set URL here>
36+in upstream
37+ with vault =
38+ { dependencies =
39+ [ "effect"
40+ , "maybe"
41+ , "ordered-collections"
42+ , "prelude"
43+ , "refs"
44+ , "unique"
45+ ]
46+ , repo =
47+ "https://github.com/rowtype-yoga/purescript-vault.git"
48+ , version =
49+ "v1.0.0"
50+ }
51+```
52+
3253## Quick start
3354
3455The quick start hasn't been written yet (contributions are welcome!). The quick start covers a common, minimal use case for the library, whereas longer examples and tutorials are kept in the [docs directory](./docs).
3556
3657## Documentation
3758
38−`vault` documentation is stored in a few places:
59+Vault documentation is stored in a few places:
3960
40611. Module documentation is [published on Pursuit](https://pursuit.purescript.org/packages/purescript-vault).
41622. Written documentation is kept in the [docs directory](./docs).
@@ -43,14 +64,14 @@ The quick start hasn't been written yet (contributions are welcome!). The quick
4364
4465If you get stuck, there are several ways to get help:
4566
46−- [Open an issue](https://github.com/purescript-community/purescript-vault/issues) if you have encountered a bug or problem.
67+- [Open an issue](https://github.com/rowtype-yoga/purescript-vault/issues/new?labels=bug&template=bug-report.md) if you have encountered a bug or problem.
4768- Ask general questions on the [PureScript Discourse](https://discourse.purescript.org) forum or the [PureScript Discord](https://discord.com/invite/sMqwYUbvz6) chat.
4869
4970## Contributing
5071
51−You can contribute to `vault` in several ways:
72+You can contribute to Vault in several ways:
5273
53−1. If you encounter a problem or have a question, please [open an issue](https://github.com/purescript-community/purescript-vault/issues). We'll do our best to work with you to resolve or answer it.
74+1. If you encounter a problem or have a question, please [open an issue](https://github.com/rowtype-yoga/purescript-vault/issues). We'll do our best to work with you to resolve or answer it.
5475
55762. If you would like to contribute code, tests, or documentation, please [read the contributor guide](./CONTRIBUTING.md). It's a short, helpful introduction to contributing to this library, including development instructions.
5677
bower.json+1−1
@@ -6,7 +6,7 @@
66 ],
77 "repository": {
88 "type": "git",
9− "url": "git://github.com/julienchan/purescript-vault.git"
9+ "url": "git://github.com/rowtype-yoga/purescript-vault.git"
1010 },
1111 "ignore": [
1212 "**/.*",