You are not logged in. Log in. Or Sign up.

UPDATE: Federation is coming! Very early testing

Vervis @ dev.angeley.es
HomeSharersfr33domloverReposvervisFiles vervis.cabal

Eventually-decentralized project hosting and management platform

Collaborators

Changes

Branches

TODO

Tags

TODO

vervis.cabal

name:                vervis
version:             0.1
synopsis:            Hopefully one day a decentralized project hosting platform
description:
  Vervis a software project hosting web application, which aims to be
  decentralized via federation. So far there is no federation yet, but hosting
  of Git and Darcs repositories and issue tracking are available.
  .
  Most of the source code is in the public domain using the CC0 public domain
  dedication, but the application as a whole has GPL dependencies, and is
  released under the AGPL 3 license.
homepage:            https://dev.angeley.es/s/fr33domlover/p/vervis
bug-reports:         https://dev.angeley.es/s/fr33domlover/p/vervis/t
license:             OtherLicense
license-file:        COPYING
author:              fr33domlover
maintainer:          fr33domlover@riseup.net
copyright:           ♡ Copying is an act of love. Please copy, reuse and share.
category:            Development, Distribution, Git, Web
build-type:          Simple
extra-source-files:  AUTHORS
                     CHANGELOG.md
                     COPYING
                     INSTALL.md
                     README.md
cabal-version:       >=1.10

source-repository head
  type:                darcs
  location:            https://dev.angeley.es/s/fr33domlover/r/vervis

flag dev
  description: Turn on development settings, like auto-reload templates.
  default:     False

flag library-only
  description: Build for use with "yesod devel"
  default:     False

