]> gitweb @ CieloNegro.org - Rakka.git/commitdiff
Fixing build breakage...
authorPHO <pho@cielonegro.org>
Fri, 29 Jul 2011 14:13:40 +0000 (23:13 +0900)
committerPHO <pho@cielonegro.org>
Fri, 29 Jul 2011 14:13:40 +0000 (23:13 +0900)
Ditz-issue: 1c6bfe78f0f9ebd241b8650eb62939dc932cd6f0

21 files changed:
Rakka.cabal
Rakka/Attachment.hs
Rakka/Authorization.hs
Rakka/Environment.hs
Rakka/Page.hs
Rakka/Resource.hs
Rakka/Resource/Object.hs
Rakka/Resource/PageEntity.hs
Rakka/Resource/Render.hs
Rakka/Resource/Search.hs
Rakka/Resource/SystemConfig.hs
Rakka/Resource/Users.hs
Rakka/Storage/DefaultPage.hs
Rakka/Storage/Repos.hs
Rakka/SystemConfig.hs
Rakka/Utils.hs
Rakka/Validation.hs
Rakka/Wiki/Engine.hs
Rakka/Wiki/Interpreter/Base.hs
bugs/issue-1c6bfe78f0f9ebd241b8650eb62939dc932cd6f0.yaml [new file with mode: 0644]
cabal-package.mk

index a63487371e76a39ee297a8d148d813f7dfe32f2c..09d8c1596cce75721fa49f5a3d9c5a9f613d9fb4 100644 (file)
@@ -63,30 +63,32 @@ Flag build-test-suite
 
 Executable rakka
     Build-Depends:
-        HsHyperEstraier == 0.4.*,
-        HsOpenSSL       == 0.10.*,
-        HsSVN           == 0.4.*,
-        Lucu            == 0.7.*,
-        base            == 4.3.*,
-        bytestring      == 0.9.*,
-        containers      == 0.4.*,
-        dataenc         == 0.14.*,
-        directory       == 1.1.*,
-        filemanip       == 0.3.*,
-        filepath        == 1.2.*,
-        hslogger        == 1.1.*,
-        hxt             == 9.1.*,
-        hxt-xpath       == 9.1.*,
-        magic           == 1.0.*,
-        mtl             == 2.0.*,
-        network         == 2.3.*,
-        parsec          == 3.1.*,
-        stm             == 2.2.*,
-        time            == 1.2.*,
-        time-http       == 0.1.*,
-        time-w3c        == 0.1.*,
-        unix            == 2.4.*,
-        zlib            == 0.5.*
+        HsHyperEstraier      == 0.4.*,
+        HsOpenSSL            == 0.10.*,
+        HsSVN                == 0.4.*,
+        Lucu                 == 0.7.*,
+        base                 == 4.3.*,
+        base-unicode-symbols == 0.2.*,
+        bytestring           == 0.9.*,
+        containers           == 0.4.*,
+        dataenc              == 0.14.*,
+        directory            == 1.1.*,
+        filemanip            == 0.3.*,
+        filepath             == 1.2.*,
+        hslogger             == 1.1.*,
+        hxt                  == 9.1.*,
+        hxt-xpath            == 9.1.*,
+        magic                == 1.0.*,
+        mtl                  == 2.0.*,
+        network              == 2.3.*,
+        parsec               == 3.1.*,
+        stm                  == 2.2.*,
+        text                 == 0.11.*,
+        time                 == 1.2.*,
+        time-http            == 0.1.*,
+        time-w3c             == 0.1.*,
+        unix                 == 2.4.*,
+        zlib                 == 0.5.*
 
     Main-Is:
         Main.hs
@@ -106,7 +108,6 @@ Executable rakka
         Rakka.Resource.Render
         Rakka.Resource.Search
         Rakka.Resource.SystemConfig
-        Rakka.Resource.TrackBack
         Rakka.Resource.Users
         Rakka.Storage
         Rakka.Storage.DefaultPage
@@ -114,7 +115,6 @@ Executable rakka
         Rakka.Storage.Types
         Rakka.Storage.Impl
         Rakka.SystemConfig
-        Rakka.TrackBack
         Rakka.Utils
         Rakka.Validation
         Rakka.Wiki
