-
Notifications
You must be signed in to change notification settings - Fork 149
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' into factorable-sum
# Conflicts: # src/Reflex/Adjustable/Class.hs # src/Reflex/Network.hs
- Loading branch information
Showing
233 changed files
with
23,835 additions
and
1,510 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
-- This is a GHC environment file written by cabal. This means you can | ||
-- run ghc or ghci and get the environment of the project as a whole. | ||
-- But you still need to use cabal repl $target to get the environment | ||
-- of specific components (libs, exes, tests etc) because each one can | ||
-- have its own source dirs, cpp flags etc. | ||
-- | ||
clear-package-db | ||
global-package-db | ||
package-db /home/owen/.cabal/store/ghc-8.6.5/package.db | ||
package-db dist-newstyle/packagedb/ghc-8.6.5 | ||
package-id reflex-0.6.2.4-inplace | ||
package-id MemoTrie-0.6.9-8zY1JbeVzGvsbhcVCLlip | ||
package-id base-4.12.0.0 | ||
package-id ghc-prim-0.5.3 | ||
package-id rts | ||
package-id integer-gmp-1.0.2.0 | ||
package-id newtype-generics-0.5.3-6UOHIAuTtziBWehsMC0qS4 | ||
package-id transformers-0.5.6.2 | ||
package-id bifunctors-5.5.3-CxBbY0hGul56YrkCP3bZTk | ||
package-id base-orphans-0.8-2hO32oBX2gy32lPSRilDYG | ||
package-id comonad-5.0.4-CfUDvK0fM3o3gQjXsmwpbS | ||
package-id containers-0.6.0.1 | ||
package-id array-0.5.3.0 | ||
package-id deepseq-1.4.4.0 | ||
package-id contravariant-1.5-F3dGhR4lhnFB6K0va0cOu0 | ||
package-id StateVar-1.1.1.1-2ewTKofpCGhC2np5dyFIaR | ||
package-id stm-2.5.0.0 | ||
package-id distributive-0.6-KSBqnyfU90c1sptSOvKudm | ||
package-id tagged-0.8.6-EiJ2F18RuD68LSMkg0Ly4r | ||
package-id template-haskell-2.14.0.0 | ||
package-id ghc-boot-th-8.6.5 | ||
package-id pretty-1.1.3.6 | ||
package-id semigroups-0.18.5-6T2lH5F6zyQIdwR3JYKMO3 | ||
package-id transformers-compat-0.6.2-IT1pgM4Lod5B9rerVXsOk7 | ||
package-id th-abstraction-0.2.11.0-DAhuCgi08HTBWsDjm9nrOq | ||
package-id constraints-extras-0.3.0.1-ElqE8ZEueSbDZyXNyvIbuy | ||
package-id constraints-0.10.1-Ge0oUKujDl5JFbRA6MC749 | ||
package-id binary-0.8.6.0 | ||
package-id bytestring-0.10.8.2 | ||
package-id hashable-1.2.7.0-3Td3QPpYpP355exFvEAGjQ | ||
package-id text-1.2.3.1 | ||
package-id mtl-2.2.2 | ||
package-id data-default-0.7.1.1-LTjBtjLvKGK2UBTHiM9KVF | ||
package-id data-default-class-0.1.2.0-FeIQ5tLoVZBHMSgrT9zptQ | ||
package-id data-default-instances-containers-0.0.1-9yvw8HF06tiAXuxm5U8KjO | ||
package-id data-default-instances-dlist-0.0.1-LIRSqaQLAnD9zvxNpqPc5w | ||
package-id dlist-0.8.0.5-FMMQwM1hD2kK7b7715Z2vG | ||
package-id data-default-instances-old-locale-0.0.1-GRzcBvmea5LLGj3CNDMpIw | ||
package-id old-locale-1.0.0.7-D4Rn5zPhtMJBwwirPJNu78 | ||
package-id dependent-map-0.3-8T0Q74nqGk3BvzDcWTzlnJ | ||
package-id dependent-sum-0.6.2.0-DfZzs5WvVkfLNvfMOWNHZf | ||
package-id exception-transformers-0.4.0.7-6IkV6CjEJU5BGxyjUrDnHG | ||
package-id haskell-src-exts-1.21.0-1MqMUIJU7y29AVS9NHxlR4 | ||
package-id haskell-src-meta-0.8.2-6FpJnzwbNozIUTxPdhjFDj | ||
package-id syb-0.7-8OHoa6XfXrB5PPoB0H7POz | ||
package-id th-orphans-0.13.6-4fprWqsu1Zg2nne2HAd7tV | ||
package-id th-lift-0.7.11-hZJVZ2zmXw59mRAYP9RXW | ||
package-id th-lift-instances-0.1.12-7ErLaqpNM4M6ZI4vzbEcTE | ||
package-id vector-0.12.0.2-AoZ9EwUsgIW1yrOc105QXH | ||
package-id primitive-0.6.4.0-ILgywxtLpvnAOlEISPpP5b | ||
package-id th-reify-many-0.1.8-HnJg08Hsq3q4zgVlksa6iN | ||
package-id safe-0.3.17-6NAurGt3qCrL1bVFh29Owv | ||
package-id th-expand-syns-0.4.4.0-JJJC0BlUtveGlxXaCaUH0k | ||
package-id lens-4.17-AoHvfafWcnn1fl5JMgr0bk | ||
package-id call-stack-0.1.0-6JeY2gtocDgBo2y7QzQaJD | ||
package-id exceptions-0.10.0-14KCO06p6in59SsPqNrx7l | ||
package-id filepath-1.4.2.1 | ||
package-id free-5.1-LU83tWlGajCAxLkVlHHqYh | ||
package-id profunctors-5.3-1LzggvL6mvS34LpG9TKvy4 | ||
package-id semigroupoids-5.3.2-IPtfeEgsxTf6bYG7zEUetP | ||
package-id unordered-containers-0.2.9.0-DHGIJuoYmZw582l4SNN8rX | ||
package-id transformers-base-0.4.5.2-FanPsn4y0Pw6qXgRixCk97 | ||
package-id kan-extensions-5.2-3KN2oqNy0VOJofm6ZCGs55 | ||
package-id adjunctions-4.4-I9DpOfKzPZSJ2UBUD1iYww | ||
package-id void-0.7.2-25eAk552UtQA9vusJY0zCu | ||
package-id invariant-0.5.1-3Wx8m8qRXoTIuMeWnsAnE3 | ||
package-id parallel-3.2.2.0-EGl5SOk48TWHAD161C93aQ | ||
package-id reflection-2.1.4-E9VXTbXoqHZ5rulgGPZOrF | ||
package-id monad-control-1.0.2.3-EdXpRzw5t49bbotgsxoFF | ||
package-id monoidal-containers-0.6-FmoaV48AwVeLGrYATGxIXa | ||
package-id aeson-1.4.2.0-7yK3GqBIskeGYdLXiHaTFp | ||
package-id attoparsec-0.13.2.2-FS10ndSmMwuKnecmDnUags | ||
package-id scientific-0.3.6.2-LafykZRn9WH8upIymNFJ3S | ||
package-id integer-logarithms-1.0.2.2-IT1M1moCo0mIobW8LfdrSC | ||
package-id base-compat-0.10.5-FRXoAxOVtbG2qLNIZm1tTr | ||
package-id unix-2.7.2.2 | ||
package-id time-1.8.0.2 | ||
package-id time-locale-compat-0.1.1.5-Et2KuIqhniaDySS0uBEPko | ||
package-id uuid-types-1.0.3-DcKfDLH26WcEOcAKdcDixS | ||
package-id random-1.1-3ypV4EIycgb35PKjTYYr5q | ||
package-id newtype-0.2-I9xMGod6wpEBsBPdaJXf9q | ||
package-id semialign-1-2JrnZFa2W6pEgyBZKAsND5 | ||
package-id these-1-Lv5CnrkyX4NL7wHSrkFYuQ | ||
package-id QuickCheck-2.12.6.1-JyVWDgZJAFGJC5rmVxfUSm | ||
package-id erf-2.0.0.0-ExhHoenPosmHlOroBQQced | ||
package-id tf-random-0.5-IjFVdJXpGgq3hBuRJiaT27 | ||
package-id assoc-1-686bCGpnMLjLCMVv3cunID | ||
package-id prim-uniq-0.1.0.1-D75JKKBZDmuADvWWa8CGIl | ||
package-id ref-tf-0.4.0.1-6otS07lPtcm2p5TIx8ks0R | ||
package-id unbounded-delays-0.1.1.0-7ulHERuvlgAKyhaTH4vNZc | ||
package-id witherable-0.3-1xsX6QC8kE49eKfUvnd7e8 | ||
package-id these-lens-1-JKcyCh3l8NA9dhlmptj30M | ||
package-id directory-1.3.3.0 | ||
package-id filemanip-0.3.6.3-4gIDkmoap4z2kDIgJy5hH | ||
package-id unix-compat-0.5.1-7L4ZE9qc5MBJa5Jne6W69O | ||
package-id hlint-2.2.2-9DW3qFHDIDx9mU0rIkLsV0 | ||
package-id ansi-terminal-0.8.2-LZ54B5ErqCiIlNwOVvnj65 | ||
package-id colour-2.3.4-BYzTQyKoQ9LK29pbkBo2SY | ||
package-id cmdargs-0.10.20-EiFbtpfcdyUCuIuL5dHJuW | ||
package-id process-1.6.5.0 | ||
package-id cpphs-1.20.8-DevT7HkEKU3DDQgUoHVnJY | ||
package-id old-time-1.1.0.3-2XkcGgLYS3G4Bt8PCBG9iL | ||
package-id polyparse-1.12.1-FeZxex5koKh2BIaglzjzIj | ||
package-id extra-1.6.14-22umsfNV1L4GYDsAAhiwEu | ||
package-id clock-0.7.2-6GYCAXixqb8FuS0ooeoDbD | ||
package-id ghc-lib-parser-8.8.0.20190723-JAtheQxRztq8b4NiIcZ5ld | ||
package-id hpc-0.6.0.3 | ||
package-id haskell-src-exts-util-0.2.5-90Dej4Kotj9AN1CNW4KGMw | ||
package-id uniplate-1.6.12-5jY4kwgUm4FYrSzkrgwIB | ||
package-id hscolour-1.24.4-BEI90NJLSwF5tw227AM1ae | ||
package-id refact-0.3.0.2-1sV84vP3OHo15p4d2xAoYA | ||
package-id yaml-0.11.0.0-I1P6K4duuUiB9XtGHug2Dc | ||
package-id conduit-1.3.1.1-47X9ud5YVzCDqkAV1V2WnC | ||
package-id mono-traversable-1.0.11.0-3LXfAFldzuQ27QqqkshSXK | ||
package-id split-0.2.3.3-CwXUcGD2U4I4pJUogujB5u | ||
package-id vector-algorithms-0.8.0.1-1IsWwfvXHi37z3RePwG982 | ||
package-id resourcet-1.2.2-7olNYHp9yNzFSqTGVHDyn8 | ||
package-id unliftio-core-0.1.2.0-DmlZdkLzX278vkyONsp8WQ | ||
package-id libyaml-0.1.1.0-9QYjfboShhg1xO5bYS6Vkd | ||
package-id ansi-wl-pprint-0.6.8.2-9mA7ckPlKRf5aGqviJvBkZ | ||
package-id parsec-3.1.13.0 | ||
package-id optparse-applicative-0.14.3.0-GwyNPNsVIGd8cKk3PdDU1e |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,173 @@ | ||
# Cache Buster: 0 | ||
language: nix | ||
# This Travis job script has been generated by a script via | ||
# | ||
# haskell-ci '--config=cabal.haskell-ci' 'cabal.project' | ||
# | ||
# For more information, see https://github.com/haskell-CI/haskell-ci | ||
# | ||
# version: 0.3.20190814 | ||
# | ||
language: c | ||
dist: xenial | ||
sudo: required | ||
git: | ||
# whether to recursively clone submodules | ||
submodules: false | ||
cache: | ||
directories: | ||
- /nix | ||
- $HOME/.cabal/packages | ||
- $HOME/.cabal/store | ||
before_cache: | ||
- rm -fv $CABALHOME/packages/hackage.haskell.org/build-reports.log | ||
# remove files that are regenerated by 'cabal update' | ||
- rm -fv $CABALHOME/packages/hackage.haskell.org/00-index.* | ||
- rm -fv $CABALHOME/packages/hackage.haskell.org/*.json | ||
- rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.cache | ||
- rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar | ||
- rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar.idx | ||
- rm -rfv $CABALHOME/packages/head.hackage | ||
matrix: | ||
include: | ||
- env: COMPILER=ghc7103 | ||
- env: COMPILER=ghc821 | ||
- env: COMPILER=ghc802 | ||
- env: COMPILER=ghcjs | ||
- compiler: ghcjs-8.4 | ||
addons: {"apt":{"sources":["hvr-ghc"],"packages":["cabal-install-3.0"]}} | ||
- compiler: ghc-8.8.1 | ||
addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.8.1","cabal-install-3.0"]}} | ||
- compiler: ghc-8.6.5 | ||
addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.5","cabal-install-2.4"]}} | ||
- compiler: ghc-8.4.4 | ||
addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-2.4"]}} | ||
- compiler: ghc-8.2.2 | ||
addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-2.4"]}} | ||
- compiler: ghc-8.0.2 | ||
addons: {"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-2.4"]}} | ||
before_install: | ||
- | | ||
if [ "$TRAVIS_OS_NAME" = "linux" ]; then | ||
sudo add-apt-repository -y ppa:hvr/ghcjs; | ||
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add - | ||
sudo apt-add-repository 'https://deb.nodesource.com/node_8.x xenial main' | ||
sudo apt-get update; | ||
sudo apt-get install $CC cabal-install-3.0 nodejs; | ||
fi | ||
- HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//') | ||
- WITHCOMPILER="-w $HC" | ||
- | | ||
if echo $CC | grep -q ghcjs; then | ||
GHCJS=true | ||
HC=${HC}js | ||
WITHCOMPILER="--ghcjs ${WITHCOMPILER}js" | ||
else | ||
GHCJS=false; | ||
fi | ||
- if $GHCJS ; then sudo apt-get install -y ghc-8.4.4 ; fi | ||
- if $GHCJS ; then PATH="/opt/ghc/8.4.4/bin:$PATH" ; fi | ||
- HCPKG="$HC-pkg" | ||
- unset CC | ||
- CABAL=/opt/ghc/bin/cabal | ||
- CABALHOME=$HOME/.cabal | ||
- export PATH="$CABALHOME/bin:$PATH" | ||
- TOP=$(pwd) | ||
- "HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\\d+)\\.(\\d+)\\.(\\d+)(\\.(\\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')" | ||
- echo $HCNUMVER | ||
- CABAL="$CABAL -vnormal+nowrap+markoutput" | ||
- set -o pipefail | ||
- | | ||
echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }' >> .colorful.awk | ||
echo 'BEGIN { state = "output"; }' >> .colorful.awk | ||
echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }' >> .colorful.awk | ||
echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }' >> .colorful.awk | ||
echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> .colorful.awk | ||
echo ' if (state == "cabal") {' >> .colorful.awk | ||
echo ' print blue($0)' >> .colorful.awk | ||
echo ' } else {' >> .colorful.awk | ||
echo ' print $0' >> .colorful.awk | ||
echo ' }' >> .colorful.awk | ||
echo '}' >> .colorful.awk | ||
- cat .colorful.awk | ||
- | | ||
color_cabal_output () { | ||
awk -f $TOP/.colorful.awk | ||
} | ||
- echo text | color_cabal_output | ||
install: | ||
- ${CABAL} --version | ||
- echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]" | ||
- node --version | ||
- echo $GHCJS | ||
- TEST=--enable-tests | ||
- BENCH=--enable-benchmarks | ||
- BENCH=--disable-benchmarks | ||
- HEADHACKAGE=false | ||
- rm -f $CABALHOME/config | ||
- | | ||
echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config | ||
echo "remote-build-reporting: anonymous" >> $CABALHOME/config | ||
echo "write-ghc-environment-files: always" >> $CABALHOME/config | ||
echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config | ||
echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config | ||
echo "world-file: $CABALHOME/world" >> $CABALHOME/config | ||
echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config | ||
echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config | ||
echo "installdir: $CABALHOME/bin" >> $CABALHOME/config | ||
echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config | ||
echo "store-dir: $CABALHOME/store" >> $CABALHOME/config | ||
echo "install-dirs user" >> $CABALHOME/config | ||
echo " prefix: $CABALHOME" >> $CABALHOME/config | ||
echo "repository hackage.haskell.org" >> $CABALHOME/config | ||
echo " url: http://hackage.haskell.org/" >> $CABALHOME/config | ||
- cat $CABALHOME/config | ||
- rm -fv cabal.project cabal.project.local cabal.project.freeze | ||
- travis_retry ${CABAL} v2-update -v | ||
- if $GHCJS ; then (cd /tmp && ${CABAL} v2-install -w ghc-8.4.4 happy) ; fi | ||
# Generate cabal.project | ||
- rm -rf cabal.project cabal.project.local cabal.project.freeze | ||
- touch cabal.project | ||
- | | ||
echo "packages: ." >> cabal.project | ||
- | | ||
- cat cabal.project || true | ||
- cat cabal.project.local || true | ||
- if [ -f "./configure.ac" ]; then (cd "." && autoreconf -i); fi | ||
- ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} | color_cabal_output | ||
- "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'" | ||
- rm cabal.project.freeze | ||
script: | ||
- set -e | ||
- nix-build -E "with (import <nixpkgs> {}); pkgs.haskell.packages.$COMPILER.callPackage ./default.nix { }" | ||
- nix-collect-garbage -d # This is important to do right before 'script' ends so the cache gets GCed | ||
- DISTDIR=$(mktemp -d /tmp/dist-test.XXXX) | ||
# Packaging... | ||
- ${CABAL} v2-sdist all | color_cabal_output | ||
# Unpacking... | ||
- mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/ | ||
- cd ${DISTDIR} || false | ||
- find . -maxdepth 1 -type f -name '*.tar.gz' -exec tar -xvf '{}' \; | ||
- find . -maxdepth 1 -type f -name '*.tar.gz' -exec rm '{}' \; | ||
- PKGDIR_reflex="$(find . -maxdepth 1 -type d -regex '.*/reflex-[0-9.]*')" | ||
# Generate cabal.project | ||
- rm -rf cabal.project cabal.project.local cabal.project.freeze | ||
- touch cabal.project | ||
- | | ||
echo "packages: ${PKGDIR_reflex}" >> cabal.project | ||
- | | ||
- cat cabal.project || true | ||
- cat cabal.project.local || true | ||
# Building... | ||
# this builds all libraries and executables (without tests/benchmarks) | ||
- ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | color_cabal_output | ||
# Building with tests and benchmarks... | ||
# build & run tests, build benchmarks | ||
- ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output | ||
# Testing... | ||
- if ! $GHCJS ; then ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output ; fi | ||
# cabal check... | ||
- (cd ${PKGDIR_reflex} && ${CABAL} -vnormal check) | ||
# haddock... | ||
- if ! $GHCJS ; then ${CABAL} v2-haddock $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output ; fi | ||
# Constraint sets | ||
- rm -rf cabal.project.local | ||
# Constraint set no-th | ||
- ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='reflex -use-template-haskell' all | color_cabal_output | ||
# Constraint set old-these | ||
- if $GHCJS || ! $GHCJS && [ $HCNUMVER -lt 80800 ] ; then ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='these <1' all | color_cabal_output ; fi | ||
# Constraint set old-witherable | ||
- ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --constraint='witherable <0.3.2' all | color_cabal_output | ||
|
||
# REGENDATA ["--config=cabal.haskell-ci","cabal.project"] | ||
# EOF |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# Contribution Guide | ||
|
||
Contributions and issue reports are encouraged and appreciated! | ||
|
||
- [Opening Issues](#opening-issues) | ||
- [Submitting Changes](#submitting-changes) | ||
- [Guidelines for Commit Messages](#guidelines-for-commit-messages) | ||
- [Guidelines for Pull Requests](#guidelines-for-pull-requests) | ||
- [Code Quality](#code-quality) | ||
- [Documentation](#documentation) | ||
|
||
## Opening Issues | ||
|
||
Before opening an issue, please check whether your issue has already been reported. Assuming it has not: | ||
|
||
* Describe the issue you're encountering or the suggestion you're making | ||
* Include any relevant steps to reproduce or code samples you can. It's always easier for us to debug if we have something that demonstrates the error. | ||
* Let us know what version of reflex you were using. If you're using a github checkout, provide the git hash. | ||
* Describe how you're building reflex (i.e., via reflex-platform, cabal install, stack, obelisk, etc.). If you're using reflex-platform or obelisk, provide the git hash of your checkout. | ||
|
||
## Submitting Changes | ||
|
||
### Guidelines for Commit Messages | ||
|
||
#### Summary Line | ||
The summary line of your commit message should summarize the changes being made. Commit messages should be written in the imperative mood and should describe what happens when the commit is applied. | ||
|
||
One way to think about it is that your commit message should be able to complete the sentence: | ||
"When applied, this commit will..." | ||
|
||
#### Body | ||
For breaking changes, new features, refactors, or other major changes, the body of the commit message should describe the motivation behind the change in greater detail and may include references to the issue tracker. The body shouldn't repeat code/comments from the diff. | ||
|
||
### Guidelines for Pull Requests | ||
|
||
Wherever possible, pull requests should add a single feature or fix a single bug. Pull requests should not bundle several unrelated changes. | ||
|
||
### Code Quality | ||
|
||
#### Warnings | ||
|
||
Your pull request should add no new warnings to the project. It should also generally not disable any warnings. | ||
|
||
#### Build and Test | ||
|
||
Make sure the project builds and that the tests pass! This will generally also be checked by CI before merge, but trying it yourself first means you'll catch problems earlier and your contribution can be merged that much sooner! | ||
|
||
#### Dependencies | ||
|
||
Include version bounds whenever adding a dependency to the library stanza of the cabal file. Note that libraries added to reflex.cabal also need to be added to default.nix. | ||
|
||
### Documentation | ||
|
||
#### In the code | ||
We're always striving to improve documentation. Please include [haddock](https://haskell-haddock.readthedocs.io/en/latest/index.html) documentation for any added code, and update the documentation for any code you modify. | ||
|
||
#### In the [Changelog](ChangeLog.md) | ||
Add an entry to the changelog when your PR: | ||
* Adds a feature | ||
* Deprecates something | ||
* Includes a breaking change | ||
* Makes any other change that will impact users | ||
|
||
#### In the [Readme](README.md) | ||
The readme is the first place a lot of people look for information about the repository. Update any parts of the readme that are affected by your PR. | ||
|
Oops, something went wrong.