cabal-version: 2.2 name: vervis version: 0.2 synopsis: Federated project hosting platform description: Vervis a decentralized software project hosting web application, which federates using ActivityPub and ForgeFed. . 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://codeberg.org/ForgeFed/Vervis bug-reports: https://codeberg.org/ForgeFed/Vervis/issues license: AGPL-3.0-or-later license-file: COPYING.AGPL3 author: Pere Lev maintainer: pere@towards.vision copyright: ♡ Copying is an act of love. Please copy, reuse and share. category: Development, Distribution, Git, Web build-type: Simple extra-source-files: API.md AUTHORS.md CHANGELOG.md COPYING FEDERATION.md INSTALL.md README.md source-repository head type: git location: https://codeberg.org/ForgeFed/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: Vervis.Application Vervis.Hook other-modules: Network.Git.Transport.HTTP.Fetch.RefDiscovery Network.Git.Transport.HTTP.Fetch.UploadRequest Network.Git.Get Network.Git.Put Network.Git.Types Data.Binary.Get.Local Data.Binary.Put.Local Control.Applicative.Local --Control.Concurrent.ActorOld Control.Concurrent.Actor Control.Concurrent.Local Control.Concurrent.ResultShare Control.Concurrent.Return Control.Monad.Trans.Except.Local Crypto.ActorKey Crypto.PubKey.Encoding Crypto.PublicVerifKey --Darcs.Local.Repository Data.Slab Data.Slab.Backend Data.Slab.Simple Data.Aeson.Encode.Pretty.ToEncoding Data.Aeson.Local Data.Attoparsec.ByteString.Local Data.Binary.Local -- Data.Bitraversable.Local Data.ByteString.Char8.Local Data.ByteString.Local Data.CaseInsensitive.Local Data.Char.Local --Data.DList.Local Data.Either.Local Data.EventTime.Local Data.Functor.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.List.NonEmpty.Local Data.Maybe.Local Data.MediaType Data.ObjId Data.Paginate.Local Data.Patch.Local Data.Text.UTF8.Local Data.Text.Lazy.UTF8.Local Data.Time.Clock.Local Data.Tree.Local Data.Tuple.Local Data.VersionControl Database.Esqueleto.Local Database.Persist.Box Database.Persist.Box.Internal Database.Persist.Box.Via Database.Persist.Class.Local Database.Persist.JSON Database.Persist.Sql.Local Database.Persist.Sqlite.Local Database.Persist.Local --Database.Persist.Local.Class.PersistEntityHierarchy Database.Persist.Local.RecursionDoc Development.Darcs Development.Git Development.PatchMediaType Development.PatchMediaType.JSON Development.PatchMediaType.Persist --Diagrams.IntransitiveDAG Formatting.CaseInsensitive Language.Haskell.TH.Quote.Local Network.FedURI Network.HTTP.Client.Conduit.ActivityPub Network.HTTP.Digest Network.SSH.Local System.Process.Typed.Local Text.Blaze.Local Text.Display Text.Email.Local Text.FilePath.Local Text.Jasmine.Local Web.ActivityAccess Web.ActivityPub Web.ActivityPub.Internal Web.Actor Web.Actor.Deliver Web.Actor.Persist -- Web.Capability Web.Text Web.Hashids.Local Web.PathPieces.Local Yesod.ActivityPub Yesod.Actor Yesod.Auth.Unverified Yesod.Auth.Unverified.Creds Yesod.Auth.Unverified.Internal Yesod.FedURI Yesod.Form.Local Yesod.Hashids Yesod.MonadSite Yesod.Paginate.Local Yesod.Persist.Local Yesod.RenderSource Yesod.SessionEntity Vervis.Access Vervis.ActivityPub Vervis.Actor Vervis.Actor2 Vervis.Actor.Common Vervis.Actor.Deck Vervis.Actor.Factory Vervis.Actor.Group Vervis.Actor.Loom Vervis.Actor.Person Vervis.Actor.Person.Client Vervis.Actor.Project Vervis.Actor.Repo Vervis.API Vervis.Avatar Vervis.BinaryBody Vervis.Changes Vervis.ChangeFeed --Vervis.Class.Actor Vervis.Client Vervis.Cloth --Vervis.Colour --Vervis.Content Vervis.Darcs Vervis.Data.Actor Vervis.Data.Collab Vervis.Data.Discussion Vervis.Data.Follow Vervis.Data.Ticket --Vervis.Federation Vervis.Federation.Auth Vervis.Federation.Discussion Vervis.Federation.Offer --Vervis.Federation.Push Vervis.Federation.Ticket Vervis.FedURI Vervis.Fetch 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.Repo --Vervis.Form.Role Vervis.Form.Ticket Vervis.Form.Tracker -- Vervis.Form.Workflow Vervis.Formatting Vervis.Foundation Vervis.Git Vervis.GraphProxy Vervis.Handler.Client Vervis.Handler.Cloth Vervis.Handler.Common Vervis.Handler.Deck Vervis.Handler.Factory -- Vervis.Handler.Git Vervis.Handler.Group --Vervis.Handler.Inbox Vervis.Handler.Key Vervis.Handler.Loom Vervis.Handler.Person Vervis.Handler.Repo --Vervis.Handler.Role Vervis.Handler.Project --Vervis.Handler.Sharer Vervis.Handler.Ticket -- Vervis.Handler.Wiki -- Vervis.Handler.Workflow Vervis.KeyFile Vervis.Migration Vervis.Migration.Entities Vervis.Migration.Model2016 Vervis.Migration.Model2018 Vervis.Migration.Model2019 Vervis.Migration.Model2020 Vervis.Migration.Model2022 Vervis.Migration.Model2023 Vervis.Migration.Model2024 Vervis.Migration.TH Vervis.Model Vervis.Model.Entity Vervis.Model.Group Vervis.Model.Ident Vervis.Model.Role Vervis.Model.Ticket Vervis.Model.TH Vervis.Model.Workflow Vervis.Paginate Vervis.Palette Vervis.Path Vervis.Persist.Actor Vervis.Persist.Collab Vervis.Persist.Discussion Vervis.Persist.Follow Vervis.Persist.Ticket Vervis.Readme Vervis.Recipient Vervis.RemoteActorStore Vervis.RemoteActorStore.Types --Vervis.Repo Vervis.Secure Vervis.Serve.Collab Vervis.Settings Vervis.Settings.StaticFiles Vervis.Settings.TH Vervis.SourceTree Vervis.Ssh Vervis.Style Vervis.Ticket Vervis.TicketFilter Vervis.Time Vervis.Web.Actor Vervis.Web.Collab Vervis.Web.Darcs --Vervis.Web.Delivery Vervis.Web.Discussion Vervis.Web.Git Vervis.Web.Repo Vervis.Widget Vervis.Widget.Discussion Vervis.Widget.Person Vervis.Widget.Repo --Vervis.Widget.Role Vervis.Widget.Ticket Vervis.Widget.Tracker -- Vervis.Widget.Workflow -- Vervis.Wiki --Vervis.WorkItem default-extensions: TemplateHaskell QuasiQuotes OverloadedStrings MultiParamTypeClasses TypeFamilies GADTs GeneralizedNewtypeDeriving FlexibleContexts FlexibleInstances EmptyDataDecls NoMonomorphismRestriction DeriveDataTypeable ViewPatterns TupleSections RecordWildCards LambdaCase DerivingStrategies StandaloneDeriving DataKinds build-depends: aeson -- For activity JSOn display in /inbox test page , aeson-pretty -- For rethrowing in Control.Concurrent.Actor , annotated-exception -- for encoding and decoding of crypto public keys , asn1-encoding , asn1-types -- for parsing commands sent over SSH and Darcs patch -- metadata , attoparsec -- For LocalActorBy and LocalStageBy , barbies , base -- for hex display of Darcs patch hashes , base16-bytestring , base58-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 -- For slab/box/citron serialization , cereal , conduit -- For httpAPEither , conduit-extra , containers , cryptonite , data-default , data-default-class , data-default-instances-bytestring , data-ordlist --, diff-parse , directory -- for Data.Git.Local , directory-tree , dlist , dvara , email-validate , email-validate-json , 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 , html-entities , http-signature , gitrev -- currently discarding all JS so no need for minifier --, hjsmin --, 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 , optics-core , pandoc , pandoc-types -- for PathPiece instance for CI, Web.PathPieces.Local , path-pieces --, patience , pem , persistent , persistent-email-address , persistent-migration , persistent-postgresql , persistent-sqlite , process -- for generating hashids salt , random -- for Database.Persist.Local , resourcet , retry , safe , semialign , shakespeare -- for json debug highlighting in Yesod.RenderSource , skylighting , smtp-mail , ssh -- for holding actor key in a TVar , stm , template-haskell , temporary , text , these , time , time-interval , time-interval-aeson , time-units , tls , transformers -- probably should be replaced with lenses once I learn , tuple , typed-process , first-class-families , HList -- For making git hooks executable, i.e. set file mode , unix -- For httpAPEither , unliftio-core , unliftio , unordered-containers , vary , vector , wai , wai-extra , wai-logger , warp -- for encoding and decoding of crypto public keys , x509 -- for parsing darcs apply's changes XML from env var in -- the vervis post-apply hook program , xml , 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: GHC2021 if flag(dev) || flag(library-only) cpp-options: -DDEVELOPMENT ghc-options: -Wall -fwarn-tabs -O0 -Werror=incomplete-patterns -Werror=missing-fields -Werror=overlapping-patterns else ghc-options: -Wall -fwarn-tabs -O2 executable vervis main-is: main.hs build-depends: base, vervis hs-source-dirs: app default-language: GHC2021 ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N if flag(library-only) buildable: False executable vervis-post-receive main-is: main.hs build-depends: base, vervis hs-source-dirs: hook-git default-language: GHC2021 ghc-options: -Wall executable vervis-post-apply main-is: main.hs build-depends: base, vervis hs-source-dirs: hook-darcs default-language: GHC2021 ghc-options: -Wall test-suite test main-is: Spec.hs default-extensions: TemplateHaskell QuasiQuotes OverloadedStrings CPP MultiParamTypeClasses TypeFamilies GADTs GeneralizedNewtypeDeriving FlexibleContexts FlexibleInstances EmptyDataDecls NoMonomorphismRestriction DeriveDataTypeable ViewPatterns TupleSections build-depends: base , vervis , yesod-test , yesod-core , yesod , persistent , persistent-postgresql , resourcet , monad-logger , shakespeare , transformers , hspec >= 2.0.0 , aeson hs-source-dirs: test default-language: GHC2021 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: GHC2021 -- ghc-options: -Wall -- type: exitcode-stdio-1.0