library
  exposed-modules:     Control.Applicative.Local
                       Control.Concurrent.Local
                       Crypto.PubKey.Encoding
                       Crypto.PublicVerifKey
                       Darcs.Local.Repository
                       Data.Aeson.Encode.Pretty.ToEncoding
                       Data.Aeson.Local
                       Data.Attoparsec.ByteString.Local
                       Data.Binary.Local
                       Data.ByteString.Char8.Local
                       Data.ByteString.Local
                       Data.CaseInsensitive.Local
                       Data.Char.Local
                       Data.Either.Local
                       Data.EventTime.Local
                       Data.Functor.Local
                       Data.Git.Local
                       Data.Graph.DirectedAcyclic.View.Tree
                       Data.Graph.Inductive.Query.Cycle
                       Data.Graph.Inductive.Query.Layer
                       Data.Graph.Inductive.Query.Path
                       Data.Graph.Inductive.Query.TransRed
                       Data.HashMap.Lazy.Local
                       Data.Hourglass.Local
                       Data.Int.Local
                       Data.KeyFile
                       Data.List.Local
                       Data.Maybe.Local
                       Data.Paginate.Local
                       Data.Text.UTF8.Local
                       Data.Text.Lazy.UTF8.Local
                       Data.Time.Clock.Local
                       Data.Tree.Local
                       Database.Esqueleto.Local
                       Database.Persist.Class.Local
                       Database.Persist.Sql.Local
                       Database.Persist.Local
                       Database.Persist.Local.Class.PersistEntityHierarchy
                       Database.Persist.Local.RecursionDoc
                       Diagrams.IntransitiveDAG
                       Formatting.CaseInsensitive
                       Language.Haskell.TH.Quote.Local
                       Network.FedURI
                       Network.HTTP.Client.Conduit.ActivityPub
                       Network.SSH.Local
                       Text.Blaze.Local
                       Text.Display
                       Text.Email.Local
                       Text.FilePath.Local
                       Text.Jasmine.Local
                       Web.ActivityAccess
                       Web.ActivityPub
                       Web.Hashids.Local
                       Web.PathPieces.Local
                       Yesod.Auth.Unverified
                       Yesod.Auth.Unverified.Creds
                       Yesod.Auth.Unverified.Internal
                       Yesod.FedURI
                       Yesod.Paginate.Local
                       Yesod.SessionEntity

                       Vervis.Access
                       Vervis.ActivityStreams
                       Vervis.ActorKey
                       Vervis.Application
                       Vervis.Avatar
                       Vervis.BinaryBody
                       Vervis.Changes
                       Vervis.ChangeFeed
                       Vervis.Colour
                       Vervis.Content
                       Vervis.Darcs
                       Vervis.Discussion
                       Vervis.Field.Key
                       Vervis.Field.Person
                       Vervis.Field.Project
                       Vervis.Field.Repo
                       Vervis.Field.Role
                       Vervis.Field.Sharer
                       Vervis.Field.Ticket
                       Vervis.Field.Workflow
                       Vervis.Form.Discussion
                       Vervis.Form.Group
                       Vervis.Form.Key
                       Vervis.Form.Person
                       Vervis.Form.Project
                       Vervis.Form.Repo
                       Vervis.Form.Role
                       Vervis.Form.Ticket
                       Vervis.Form.Workflow
                       Vervis.Formatting
                       Vervis.Foundation
                       Vervis.Git
                       Vervis.GraphProxy
                       Vervis.Handler.Common
                       Vervis.Handler.Discussion
                       Vervis.Handler.Git
                       Vervis.Handler.Group
                       Vervis.Handler.Home
                       Vervis.Handler.Inbox
                       Vervis.Handler.Key
                       Vervis.Handler.Person
                       Vervis.Handler.Project
                       Vervis.Handler.Repo
                       Vervis.Handler.Repo.Darcs
                       Vervis.Handler.Repo.Git
                       Vervis.Handler.Role
                       Vervis.Handler.Sharer
                       Vervis.Handler.Ticket
                       Vervis.Handler.Wiki
                       Vervis.Handler.Workflow
                       Vervis.Import
                       Vervis.Import.NoFoundation
                       Vervis.KeyFile
                       Vervis.MediaType
                       Vervis.Migration
                       Vervis.Migration.Model
                       Vervis.Migration.TH
                       Vervis.Model
                       Vervis.Model.Entity
                       Vervis.Model.Group
                       Vervis.Model.Ident
                       Vervis.Model.Repo
                       Vervis.Model.Role
                       Vervis.Model.Ticket
                       Vervis.Model.TH
                       Vervis.Model.Workflow
                       Vervis.Paginate
                       Vervis.Palette
                       Vervis.Path
                       Vervis.Patch
                       Vervis.Query
                       Vervis.Readme
                       Vervis.RemoteActorStore
                       Vervis.Render
                       Vervis.Role
                       Vervis.Secure
                       Vervis.Settings
                       Vervis.Settings.StaticFiles
                       Vervis.SourceTree
                       Vervis.Ssh
                       Vervis.Style
                       Vervis.Ticket
                       Vervis.TicketFilter
                       Vervis.Time
                       Vervis.Widget
                       Vervis.Widget.Discussion
                       Vervis.Widget.Repo
                       Vervis.Widget.Role
                       Vervis.Widget.Sharer
                       Vervis.Widget.Ticket
                       Vervis.Widget.Workflow
                       Vervis.Wiki
  -- other-modules:       
  default-extensions:  TemplateHaskell
                       QuasiQuotes
                       OverloadedStrings
                       NoImplicitPrelude
                       MultiParamTypeClasses
                       TypeFamilies
                       GADTs
                       GeneralizedNewtypeDeriving
                       FlexibleContexts
                       FlexibleInstances
                       EmptyDataDecls
                       NoMonomorphismRestriction
                       DeriveDataTypeable
                       ViewPatterns
                       TupleSections
                       RecordWildCards
  build-depends:       aeson
                       -- For activity JSOn display in /inbox test page
                     , aeson-pretty
                       -- for encoding and decoding of crypto public keys
                     , asn1-encoding
                     , asn1-types
                       -- for parsing commands sent over SSH and Darcs patch
                       -- metadata
                     , attoparsec
                     , base
                       -- for hex display of Darcs patch hashes
                     , base16-bytestring
                     , base64-bytestring
                       -- for Data.Binary.Local
                     , binary
                     , blaze-html
                       -- for Data.EventTime.Local
                     , blaze-markup
                     , byteable
                     , bytestring
                       -- for Darcs.Local.PatchInfo.Parser
                     , bytestring-lexing
                     , case-insensitive
                     , classy-prelude
                     , classy-prelude-conduit
                       -- for defining colors for use with diagrams
                     , colour
                     , conduit
                       -- For httpAPEither
                     , conduit-extra
                     , containers
                     , cryptonite
                       -- for Storage.Hashed because hashed-storage seems
                       -- unmaintained and darcs has its own copy
                     , darcs
                     , darcs-lights
                     , darcs-rev
                     , data-default
                     , data-default-class
                     , data-default-instances-bytestring
                       -- for drawing DAGs: RBAC role inheritance, etc.
                       , diagrams-core
                       , diagrams-lib
                       , diagrams-svg
                     , directory
                       -- for Data.Git.Local
                     , directory-tree
                     , dlist
                     , email-validate
                     , esqueleto
                     , exceptions
                     , fast-logger
                       -- for building a message tree using DFS in
                       -- Vervis.Discussion, possibly also used by some git
                       -- graph related code?
                     , fgl
                     , file-embed
                     , filepath
                     , formatting
                     , hashable
                     , hashids
                       -- for source file highlighting
                     , highlighter2
                     , http-client-signature
                     , http-signature
                     , git
                     , hit-graph
                     , hit-harder
                     , hit-network
                     -- currently discarding all JS so no need for minifier
                     --, hjsmin
                     -- 'git' uses it for 'GitTime'
                     , hourglass
                     , yesod-http-signature
                     , http-client
                     , http-client-tls
                     , http-conduit
                     , http-types
                     , libravatar
                     , memory
                     , mime-mail
                     , monad-control
                     , monad-logger
                       -- for Database.Persist.Local
                     , mtl
                     , network
                     , network-uri
                     , pandoc
                     , pandoc-types
                       -- for PathPiece instance for CI, Web.PathPieces.Local
                     , path-pieces
                     , patience
                     , pem
                     , persistent
                     , persistent-email-address
                     , persistent-graph
                     , persistent-migration
                     , persistent-postgresql
                     , persistent-template
                     , process
                       -- for generating hashids salt
                     , random
                       -- for Database.Persist.Local
                     , resourcet
                     , safe
                     , shakespeare
                       -- for pandoc inline code highlighting
                     , skylighting
                     , smtp-mail
                     , ssh
                       -- for holding actor key in a TVar
                     , stm
                       -- for rendering diagrams
                     , svg-builder
                       -- for text drawing in 'diagrams'
                     , SVGFonts
                     , template-haskell
                     , text
                     , time
                     , time-interval
                     , time-interval-aeson
                     , time-units
                     , transformers
                       -- probably should be replaced with lenses once I learn
                     , tuple
                       -- For httpAPEither
                     , unliftio-core
                     , unliftio
                     , unordered-containers
                     , vector
                     , wai
                     , wai-extra
                     , wai-logger
                     , warp
                       -- for encoding and decoding of crypto public keys
                     , x509
                     , xss-sanitize
                     , yaml
                     , yesod
                     , yesod-auth
                     , yesod-auth-account
                     , yesod-core
                     , yesod-form
                     , yesod-mail-send
                     , yesod-newsfeed
                     , yesod-static
                     , yesod-persistent
                       -- for reading gzipped darcs inventory via utils in
                       -- Data.Attoparsec.ByteString.Local
                     , zlib
  hs-source-dirs:      src
  default-language:    Haskell2010

  if flag(dev) || flag(library-only)
    cpp-options:       -DDEVELOPMENT
    ghc-options:       -Wall -fwarn-tabs -O0
  else
    ghc-options:       -Wall -fwarn-tabs -O2

