Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decide how to release the crown #4174

Closed
2 tasks done
Tracked by #4019
christopherthomasdesign opened this issue Sep 5, 2023 · 9 comments
Closed
2 tasks done
Tracked by #4019

Decide how to release the crown #4174

christopherthomasdesign opened this issue Sep 5, 2023 · 9 comments
Assignees

Comments

@christopherthomasdesign
Copy link
Member

christopherthomasdesign commented Sep 5, 2023

What

As part of #4019 we need to work out the best way to release the new crown. For example, what versions of Frontend to release it in, and how the implementation should differ across versions.

This should include any decisions about putting things behind feature flags, if we decide to use them.

Why

So that it's available to as many users as possible as quickly as possible. And it's as easy as possible for services to update it.

Who needs to be involved

Developer, designer

Done when

@christopherthomasdesign
Copy link
Member Author

Notes taken from a scoping session between @christopherthomasdesign, @stevenjmesser and @36degrees.

We believe that changing the crown is a breaking change because it requires a change to the HTML markup in the header, where the current crown is inlined as an SVG.

We're currently working on a new major version of GOV.UK Frontend, v5.0, which includes significant changes to browser support, how users import our JavaScript, our JavaScript API, and the removal of compatibility mode.

The easiest thing would just be to include the change in v5 along with the other breaking changes.

However, in terms of rollout, we would want the highest profile bits of GOV.UK – GOV.UK Publishing (www.gov.uk), One Login – to be able to use the new crown as soon as possible. The higher profile teams tend to have more complex architectures and it will take significant work to apply the other breaking changes in v5.

In order to optimise for a clean rollout of the new crown, we'll release a new v4.x version of GOV.UK Frontend (likely v4.8) which will include the crown change behind a 'feature flag' in the Nunjucks macro options for the header component. Service teams who use our Nunjucks macros would need to enable the new option; those using HTML would need to get the latest version from the Design System; those using other community-owned resources will need to wait for the resource to be updated and the resource would need to provide an equivalent flag for enabling the new crown.

We may also choose to release a new v3.x release with the same flag if we see demand for it.

However, from v5 onwards we believe we only need to support the new crown – aside from avoiding a breaking change we can't think of any reason why a team would opt to use the existing crown.

@kellylee-gds kellylee-gds moved this from Backlog 🗄 to Sprint Backlog 🏃🏼‍♀️ in GOV.UK Design System cycle board Sep 6, 2023
@querkmachine
Copy link
Member

I'm pretty happy with the ideas proposed above: v5 only has the new crown assets, v4 (and any previous versions) have to activate a feature flag.

I have a couple of v4 thoughts that I welcome further comments on:

  1. As the new crown is taller, we probably want some CSS to tweak the crown's size and position. This could be done as a Sass feature flag, however it'll probably be simpler to add a temporary modifier class (e.g. govuk-header__logotype-crown--tudor-crown) that is added by the Nunjucks flag, rather than having two separate feature flags.
  2. Presumably any new classes or parameters we add will need to be immediately marked as deprecated, as we intend to remove them in v5.
  3. I'm not sure of the value of feature flagging the favicon and sharing image changes. Unlike the header crown, these can be replaced one-for-one without any developer intervention, and I wouldn't personally consider altering them to be a breaking change as nothing else should be dependent upon them depicting one particular crown graphic. We could just note the update in the changelog, IMO.

@stevenjmesser
Copy link

Downloads of v3.14.0 are comparable to v4.4.1 – see downloads in last 7 days. v3.15.0 might be sensible?

@colinrotherham
Copy link
Contributor

colinrotherham commented Sep 6, 2023

With the pixel height staying the same, could target the crown SVG by width in HTML?

Lets us account for the 4px reduced width via CSS selector:

.govuk-header__logotype-crown[width="36"] {} // St. Edward's crown (36 × 30)
.govuk-header__logotype-crown[width="32"] {} // Tudor crown (32 × 30)

Or "pillarbox" the narrower Tudor crown to the old 36 × 30 viewBox and offset with negative margins?

@querkmachine
Copy link
Member

Downloads of v3.14.0 are comparable to v4.4.1 – see downloads in last 7 days. v3.15.0 might be sensible?

@stevenjmesser From a dev-y perspective v3 should be fairly easy to support, as the header code is pretty much unchanged between 3 and 4. The main effort there is probably in the testing and releasing.

@christopherthomasdesign christopherthomasdesign moved this from Sprint Backlog 🏃🏼‍♀️ to In progress 📝 in GOV.UK Design System cycle board Sep 13, 2023
@querkmachine
Copy link
Member

querkmachine commented Sep 13, 2023

Based on discussions here and with the team, we seem to have settled on the following intentions:

v5.x

v4.x

  • Will support both the St. Edward's crown and Tudor crown, with the St. Edward's crown remaining the default.
  • Will include the ability to switch to the Tudor crown via a feature flag in the header Nunjucks macro.
  • Will not use the same lockup as v5.x, updating the crown icon only.
    • This is to help minimise HTML and CSS differences with prior versions of v4 and make the upgrading process easier, supporting a rapid rollout of the new brand.
    • This does create an additional barrier when upgrading from v4.x to v5.x, however we do not anticipate that many services are going to do this until later in v5's lifespan due to the scope of the other changes involved.
  • Will support the same set of favicons, app icons and sharing graphics as prior v4 versions.
  • Will replace favicons, app icons and sharing graphics in-place, without a feature flag or breaking change notice.

v3.x

  • We will ship a v3.x patch release cherry-picking the changes from the v4.x release.

v2.x and earlier

  • We will not make any changes for older versions of GOV.UK Frontend.

@Katrina-Birch Katrina-Birch moved this from In progress 📝 to Needs review 🔍 in GOV.UK Design System cycle board Sep 18, 2023
@querkmachine querkmachine moved this from Needs review 🔍 to Done 🏁 in GOV.UK Design System cycle board Sep 18, 2023
@christopherthomasdesign
Copy link
Member Author

Thanks for summarising @querkmachine – I'm gonna say we've decided and close this!

@querkmachine
Copy link
Member

It has become apparent that there is a risk that we may not be able to roll out the new crown until after v5.0 has been released. This is because of the desire to produce comms about the change simultaneous to the crown's rollout, for which we don't currently have a timescale. This is something we're coordinating with GOV.UK.

We do not want to unnecessarily delay the release of v5.0, particularly if the launch date for the new crown's introduction is still unknown at the time.

In the event that this happens, we may work to this modified plan. It does, unfortunately, require the creation of some assets we wouldn't need otherwise, but creating them would allow us to add the Tudor crown in a v5.x release without introducing breaking changes. The plan for Frontend versions 4.x and earlier would remain unchanged.

v5.0

v5.x (release when Tudor crown is ready to launch)

  • Assets that replace St. Edward's crown with the Tudor crown are added.
  • Will replace favicons, app icons and sharing graphics in-place, without a feature flag or breaking change notice.
  • Will include the ability to switch to the Tudor crown via a feature flag in the header Nunjucks macro.
    • Should this feature flag be immediately considered deprecated?

v6.0

  • St. Edward's crown feature flag and header code is removed.
  • Any remaining St. Edward's crown assets are removed.

@stevenjmesser
Copy link

Thanks for adding the above, @querkmachine, that's great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

4 participants