@@ -122,7 +122,6 @@ Executable rakka
         Rakka.Wiki.Interpreter.Base
         Rakka.Wiki.Interpreter.Image
         Rakka.Wiki.Interpreter.PageList
-        Rakka.Wiki.Interpreter.Trackback
         Rakka.Wiki.Interpreter.Outline
         Rakka.Wiki.Engine
         Rakka.Wiki.Formatter
index 06a947610433ea9bf02770110a31a9c3daef7eff..1e6d862c7313089c9634d6e47b919ca75ffafdf9 100644 (file)
@@ -2,14 +2,12 @@ module Rakka.Attachment
     ( Attachment(..)
     )
     where
-
 import           Control.Arrow
 import           Control.Arrow.ArrowList
 import           System.IO.Unsafe
 import           Text.XML.HXT.Arrow.ReadDocument
 import           Text.XML.HXT.Arrow.WriteDocument
 import           Text.XML.HXT.Arrow.XmlArrow
-import           Text.XML.HXT.Arrow.XmlIOStateArrow
 import           Text.XML.HXT.DOM.TypeDefs
 import           Text.XML.HXT.DOM.XmlKeywords
 
index 97927c5e1252b855784df2c6528da73043d142cd..d4da7dba078d6a4bfbeb45f8d367b3bfbe3b1623 100644 (file)
@@ -7,8 +7,6 @@ module Rakka.Authorization
     , delUser
     )
     where
-
-import qualified Codec.Binary.UTF8.String as UTF8
 import           Control.Concurrent.STM
 import           Control.Monad
 import           Control.Monad.Trans
index 8d3c16c04fec4e430a286ff91643b579ec7b8341..9a6df3a396fd3276156178227adcfcc22bab926f 100644 (file)
@@ -19,14 +19,12 @@ import           Rakka.Wiki.Interpreter
 import qualified Rakka.Wiki.Interpreter.Base      as Base
 import qualified Rakka.Wiki.Interpreter.Image     as Image
 import qualified Rakka.Wiki.Interpreter.PageList  as PageList
---import qualified Rakka.Wiki.Interpreter.Trackback as Trackback
 import qualified Rakka.Wiki.Interpreter.Outline   as Outline
 import           Subversion.Repository
 import           System.Directory
 import           System.FilePath
 import           System.Log.Logger
 import           Text.HyperEstraier
-import           Text.XML.HXT.Arrow.XmlIOStateArrow
 
 
 logger :: String
index f0a7a77be6962bc538d94b75411ab016dddeb27d..e396c1b32915fa29568e84c2b26a1ae0c2c18a35 100644 (file)
@@ -27,8 +27,6 @@ module Rakka.Page
     , parseXmlizedPage
     )
     where
-
-import qualified Codec.Binary.UTF8.String as UTF8
 import qualified Data.ByteString.Lazy as Lazy (ByteString)
 import qualified Data.ByteString.Lazy as L hiding (ByteString)
 import qualified Data.ByteString.Lazy.Char8 as L8 hiding (ByteString)
@@ -43,7 +41,6 @@ import           OpenSSL.EVP.Base64
 import           Rakka.Utils
 import           Subversion.Types
 import           System.FilePath.Posix
-import           Text.XML.HXT.Arrow
 import           Text.XML.HXT.XPath
 
 
index c589cecceb1cea38f9ada43cc13b73b6eb7d4ebd..a1c4d90af52b3847b7896ae5904a5690d04e09fe 100644 (file)
@@ -9,8 +9,6 @@ module Rakka.Resource
     , getUserID
     )
     where
-
-import qualified Codec.Binary.UTF8.String as UTF8
 import           Control.Arrow
 import           Control.Arrow.ArrowList
 import           Control.Monad
@@ -25,7 +23,6 @@ import           System.FilePath.Posix
 import           System.Log.Logger
 import           Text.XML.HXT.Arrow.ReadDocument
 import           Text.XML.HXT.Arrow.WriteDocument
-import           Text.XML.HXT.Arrow.XmlIOStateArrow
 import           Text.XML.HXT.DOM.TypeDefs
 import           Text.XML.HXT.DOM.XmlKeywords
 
index d4db7db60e8c894ac77e4bf142411c7e76fa3996..8365381932b7a41fb8460c8c1f1676d1b991a917 100644 (file)
@@ -3,8 +3,6 @@ module Rakka.Resource.Object
     ( resObject
     )
     where
