You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bij het draaien van een script kreeg ik een onverwachte foutmelding:
Ik draaide het script "ProjectAdministration" in rap.tarski.nl. Dit script is een bewerkte versie van het project management prototype, omdat ik de INCLUDE statements niet mag gebruiken in RAP. Ook heb ik LINKTO toegevoegd en View-Property gebruikt om een script te krijgen voor issue AmpersandTarski/prototype#128.
Ik heb het ook gedraaid op rap.cs.ou.nl om te kijken of het iets met de Kubernetes deploment te maken heeft. Maar dit geeft vergelijkbaar gedrag:
De volgende error wordt ook nog aangegeven als je het probeert te runnen met docker compose:
#0 1.192 Error while reading template.
#0 1.192 File could not be read: /var/www/templates/Box-FORMS.html
#0 1.192 /var/www/templates/Box-FORMS.html: openFile: does not exist (No such file or directory)
#0 1.192 2023-05-11 09:44:15.424297: [error] ExitFailure 130
------
failed to solve: executor failed running [/bin/sh -c ampersand proto /usr/local/project/ProjectAdministration.adl --proto-dir /var/www --crud-defaults cRud --verbose]: exit code: 130
Symptomen
Later merkte ik dat het script "Flight reservations" wel goed werkt. Beide scripts staan hieronder in dit issue. Als je het reproduceert, wel even opletten dat je de cache tijdig ververst c.q. uitschakelt bij het omschakelen tussen beide scripts...
Het grote verschil tussen beide scripts is dat "ProjectAdministration" veel gebruik maakt van front-end functionaliteit. We kunnen dus vaststellen dat er een fout zit in de bestaande RAP. Op rap.cs.ou.nl is die afkomstig van het (gepubliceerde) image ampersandtarski/ampersand-rap:2021-10-22. Ik weet niet waar rap.tarski.nl zijn image vandaan haalt...
Actie
We moeten beslissen of het nog de moeite waard is om dit issue uit te lopen. Daarom heb ik @Michiel-s aan de assignees toegevoegd.
Context / Source van ampersand script
Het volgende script werkt prima:
CONTEXT "Flight reservations"
PURPOSE CONTEXT "Flight reservations"
{+
Tim's requirements:
1. Users have to enter a list of passengers for which to book tickets.
2. At least one of these passengers has to be an adult.
3. After a valid list of passengers has been entered, users have to pick seats.
4. Only free seats may be picked.
5. Every passenger must have exactly one seat.
6. Multiple users should be able to book tickets at the same time.
Stef's requirements
1. Each booking must involve at least one adult.
2. Each passenger must have a nonempty name and an age.
3. Each occupancy involves the flight, the seat number, and the passenger.
4. Each passenger aboard the plane occupies only one seat.
5. The flight and the seat number define an occupancy uniquely.
+}
age :: Person -> Int
POPULATION age CONTAINS [ ("p0", "87"), ("p1", "85") ]
name :: Person -> Name
POPULATION name CONTAINS [ ("p0", "Statler"), ("p1", "Waldorf") ]
VIEW Person: Person{ "name": name} ENDVIEW
RULE "nonempty names": name = name-(name;"")
MESSAGE "One or more names are empty."
VIOLATION (TXT "Please enter a name for passenger ", SRC I)
ROLE Manager MAINTAINS "Adult on every booking"
RULE "Adult on every booking" : I[Booking] |- reservations;passenger;adult;V
MESSAGE "Your booking must involve at least one adult."
VIOLATION (TXT "Passenger(s) ", SRC reservations;passenger, TXT " must be accompanied by an adult.")
RULE "Valid Seat Number": flight~;reservations;seat |- plane;seatnr
MESSAGE "You are trying to book a seat number that does not exist on your flight."
VIOLATION (TXT "Vessel ", SRC plane, TXT " has no seat ", TGT I, TXT ".")
IDENT Reservation : Reservation(reservations~;flight,seat)
reservations :: Booking * Reservation [INJ]
RELATION adult[Person] [PROP] = [ ("p0", "p0"), ("p1", "p1") ]
by :: Booking -> Name
passenger :: Reservation -> Person
flight :: Booking -> Flight
seat :: Reservation -> SeatNumber
plane :: Flight -> Vessel
POPULATION plane CONTAINS [ ("KL1204", "PH-AON") ]
seatnr :: Vessel * SeatNumber
POPULATION seatnr CONTAINS [ ("PH-AON", "1A"), ("PH-AON", "1B"), ("PH-AON", "1C") ]
VIEW Reservation : Reservation (flight:reservations~;flight, TXT ", seat nr. ", seat:seat)
INTERFACE "Overview" : "_SESSION"[SESSION] BOX<TABS>
[ Flights : V[SESSION*Flight]
, Reservations : V[SESSION*Reservation]
, Persons : V[SESSION*Person]
, Occupancies : V[SESSION*Flight]
]
INTERFACE Booking : I[Booking]
BOX
[ "booking door" : by
, flight : flight
, reservations : reservations INTERFACE Reservation
]
INTERFACE "Seats" : I[Flight]
BOX
[ flight : I cRud
, occupied : flight~;reservations;seat cRud
, vacant : plane;seatnr - flight~;reservations;seat cRud
]
INTERFACE "Reservation" : I[Reservation]
BOX
[ resNr : I
, passenger : passenger BOX
[ name : name
, adult : adult
, age : age
]
, seat : seat
]
INTERFACE "Person" : I[Person]
BOX
[ name : name
, age : age
]
ENDCONTEXT
Deze is eenvoudig. In de foutmelding wordt aangegeven dat het template Box-FORMS.html niet gevonden kan worden. Dat klopt ook, want in de standaard templates bestaat alleen FORM (enkelvoud).
Het script compileert bij stap 1 in rap wel, omdat dan niet naar de interface templates wordt gekeken. Dan gaat het alleen om syntax en typechecker.
Pas wanneer het proto command wordt gebruikt krijg je de template fouten.
In het script dus even BOX <FORMS> vervangen door BOX <FORM> en hij doet het weer
De situatie
Bij het draaien van een script kreeg ik een onverwachte foutmelding:
![afbeelding](https://user-images.githubusercontent.com/275768/237012674-889b3ef4-43f9-4c5f-a8dd-9c393fb470a0.png)
Ik draaide het script
"ProjectAdministration"
in rap.tarski.nl. Dit script is een bewerkte versie van het project management prototype, omdat ik deINCLUDE
statements niet mag gebruiken in RAP. Ook heb ikLINKTO
toegevoegd enView-Property
gebruikt om een script te krijgen voor issue AmpersandTarski/prototype#128.Ik heb het ook gedraaid op
![afbeelding](https://user-images.githubusercontent.com/275768/237029195-51d37378-6bc3-4f4d-8a73-a7ec0ef30eb5.png)
rap.cs.ou.nl
om te kijken of het iets met de Kubernetes deploment te maken heeft. Maar dit geeft vergelijkbaar gedrag:De volgende error wordt ook nog aangegeven als je het probeert te runnen met
docker compose
:Symptomen
Later merkte ik dat het script
"Flight reservations"
wel goed werkt. Beide scripts staan hieronder in dit issue. Als je het reproduceert, wel even opletten dat je de cache tijdig ververst c.q. uitschakelt bij het omschakelen tussen beide scripts...Het grote verschil tussen beide scripts is dat
"ProjectAdministration"
veel gebruik maakt van front-end functionaliteit. We kunnen dus vaststellen dat er een fout zit in de bestaande RAP. Oprap.cs.ou.nl
is die afkomstig van het (gepubliceerde) imageampersandtarski/ampersand-rap:2021-10-22
. Ik weet niet waarrap.tarski.nl
zijn image vandaan haalt...Actie
We moeten beslissen of het nog de moeite waard is om dit issue uit te lopen. Daarom heb ik @Michiel-s aan de assignees toegevoegd.
Context / Source van ampersand script
Het volgende script werkt prima:
Het volgende script geeft de beschreven fout:
The text was updated successfully, but these errors were encountered: