499e26db48
The actor key will be used for all actors on the server. It's held in a `TVar` so that it can always be safely updated and safely retrieved (technically there is a single writer so IORef and MVar could work, but they require extra care while TVar is by design suited for this sort of thing).
399 lines
16 KiB
Text
399 lines
16 KiB
Text
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
|
|
Darcs.Local.Repository
|
|
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.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.Graph.Connects
|
|
Database.Persist.Sql.Graph.Cyclic
|
|
Database.Persist.Sql.Graph.Path
|
|
Database.Persist.Sql.Graph.Reachable
|
|
Database.Persist.Sql.Graph.TransitiveReduction
|
|
Database.Persist.Sql.Local
|
|
Database.Persist.Local.Class.PersistEntityGraph
|
|
Database.Persist.Local.Class.PersistEntityHierarchy
|
|
Database.Persist.Local.Class.PersistQueryForest
|
|
Database.Persist.Local.RecursionDoc
|
|
Database.Persist.Local.Sql
|
|
Database.Persist.Local.Sql.Orphan.Common
|
|
Database.Persist.Local.Sql.Orphan.PersistQueryForest
|
|
Diagrams.IntransitiveDAG
|
|
Formatting.CaseInsensitive
|
|
Language.Haskell.TH.Quote.Local
|
|
Network.SSH.Local
|
|
Text.Blaze.Local
|
|
Text.Display
|
|
Text.Email.Local
|
|
Text.FilePath.Local
|
|
Text.Jasmine.Local
|
|
Web.PathPieces.Local
|
|
Yesod.Auth.Unverified
|
|
Yesod.Auth.Unverified.Creds
|
|
Yesod.Auth.Unverified.Internal
|
|
Yesod.Paginate.Local
|
|
Yesod.SessionEntity
|
|
|
|
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.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.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.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 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
|
|
, 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
|
|
-- for source file highlighting
|
|
, highlighter2
|
|
, 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-types
|
|
, libravatar
|
|
, memory
|
|
, mime-mail
|
|
, monad-control
|
|
, monad-logger
|
|
-- for Database.Persist.Local
|
|
, mtl
|
|
, network
|
|
, pandoc
|
|
, pandoc-types
|
|
-- for PathPiece instance for CI, Web.PathPieces.Local
|
|
, path-pieces
|
|
, patience
|
|
, pem
|
|
, persistent
|
|
, persistent-email-address
|
|
, persistent-migration
|
|
, persistent-postgresql
|
|
, persistent-template
|
|
, process
|
|
-- 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
|
|
, unordered-containers
|
|
, vector
|
|
, wai
|
|
, wai-extra
|
|
, wai-logger
|
|
, warp
|
|
, 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
|