What to do at prorogation and dissolution
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.
Parliamentary Time 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 on which the new Parliament is summoned.
- The date of State Opening.
- The Wikidata ID of the Parliament
Parliamentary Time 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. - Remove the first - header - row of the 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
rails db:drop db:setup. 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.
Testing the changes
- Run
heroku pg:reset --confirm egg-timer-test --remote egg-timer-testto reset the test database: this removes information from the Heroku test database. - Run
heroku pg:push parliament_calendar DATABASE_URL --remote egg-timer-testto push the new data to the test database on Heroku. - Run
heroku run rake sync --remote egg-timer-testto sync data from the Google calendars to the test application. - When you see 'Recording the sync time' it's done.
- Ask IDMS to test the test application.
- Once IDMS are happy ....
Pushing the changes live
- Run
heroku maintenance:on --remote egg-timer-productionto switch the production application to maintenance mode. - Run
heroku pg:reset --confirm parliament-egg-timer --remote egg-timer-productionto reset the production database: this removes information from the Heroku production database. - Run
heroku pg:push parliament_calendar DATABASE_URL --remote egg-timer-productionto push the new data to the production database on Heroku. - Run
heroku run rake sync --remote egg-timer-productionto sync data from the Google calendars to the production application. - When you see 'Recording the sync time' it's done.
- Run
heroku maintenance:off --remote egg-timer-productionto switch the production application out of maintenance mode. - Ask IDMS to test on live.