CreateMilestone :: String -> String -> Maybe Due -> Milestones m MilestonecreateMilestonetitle, markdown description, due date: a new open milestone with no members, under the next free id. A blank title is refused.
EditMilestone :: MilestoneId -> String -> String -> Maybe Due -> Milestones m MilestoneeditMilestoneRewrites the title, description and due date, closed or open; membership, state, author and creation time stay as they were.
CloseMilestone :: MilestoneId -> Milestones m ()closeMilestoneIdempotent.
ReopenMilestone :: MilestoneId -> Milestones m ()reopenMilestoneIdempotent.
ListMilestones :: Milestones m [Milestone]listMilestonesEvery milestone, in id order.
GetMilestone :: MilestoneId -> Milestones m (Maybe Milestone)getMilestoneNothing for an id no milestone has; every other verb that names a milestone refuses such an id.
Assign :: Ref -> MilestoneId -> Milestones m ()assignMakes the ref a member. Members are a set, so assigning a member again changes nothing. A closed milestone refuses.
Unassign :: Ref -> MilestoneId -> Milestones m ()unassignUnassigning a ref that is not a member changes nothing. A closed milestone refuses.
Complete :: Ref -> Milestones m ()completeMarks a ref done in every milestone, closed ones included, now and when it is assigned later. A forge derives this from the issue or merge request instead.
Uncomplete :: Ref -> Milestones m ()uncompleteProgress :: MilestoneId -> Milestones m TallyprogressThe milestone's Tally: tallyDone of its tallyTotal members are done. Counts rather than a ratio, so "none of three" and "no members" differ; milestoneShare gives the share.
Modulemilestone-dsl-0.1.0GHC2024
Milestone.Effects
The milestone theory, and the scope a milestone program is elaborated in: its export list is the verb table and the values the verbs speak, so a program needs this module and Prelude and nothing else. A program over Milestones only describes what it does to the forge's plans; an interpreter decides what that means, purely (Milestone.Pure) or over a forge's store.
- 7 types
- 17 values
- Packagemilestone-dsl-0.1.0
- Exports24
- LanguageGHC2024
- LicenceMIT
- SourceEffects.hs
title, markdown description, due date: a new open milestone with no members, under the next free id. A blank title is refused.
Rewrites the title, description and due date, closed or open; membership, state, author and creation time stay as they were.
Idempotent.
Idempotent.
Every milestone, in id order.
Nothing for an id no milestone has; every other verb that names a milestone refuses such an id.
Makes the ref a member. Members are a set, so assigning a member again changes nothing. A closed milestone refuses.
Unassigning a ref that is not a member changes nothing. A closed milestone refuses.
Marks a ref done in every milestone, closed ones included, now and when it is assigned later. A forge derives this from the issue or merge request instead.
from Uncomplete
The milestone's Tally: tallyDone of its tallyTotal members are done. Counts rather than a ratio, so "none of three" and "no members" differ; milestoneShare gives the share.
Values
12 declarationsA milestone as it crosses the wire. milestoneDone is the members that are done, so it is a subset of milestoneMembers; neither repeats a ref.
Constructors
A milestone's number, forge-wide.
Constructors
Instances4Eq, Ord, Read, Show
Eq MilestoneIdDefined in milestone-dsl-0.1.0 · Milestone.TypesOrd MilestoneIdDefined in milestone-dsl-0.1.0 · Milestone.TypesRead MilestoneIdDefined in milestone-dsl-0.1.0 · Milestone.TypesShow MilestoneIdDefined in milestone-dsl-0.1.0 · Milestone.Types
Instances6Bounded, Enum, Eq, Ord, Read, Show
Bounded MilestoneStateDefined in milestone-dsl-0.1.0 · Milestone.TypesEnum MilestoneStateDefined in milestone-dsl-0.1.0 · Milestone.TypesEq MilestoneStateDefined in milestone-dsl-0.1.0 · Milestone.TypesOrd MilestoneStateDefined in milestone-dsl-0.1.0 · Milestone.TypesRead MilestoneStateDefined in milestone-dsl-0.1.0 · Milestone.TypesShow MilestoneStateDefined in milestone-dsl-0.1.0 · Milestone.Types
How far a milestone has got: tallyDone of its tallyTotal members are done. Counts rather than a ratio, so "none of three" and "no members" are different answers and a reader can print "2 of 5".
Constructors
MkTallytallyDone :: InttallyTotal :: Int
Instances5Eq, Ord, Read, Show, IsString
Eq RefDefined in milestone-dsl-0.1.0 · Milestone.TypesOrd RefDefined in milestone-dsl-0.1.0 · Milestone.TypesRead RefDefined in milestone-dsl-0.1.0 · Milestone.TypesShow RefDefined in milestone-dsl-0.1.0 · Milestone.TypesShown as its string literal; read back through parseRef, so a malformed ref cannot cross the wire.
IsString RefDefined in milestone-dsl-0.1.0 · Milestone.Types
Accepts exactly NS/PROJ#N and NS/PROJ!N: two or more /-separated
names, the marker, and a positive number written without leading zeros,
so every ref has one spelling.
The ref a string spells, as a string literal is: partial, an error on a string that is not a ref, so a program written without OverloadedStrings still fails as it is folded, not later.
Instances5Eq, Ord, Read, Show, IsString
Eq DueDefined in milestone-dsl-0.1.0 · Milestone.TypesOrd DueDefined in milestone-dsl-0.1.0 · Milestone.TypesRead DueDefined in milestone-dsl-0.1.0 · Milestone.TypesShow DueDefined in milestone-dsl-0.1.0 · Milestone.TypesShown as its string literal; read back through parseDue.
IsString DueDefined in milestone-dsl-0.1.0 · Milestone.Types
Accepts exactly the YYYY-MM-DD spellings of real dates, the 29th of
February in leap years only.