hgrev alternatives and similar packages
Based on the "Development" category.
Alternatively, view hgrev alternatives based on common mentions on social networks and blogs.
-
stgi
A user-centric visual STG implementation to help understand GHC/Haskell's execution model. -
structured-haskell-mode
Structured editing minor mode for Haskell in Emacs -
cabal-install-parsers
Scripts and instructions for using CI services (e.g. Travis CI or Appveyor) with multiple GHC configurations -
criterion
A powerful but simple library for measuring the performance of Haskell code. -
inline-c
Write Haskell source files including C code inline. No FFI required. -
inline-java
Haskell/Java interop via inline Java code in Haskell modules. -
fourmolu
A fourk of ormolu that uses four space indentation and allows arbitrary configuration. Don't like it? PRs welcome! -
gi-atk
Generate Haskell bindings for GObject-Introspection capable libraries -
lambdabot-core
A friendly IRC bot and apprentice coder, written in Haskell. -
scion
OLD, DEPRECATED: Use this instead https://github.com/haskell/haskell-ide-engine
ONLYOFFICE Docs — document collaboration in your environment
Do you think we are missing an alternative of hgrev or a related project?
Popular Comparisons
README
HgRev
Compile Mercurial (hg) version info into Haskell code
Overview
hgrev
provides two modules:
Development.HgRev
- Mercurial (hg) Haskell APIDevelopment.HgRev.TH
- Template Haskell splice to compile version info into Haskell code
Use $(hgRevStateTH defFormat)
with Template Haskell enabled to
insert the formatted version string.
Requirements
hgrev
requires the hg
binary version 3.2 or greater is installed
and available on the system. Development.HgRev.HgRev
and
Development.HgRev.HgState
are obtained via two separate calls to
hg
because working directory state isn't available programmatically.
Usage Example
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
module Example where
import Data.Monoid ((<>))
import Data.Text (Text, pack)
import Development.HgRev.TH (defFormat, hgRevStateTH, jsonFormat)
import Options.Applicative (Parser, ParserInfo, execParser, fullDesc,
help, helper, info, infoOption, long,
progDesc, short)
main :: IO ()
main = execParser parserInfo >> return ()
verSwitch :: Parser (a -> a)
verSwitch =
infoOption ("HG rev: " <> $(hgRevStateTH defFormat))
$ long "version"
<> short 'v'
<> help "Display version information"
jsonSwitch :: Parser (a -> a)
jsonSwitch =
infoOption $(hgRevStateTH jsonFormat)
$ long "json"
<> short 'J'
<> help "Display JSON version information"
parserInfo :: ParserInfo (a -> a)
parserInfo = info (helper <*> verSwitch <* jsonSwitch) fullDesc
Check out the gitrev package for similar git functionality.