mirror of
https://github.com/kowainik/relude.git
synced 2024-09-11 04:35:39 +03:00
Fix travis, refactor (#1)
* Fix travis, refactor * Fix Travis * Fix after review * Remove CHANGELOG from extradocs
This commit is contained in:
parent
520aed87fa
commit
b5d73140fa
7
.gitignore
vendored
7
.gitignore
vendored
@ -1,8 +1,11 @@
|
||||
*.sw[pon]
|
||||
.stack-work
|
||||
dist
|
||||
dist-newstyle/
|
||||
.cabal-sandbox
|
||||
cabal.sandbox.config
|
||||
.ghc.environment.*
|
||||
|
||||
*.hi
|
||||
*.o
|
||||
TAGS
|
||||
@ -12,4 +15,6 @@ TAGS
|
||||
.dir-locals.el
|
||||
*.html
|
||||
|
||||
*.liquid
|
||||
*.liquid
|
||||
|
||||
.DS_Store
|
118
.travis.yml
118
.travis.yml
@ -5,82 +5,94 @@ language: haskell
|
||||
git:
|
||||
depth: 5
|
||||
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- "$HOME/.cabal"
|
||||
- "$HOME/.ghc"
|
||||
- "$HOME/.stack"
|
||||
- "$HOME/build/serokell/universum/.stack-work"
|
||||
|
||||
- "$TRAVIS_BUILD_DIR/.stack-work"
|
||||
|
||||
matrix:
|
||||
|
||||
include:
|
||||
|
||||
- ghc: 7.10.3
|
||||
env: GHCVER='7.10.3' STACK_YAML="$HOME/build/serokell/universum/stack-$GHCVER.yaml"
|
||||
env: GHCVER='7.10.3' CABALVER='head'
|
||||
os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- hvr-ghc
|
||||
packages:
|
||||
- ghc-7.10.3
|
||||
- cabal-install-head
|
||||
|
||||
- ghc: 8.0.2
|
||||
env: GHCVER='8.0.2' STACK_YAML="$HOME/build/serokell/universum/stack-$GHCVER.yaml"
|
||||
env: GHCVER='8.0.2' CABALVER='head'
|
||||
os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- hvr-ghc
|
||||
packages:
|
||||
- ghc-8.0.2
|
||||
- cabal-install-head
|
||||
|
||||
- ghc: 8.2.2
|
||||
env: GHCVER='8.2.2' STACK_YAML="$HOME/build/serokell/universum/stack.yaml"
|
||||
env: GHCVER='8.2.2' CABALVER='head'
|
||||
os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- hvr-ghc
|
||||
packages:
|
||||
- ghc-8.2.2
|
||||
- cabal-install-head
|
||||
|
||||
- ghc: 8.4.2
|
||||
env: GHCVER='8.4.2' STACK_YAML="$HOME/build/serokell/universum/stack-$GHCVER.yaml"
|
||||
- ghc: 8.4.3
|
||||
env: GHCVER='8.4.3' CABALVER='head'
|
||||
os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- hvr-ghc
|
||||
packages:
|
||||
- ghc-8.4.3
|
||||
- cabal-install-head
|
||||
|
||||
- ghc: 8.2.2
|
||||
env: GHCVER='8.2.2' STACK_YAML="$HOME/build/serokell/universum/stack-liquid.yaml"
|
||||
|
||||
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- sourceline: 'ppa:hvr/ghc'
|
||||
packages:
|
||||
- libgmp-dev
|
||||
- cabal-install-2.0
|
||||
|
||||
|
||||
before_install:
|
||||
|
||||
- mkdir -p ~/.local/bin
|
||||
- export PATH="$HOME/.local/bin:$PATH"
|
||||
- travis_retry curl -L 'https://www.stackage.org/stack/linux-x86_64' | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
|
||||
- stack --version
|
||||
|
||||
# Install Z3
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo add-apt-repository ppa:hvr/z3 -y > /dev/null; sudo apt-key -qq update /dev/null; sudo apt-get -qq update; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq install z3 -y --force-yes; fi
|
||||
- ghc: 8.4.3
|
||||
env: STACK_YAML="$HOME/build/kowainik/universum/stack.yaml"
|
||||
os: linux
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libgmp-dev
|
||||
|
||||
install:
|
||||
|
||||
- travis_wait 30 stack setup --no-terminal
|
||||
- stack ghc -- --version
|
||||
|
||||
- travis_wait 40 stack build --only-dependencies --no-terminal
|
||||
- travis_wait 40 stack build --test --bench --haddock --no-run-tests --no-run-benchmarks --no-haddock-deps --no-terminal
|
||||
|
||||
- |
|
||||
if [ "$STACK_YAML" == "$HOME/build/serokell/universum/stack-liquid.yaml" ]; then
|
||||
stack install liquidhaskell-0.8.2.4
|
||||
if [ -z "$STACK_YAML" ]; then
|
||||
export PATH="/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH"
|
||||
echo $PATH
|
||||
cabal new-update
|
||||
cabal new-build --enable-tests --enable-benchmarks
|
||||
else
|
||||
echo "Skipping `liquidhaskell` installation"
|
||||
echo "$TRAVIS_BUILD_DIR"
|
||||
mkdir -p ~/.local/bin
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
travis_retry curl -L 'https://www.stackage.org/stack/linux-x86_64' | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
|
||||
stack --version
|
||||
stack setup --no-terminal
|
||||
stack ghc -- --version
|
||||
stack build --only-dependencies --no-terminal
|
||||
fi
|
||||
|
||||
script:
|
||||
|
||||
- travis_wait 40 stack build --test --no-terminal
|
||||
- |
|
||||
if [ "$STACK_YAML" == "$HOME/build/serokell/universum/stack-liquid.yaml" ]; then
|
||||
stack exec -- liquid --totalhaskell src/Universum/Unsafe.hs
|
||||
stack exec -- liquid --totalhaskell src/Universum/Nub.hs
|
||||
if [ -z "$STACK_YAML" ]; then
|
||||
cabal new-test
|
||||
cabal new-haddock
|
||||
else
|
||||
echo "Skipping `liquidhaskell` running"
|
||||
stack build --test --bench --no-run-tests --no-run-benchmarks --no-terminal
|
||||
fi
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
slack:
|
||||
rooms:
|
||||
- serokell:RfJUgurMOLH2S49BEcRsAdVw
|
||||
on_success: change
|
||||
on_failure: always
|
||||
|
370
CHANGES.md
370
CHANGES.md
@ -1,370 +0,0 @@
|
||||
1.3.0
|
||||
=====
|
||||
|
||||
* [#170](https://github.com/serokell/universum/pull/170):
|
||||
Remove `ElementConstraint` from the `Container` class.
|
||||
|
||||
_Migration guide:_ remove `ElementConstraint` from every instance and every type signature.
|
||||
|
||||
1.2.0
|
||||
=====
|
||||
|
||||
* [#159](https://github.com/serokell/universum/issues/159) **Breaking change**:
|
||||
Remove `text-format` dependency.
|
||||
|
||||
_Migration guide:_ import `Buildable` type class either from `text-format` or `formatting` or `fmt` library. Instead of `pretty` you can use [`fmt`](https://hackage.haskell.org/package/fmt-0.6/docs/Fmt.html#v:fmt) function.
|
||||
* [#164](https://github.com/serokell/universum/issues/164):
|
||||
Don't reexport `log :: Floating a => a -> a`.
|
||||
|
||||
1.1.1
|
||||
=====
|
||||
|
||||
* [#148](https://github.com/serokell/universum/issues/148):
|
||||
Add `CODEOWNERS` and contributing guide.
|
||||
* [#135](https://github.com/serokell/universum/issues/135):
|
||||
Add documentation regarding internal module structure.
|
||||
* [#113](https://github.com/serokell/universum/issues/113):
|
||||
Annotate `at` function from `Unsafe` module and `ordNub`
|
||||
function from `Nub` module with `liquidhaskell`.
|
||||
* [#73](https://github.com/serokell/universum/issues/73):
|
||||
Add more examples to docs and fix warnings where possible.
|
||||
* Move reexport of `NonEmpty` to `Universum.List` module.
|
||||
|
||||
1.1.0
|
||||
=====
|
||||
|
||||
* [#144](https://github.com/serokell/universum/issues/144):
|
||||
Add `Exc` pattern synonym.
|
||||
* [#60](https://github.com/serokell/universum/issues/60):
|
||||
Reexport `Natural` type from `Numeric.Natura` module.
|
||||
* [#118](https://github.com/serokell/universum/issues/118):
|
||||
Reexport `Type` from `Data.Kind` module.
|
||||
* [#130](https://github.com/serokell/universum/issues/130):
|
||||
Merge `ToList` and `Container` type classes into single type class `Container`.
|
||||
* [#15](https://github.com/serokell/universum/issues/15):
|
||||
Add `?:` function to `Universum.Monad.Maybe`.
|
||||
* [#128](https://github.com/serokell/universum/issues/128):
|
||||
Add `Unsafe` module with unsafe functions to works with lists and `Maybe`.
|
||||
* [#129](https://github.com/serokell/universum/issues/129):
|
||||
Reexport `id`.
|
||||
* [#136](https://github.com/serokell/universum/issues/136):
|
||||
Change `foldl'` type back, add `flipfoldl'` instead.
|
||||
|
||||
1.0.4.1
|
||||
=====
|
||||
|
||||
* [#127](https://github.com/serokell/universum/issues/127):
|
||||
Fix `doctest` for `text-1.2.3`.
|
||||
|
||||
1.0.4
|
||||
=====
|
||||
|
||||
* [#53](https://github.com/serokell/universum/issues/53):
|
||||
Add `doctest` to `universum`. Also imporove and fix documentation.
|
||||
* [#117](https://github.com/serokell/universum/issues/117):
|
||||
Drop the support of `GHC-8.0.1`.
|
||||
* [#104](https://github.com/serokell/universum/issues/104):
|
||||
Reexport `hashWithSalt` from `Data.Hashable`.
|
||||
* [#95](https://github.com/serokell/universum/issues/95):
|
||||
Reexport `Compose` from `Data.Functor.Compose`.
|
||||
* [#124](https://github.com/serokell/universum/issues/124):
|
||||
Export methods of class `Exception`.
|
||||
|
||||
1.0.3
|
||||
=====
|
||||
|
||||
* [#114](https://github.com/serokell/universum/issues/114):
|
||||
Reexport more functions from `safe-exceptions`.
|
||||
|
||||
1.0.2
|
||||
=====
|
||||
|
||||
* [#91](https://github.com/serokell/universum/issues/91):
|
||||
Change argument order of `foldl'`.
|
||||
* [#97](https://github.com/serokell/universum/issues/97):
|
||||
Add `ToPairs` type class with the ability to have list of pairs.
|
||||
|
||||
1.0.1
|
||||
=====
|
||||
|
||||
* [#100](https://github.com/serokell/universum/issues/100):
|
||||
Add `bug` function = `impureThrow`.
|
||||
|
||||
1.0.0
|
||||
=====
|
||||
|
||||
* [#90](https://github.com/serokell/universum/issues/90):
|
||||
Improve project structure.
|
||||
* [#89](https://github.com/serokell/universum/issues/89):
|
||||
Add export of `Universum.Nub` module to `Universum`.
|
||||
* Add `listToMaybe` to `Universum.Monad.Reexport`.
|
||||
* [#81](https://github.com/serokell/universum/issues/81):
|
||||
Make `putText` and `putLText` to be versions of `putStr`.
|
||||
Add `putTextLn` and `putLTextLn` -- versions of `putStrLn`.
|
||||
* [#5](https://github.com/serokell/universum/issues/5):
|
||||
Add safe versions of `head`, `tail`, `init`, `last` functions for `NonEmpty` list.
|
||||
Old `head` (which returns `Maybe`) is renamed to `safeHead`.
|
||||
Reexports from `safe` are removed.
|
||||
* Remove `unsnoc` (this function is very slow and shouldn't be used).
|
||||
* [#88](https://github.com/serokell/universum/issues/88):
|
||||
Add `HasCallStack =>` to `error` and `undefined` functions.
|
||||
* [#58](https://github.com/serokell/universum/issues/58):
|
||||
Make `Element` type family be associated type family.
|
||||
Remove `{-# OVERLAPPABLE #-}` instance for `ToList` and `Container`. Add default instances for basic types.
|
||||
Remove `WrappedList` `newtype` because it's not needed anymore.
|
||||
Remove `NontrivialContainer` constraint alias.
|
||||
* [#56](https://github.com/serokell/universum/issues/56):
|
||||
Make `elem` and `notElem` faster for `Set` and `HashSet` by introducing `ElementConstraint` associated type family.
|
||||
* Remove `Unsafe` module. Though, see issue [#128](https://github.com/serokell/universum/issues/128)
|
||||
for disuccion regarding possible return of this module.
|
||||
|
||||
0.9.1
|
||||
=====
|
||||
|
||||
* Change `base` version to be `< 5`.
|
||||
|
||||
0.9.0
|
||||
=====
|
||||
|
||||
* [#79](https://github.com/serokell/universum/issues/79):
|
||||
Import '(<>)' from Semigroup, not Monoid.
|
||||
* Improve travis configartion.
|
||||
* [#80](https://github.com/serokell/universum/issues/80):
|
||||
Rename `Container` to `ToList`, `NontrivialContainer` to `Container`.
|
||||
Keep `NontrivialContainer` as type alias.
|
||||
* Rename `Containers` module to `Container.Class`.
|
||||
* Move all container-related reexports from `Universum` to `Container.Reexport`.
|
||||
* Add default implementation of `null` function.
|
||||
* Add `WrappedList` newtype with instance of `Container`.
|
||||
* Improve compile time error messages for disallowed instances.
|
||||
|
||||
0.8.0
|
||||
=====
|
||||
|
||||
* [#83](https://github.com/serokell/universum/issues/83):
|
||||
Change the order of types in `show` and `print` functions.
|
||||
* Move string related reexports and functions to `Conv` module.
|
||||
* Rename `Conv` module to `String`.
|
||||
* Move `print` function to `Print` module.
|
||||
* [#77](https://github.com/serokell/universum/issues/77):
|
||||
Add `modify'` function to export list.
|
||||
|
||||
0.7.1.1
|
||||
=======
|
||||
|
||||
* [#69](https://github.com/serokell/universum/issues/69):
|
||||
Document `SuperComposition` operator `(...)`.
|
||||
|
||||
0.7.1
|
||||
=====
|
||||
|
||||
* [#68](https://github.com/serokell/universum/issues/68):
|
||||
Separate all 'nub' functions to `Nub` module, add `sortNub` and `unstableNub` there.
|
||||
* [#54](https://github.com/serokell/universum/issues/54):
|
||||
Reorganize .cabal.
|
||||
* [#21](https://github.com/serokell/universum/issues/21):
|
||||
Add benchmarks.
|
||||
* [#65](https://github.com/serokell/universum/issues/65):
|
||||
Use `TypeNats` instead of `TypeLits` when possible.
|
||||
|
||||
0.7.0
|
||||
=====
|
||||
|
||||
* [#47](https://github.com/serokell/universum/issues/47):
|
||||
Reexport `put` and `get` for `MonadState`.
|
||||
* [#48](https://github.com/serokell/universum/issues/48):
|
||||
Export boxed `Vector` type.
|
||||
* [#49](https://github.com/serokell/universum/issues/49):
|
||||
Export `IdentityT` and `runIdentityT`.
|
||||
* [#51](https://github.com/serokell/universum/issues/51):
|
||||
Add `fromRight` and `fromLeft` that behave like `fromMaybe` but for `Either`.
|
||||
* [#52](https://github.com/serokell/universum/issues/52):
|
||||
Add `maybeToMonoid :: Monoid m => Maybe m -> m`.
|
||||
* Remove `Symbol`-related types for sure.
|
||||
* Return back seems to be useful function `guardM` removed in `v0.3`.
|
||||
* Add `notElem` for `NonTrivialContainer`.
|
||||
|
||||
0.6.1
|
||||
=====
|
||||
|
||||
* Fixed version number bug (it had 4 numbers).
|
||||
|
||||
0.6.0.0
|
||||
=======
|
||||
|
||||
* [#62](https://github.com/serokell/universum/issues/62):
|
||||
Export exceptions-related functions from 'safe-exceptions'.
|
||||
|
||||
0.5.1
|
||||
=====
|
||||
|
||||
* Fix an infinite loop in `decodeUtf8` from `Text` to `ByteString.Lazy`.
|
||||
|
||||
0.5
|
||||
===
|
||||
|
||||
* Export `MonadTrans` typeclass.
|
||||
* Remove `Symbol`-related exports from `GHC.TypeLits`.
|
||||
* Remove `SrcLoc` and `Location` reexports from `GHC.ExecutionStack`.
|
||||
* Add `With` type operator.
|
||||
* Add `hashNub`.
|
||||
* Export strict `StateT` instead of lazy.
|
||||
|
||||
0.4.3
|
||||
=====
|
||||
|
||||
* Assign associativity and priority to (...), export typeclass itself.
|
||||
|
||||
0.4.2
|
||||
=====
|
||||
|
||||
* [#25](https://github.com/serokell/universum/issues/25):
|
||||
Add vararg functions composition operator (...).
|
||||
* Rewrite `concatMapM` & `concatForM` so that they allow traversed
|
||||
and returned-by-function container types differ.
|
||||
|
||||
0.4.1
|
||||
=====
|
||||
|
||||
* Reexport `sortWith` from `GHC.Exts`.
|
||||
|
||||
0.4
|
||||
===
|
||||
|
||||
* Add _haddock_ documentation with 100% coverage.
|
||||
* Rewrite README tutorial.
|
||||
* [#37](https://github.com/serokell/universum/issues/37):
|
||||
Add generalized version of `readEither`.
|
||||
* [#38](https://github.com/serokell/universum/issues/38):
|
||||
Add `evaluateNF`, `evaluateNF_`, `evaluateWHNF`, `evaluateWHNF_`.
|
||||
* [#39](https://github.com/serokell/universum/issues/39):
|
||||
Add lifted versions of `IORef` functions.
|
||||
* Remove `foreach`
|
||||
* Reexport `(&&&)` from `Control.Arrow`.
|
||||
* Add lifted version of `readTVarIO`.
|
||||
* `interact` and `getContents` work with _Lazy Text_.
|
||||
* Reexport `MaybeT`, `maybeToExceptT`, `exceptToMaybeT`.
|
||||
|
||||
0.3
|
||||
===
|
||||
|
||||
* [#28](https://github.com/serokell/universum/issues/28):
|
||||
Remove `putByteString` and `putLByteString`.
|
||||
* [#29](https://github.com/serokell/universum/issues/29):
|
||||
Remove `panic`, `FatalError` and `notImplemented`.
|
||||
Rename `NotImplemented` into `Undefined`.
|
||||
* [#32](https://github.com/serokell/universum/issues/32):
|
||||
Remove `orAlt`, `orEmpty`, `liftAA2`, `eitherA`, `purer`, `<<*>>`,
|
||||
`traceIO`, `guardM`, `hush`, `tryIO`, `liftM'`, `liftM2'`,
|
||||
`applyN`, `guardedA`,
|
||||
Bifunctor instances for tuples of length higher than 2.
|
||||
Generalize `concatMapM`, add `concatForM` and operator versions.
|
||||
* [#35](https://github.com/serokell/universum/issues/35):
|
||||
Generalize `andM`, `orM`, `allM`, `anyM` over container type.
|
||||
|
||||
0.2.2
|
||||
=====
|
||||
|
||||
* [#33](https://github.com/serokell/universum/issues/33):
|
||||
Add `($)` and `Each` type operators.
|
||||
|
||||
0.2.1
|
||||
=====
|
||||
|
||||
* [#24](https://github.com/serokell/universum/issues/26):
|
||||
Add `whenNothing`, `whenNothing_`, `whenNothingM`, `whenNothingM_`,
|
||||
`whenLeft`, `whenLeftM`, `whenRight`, `whenRightM`,
|
||||
`whenNotNull`, `whenNotNullM`.
|
||||
* [#26](https://github.com/serokell/universum/issues/24):
|
||||
Add `usingReader`, `usingReaderT`,
|
||||
`usingState`, `usingStateT`,
|
||||
`executingState`, `executingStateT`,
|
||||
`evaluatingState`, `evaluatingStateT`.
|
||||
* Remove `maybeToEither`.
|
||||
|
||||
0.2
|
||||
===
|
||||
|
||||
* Add `one` (similar to `singleton`).
|
||||
* Expose `Symbol` and `Nat` types from `GHC.TypeLits` by default.
|
||||
* Export `genericLength` and other generic list return functions.
|
||||
* Rename `msg` to `fatalErrorMessage`.
|
||||
* Export `ExceptT`
|
||||
* Export `ReaderT`, and `StateT` constructors.
|
||||
* Export `NonEmpty` type and constructor for Base 4.9 only.
|
||||
* Export `Data.Semigroup` type and functions for Base 4.9 only.
|
||||
* Export `String`.
|
||||
|
||||
0.1.13
|
||||
======
|
||||
|
||||
* Add lenses from `microlens`.
|
||||
* Add `(<&>)`.
|
||||
* Reexport `(&)` from `Data.Function` if it's present there instead
|
||||
of always defining our own (this is actually done by reexporting it
|
||||
from `Lens.Micro` which does the right thing).
|
||||
* Fix a space leak in `whenJust`.
|
||||
|
||||
0.1.12
|
||||
======
|
||||
|
||||
* Use custom classes instead of `Foldable`. Thanks to this, `length` and similar functions can't anymore be used on tuples or `Maybe`, but can be used on e.g. `Text`, `ByteString` and `IntSet`.
|
||||
|
||||
* Add `allM`, `anyM,` `andM`, `orM`.
|
||||
|
||||
* Reexport `fail` and `MonadFail`.
|
||||
|
||||
0.1.11
|
||||
======
|
||||
|
||||
* Expose `putByteString` and `putLByteString` monomorphic versions of `putStrLn` functions
|
||||
* Switch exported `(<>)` to be from `Data.Monoid` instead of Semigroup.
|
||||
* Export `Hashable`
|
||||
|
||||
0.1.10
|
||||
======
|
||||
|
||||
* Generalize most `IO` functions to `MonadIO`
|
||||
* Make `die` available for older versions of base
|
||||
|
||||
0.1.9
|
||||
=====
|
||||
|
||||
* Make `sum` and `product` strict
|
||||
|
||||
0.1.8
|
||||
=====
|
||||
|
||||
* ``foreach`` for applicative traversals.
|
||||
* ``hush`` function for error handling.
|
||||
* ``tryIO`` function for error handling.
|
||||
* ``pass`` function for noop applicative branches.
|
||||
* Mask ``Handler`` typeclass export.
|
||||
* Mask ``yield`` function export.
|
||||
|
||||
0.1.7
|
||||
=====
|
||||
|
||||
* Export monadic ``(>>)`` operator by default.
|
||||
* Add ``traceId`` and ``traceShowId`` functions.
|
||||
* Export``reader`` and ``state`` functions by default.
|
||||
* Export lifted ``throwIO`` and ``throwTo`` functions.
|
||||
|
||||
0.1.6
|
||||
=====
|
||||
|
||||
* Add uncatchable panic exception throwing using Text message.
|
||||
* Remove ``printf``
|
||||
* Remove ``string-conv`` dependency so Stack build works without ``extra-deps``.
|
||||
* Bring ``Callstack`` machinery in for GHC 8.x.
|
||||
* Remove ``throw`` and ``assert`` from ``Control.Exception`` exports.
|
||||
* Remove ``unsafeShiftL`` and ``unsafeShiftR`` from ``Data.Bits`` exports.
|
||||
* Reexport ``throw`` as ``unsafeThrow`` via Unsafe module.
|
||||
* Hides all Show class functions. Only the Class itself is exported. Forbids custom instances that are not GHC derived.
|
||||
* Export`` encodeUtf8`` and ``decodeUtf8`` functions by default.
|
||||
* Adds ``unsnoc`` function.
|
||||
|
||||
0.1.5
|
||||
=====
|
||||
|
||||
* Initial release.
|
21
CODEOWNERS
21
CODEOWNERS
@ -1,21 +0,0 @@
|
||||
# Lines starting with '#' are comments.
|
||||
# Each line is a file pattern followed by one or more owners.
|
||||
|
||||
# These owners will be the default owners for everything in the repo.
|
||||
* @ChShersh
|
||||
|
||||
# Order is important. The last matching pattern has the highest precedence.
|
||||
# So if a pull request touches hlint.yaml file, these owners
|
||||
# will be requested to review.
|
||||
* .hlint.yaml @vrom911
|
||||
|
||||
# Owners for benchmarks
|
||||
* benchmark/* @vrom911
|
||||
|
||||
# Owners for tests
|
||||
* test/* @johnchandlerburnham
|
||||
* test/Doctest.hs @ChShersh
|
||||
|
||||
# Owners for documentation
|
||||
* README.md @ChShersh @NaeosPsy
|
||||
* CONTRIBUTING.md @ChShersh @NaeosPsy
|
@ -10,7 +10,7 @@ putting in. Thank you for your help in making this library awesome! :sparkles:
|
||||
#### Report bugs or feature request
|
||||
If you have found any bugs or have proposals on how to make this project better,
|
||||
don't hesitate to create issues
|
||||
[here](https://github.com/serokell/universum/issues/new) in free format.
|
||||
[here](https://github.com/kowainik/universum/issues/new) in free format.
|
||||
|
||||
#### Create a PR
|
||||
We love receiving pull requests from everyone. But, please, don't create a PR
|
||||
@ -43,4 +43,4 @@ Now you are ready to [submit a pull request][pr]!
|
||||
----------
|
||||
Thanks for spending time on reading this contributing guide! :sparkling_heart:
|
||||
|
||||
[pr]: https://github.com/serokell/universum/compare/
|
||||
[pr]: https://github.com/kowainik/universum/compare/
|
||||
|
2
LICENSE
2
LICENSE
@ -1,5 +1,5 @@
|
||||
The MIT License (MIT)
|
||||
Copyright (c) 2016-2017, Stephen Diehl, 2017, Serokell
|
||||
Copyright (c) 2016-2017, Stephen Diehl, 2017, Serokell, 2018, Kowainik
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to
|
||||
|
38
README.md
38
README.md
@ -1,21 +1,20 @@
|
||||
Universum
|
||||
=========
|
||||
|
||||
[![Build Status](https://travis-ci.org/serokell/universum.svg?branch=master)](https://travis-ci.org/serokell/universum)
|
||||
[![Windows build status](https://ci.appveyor.com/api/projects/status/github/serokell/universum?branch=master&svg=true)](https://ci.appveyor.com/project/ChShersh/universum)
|
||||
[![Build Status](https://travis-ci.org/kowainik/universum.svg?branch=master)](https://travis-ci.org/kowainik/universum)
|
||||
[![Hackage](https://img.shields.io/hackage/v/universum.svg)](https://hackage.haskell.org/package/universum)
|
||||
[![Stackage LTS](http://stackage.org/package/universum/badge/lts)](http://stackage.org/lts/package/universum)
|
||||
[![Stackage Nightly](http://stackage.org/package/universum/badge/nightly)](http://stackage.org/nightly/package/universum)
|
||||
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
|
||||
|
||||
`universum` is a custom prelude used in @Serokell that has:
|
||||
`universum` is a custom prelude that has:
|
||||
|
||||
1. **Excellent documentation**: tutorial, migration guide from `Prelude`,
|
||||
Haddock with examples for (almost) every function,
|
||||
all examples are tested with [`doctest`](http://hackage.haskell.org/package/doctest),
|
||||
documenation regarding internal module structure.
|
||||
2. `universum`-specific [HLint](http://hackage.haskell.org/package/hlint) rules:
|
||||
[`.hlint.yaml`](https://github.com/serokell/universum/blob/master/.hlint.yaml)
|
||||
[`.hlint.yaml`](https://github.com/kowainik/universum/blob/master/.hlint.yaml)
|
||||
3. Only a few LiquidHaskell properties right now, but LiquidHaskell is on Travis
|
||||
CI and other properties are just waiting to be added!
|
||||
4. Focus on safety, convenience and efficiency.
|
||||
@ -46,7 +45,7 @@ Why another custom Prelude? [↑](#structure-of-this-tutorial)
|
||||
|
||||
### Motivation
|
||||
|
||||
At [Serokell](https://github.com/serokell/), we strive to be as productive as possible. That's why we are using [_Haskell_](https://haskell-lang.org/). This choice of language implies
|
||||
We strive to be as productive as possible. That's why we are using [_Haskell_](https://haskell-lang.org/). This choice of language implies
|
||||
that we're restricted to use [`Prelude`](http://hackage.haskell.org/package/base-4.9.1.0/docs/Prelude.html):
|
||||
implicit import of basic functions, type classes and data types. Unfortunately, the default `Prelude`
|
||||
[is considered to be not so good](https://news.ycombinator.com/item?id=8002749)
|
||||
@ -90,10 +89,9 @@ Unlike `protolude`, we are:
|
||||
|
||||
1. Not trying to be as general as possible (thus we don't export much from
|
||||
[`GHC.Generics`](https://github.com/sdiehl/protolude/blob/41710698eedc66fb0bfc5623d3c3a672421fbab5/src/Protolude.hs#L365)).
|
||||
2. Not trying to maintain every version of `ghc` compiler (only the
|
||||
[latest 3](https://github.com/serokell/universum/blob/b6353285859e9ed3544bddbf55d70237330ad64a/.travis.yml#L15)
|
||||
2. Not trying to maintain every version of `ghc` compiler (only the latest 3)
|
||||
3. Trying to make writing production code easier (see
|
||||
[enhancements and fixes](https://github.com/serokell/universum/issues)).
|
||||
[enhancements and fixes](https://github.com/kowainik/universum/issues)).
|
||||
|
||||
How to use Universum [↑](#structure-of-this-tutorial)
|
||||
--------------------
|
||||
@ -119,11 +117,6 @@ Then add the following import to your modules:
|
||||
import Universum
|
||||
```
|
||||
|
||||
If you're using [Emacs](https://www.gnu.org/software/emacs/) and don't want to
|
||||
type `import Universum` manually every time, you can
|
||||
[modify your configs](https://github.com/serokell/universum/issues/8#issuecomment-276444879)
|
||||
a little bit.
|
||||
|
||||
If you want to get familiar with `universum` internal structure, you can just
|
||||
read top-level documentation for
|
||||
[`Universum`](http://hackage.haskell.org/package/universum/docs/Universum.html)
|
||||
@ -286,7 +279,7 @@ Finally, we can move to part describing the new cool features we bring with `uni
|
||||
* Conversions between `Either` and `Maybe` like `rightToMaybe` and `maybeToLeft`
|
||||
with clear semantic.
|
||||
* `using(Reader|State)[T]` functions as aliases for `flip run(Reader|State)[T]`.
|
||||
* [`One` type class](https://github.com/serokell/universum/blob/master/src/Containers.hs#L473)
|
||||
* [`One` type class](https://github.com/kowainik/universum/blob/master/src/Containers.hs#L473)
|
||||
for creating singleton containers. Even monomorhpic ones like `Text`.
|
||||
* `evaluateWHNF` and `evaluateNF` functions as clearer and lifted aliases for
|
||||
`evaluate` and `evaluate . force`.
|
||||
@ -296,7 +289,7 @@ Migration guide from Prelude [↑](#structure-of-this-tutorial)
|
||||
----------------------------
|
||||
|
||||
In order to replace default `Prelude` with `universum` you should start with instructions given in
|
||||
[how to use universum](https://github.com/serokell/universum#how-to-use-universum-) section.
|
||||
[how to use universum](https://github.com/kowainik/universum#how-to-use-universum-) section.
|
||||
|
||||
This section describes what you need to change to make your code compile with `universum`.
|
||||
|
||||
@ -342,18 +335,3 @@ This section describes what you need to change to make your code compile with `u
|
||||
+ Use `toText/toLText/toString` functions to convert to `Text/LazyText/String` types.
|
||||
+ Use `encodeUtf8/decodeUtf8` to convert to/from `ByteString`.
|
||||
8. Run `hlint` using `.hlint.yaml` file from `universum` package to cleanup code and imports.
|
||||
|
||||
Projects that use Universum [↑](#structure-of-this-tutorial)
|
||||
---------------------------
|
||||
|
||||
Please submit a PR if you are using Universum!
|
||||
|
||||
| λ |
|
||||
|---|
|
||||
| [cardano-report-server](https://github.com/input-output-hk/cardano-report-server) |
|
||||
| [cardano-sl](https://github.com/input-output-hk/cardano-sl) |
|
||||
| [importify](https://github.com/serokell/importify) |
|
||||
| [log-warper](https://github.com/serokell/log-warper) |
|
||||
| [orgstat](https://github.com/volhovm/orgstat) |
|
||||
| [tintin](https://github.com/theam/tintin) |
|
||||
| [require](https://theam.github.io/require/) |
|
||||
|
19
appveyor.yml
19
appveyor.yml
@ -1,19 +0,0 @@
|
||||
build: off
|
||||
|
||||
before_test:
|
||||
# http://help.appveyor.com/discussions/problems/6312-curl-command-not-found
|
||||
- set PATH=C:\Program Files\Git\mingw64\bin;%PATH%
|
||||
|
||||
- curl -sS -ostack.zip -L --insecure http://www.stackage.org/stack/windows-i386
|
||||
- 7z x stack.zip stack.exe
|
||||
|
||||
clone_folder: "c:\\stack"
|
||||
environment:
|
||||
global:
|
||||
STACK_ROOT: "c:\\sr"
|
||||
|
||||
test_script:
|
||||
- stack setup > nul
|
||||
# The ugly echo "" hack is to avoid complaints about 0 being an invalid file
|
||||
# descriptor
|
||||
- echo "" | stack --no-terminal build --bench --no-run-benchmarks --test
|
@ -1,13 +0,0 @@
|
||||
resolver: lts-6.24
|
||||
|
||||
extra-deps:
|
||||
- hedgehog-0.5.2
|
||||
- tasty-hedgehog-0.1.0.2
|
||||
- type-operators-0.1.0.4
|
||||
- wl-pprint-annotated-0.1.0.0
|
||||
# benchmarking
|
||||
- gauge-0.1.3
|
||||
- basement-0.0.7
|
||||
- code-page-0.1.3
|
||||
|
||||
allow-newer: true
|
@ -1,7 +0,0 @@
|
||||
resolver: lts-9.21
|
||||
|
||||
nix:
|
||||
packages: [binutils, gmp]
|
||||
|
||||
extra-deps:
|
||||
- tasty-hedgehog-0.1.0.2
|
@ -1,7 +0,0 @@
|
||||
resolver: nightly-2018-04-28
|
||||
|
||||
nix:
|
||||
packages: [binutils, gmp]
|
||||
|
||||
extra-deps:
|
||||
- tasty-hedgehog-0.2.0.0
|
@ -1,7 +0,0 @@
|
||||
resolver: lts-10.8
|
||||
|
||||
extra-deps:
|
||||
- liquid-fixpoint-0.7.0.7
|
||||
- located-base-0.1.1.1
|
||||
- dotgen-0.4.2
|
||||
- fgl-visualize-0.1.0.1
|
@ -1,4 +1,4 @@
|
||||
resolver: lts-11.5
|
||||
resolver: lts-12.1
|
||||
|
||||
nix:
|
||||
shell-file: shell.nix
|
||||
packages: [binutils, gmp]
|
||||
|
@ -1,29 +1,28 @@
|
||||
name: universum
|
||||
version: 1.2.0
|
||||
synopsis: Custom prelude used in Serokell
|
||||
synopsis: Custom prelude
|
||||
description: See README.md file for more details.
|
||||
homepage: https://github.com/serokell/universum
|
||||
homepage: https://github.com/kowainik/universum
|
||||
bug-reports: https://github.com/kowainik/universum/issues
|
||||
license: MIT
|
||||
license-file: LICENSE
|
||||
author: Stephen Diehl, @serokell
|
||||
maintainer: Serokell <hi@serokell.io>
|
||||
copyright: 2016 Stephen Diehl, 2016-2018 Serokell
|
||||
author: Stephen Diehl, @serokell, Kowainik
|
||||
maintainer: Kowainik <xrom.xkov@gmail.com>
|
||||
copyright: 2016 Stephen Diehl, 2016-2018 Serokell, 2018 Kowainik
|
||||
category: Prelude
|
||||
stability: stable
|
||||
build-type: Simple
|
||||
cabal-version: >=1.18
|
||||
bug-reports: https://github.com/serokell/universum/issues
|
||||
tested-with: GHC == 7.10.3
|
||||
, GHC == 8.0.2
|
||||
, GHC == 8.2.2
|
||||
, GHC == 8.4.2
|
||||
extra-doc-files: CHANGES.md
|
||||
, CONTRIBUTING.md
|
||||
extra-doc-files: CONTRIBUTING.md
|
||||
, README.md
|
||||
|
||||
source-repository head
|
||||
type: git
|
||||
location: git@github.com:serokell/universum.git
|
||||
location: git@github.com:kowainik/universum.git
|
||||
|
||||
library
|
||||
hs-source-dirs: src
|
||||
|
Loading…
Reference in New Issue
Block a user