3Changes that affect users of aeson should be mentioned in `changelog.md`. It should contain
5* The level of change, see [PVP](https://wiki.haskell.org/Package_versioning_policy)
7 * How to migrate existing code
8 * When it should be used
11Add this entry under an `## Upcoming` header above existing releases.
13The exact format of entries is not important as we'll go through everything before a release is made.
21* One pragma on each line
23* Sort lexicographically
26{-# LANGUAGE BangPatterns #-}
28{-# LANGUAGE DataKinds #-}
31## Module declaration and exports
33* Opening paren on its own line
38module Data.Aeson.Types.ToJSON
40 -- * Core JSON classes
42 -- * Liftings to unary and binary type constructors
50* No alignment of import lists or qualifications
51* Sort lexicographically (qualified imports will be last)
52* No space between types and constructor lists
53* Sort identifiers in import lists lexicographically
56import BarBar as B ((<>), foo)
62## Development Workflow (If you plan on using Stack)
64Here we outline a general workflow new contributors could adopt for a nice incremental development experience.
66The root folder consists of two stack-*.yaml config files.
681. stack-nightly.yaml - Config file defines all the settings to build and test any changes.
692. stack-bench.yaml - Used to run benchmark tests.
703. stack-ffi-unescape.yaml - This is for replacing certain parts with a C-implementation.
72Therefore, a ghci development experience would be:
741. `stack ghci --stack-yaml stack-nightly.yaml --test`
763. `main` to run all tests, or `:main --pattern Foo` to run specific tests matched by pattern.
78Some discussion on this topic can also be found here [here](https://github.com/bos/aeson/issues/733)
80Of course before submitting a PR, the following steps are recommended:
821. 'stack test --stack-yaml stack-nightly.yaml` - Run the entire suite of tests
832. `make hlint` - Run hlint on the source folders.
843. 'stack test --stack-yaml stack-bench.yaml` - Run the benchmark tests if you believe your changes could affect the benchmarks.
86## Development Workflow (If you plan on using Cabal)
88A ghci development experience would be:
901. `cabal new-repl test:tests`
923. `Main.main` to run all tests, or `:m Main; :main --pattern Foo` to run specific tests matched by pattern.
94Of course before submitting a PR, the following steps are recommended:
961. `cabal new-test` - Run the entire suite of tests
972. `make hlint` - Run hlint on the source folders.
983. Uncomment the `benchmarks` line in `cabal.project` - Run the benchmark tests if you believe your changes could affect the benchmarks.
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list