diff --git a/docs/post-mortems/on-windows-hcm-support.md b/docs/on-windows-hcm-support.md similarity index 100% rename from docs/post-mortems/on-windows-hcm-support.md rename to docs/on-windows-hcm-support.md diff --git a/docs/postmortems/0000-00-00-template.md b/docs/postmortems/0000-00-00-template.md new file mode 100644 index 000000000000..47027396baec --- /dev/null +++ b/docs/postmortems/0000-00-00-template.md @@ -0,0 +1,68 @@ +--- +date: 2019-10-21 +authors: carbon-bot +--- + +# Title of postmortem + +**Summary** + + + +**Impact** + + + +**Root causes**: + + + +**Detection** + + + +**Resolution** + + + +**Action Items** + + + +| 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 + + diff --git a/docs/postmortems/2019-08-15-icons-angular.md b/docs/postmortems/2019-08-15-icons-angular.md new file mode 100644 index 000000000000..ee8fbe7616c8 --- /dev/null +++ b/docs/postmortems/2019-08-15-icons-angular.md @@ -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 diff --git a/docs/postmortems/README.md b/docs/postmortems/README.md new file mode 100644 index 000000000000..7eca1d9fd5ed --- /dev/null +++ b/docs/postmortems/README.md @@ -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 diff --git a/packages/icons-angular/package.json b/packages/icons-angular/package.json index 17fe5b6e46d3..989f9d7fd836 100644 --- a/packages/icons-angular/package.json +++ b/packages/icons-angular/package.json @@ -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",