aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstuebinm2024-04-17 01:55:56 +0200
committerstuebinm2024-04-17 02:01:35 +0200
commit58f5b808c151a801ab5fca2c84a71d3bfddce57d (patch)
treef5e9660be6425f39bce64ca3f5e9e70ebc16193f
parent385e15fc22f48a1f8d40b8263a54155fdab499ea (diff)
general housekeeping
jumps to GHC2021 as default language, adds in some fields, moves the old org mode glossary to markdown, etc.
-rw-r--r--CHANGELOG.md9
-rw-r--r--GLOSSARY.md69
-rw-r--r--GLOSSARY.org66
-rw-r--r--app/GenJS.hs14
-rw-r--r--hie.yaml10
-rw-r--r--lib/API.hs10
-rw-r--r--lib/Config.hs2
-rw-r--r--lib/Extrapolation.hs14
-rw-r--r--lib/GTFS.hs24
-rw-r--r--lib/Persist.hs22
-rw-r--r--lib/Server.hs15
-rw-r--r--lib/Server/ControlRoom.hs7
-rw-r--r--lib/Server/GTFS_RT.hs3
-rw-r--r--lib/Server/Util.hs4
-rw-r--r--tracktrain.cabal23
15 files changed, 119 insertions, 173 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1df15d0..9ad039c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
-# Revision history for haskell-gtfs
+# Revision history for tracktrain
-## 0.1.0.0 -- YYYY-mm-dd
+
+## 0.0.2.0 -- 2024-05-??
+* Hopefully first version usable in production?
+
+## 0.0.1.0 -- ~ 2022-11-01
* First version. Released on an unsuspecting world.
+* First version which could successfully send data to Google
diff --git a/GLOSSARY.md b/GLOSSARY.md
new file mode 100644
index 0000000..664edd9
--- /dev/null
+++ b/GLOSSARY.md
@@ -0,0 +1,69 @@
+# Glossary
+
+This is meant to give a rough overview of (train-related) terms used in
+this code; both for others as a reference and for me so I can remember
+to use them in a (somewhat) consistent way, since they are somewhat
+arbitrary. I've tried to remain at least broadly close to the
+terminology used by GTFS.
+
+## Terms
+
+(Calendar-)Date / Day
+: A single, unique day (e.g. 1970-01-01). Usually used to indicate if a
+ *trip* is running on that day or not.
+
+Time (of Day)
+: Time on a given day, given in seconds (though often displayed as
+ minutes) since midnight. If a trip crosses midnight it is treated as if
+ it took place entirely on the previous day, and times simply count up
+ beyond the total number of seconds in a day (note that that's a
+ timezone-series dependent number).
+
+Trip (don't confuse with Train)
+: Used as in GTFS: a trip is a defined sequence of *stops*, referred to by
+ a number (called its trip ID, e.g. IC 94). Usually runs on multiple
+ days. Always has an associated *shape*.
+
+ (might match your intuition for "train line")
+
+Stop
+: A *station* with associated arrival/departure *time*.
+
+Station
+: A train station. Tracktrain refers to each by an ID, and hopefully knows
+ its geolocation.
+
+Shape
+: A sequence of geolocations describing a line between stations,
+ describing the physical railway along which trains travel.
+
+Train (don't confuse with Trip)
+: A single instance of a *trip* on a concrete *date*. Tracktrain mostly
+ concerns itself with keeping track of those; the rest is just additional
+ stuff.
+
+Vehicle
+: An actual, physical vehicle, which might act as the *train* going along
+ a *trip* on a certain *date*.
+
+ For now tracktrain doesn't really care about them (but if it's curious
+ it might yet learn about them!)
+
+Announcement
+: The thing that GTFS calls "Service Alert" --- a text message giving
+ human-readable information about some *train*.
+
+(Train-)Ping
+: A single packet of data sent from a train's *OBU*. Might arrive in some
+ arbitrary order.
+
+Control Room
+: The "admin interface" of tracktrain, which is not meant to be used by
+ on-board staff.
+
+On-Board Unit (OBU)
+: A thing on a vehicle which does geolocation tracking and yells at
+ tracktrain about it.
+
+ If we ever run into potential confusion regarding this term we're
+ probably way too professional to actually use tracktrain for anything.
diff --git a/GLOSSARY.org b/GLOSSARY.org
deleted file mode 100644
index 38cda75..0000000
--- a/GLOSSARY.org
+++ /dev/null
@@ -1,66 +0,0 @@
-#+TITLE: Glossary of Terms
-
-This is meant to give a rough overview of (train-related) terms used in this
-code; both for others as a reference and for me so I can remember to use them
-in a (somewhat) consistent way, since they are somewhat arbitrary. I've tried
-to remain at least broadly close to the terminology used by GTFS.
-
-* Terms
-** (Calendar-)Date / Day
-A single, unique day (e.g. 1970-01-01). Usually used to indicate if a /trip/
-is running on that day or not.
-
-** Time (of Day)
-Time on a given day, given in seconds (though often displayed as minutes)
-since midnight. If a trip crosses midnight it is treated as if it took place
-entirely on the previous day, and times simply count up beyond the total
-number of seconds in a day (note that that's a timezone-series dependent
-number).
-
-** Trip (don't confuse with Train)
-Used as in GTFS: a trip is a defined sequence of /stops/, referred to by a
-number (called its trip ID, e.g. IC 94). Usually runs on multiple days.
-Always has an associated /shape/.
-
-(might match your intuition for "train line")
-
-** Stop
-A /station/ with associated arrival/departure /time/.
-
-** Station
-A train station. Tracktrain refers to each by an ID, and hopefully knows
-its geolocation.
-
-** Shape
-A sequence of geolocations describing a line between stations, describing
-the physical railway along which trains travel.
-
-** Train (don't confuse with Trip)
-A single instance of a /trip/ on a concrete /date/. Tracktrain mostly concerns
-itself with keeping track of those; the rest is just additional stuff.
-
-** Vehicle
-An actual, physical vehicle, which might act as the /train/ going along a
-/trip/ on a certain /date/.
-
-For now tracktrain doesn't really care about them (but if it's curious it
-might yet learn about them!)
-
-** Announcement
-The thing that GTFS calls "Service Alert" — a text message giving
-human-readable information about some /train/.
-
-** (Train-)Ping
-A single packet of data sent from a train's /OBU/. Might arrive in some
-arbitrary order.
-
-** Control Room
-The "admin interface" of tracktrain, which is not meant to be used by on-board
-staff.
-
-** On-Board Unit (OBU)
-A thing on a vehicle which does geolocation tracking and yells at tracktrain
-about it.
-
-If we ever run into potential confusion regarding this term we're probably
-way too professional to actually use tracktrain for anything.
diff --git a/app/GenJS.hs b/app/GenJS.hs
index a580d23..1e7ba3a 100644
--- a/app/GenJS.hs
+++ b/app/GenJS.hs
@@ -4,12 +4,12 @@
-- bother with it
module Main where
-import Universum
-import Servant.JS
-import Servant.JS.Vanilla
-import System.Environment (getArgs)
+import Servant.JS
+import Servant.JS.Vanilla
+import System.Environment (getArgs)
+import Universum
-import API
+import API
apiJS :: Text -> Text
apiJS url = jsForAPI (Proxy @API) (vanillaJSWith options)
@@ -19,6 +19,6 @@ main :: IO ()
main = do
args <- getArgs
case args of
- [] -> putText (apiJS "")
+ [] -> putText (apiJS "")
[prefix] -> putText (apiJS (toText prefix))
- _ -> error "don't understand these options"
+ _ -> error "don't understand these options"
diff --git a/hie.yaml b/hie.yaml
deleted file mode 100644
index 4bc07c5..0000000
--- a/hie.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-cradle:
- cabal:
- - path: "app/Main.hs"
- component: "tracktrain:exe:tracktrain"
-
- - path: "lib"
- component: "lib:tracktrain"
-
- - path: "gtfs"
- component: "tracktrain:lib:gtfs"
diff --git a/lib/API.hs b/lib/API.hs
index b0e12f6..b18ebdd 100644
--- a/lib/API.hs
+++ b/lib/API.hs
@@ -1,10 +1,6 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE TypeApplications #-}
-{-# LANGUAGE TypeOperators #-}
-{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE ExplicitNamespaces #-}
+{-# LANGUAGE UndecidableInstances #-}
-- | The sole authorative definition of this server's API, given as a Servant-style
-- Haskell type. All other descriptions of the API are generated from this one.
diff --git a/lib/Config.hs b/lib/Config.hs
index 363a068..2349e66 100644
--- a/lib/Config.hs
+++ b/lib/Config.hs
@@ -1,6 +1,4 @@
-{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE RecordWildCards #-}
--- |
module Config where
import Conferer (DefaultConfig (configDef))
diff --git a/lib/Extrapolation.hs b/lib/Extrapolation.hs
index 5adc074..6a2d88a 100644
--- a/lib/Extrapolation.hs
+++ b/lib/Extrapolation.hs
@@ -1,12 +1,8 @@
-{-# LANGUAGE AllowAmbiguousTypes #-}
-{-# LANGUAGE ConstrainedClassMethods #-}
-{-# LANGUAGE ConstraintKinds #-}
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE LambdaCase #-}
-{-# LANGUAGE MultiWayIf #-}
-{-# LANGUAGE NamedFieldPuns #-}
-{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE AllowAmbiguousTypes #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE MultiWayIf #-}
+{-# LANGUAGE RecordWildCards #-}
module Extrapolation (Extrapolator(..), LinearExtrapolator(..), linearDelay, distanceAlongLine, euclid) where
import Data.Foldable (maximumBy, minimumBy)
diff --git a/lib/GTFS.hs b/lib/GTFS.hs
index a2718b1..6d8bcc5 100644
--- a/lib/GTFS.hs
+++ b/lib/GTFS.hs
@@ -1,19 +1,11 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE DeriveAnyClass #-}
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE DerivingStrategies #-}
-{-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE LambdaCase #-}
-{-# LANGUAGE NamedFieldPuns #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE StandaloneDeriving #-}
-{-# LANGUAGE StandaloneKindSignatures #-}
-{-# LANGUAGE TupleSections #-}
-{-# LANGUAGE TypeApplications #-}
-{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveAnyClass #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TupleSections #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
-- | All kinds of stuff that has to deal with GTFS directly
-- (i.e. parsing, querying, Aeson instances, etc.)
diff --git a/lib/Persist.hs b/lib/Persist.hs
index a8ed15e..cd77b7a 100644
--- a/lib/Persist.hs
+++ b/lib/Persist.hs
@@ -1,18 +1,10 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE DeriveAnyClass #-}
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE DerivingStrategies #-}
-{-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE GADTs #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE QuasiQuotes #-}
-{-# LANGUAGE StandaloneDeriving #-}
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE TypeApplications #-}
-{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveAnyClass #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE QuasiQuotes #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE UndecidableInstances #-}
-- | Data types that are or might yet be saved in the database, and possibly
-- also a few little convenience functions for using persistent.
diff --git a/lib/Server.hs b/lib/Server.hs
index eff1807..016707b 100644
--- a/lib/Server.hs
+++ b/lib/Server.hs
@@ -1,13 +1,8 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE DerivingStrategies #-}
-{-# LANGUAGE ExplicitNamespaces #-}
-{-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE LambdaCase #-}
-{-# LANGUAGE OverloadedLists #-}
-{-# LANGUAGE PartialTypeSignatures #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE ExplicitNamespaces #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedLists #-}
+{-# LANGUAGE RecordWildCards #-}
-- Implementation of the API. This module is the main point of the program.
diff --git a/lib/Server/ControlRoom.hs b/lib/Server/ControlRoom.hs
index 402f0b8..773468a 100644
--- a/lib/Server/ControlRoom.hs
+++ b/lib/Server/ControlRoom.hs
@@ -1,19 +1,12 @@
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE DeriveAnyClass #-}
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE LambdaCase #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeOperators #-}
module Server.ControlRoom (ControlRoom(..)) where
diff --git a/lib/Server/GTFS_RT.hs b/lib/Server/GTFS_RT.hs
index cfb02ce..740f71c 100644
--- a/lib/Server/GTFS_RT.hs
+++ b/lib/Server/GTFS_RT.hs
@@ -1,9 +1,8 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PartialTypeSignatures #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
+{-# LANGUAGE DataKinds #-}
module Server.GTFS_RT (gtfsRealtimeServer) where
diff --git a/lib/Server/Util.hs b/lib/Server/Util.hs
index 41d26f7..5ffb829 100644
--- a/lib/Server/Util.hs
+++ b/lib/Server/Util.hs
@@ -1,7 +1,3 @@
-{-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-
-- | mostly the monad the service runs in
module Server.Util (Service, ServiceM, runService, sendErrorMsg, secondsNow, utcToSeconds) where
diff --git a/tracktrain.cabal b/tracktrain.cabal
index e763f6d..f245250 100644
--- a/tracktrain.cabal
+++ b/tracktrain.cabal
@@ -1,24 +1,15 @@
cabal-version: 2.4
name: tracktrain
version: 0.1.0.0
-
--- A short (one-line) description of the package.
-synopsis: tracktrain tracks trains on their traintracks
-
--- A longer description of the package.
--- description:
-
--- A URL where users can report bugs.
--- bug-reports:
-
--- The license under which the package is released.
--- license:
+synopsis: tracktrain tracks trains on their traintracks
+description: A passenger information system backend for the Ilztalbahn
+license: EUPL-1.2
author: stuebinm
maintainer: stuebinm@disroot.org
-- A copyright notice.
-- copyright:
--- category:
+
extra-source-files: CHANGELOG.md
executable tracktrain
@@ -43,7 +34,7 @@ executable tracktrain
, extra
, proto-lens
hs-source-dirs: app
- default-language: Haskell2010
+ default-language: GHC2021
default-extensions: OverloadedStrings
, ScopedTypeVariables
@@ -118,14 +109,14 @@ library
other-modules: Server.Util
, Yesod.Auth.Uffd
, Yesod.Orphans
- default-language: Haskell2010
+ default-language: GHC2021
default-extensions: OverloadedStrings
, ScopedTypeVariables
, ViewPatterns
library gtfs-realtime
build-depends: base ^>=4.17
- , proto-lens-runtime
+ , proto-lens-runtime
default-language: Haskell2010
hs-source-dirs: gtfs-realtime
exposed-modules: Proto.GtfsRealtime