-
-import qualified Codec.Binary.UTF8.String as UTF8
 import           Network.HTTP.Lucu
 import           Rakka.Environment
 import           Rakka.Page
index 7476d0eeee2d2e9f0ced84370c37df1e1ee4181b..c805ae5fe9af0ec4f44152c8a7e2278523ecb7a8 100644 (file)
@@ -2,8 +2,6 @@ module Rakka.Resource.PageEntity
     ( fallbackPageEntity
     )
     where
-
-import qualified Codec.Binary.UTF8.String as UTF8
 import           Control.Monad.Trans
 import qualified Data.ByteString.Lazy as L hiding (ByteString)
 import           Data.Char
@@ -22,7 +20,6 @@ import           Rakka.Utils
 import           Rakka.Wiki.Engine
 import           System.FilePath.Posix
 import           Text.HyperEstraier hiding (getText)
-import           Text.XML.HXT.Arrow
 import           Text.XML.HXT.XPath
 
 
index 64c159e495c39fc2aae2b88dc67ba501370c0cfc..8202cf626e050d0ada2f8352dbbaa61042dc89fa 100644 (file)
@@ -2,8 +2,6 @@ module Rakka.Resource.Render
     ( resRender
     )
     where
-
-import qualified Codec.Binary.UTF8.String as UTF8
 import           Control.Arrow
 import           Control.Arrow.ArrowIO
 import           Control.Arrow.ArrowList
@@ -19,7 +17,6 @@ import           System.FilePath.Posix
 import           Text.XML.HXT.Arrow.Namespace
 import           Text.XML.HXT.Arrow.WriteDocument
 import           Text.XML.HXT.Arrow.XmlArrow
-import           Text.XML.HXT.Arrow.XmlIOStateArrow
 import           Text.XML.HXT.DOM.TypeDefs
 import           Text.XML.HXT.DOM.XmlKeywords
 
index 0543684249401256f00cec51f809e0f7e2dacb09..eb4acf253d11c4d0535bed1c25082fc350e58fec 100644 (file)
@@ -2,8 +2,6 @@ module Rakka.Resource.Search
     ( resSearch
     )
     where
-
-import qualified Codec.Binary.UTF8.Generic as UTF8
 import           Control.Monad.Trans
 import           Data.List
 import           Data.Maybe
@@ -21,7 +19,6 @@ import           Rakka.Utils
 import           Rakka.Wiki.Engine
 import           System.FilePath
 import           Text.HyperEstraier hiding (getText)
-import           Text.XML.HXT.Arrow
 import           Text.XML.HXT.XPath
 
 
index cb19011b1f3c4b6746095b21e557668b57e41fca..100fd1283b3d9e59223a5d952f4ec5bdde34f1cd 100644 (file)
@@ -2,13 +2,11 @@ module Rakka.Resource.SystemConfig
     ( resSystemConfig
     )
     where
-
 import           Data.Maybe
 import           Network.HTTP.Lucu
 import           Rakka.Environment
 import           Rakka.Resource
 import           Rakka.SystemConfig
-import           Text.XML.HXT.Arrow
 import           Text.XML.HXT.XPath
 
 
index fa61ad86fbe373bf38133dd365a004d6cf4f2f2d..ccf677c8ec24cf2646bf2bc3b6c3a95815d7628d 100644 (file)
@@ -2,7 +2,6 @@ module Rakka.Resource.Users
     ( resUsers
     )
     where
-
 import           Control.Monad
 import           Control.Monad.Trans
 import           Data.Maybe
@@ -10,7 +9,6 @@ import           Network.HTTP.Lucu
 import           Rakka.Authorization
 import           Rakka.Environment
 import           Rakka.Resource
-import           Text.XML.HXT.Arrow hiding (when)
 
 
 resUsers :: Environment -> ResourceDef
index e6f51a55a284dbc8737b3274a00a5acf4501c08f..a6fbc10ddea89e3eeabba86d55c2532a82897e3c 100644 (file)
@@ -4,7 +4,6 @@ module Rakka.Storage.DefaultPage
     , loadDefaultPage
     )
     where
-
 import           Control.Arrow
 import           Control.Arrow.ArrowIO
 import           Control.Arrow.ArrowList
@@ -18,7 +17,6 @@ import           System.FilePath
 import           System.FilePath.Find hiding (fileName, modificationTime)
 import           System.Posix.Files
 import           Text.XML.HXT.Arrow.ReadDocument
