From 4db14ef70fad0cd1efa4f0bddfefca834d07e749 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Wed, 11 Sep 2019 14:49:22 -0700 Subject: [PATCH] ;api: another round of hledger-api purging; fix the build --- .ci | 21 +++++++++++---------- CONTRIBUTING.md | 5 ++--- Dockerfile | 3 +-- Makefile | 10 ---------- README.md | 1 - Shake.hs | 3 --- azure-pipelines.yml | 4 ---- cabal-install.sh | 2 -- cabal.project | 1 - hledger-install/hledger-install.sh | 1 - hledger-web/Hledger/Web/Handler/MiscR.hs | 2 +- hledger-web/Hledger/Web/Json.hs | 3 +-- hledger-web/hledger-web.m4.md | 5 ++--- hledger/Hledger/Cli/CliOptions.hs | 5 ++--- hledger/Hledger/Cli/Commands/Help.md | 2 +- hledger/Hledger/Cli/DocFiles.hs | 5 ----- hledger/hledger_addons.m4.md | 3 --- hledger/package.yaml | 3 --- shell-completion/hledger-completion.bash | 16 ---------------- shell-completion/hledger-completion.bash.m4 | 1 - stack-ghc7.10.yaml | 20 -------------------- stack-ghc8.0.yaml | 2 +- stack-ghc8.2.yaml | 2 +- stack-ghc8.4.yaml | 1 - 24 files changed, 23 insertions(+), 98 deletions(-) diff --git a/.ci b/.ci index 753278ff8..c0d867600 100644 --- a/.ci +++ b/.ci @@ -1,12 +1,13 @@ [test "website"] command = ./Shake.hs && ./Shake Clean && ./Shake website - trackedFiles = site/_site \ - site/csv.md \ - site/hledger-api.md \ - site/hledger-ui.md \ - site/hledger-web.md \ - site/hledger.md \ - site/journal.md \ - site/manual.md \ - site/timeclock.md \ - site/timedot.md +#TODO: update for new site +# trackedFiles = site/_site \ +# site/csv.md \ +# site/hledger-ui.md \ +# site/hledger-web.md \ +# site/hledger.md \ +# site/journal.md \ +# site/manual.md \ +# site/timeclock.md \ +# site/timedot.md +# \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7e75f8cba..7f8138b5f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -518,13 +518,14 @@ ghci> :main --serve (This rule also creates symbolic links to hledger-web's `config`, `messages`, `static` and `templates` directories, needed in developer mode, so it can run from the top directory. This may not work on Windows.) -#### hledger-api +#### hledger-api (old) [package](http://hackage.haskell.org/package/hledger-api), [code](https://github.com/simonmichael/hledger/tree/master/hledger-api), [manual](http://hledger.org/manual.html#hledger-api) A web API server. Uses the servant framework. +Retired as of 2019-09; use hledger-web instead. ### Quality @@ -809,7 +810,6 @@ About testing in the hledger project, as of 201809. hledger test builtin test command (hledger\'s + hledger-lib\'s unit tests) hledger-ui hledger-web - hledger-api ------------- ------------ --------------------------------------------------------------- ### Coverage @@ -826,7 +826,6 @@ Our current test coverage can be summarised like so: hledger X X hledger-ui hledger-web - hledger-api ------------- ------ ----- ------------ There are ways to generate detailed coverage reports for haskell unit diff --git a/Dockerfile b/Dockerfile index 3621a3bf3..01e7070eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,12 +8,11 @@ COPY ./stack*.yaml ./ RUN stack setup # Pre-cache dependencies -RUN mkdir hledger-lib hledger hledger-ui hledger-web hledger-api +RUN mkdir hledger-lib hledger hledger-ui hledger-web COPY hledger-lib/package.yaml hledger-lib/package.yaml COPY hledger/package.yaml hledger/package.yaml COPY hledger-ui/package.yaml hledger-ui/package.yaml COPY hledger-web/package.yaml hledger-web/package.yaml -COPY hledger-api/package.yaml hledger-api/package.yaml RUN stack install --dependencies-only # Actually compile sources diff --git a/Makefile b/Makefile index 3303400aa..25721d4c3 100644 --- a/Makefile +++ b/Makefile @@ -104,7 +104,6 @@ PACKAGES=\ hledger \ hledger-ui \ hledger-web \ -# hledger-api \ INCLUDEPATHS=\ -ihledger-lib \ @@ -113,7 +112,6 @@ INCLUDEPATHS=\ -ihledger-ui \ -ihledger-web \ -ihledger-web/app \ -# -ihledger-api \ MAIN=hledger/app/hledger-cli.hs @@ -330,9 +328,6 @@ ghcid-ui: $(call def-help,ghcid-ui, start ghcid autobuilder on hledger-lib + hle ghcid-web: $(call def-help,ghcid-web, start ghcid autobuilder on hledger-lib + hledger + hledger-web) ghcid -c 'make ghci-web' -# ghcid-api: $(call def-help,ghcid-api, start ghcid autobuilder on hledger-lib + hledger + hledger-api) -# ghcid -c 'make ghci-api' - ghcid-test: $(call def-help,ghcid-test, start ghcid autobuilding and running the test command) ghcid -c 'make ghci' --test ':main test' @@ -372,14 +367,10 @@ ghci-ui: $(call def-help,ghci-ui, start ghci REPL on hledger-lib + hledger + hle ghci-web: link-web-dirs $(call def-help,ghci-web, start ghci REPL on hledger-lib + hledger + hledger-web) $(STACK) exec -- $(GHCI) $(BUILDFLAGS) hledger-web/app/main.hs -# ghci-api: $(call def-help,ghci-api, start ghci REPL on hledger-lib + hledger + hledger-api) -# $(STACK) exec -- $(GHCI) $(BUILDFLAGS) hledger-api/hledger-api.hs - # ghci-all: $(call def-help,ghci-all, start ghci REPL on all the hledger) # $(STACK) exec -- $(GHCI) $(BUILDFLAGS) \ # hledger-ui/Hledger/UI/Main.hs \ # hledger-web/app/main.hs \ -# hledger-api/hledger-api.hs \ ghci-doctest: $(call def-help,ghci-doctest, start ghci REPL on hledger-lib doctests) cd hledger-lib; $(STACK) ghci hledger-lib:test:doctests @@ -495,7 +486,6 @@ travistest: $(call def-help,travistest, run tests similar to our travis CI tests $(STACK) build --ghc-options=-Werror --test --haddock --no-haddock-deps hledger-ui $(STACK) build --ghc-options=-Werror --test --haddock --no-haddock-deps hledger-web make functest -# $(STACK) build --ghc-options=-Werror --test --haddock --no-haddock-deps hledger-api # committest: hlinttest unittest doctest functest haddocktest buildtest quickcabaltest \ # $(call def-help,committest,more thorough pre-commit/pre-push tests) diff --git a/README.md b/README.md index f1b0554fa..a71c8d884 100644 --- a/README.md +++ b/README.md @@ -121,5 +121,4 @@ downloads](https://img.shields.io/github/downloads/simonmichael/hledger/latest/t [![](https://img.shields.io/hackage-deps/v/hledger.svg?label=hledger+bounds)](http://packdeps.haskellers.com/feed?needle=hledger) [![](https://img.shields.io/hackage-deps/v/hledger-ui.svg?label=hledger-ui+bounds)](http://packdeps.haskellers.com/feed?needle=hledger-ui) [![](https://img.shields.io/hackage-deps/v/hledger-web.svg?label=hledger-web+bounds)](http://packdeps.haskellers.com/feed?needle=hledger-web) -[![](https://img.shields.io/hackage-deps/v/hledger-api.svg?label=hledger-api+bounds)](http://packdeps.haskellers.com/feed?needle=hledger-api) diff --git a/Shake.hs b/Shake.hs index 43401848d..75461b5ad 100755 --- a/Shake.hs +++ b/Shake.hs @@ -165,7 +165,6 @@ main = do ,"hledger" ,"hledger-ui" ,"hledger-web" - -- ,"hledger-api" ] changelogs = "CHANGES.md" : map ( "CHANGES.md") packages @@ -185,7 +184,6 @@ main = do "hledger.1" ,"hledger-ui.1" ,"hledger-web.1" - -- ,"hledger-api.1" ,"hledger_journal.5" ,"hledger_csv.5" ,"hledger_timeclock.5" @@ -479,7 +477,6 @@ main = do ,":!hledger" ,":!hledger-ui" ,":!hledger-web" - ,":!hledger-api" ,":!tests" ] diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9e0833b71..1ea15c926 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -26,10 +26,6 @@ trigger: - doc/* - examples/* - hledger-system.mk - - hledger-api/CHANGES* - - hledger-api/LICENSE* - - hledger-api/README* - - hledger-api/examples/* - hledger-install/LICENSE* - hledger-install/README* - hledger-lib/CHANGES* diff --git a/cabal-install.sh b/cabal-install.sh index c2cd48513..67b4d9c82 100755 --- a/cabal-install.sh +++ b/cabal-install.sh @@ -13,7 +13,6 @@ cabal sandbox init #cabal sandbox add-source ./hledger #cabal sandbox add-source ./hledger-ui #cabal sandbox add-source ./hledger-web -#cabal sandbox add-source ./hledger-api # Traditional pre-ceremony to propitiate the install gods cabal install alex happy @@ -24,4 +23,3 @@ cabal install \ ./hledger \ ./hledger-ui \ ./hledger-web \ - ./hledger-api \ diff --git a/cabal.project b/cabal.project index ce686d3d4..434dfcf77 100644 --- a/cabal.project +++ b/cabal.project @@ -2,7 +2,6 @@ packages: hledger-lib hledger hledger-ui hledger-web - hledger-api allow-newer: brick:base diff --git a/hledger-install/hledger-install.sh b/hledger-install/hledger-install.sh index e9450caba..ca8d2e518 100755 --- a/hledger-install/hledger-install.sh +++ b/hledger-install/hledger-install.sh @@ -64,7 +64,6 @@ HLEDGER_MAIN_TOOLS="\ hledger \ hledger-ui \ hledger-web \ -hledger-api \ " HLEDGER_OTHER_TOOLS="\ diff --git a/hledger-web/Hledger/Web/Handler/MiscR.hs b/hledger-web/Hledger/Web/Handler/MiscR.hs index fe04c74ac..b83241f9b 100644 --- a/hledger-web/Hledger/Web/Handler/MiscR.hs +++ b/hledger-web/Hledger/Web/Handler/MiscR.hs @@ -52,7 +52,7 @@ getDownloadR f = do addHeader "Content-Disposition" ("attachment; filename=\"" <> T.pack f' <> "\"") sendResponse ("text/plain" :: ByteString, toContent txt) --- hledger-web equivalents of hledger-api's handlers +-- hledger-web equivalents of the old hledger-api's handlers getAccountnamesR :: Handler TypedContent getAccountnamesR = do diff --git a/hledger-web/Hledger/Web/Json.hs b/hledger-web/Hledger/Web/Json.hs index 9b7b498d8..30052029a 100644 --- a/hledger-web/Hledger/Web/Json.hs +++ b/hledger-web/Hledger/Web/Json.hs @@ -37,8 +37,7 @@ import GHC.Generics (Generic) import Hledger.Data --- JSON instances. See also hledger-api. --- Should they be in hledger-lib Types.hs ? +-- JSON instances. Should they be in hledger-lib Types.hs ? -- To JSON diff --git a/hledger-web/hledger-web.m4.md b/hledger-web/hledger-web.m4.md index 63a8c049b..84bf633ba 100644 --- a/hledger-web/hledger-web.m4.md +++ b/hledger-web/hledger-web.m4.md @@ -186,9 +186,8 @@ sure that both machine clocks are roughly in step.) # JSON API In addition to the web UI, hledger-web provides some API routes that -serve JSON in response to GET requests. Currently these are same ones -provided by the hledger-api tool, but hledger-web will likely receive -more attention than hledger-api in future: +serve JSON in response to GET requests. (And when started with `--serve-api`, +it provides only these routes.): ``` /accountnames /transactions diff --git a/hledger/Hledger/Cli/CliOptions.hs b/hledger/Hledger/Cli/CliOptions.hs index 379262877..8733d7a66 100644 --- a/hledger/Hledger/Cli/CliOptions.hs +++ b/hledger/Hledger/Cli/CliOptions.hs @@ -329,13 +329,12 @@ showModeUsage = (showText defaultWrap :: [Text] -> String) . (helpText [] HelpFormatDefault :: Mode a -> [Text]) -- | Get the most appropriate documentation topic for a mode. --- Currently, that is either the hledger, hledger-ui, hledger-web or --- hledger-api manual. +-- Currently, that is either the hledger, hledger-ui or hledger-web +-- manual. topicForMode :: Mode a -> Topic topicForMode m | n == "hledger-ui" = "ui" | n == "hledger-web" = "web" - -- | n == "hledger-api" = lookupDocTxt "api" -- hledger-api uses docopt | otherwise = "cli" where n = headDef "" $ modeNames m diff --git a/hledger/Hledger/Cli/Commands/Help.md b/hledger/Hledger/Cli/Commands/Help.md index 1a2ff1191..9a3b8ccfc 100644 --- a/hledger/Hledger/Cli/Commands/Help.md +++ b/hledger/Hledger/Cli/Commands/Help.md @@ -16,7 +16,7 @@ Examples: ```shell $ hledger help Please choose a manual by typing "hledger help MANUAL" (a substring is ok). -Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot +Manuals: hledger hledger-ui hledger-web journal csv timeclock timedot ``` ```shell diff --git a/hledger/Hledger/Cli/DocFiles.hs b/hledger/Hledger/Cli/DocFiles.hs index cc4f2ed01..9ff44431d 100644 --- a/hledger/Hledger/Cli/DocFiles.hs +++ b/hledger/Hledger/Cli/DocFiles.hs @@ -53,11 +53,6 @@ docFiles = [ ,$(embedFileRelative "embeddedfiles/hledger-web.txt") ,$(embedFileRelative "embeddedfiles/hledger-web.info") )) - ,("hledger-api", - ($(embedFileRelative "embeddedfiles/hledger-api.1") - ,$(embedFileRelative "embeddedfiles/hledger-api.txt") - ,$(embedFileRelative "embeddedfiles/hledger-api.info") - )) ,("journal", ($(embedFileRelative "embeddedfiles/hledger_journal.5") ,$(embedFileRelative "embeddedfiles/hledger_journal.txt") diff --git a/hledger/hledger_addons.m4.md b/hledger/hledger_addons.m4.md index f635b0635..4aea567a8 100644 --- a/hledger/hledger_addons.m4.md +++ b/hledger/hledger_addons.m4.md @@ -26,9 +26,6 @@ Here are some hledger add-ons available: These are maintained and released along with hledger. -### api -[hledger-api](hledger-api.html) serves hledger data as a JSON web API. - ### ui [hledger-ui](hledger-ui.html) provides an efficient terminal interface. diff --git a/hledger/package.yaml b/hledger/package.yaml index 1e05299db..6b0f30cd8 100644 --- a/hledger/package.yaml +++ b/hledger/package.yaml @@ -33,9 +33,6 @@ extra-source-files: - embeddedfiles/hledger.1 - embeddedfiles/hledger.txt - embeddedfiles/hledger.info -- embeddedfiles/hledger-api.1 -- embeddedfiles/hledger-api.txt -- embeddedfiles/hledger-api.info - embeddedfiles/hledger-ui.1 - embeddedfiles/hledger-ui.txt - embeddedfiles/hledger-ui.info diff --git a/shell-completion/hledger-completion.bash b/shell-completion/hledger-completion.bash index 16b0d87dd..4f6178485 100644 --- a/shell-completion/hledger-completion.bash +++ b/shell-completion/hledger-completion.bash @@ -106,7 +106,6 @@ complete -F _hledger_completion_function hledger # Register completion functions for hledger extensions: complete -F _hledger_extension_completion_function hledger-ui complete -F _hledger_extension_completion_function hledger-web -complete -F _hledger_extension_completion_function hledger-api # Include lists of commands and options generated by the Makefile using the # m4 macro processor. @@ -146,7 +145,6 @@ cf is ui web -api TEXT cat < "$_HLEDGER_COMPLETION_TEMPDIR/query-filters.txt" @@ -2057,17 +2055,3 @@ cat < "$_HLEDGER_COMPLETION_TEMPDIR/options-web.txt" -p TEXT -cat < "$_HLEDGER_COMPLETION_TEMPDIR/options-api.txt" ---file ---help ---host ---port ---static-dir ---swagger ---version --d --f --h --p -TEXT - diff --git a/shell-completion/hledger-completion.bash.m4 b/shell-completion/hledger-completion.bash.m4 index 2119ffd9e..5542affdc 100644 --- a/shell-completion/hledger-completion.bash.m4 +++ b/shell-completion/hledger-completion.bash.m4 @@ -106,7 +106,6 @@ complete -F _hledger_completion_function hledger # Register completion functions for hledger extensions: complete -F _hledger_extension_completion_function hledger-ui complete -F _hledger_extension_completion_function hledger-web -complete -F _hledger_extension_completion_function hledger-api # Include lists of commands and options generated by the Makefile using the # m4 macro processor. diff --git a/stack-ghc7.10.yaml b/stack-ghc7.10.yaml index a4009994f..12912265e 100644 --- a/stack-ghc7.10.yaml +++ b/stack-ghc7.10.yaml @@ -10,7 +10,6 @@ packages: # (we need megaparsec 7, only config-ini's 0.2.3.0 version allows that, but it requires a newer base/GHC). #- hledger-ui - hledger-web -#- hledger-api extra-deps: - easytest-0.2.1 @@ -76,25 +75,6 @@ extra-deps: - word-wrap-0.4.1 - yesod-persistent-1.4.2 -# - servant-0.13.0.1 -# - servant-server-0.13.0.1 -# - servant-swagger-1.1.5 -# - swagger2-2.2.2 -# # - attoparsec-iso8601-1.0.0.0 -# # - base-compat-0.9.3 -# - brick-0.24.2 -# - cpphs-1.20.8 -# - data-clist-0.1.2.0 -# - http-api-data-0.3.7.1 -# - natural-transformation-0.4 -# # - persistent-template-2.5.2 -# # - servant-0.11 -# # - servant-server-0.11 -# - text-zipper-0.10 -# - th-orphans-0.13.4 -# - vty-5.17.1 -# - word-wrap-0.4.1 - # hledger-ui # newer fsnotify has a different api and may be more robust - fsnotify-0.3.0.1 diff --git a/stack-ghc8.0.yaml b/stack-ghc8.0.yaml index 0a0b248f4..5face37f2 100644 --- a/stack-ghc8.0.yaml +++ b/stack-ghc8.0.yaml @@ -7,8 +7,8 @@ packages: - hledger - hledger-ui - hledger-web -- hledger-api +# TODO: some of these were for hledger-api and can be removed extra-deps: - easytest-0.2.1 # Many newer versions to allow using the latest base-compat with all ghc versions. diff --git a/stack-ghc8.2.yaml b/stack-ghc8.2.yaml index 7e4528c00..986eda1ca 100644 --- a/stack-ghc8.2.yaml +++ b/stack-ghc8.2.yaml @@ -7,8 +7,8 @@ packages: - hledger - hledger-ui - hledger-web -- hledger-api +# TODO: some of these were for hledger-api and can be removed extra-deps: - easytest-0.2.1 # use the latest base-compat with all ghc versions diff --git a/stack-ghc8.4.yaml b/stack-ghc8.4.yaml index 101a897fc..9b3d1b09e 100644 --- a/stack-ghc8.4.yaml +++ b/stack-ghc8.4.yaml @@ -7,7 +7,6 @@ packages: - hledger - hledger-ui - hledger-web -- hledger-api extra-deps: - easytest-0.2.1