# 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:

Experimental

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:

Calendar view

TIP

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:

<type>(<scope>): <description>

Request new shuttle slot

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.