-import           Text.XML.HXT.Arrow.XmlIOStateArrow
 import           Text.XML.HXT.DOM.XmlKeywords
 
 
index 05d02c29b3c2175e9cc30b8608aae4157dd6227d..ae4ce706d9f1a04f014b5e94d813e0476e71797f 100644 (file)
@@ -10,8 +10,6 @@ module Rakka.Storage.Repos
     , putAttachmentIntoRepository
     )
     where
-
-import           Codec.Binary.UTF8.String
 import           Control.Monad
 import           Data.List
 import qualified Data.Map as M
index 4978b46d131bc853271438120e860b5ac17f5fdc..c151427263a45e65c966ba8deb66f969098f522f 100644 (file)
@@ -21,8 +21,6 @@ module Rakka.SystemConfig
     , deserializeStringPairs
     )
     where
-
-import           Codec.Binary.UTF8.String
 import           Control.Arrow.ArrowIO
 import           Control.Concurrent.STM
 import           Control.Monad
index 15bc6f4043f5a87f149cd09a5147c4cb4cb5be7c..9cc06984440e09a9d7afe2ec12411f550d1a1f56 100644 (file)
@@ -1,3 +1,7 @@
+{-# LANGUAGE
+    Arrows
+  , UnicodeSyntax
+  #-}
 module Rakka.Utils
     ( yesOrNo
     , trueOrFalse
@@ -10,80 +14,85 @@ module Rakka.Utils
     , mkQueryString
     )
     where
-
-import qualified Codec.Binary.UTF8.String as UTF8
-import           Control.Arrow
-import           Control.Arrow.ArrowList
-import qualified Data.ByteString.Lazy as Lazy (ByteString)
-import qualified Data.ByteString.Lazy.Char8 as L8 hiding (ByteString)
-import           Magic
-import           Network.HTTP.Lucu
-import           Network.URI
-import           System.IO.Unsafe
-
-
-yesOrNo :: Bool -> String
+import qualified Codec.Binary.Url as Url
+import Control.Arrow
+import Control.Arrow.ArrowList
+import qualified Data.ByteString as BS
+import qualified Data.ByteString.Lazy as LS
+import qualified Data.ByteString.Lazy.Char8 as L8
+import Data.List
+import qualified Data.Text as T
+import Data.Text.Encoding
+import Network.HTTP.Lucu
+import Network.URI
+import Prelude.Unicode
+import System.IO.Unsafe
+
+
+yesOrNo ∷ Bool → String
 yesOrNo True  = "yes"
 yesOrNo False = "no"
 
 
-trueOrFalse :: Bool -> String
+trueOrFalse ∷ Bool → String
 trueOrFalse True  = "true"
 trueOrFalse False = "false"
 
 
-parseYesOrNo :: ArrowChoice a => a String Bool
+parseYesOrNo  ArrowChoice a => a String Bool
 parseYesOrNo 
-    = proc str -> do case str of
-                       "yes" -> returnA -< True
-                       "no"  -> returnA -< False
-                       _     -> returnA -< error ("Expected yes or no: " ++ str)
+    = proc str  do case str of
+                       "yes"  returnA -< True
+                       "no"   returnA -< False
+                       _     → returnA -< error ("Expected yes or no: " ⧺ str)
 
 
-maybeA :: (ArrowList a, ArrowChoice a) => a b c -> a b (Maybe c)
+maybeA ∷ (ArrowList a, ArrowChoice a) => a b c → a b (Maybe c)
 maybeA a = listA a
            >>>
-           proc xs -> case xs of
-                        []    -> returnA -< Nothing
-                        (x:_) -> returnA -< Just x
+           proc xs  case xs of
+                        []     returnA -< Nothing
+                        (x:_)  returnA -< Just x
 
 
-deleteIfEmpty :: (ArrowList a, ArrowChoice a) => a String String
+deleteIfEmpty  (ArrowList a, ArrowChoice a) => a String String
 deleteIfEmpty
-    = proc str -> do case str of
-                       "" -> none    -< ()
-                       _  -> returnA -< str
+    = proc str  do case str of
+                       ""  none    -< ()
+                       _   returnA -< str
 
 
-chomp :: String -> String
+chomp ∷ String → String
 chomp = reverse . snd . break (/= '\n') . reverse
 
 
-guessMIMEType :: Lazy.ByteString -> MIMEType
+guessMIMEType ∷ LS.ByteString → MIMEType
 guessMIMEType = read . unsafePerformIO . magicString magic . L8.unpack
     where
-      magic :: Magic
+      magic  Magic
       magic = unsafePerformIO
               $ do m <- magicOpen [MagicMime]
                    magicLoadDefault m
                    return m
 
 
-isSafeChar :: Char -> Bool
+isSafeChar ∷ Char → Bool
 isSafeChar c
-    | c == '/'            = True
-    | isReserved c        = False
-    | c > ' ' && c <= '~' = True
-    | otherwise           = False
-
-
-mkQueryString :: [(String, String)] -> String
-mkQueryString []            = ""
-mkQueryString ((k, v) : xs) = encode k ++ "=" ++ encode v ++
-                              if xs == [] then
-                                  ""
-                              else
-                                  ';' : mkQueryString(xs)
+    | c ≡ '/'           = True
+    | isReserved c      = False
+    | isUnreserved c    = True
+    | otherwise         = False
+
+
+mkQueryString ∷ [(T.Text, T.Text)] → String
+{-# INLINEABLE mkQueryString #-}
+mkQueryString = intercalate ";" ∘ map pairToStr
     where
-      encode :: String -> String
-      encode = escapeURIString isSafeChar . UTF8.encodeString
\ No newline at end of file
+      pairToStr ∷ (T.Text, T.Text) → String
+      {-# INLINE pairToStr #-}
+      pairToStr (k, v)
+          = encode k ⧺ ('=':encode v)
+
+      encode ∷ T.Text → String
+      {-# INLINE encode #-}
+      encode = Url.encode ∘ BS.unpack ∘ encodeUtf8
index 73a83e78105c13a1b476b4e6cc107de4293e68f9..70129a47f15ff34ac8c92030dca555bee16159a5 100644 (file)
@@ -2,7 +2,6 @@ module Rakka.Validation
     ( getValidator
     )
     where
-
 import           Control.Arrow
 import           Control.Arrow.ArrowList
 import           Control.Arrow.ArrowTree
@@ -12,11 +11,7 @@ import           Rakka.Environment
 import           System.Directory
 import           System.FilePath
 import           Text.XML.HXT.Arrow.XmlArrow
-import           Text.XML.HXT.Arrow.XmlIOStateArrow
 import           Text.XML.HXT.DOM.TypeDefs
-import qualified Text.XML.HXT.RelaxNG.Schema as S
-import           Text.XML.HXT.RelaxNG.Validator
-
 
 loadSchema :: FilePath -> IO (IOSArrow XmlTree XmlTree)
 loadSchema fpath
index 17c2933852ee5273485ac80fcbb570c36f6bd080..dae6471043c9f6ca4272d3f1b4338e4123efc373 100644 (file)
@@ -7,8 +7,6 @@ module Rakka.Wiki.Engine
     , makeDraft
     )
     where
-
-import qualified Codec.Binary.UTF8.String as UTF8
 import qualified Data.ByteString.Lazy as Lazy
 import qualified Data.ByteString.Lazy.Char8 as L8 hiding (ByteString)
 import           Data.Map (Map)
@@ -27,7 +25,6 @@ import           Rakka.Wiki.Formatter
 import           Rakka.Wiki.Interpreter
 import           Text.HyperEstraier hiding (getText)
 import           Text.ParserCombinators.Parsec
-import           Text.XML.HXT.Arrow hiding (err)
 import           Text.XML.HXT.XPath
 
 
index ed81494e62e4c671e13d4f2ba682251752ce8904..1af5c77e9844f7e5497b8c4ba364f3ac8440d101 100644 (file)
@@ -10,7 +10,6 @@ import           Rakka.Page
 import           Rakka.SystemConfig
 import           Rakka.Wiki
 import           Rakka.Wiki.Interpreter
-import           Text.XML.HXT.Arrow
 import           Text.XML.HXT.XPath
 
 
diff --git a/bugs/issue-1c6bfe78f0f9ebd241b8650eb62939dc932cd6f0.yaml b/bugs/issue-1c6bfe78f0f9ebd241b8650eb62939dc932cd6f0.yaml
new file mode 100644 (file)
index 0000000..7a78767
--- /dev/null
@@ -0,0 +1,23 @@
+--- !ditz.rubyforge.org,2008-03-06/issue 
+title: Rakka is rather bitrotted
+desc: We have to repair it ASAP.
+type: :task
+component: Rakka
+release: "0.1"
+reporter: PHO <pho@cielonegro.org>
+status: :in_progress
+disposition: 
+creation_time: 2011-07-29 14:12:39.862597 Z
+references: []
+
+id: 1c6bfe78f0f9ebd241b8650eb62939dc932cd6f0
+log_events: 
+- - 2011-07-29 14:12:40.853438 Z
+  - PHO <pho@cielonegro.org>
+  - created
+  - ""
+- - 2011-07-29 14:13:16.762514 Z
+  - PHO <pho@cielonegro.org>
+  - changed status from unstarted to in_progress
+  - I'm working on this...
+git_branch: 
index d8bbaad16ee155ad694cb2b90652a37fdb10636e..2363b98c6d4f6d38725bc0352c8cf6de2a08b9cf 100644 (file)
@@ -14,11 +14,14 @@ RM_RF    ?= rm -rf
 SUDO     ?= sudo
 AUTOCONF ?= autoconf
 HLINT    ?= hlint
+HPC      ?= hpc
+DITZ     ?= ditz
 
 CONFIGURE_ARGS ?= --disable-optimization
 
 SETUP_FILE := $(wildcard Setup.*hs)
 CABAL_FILE := $(wildcard *.cabal)
+PKG_NAME   := $(CABAL_FILE:.cabal=)
 
 ifeq ($(shell ls configure.ac 2>/dev/null),configure.ac)
   AUTOCONF_AC_FILE := configure.ac
@@ -40,6 +43,7 @@ all: build
 
 build: setup-config build-hook
        ./Setup build
+       $(RM_RF) *.tix
 
 build-hook:
 
@@ -70,7 +74,7 @@ Setup: $(SETUP_FILE)
        $(GHC) --make Setup
 
 clean: clean-hook
-       $(RM_RF) dist Setup *.o *.hi .setup-config *.buildinfo
+       $(RM_RF) dist Setup *.o *.hi .setup-config *.buildinfo *.tix .hpc
        $(FIND) . -name '*~' -exec rm -f {} \;
 
 clean-hook:
@@ -85,11 +89,42 @@ sdist: setup-config
        ./Setup sdist
 
 test: build
+       $(RM_RF) dist/test
        ./Setup test
+       if ls *.tix >/dev/null 2>&1; then \
+               $(HPC) sum --output="merged.tix" --union --exclude=Main *.tix; \
+               $(HPC) markup --destdir="dist/hpc" --fun-entry-count "merged.tix"; \
+       fi
+
+ditz:
+       $(DITZ) html dist/ditz
+
+fixme:
+       @$(FIND) . \
+               \( -name 'dist' -or -name '.git' -or -name '_darcs' \) -prune \
+               -or \
+               \( -name '*.c'   -or -name '*.h'   -or \
+                  -name '*.hs'  -or -name '*.lhs' -or \
+                  -name '*.hsc' -or -name '*.cabal' \) \
+               -exec egrep -i '(fixme|thinkme)' {} \+ \
+               || echo 'No FIXME or THINKME found.'
 
 lint:
-       $(HLINT) . --report \
-               --ignore="Use string literal" \
-               --ignore="Use concatMap"
-
-.PHONY: build build-hook setup-config setup-config-hook run clean clean-hook install doc sdist test lint
+       $(HLINT) . --report
+
+push: doc ditz
+       if [ -d "_darcs" ]; then \
+               darcs push; \
+       elif [ -d ".git" ]; then \
+               git push --all && git push --tags; \
+       fi
+       if [ -d "dist/doc" ]; then \
+               rsync -av --delete \
+                       dist/doc/html/$(PKG_NAME)/ \
+                       www@nem.cielonegro.org:static.cielonegro.org/htdocs/doc/$(PKG_NAME); \
+       fi
+       rsync -av --delete \
+               dist/ditz/ \
+               www@nem.cielonegro.org:static.cielonegro.org/htdocs/ditz/$(PKG_NAME)
+
+.PHONY: build build-hook setup-config setup-config-hook run clean clean-hook install doc sdist test lint push