# Before Shuttling
Shuttles at Marfeel always follow the same framework. Core repositories share two shuttling schedules: One related to front-end code, and one for back-end code.
Additionally, shuttles are always atomic: they can only contain one commit at a time.
This article describes the process to get a shuttling slot for the following repositories:
Any Provider in its individual repository
Any Microservice in its individual repository
This shuttling process is experimental. Keep an eye out for changes, it will soon apply to MarfeelCDN (opens new window)!
# Shuttling Calendars
When a Pull Request is in "Ready to Merge" state (ie. approved by all code owners), add an event of 1 hour in the shared calendar. As long as the calendar is empty, the spots are available for you to use:
- Add the MarfeelXP & Providers calendar (opens new window) to be able to toggle it directly from your Google Calendar page.
- Add the Gutenberg & Microservices calendar (opens new window) to be able to toggle it directly from your Google Calendar page.
The shared calendar shows your own events in addition to the available slots, so that you can pick the best time for you.
The event title must be the PR title, and the event description must include a link to the PR. Marfeel Semantic commit rules apply:
As you book the slot, an event is created in your Marfeel Google Calendar, to remind you when it's time to shuttle!
# Calendar sharing and reorganisation
There are also unbookable slots during the day to squeeze in critical shuttles. If that's not enough, EMs and shuttle stakeholders can reorganise planned shuttles depending on priorities and risks.
Always check that your slot has not moved before moving forward!
# Planning for important changes
For big and/or risky changes to Marfeel codebase, plan ahead! Your team's top priority development should always be planned, even if it eventually needs to be canceled. If you know you will need time to observe the code's behavior once shuttled, don't hesitate to book several slots.
Book well in advance: as soon as you know when the rollout should happen, you can book a slot, even if the Pull Request is not entirely ready.
Having important deployments visible in the calendar helps all Marfeel teams know what to expect, and organize around it.
# Revert code
If you have to revert your shuttle for any reason, inform that you are reverting to slack channel #shuttles-stakeholders and delete the Shuttling calendar event.
This way, the Shuttles calendar history is a faithful representation of everything that is currently in production.