Skip to content

Commit

Permalink
Merge branch 'master' into fix-default-type
Browse files Browse the repository at this point in the history
  • Loading branch information
jnm2377 authored Aug 16, 2019
2 parents 93db4c6 + c614279 commit 02139bf
Show file tree
Hide file tree
Showing 5 changed files with 168 additions and 0 deletions.
File renamed without changes.
68 changes: 68 additions & 0 deletions docs/postmortems/0000-00-00-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
date: 2019-10-21
authors: carbon-bot
---

# Title of postmortem

**Summary**

<!-- What is a one or two-line summary of the event that occurred? -->

**Impact**

<!-- What was the scope of impact from the event occuring? How many teams were
impacted? -->

**Root causes**:

<!-- Looking back, what ended up being the main reasons why this event occurred?
-->

**Detection**

<!-- How did we find out or discover that this event had occurred? -->

**Resolution**

<!-- How did we end up addressing this event in order to mitigate impact? -->

**Action Items**

<!-- What are the action items that came out of this postmortem? Reference
issues and Pull Requests in the "Bug" column with the appropriate owners -->

| Action item | Owner | Bug |
| ----------- | ----- | --- |


## Lessons learned

**What went well**

- Item A
- Item B
- Item C

**What went wrong**

- Item A
- Item B
- Item C

**Where we got lucky**

- Item A
- Item B
- Item C

## Timeline

2015-10-21 **(all times in UTC)**

- 14:51 Ipsum reprehenderit impedit facere explicabo fugiat.

## Supporting information

<!-- Any additional information that you might reference earlier on in the
postmortem -->
78 changes: 78 additions & 0 deletions docs/postmortems/2019-08-15-icons-angular.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
---
date: 2019-08-15
authors: joshblack
---

# `@carbon/icons-angular` v10.5.0 broken build

**Summary**:

The v10.5.0 release of the Carbon Design System shipped a broken build of
`@carbon/icons-angular`.

**Impact**

This impacted teams that used the caret ranges (`^`) in the `10.x` range for
tracking the `@carbon/icons-angular` dependency. In particular,
`carbon-components-angular` has specified `^10.1.0` as a range for the
`@carbon/icons-angular` `peerDependency`. This could result in teams who are
installing fresh versions of these dependencies to use the broken `v10.5.0` when
it was released.

**Root causes**:

When the Carbon Design System core team introduced an option to
[down size icons to 16px](https://github.com/carbon-design-system/carbon/pull/3501),
they encountered a build-related issue with the `@carbon/icons-angular`. The
recommendation at the time was to comment out the build step so that the team
could proceed. Unfortunately, the `private` field was not also added to the
package to prevent it being published during this broken state. In addition,
there was no prompt in the GitHub UI for a final review from the
`@carbon/icons-angular` `CODEOWNERS` specified in the project.

**Resolution**

Since `v10.5.0` was recently released, we decided to use the `unpublish` feature
of `npm` that is valid within 72hours of a release. Running this command
subsequently unpublished the invalid build of `@carbon/icons-angular` and
restored `v10.4.0` as the `latest` package for teams to consume.

**Detection**

This issue was first reported by @cal-smith

**Action Items**

| Action item | Owner | Bug |
| -------------------------------------------------------------- | ---------- | -------------------------------------------------------- |
| Update `package.json` in `@carbon/icons-angular` to be private | @joshblack | https://github.com/carbon-design-system/carbon/pull/3744 |

## Lessons learned

**What went well**

- The time it took to resolve the issue was fast after it was first reported

**What went wrong**

- We contributed code that took away the underlying build functions without
setting the package to `private` to prevent accidental publishing

**Where we got lucky**

- We were still within the 72 hour time period required by `npm` for their
`unpublish` feature to work

## Timeline

2015-08-15 **(all times in UTC)**

- 17:50: @cal-smith initially reached out to @joshblack on Slack first reporting
the broken icon build
- 19:30: Dean Williams also followed up on Slack to report the underlying issue
- 19:38: @joshblack acknowledged the underlying issue and reported an ETA on a
fix
- 20:07: @joshblack unpublished `v10.5.0` of `@carbon/icons-angular` after
confirmation from @cal-smith

## Supporting information
21 changes: 21 additions & 0 deletions docs/postmortems/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Postmortems

> A postmortem is a written record of an incident, its impact, the actions taken
> to mitigate or resolve it, the root cause(s), and the follow-up actions to
> prevent the incident from recurring.
>
> [Postmortem Culture: Learning from failure](https://landing.google.com/sre/sre-book/chapters/postmortem-culture/),
> _Devin Carraway_
For a full overview, checkout the Software Reliability Engineering book on this
topic [here](https://landing.google.com/sre/sre-book/chapters/postmortem/).

## Process

- Copy the [Postmortem template](./00-template.md) over to a new file
- This file should be named: `YYYY-MM-DD-title.md`
- For example: `10-11-05-critical-layout-breaking-change.md`
- Fill out the template as best you can, be as detailed as needed
- Submit a Pull Request to the project, make sure to include anyone involved in
the incident as a reviewer so they can provide additional perspectives if
needed
1 change: 1 addition & 0 deletions packages/icons-angular/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"name": "@carbon/icons-angular",
"private": true,
"description": "Angular components for icons in digital and software products using the Carbon Design System",
"version": "10.5.0",
"license": "Apache-2.0",
Expand Down

0 comments on commit 02139bf

Please sign in to comment.