At the end of a session, Parliament prorogues. Prorogation is the formal end to the parliamentary year. At the end of a parliament period, Parliament dissolves. Dissolution is the official term for the end of a Parliament before a general election. Dissolution may be immediately preceded by a short period of prorogation.
Our Google calendars are designed to cope with periods when Parliament is in session. They allow us to state when a House is sitting, sitting virtually or adjourned. Adjournment includes non-sitting Fridays, weekends, bank holidays and recess.
The calendars are not designed to cope with periods when Parliament is either prorogued or dissolved. Upon announcement of these periods certain actions should be taken.
What to do upon the announcement of prorogation or dissolution
In both cases, action must be taken:
In the Google calendars
- Remove any previously created sitting or adjournment days set to take place during the prorogation or the dissolution period from the Google calendars.
- Check that these changes have propagated to the application. This should take no longer than 15 minutes. The calendar sync checker records when the calendar last synced.
In the Google spreadsheet
The Parliament periods spreadsheet has two sheets: one describing Parliament periods, one describing sessions.
At prorogation, you need to update the sessions sheet by applying the end date to the session being prorogued. You also need to add details for the new session, being:
- The Parliament number.
- The number of the session in the Parliament.
- The start date of the session.
- The Journal Office style citation of the session, for example: 2024-25.
- The regnal year citation of the session.
- The Wikidata ID of the session, if that exists.
The egg timer requires the Parliament number, session number and session start date. The Journal Office style citation, regnal year citation and Wikidata ID are optional.
Prorogation is announced in a proclamation which gives a start date for the prorogation period. For prorogations between sessions in a Parliament period, the proclamation also names the start date of the next session.
At dissolution, you also need to update the Parliament periods sheet by applying an end date to the Parliament being dissolved. You also need to add details for the new Parliament, being:
- The Parliament number.
- The polling day of the general election forming the new Parliament.
- The Wikidata ID of the general election forming the new Parliament.
- The opening date, being the date of assembly of the new Parliament.
- The date of State Opening.
- The Wikidata ID of the Parliament
The egg timer requires the Parliament number and its start date. It will load the Wikidata ID of the Parliament, but this isn't necessary.
What to do upon the announcement of prorogation
In order for the application to continue to function, we need to upload a clean copy of the database with an end date for the current session and a start date for the subsequent session.
The steps are:
- From the Google spreadsheet, download a copy of the sessions sheet as a CSV.
- Copy the CSV file to
db/data/sessions.csv
. - Remove the first - header - row of the sessions.csv.
- Continue by resetting the database.
What to do upon the announcement of dissolution
In order for the application to continue to function, we need to upload a clean copy of the database with an end date for the current session, a start date for the subsequent session, an end date for the current Parliament and a start date for the subsequent Parliament.
The steps are:
- From the Google spreadsheet, download a copy of the sessions sheet as a CSV.
- Copy the CSV file to
db/data/sessions.csv
. - From the Google spreadsheet, download a copy of the Parliament periods sheet as a CSV.
- Copy the CSV file to
db/data/parliaments.csv
. - Remove the first - header - row of the parliaments.csv.
- Continue by resetting the database.
Resetting the database
From the command line, at the root of the application:
- Run
psql parliament_calendar < db/schema/setup.sql
. This removes and recreates all tables in the local database. - Run
rake setup
. This imports Parliament and session data and infers dissolution and prorogation data. - Run
heroku maintenance:on
to switch the application to maintenance mode. - Run
heroku pg:reset --confirm parliament-egg-timer
to reset the database: this removes information from the Heroku database. - Run
heroku pg:push parliament_calendar DATABASE_URL
to push the new data to the database on Heroku. - Run
heroku run rake sync
to sync data from the Google calendars to the application. - Run
heroku maintenance:off
to switch the application out of maintenance mode.
Having reset the database
You can create sitting and adjournment days in the subsequent Parliament and / or session.
Use the calendar sync checker to confirm whether the application is being updated from the Google calendars.