executable vervis
  main-is:             main.hs
  build-depends:       base, vervis
  hs-source-dirs:      app
  default-language:    Haskell2010
  ghc-options:         -Wall -threaded -rtsopts -with-rtsopts=-N

  if flag(library-only)
    buildable: False

test-suite test
  main-is:             Spec.hs
  default-extensions:  TemplateHaskell
                       QuasiQuotes
                       OverloadedStrings
                       NoImplicitPrelude
                       CPP
                       MultiParamTypeClasses
                       TypeFamilies
                       GADTs
                       GeneralizedNewtypeDeriving
                       FlexibleContexts
                       FlexibleInstances
                       EmptyDataDecls
                       NoMonomorphismRestriction
                       DeriveDataTypeable
                       ViewPatterns
                       TupleSections
  build-depends:       base
                     , vervis
                     , yesod-test >= 1.5.0.1 && < 1.6
                     , yesod-core
                     , yesod
                     , persistent
                     , persistent-postgresql
                     , resourcet
                     , monad-logger
                     , shakespeare
                     , transformers
                     , hspec >= 2.0.0
                     , classy-prelude
                     , classy-prelude-yesod
                     , aeson
  hs-source-dirs:      test
  default-language:    Haskell2010
  ghc-options:         -Wall
  type:                exitcode-stdio-1.0

-- test-suite test-graph
--   main-is:             Test.hs
--   build-depends:       base
--                      , fgl
--                      , fgl-arbitrary
--                      , hspec
--                      , vervis
--   hs-source-dirs:      test
--   default-language:    Haskell2010
--   ghc-options:         -Wall
--   type:                exitcode-stdio-1.0