diff --git a/CHANGELOG.md b/CHANGELOG.md index 78c763d7c0..d10f9ada03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ +# 9.5.0 + +### Added +- It's now possible to style `` elements as buttons and have them appear in the active/selected state when the enclosing [`
` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details) is open. #346 + +### Changes +- Updates our release candidate versioning logic so that prerelease increments are done on a per-module basis, fixing #350. + +# 9.4.0 + +### Added +- Add `v-align-baseline` class to `primer-utilities` #324 +- Add deprecation warnings for `primer-cards` and `primer-forms/lib/form-validation.scss` #347 (these will be removed in v10.0.0) + +### Changes +- Update npm metadata for `primer-css`, `primer-core`, `primer-product`, and `primer-marketing` #328 +- Remove `HEAD` heading from the changelog #327 + # 9.3.0 ## Added diff --git a/modules/primer-alerts/package.json b/modules/primer-alerts/package.json index d7a08c8fd2..44cac5c1aa 100644 --- a/modules/primer-alerts/package.json +++ b/modules/primer-alerts/package.json @@ -1,5 +1,5 @@ { - "version": "1.4.0", + "version": "1.5.0", "name": "primer-alerts", "description": "Flash messages, or alerts, inform users of successful or pending actions.", "homepage": "http://primercss.io/", @@ -27,7 +27,7 @@ "test": "npm-run-all -s build lint" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "alerts", diff --git a/modules/primer-avatars/package.json b/modules/primer-avatars/package.json index fc7da1e9bf..ca827d73cd 100644 --- a/modules/primer-avatars/package.json +++ b/modules/primer-avatars/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.4.0", "name": "primer-avatars", "description": "Basic styles for user profile avatars.", "homepage": "http://primercss.io/", @@ -27,7 +27,7 @@ "test": "npm-run-all -s build lint" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "avatars", diff --git a/modules/primer-base/package.json b/modules/primer-base/package.json index ea52df0a76..835966cf38 100644 --- a/modules/primer-base/package.json +++ b/modules/primer-base/package.json @@ -1,5 +1,5 @@ { - "version": "1.4.0", + "version": "1.5.0", "name": "primer-base", "description": "CSS to reset the browsers default styles", "homepage": "http://primercss.io/", @@ -27,7 +27,7 @@ "test": "npm-run-all -s build lint" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "primer", diff --git a/modules/primer-blankslate/package.json b/modules/primer-blankslate/package.json index 40f49da61b..641b08af41 100644 --- a/modules/primer-blankslate/package.json +++ b/modules/primer-blankslate/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.4.0", "name": "primer-blankslate", "description": "Blankslates are for when there is a lack of content within a page or section.", "homepage": "http://primercss.io/", @@ -27,7 +27,7 @@ "test": "npm-run-all -s build lint" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "primer", diff --git a/modules/primer-box/package.json b/modules/primer-box/package.json index d62ca6a5db..ee2e793e39 100644 --- a/modules/primer-box/package.json +++ b/modules/primer-box/package.json @@ -1,5 +1,5 @@ { - "version": "2.4.0", + "version": "2.5.0", "name": "primer-box", "description": "A module for creating rounded-corner boxes with options for headers, lists, and footers.", "homepage": "http://primercss.io/", @@ -27,7 +27,7 @@ "test": "npm-run-all -s build lint" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "primer", diff --git a/modules/primer-breadcrumb/package.json b/modules/primer-breadcrumb/package.json index 43ae26192a..912361d1a6 100644 --- a/modules/primer-breadcrumb/package.json +++ b/modules/primer-breadcrumb/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.4.0", "name": "primer-breadcrumb", "description": "Breadcrumb navigation for pages with parents / grandparents.", "homepage": "http://primercss.io/", @@ -29,7 +29,7 @@ }, "dependencies": { "primer-marketing-support": "1.3.0", - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "breadcrumb", diff --git a/modules/primer-buttons/README.md b/modules/primer-buttons/README.md index f14e0f2155..807b218181 100644 --- a/modules/primer-buttons/README.md +++ b/modules/primer-buttons/README.md @@ -245,6 +245,25 @@ Use `.hidden-text-expander` to indicate and toggle hidden text. You can also make the expander appear inline by adding `.inline`. + +#### Using button styles with the details summary element + +You can add `.btn` and `.btn-*` classes to any +[``](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/summary) +element so that it gains the appearance of a button, and +selected/active styles when the parent +[`
`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details) +element is open. + +```html +
+ Toggle the content +

+ This content will be toggled. +

+
+``` + ## License diff --git a/modules/primer-buttons/package.json b/modules/primer-buttons/package.json index 374e849743..f8d4284728 100644 --- a/modules/primer-buttons/package.json +++ b/modules/primer-buttons/package.json @@ -1,5 +1,5 @@ { - "version": "2.3.0", + "version": "2.4.0", "name": "primer-buttons", "description": "A collection of buttons used for primary and secondary actions.", "homepage": "http://primercss.io/", @@ -27,7 +27,7 @@ "test": "npm-run-all -s build lint" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "primer", diff --git a/modules/primer-cards/package.json b/modules/primer-cards/package.json index e7b65d9bdd..8cda730018 100644 --- a/modules/primer-cards/package.json +++ b/modules/primer-cards/package.json @@ -1,5 +1,5 @@ { - "version": "0.4.1", + "version": "0.5.0", "name": "primer-cards", "description": "Card-like containers to group semantically related content together on marketing websites at GitHub.", "homepage": "http://primercss.io/", @@ -28,7 +28,7 @@ }, "dependencies": { "primer-marketing-support": "1.3.0", - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "cards", diff --git a/modules/primer-core/package.json b/modules/primer-core/package.json index 95e6ebbcc9..c0a6aabcf8 100644 --- a/modules/primer-core/package.json +++ b/modules/primer-core/package.json @@ -1,5 +1,5 @@ { - "version": "6.3.1", + "version": "6.4.0", "name": "primer-core", "description": "Primer CSS's core modules", "homepage": "http://primercss.io/", @@ -25,16 +25,16 @@ "test": "npm run build" }, "dependencies": { - "primer-base": "1.4.0", - "primer-box": "2.4.0", - "primer-buttons": "2.3.0", - "primer-forms": "1.3.1", - "primer-layout": "1.3.0", - "primer-navigation": "1.3.0", - "primer-support": "4.3.0", - "primer-table-object": "1.3.0", - "primer-tooltips": "1.3.0", - "primer-truncate": "1.3.0", - "primer-utilities": "4.7.0" + "primer-base": "1.5.0", + "primer-box": "2.5.0", + "primer-buttons": "2.4.0", + "primer-forms": "1.4.0", + "primer-layout": "1.4.0", + "primer-navigation": "1.4.0", + "primer-support": "4.4.0", + "primer-table-object": "1.4.0", + "primer-tooltips": "1.4.0", + "primer-truncate": "1.4.0", + "primer-utilities": "4.8.0" } } diff --git a/modules/primer-css/package.json b/modules/primer-css/package.json index 57ba7529e8..2dd8c0f66d 100644 --- a/modules/primer-css/package.json +++ b/modules/primer-css/package.json @@ -1,5 +1,5 @@ { - "version": "9.4.0", + "version": "9.5.0", "name": "primer-css", "description": "Primer is the CSS framework that powers GitHub's front-end design. Primer-css includes 23 packages that are grouped into 3 core meta-packages for easy install. Each package and meta-package is independently versioned and distributed via npm, so it's easy to include all or part of Primer within your own project.", "homepage": "http://primercss.io/", @@ -25,33 +25,33 @@ "test": "npm run build" }, "dependencies": { - "primer-alerts": "1.4.0", - "primer-avatars": "1.3.0", - "primer-base": "1.4.0", - "primer-blankslate": "1.3.0", - "primer-box": "2.4.0", - "primer-breadcrumb": "1.3.0", - "primer-buttons": "2.3.0", - "primer-cards": "0.4.1", - "primer-core": "6.3.1", - "primer-forms": "1.3.1", - "primer-labels": "1.4.0", - "primer-layout": "1.3.0", - "primer-markdown": "3.6.0", - "primer-marketing": "5.3.1", + "primer-alerts": "1.5.0", + "primer-avatars": "1.4.0", + "primer-base": "1.5.0", + "primer-blankslate": "1.4.0", + "primer-box": "2.5.0", + "primer-breadcrumb": "1.4.0", + "primer-buttons": "2.4.0", + "primer-cards": "0.5.0", + "primer-core": "6.4.0", + "primer-forms": "1.4.0", + "primer-labels": "1.5.0", + "primer-layout": "1.4.0", + "primer-markdown": "3.7.0", + "primer-marketing": "5.4.0", "primer-marketing-support": "1.3.0", - "primer-marketing-type": "1.3.0", - "primer-marketing-utilities": "1.3.0", - "primer-navigation": "1.3.0", - "primer-page-headers": "1.3.0", - "primer-page-sections": "1.3.0", - "primer-product": "5.3.1", - "primer-support": "4.3.0", - "primer-table-object": "1.3.0", - "primer-tables": "1.3.0", - "primer-tooltips": "1.3.0", - "primer-truncate": "1.3.0", - "primer-utilities": "4.7.0" + "primer-marketing-type": "1.4.0", + "primer-marketing-utilities": "1.4.0", + "primer-navigation": "1.4.0", + "primer-page-headers": "1.4.0", + "primer-page-sections": "1.4.0", + "primer-product": "5.4.0", + "primer-support": "4.4.0", + "primer-table-object": "1.4.0", + "primer-tables": "1.4.0", + "primer-tooltips": "1.4.0", + "primer-truncate": "1.4.0", + "primer-utilities": "4.8.0" }, "keywords": [ "primer", diff --git a/modules/primer-forms/package.json b/modules/primer-forms/package.json index fc170f2039..4d90f9cbcd 100644 --- a/modules/primer-forms/package.json +++ b/modules/primer-forms/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.1", + "version": "1.4.0", "name": "primer-forms", "description": "Style individual form controls and utilize common layouts.", "homepage": "http://primercss.io/", @@ -27,7 +27,7 @@ "test": "npm-run-all -s build lint" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "primer", diff --git a/modules/primer-labels/package.json b/modules/primer-labels/package.json index 3abfbf89e4..18dfc2db0e 100644 --- a/modules/primer-labels/package.json +++ b/modules/primer-labels/package.json @@ -1,5 +1,5 @@ { - "version": "1.4.0", + "version": "1.5.0", "name": "primer-labels", "description": "Labels add metatdata or indicate status of items and navigational elements.", "homepage": "http://primercss.io/", @@ -27,7 +27,7 @@ "test": "npm-run-all -s build lint" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "primer", diff --git a/modules/primer-layout/package.json b/modules/primer-layout/package.json index a783d60056..8565eb437d 100644 --- a/modules/primer-layout/package.json +++ b/modules/primer-layout/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.4.0", "name": "primer-layout", "description": "Containers, rows, and columns for creating page layout.", "homepage": "http://primercss.io/", @@ -28,7 +28,7 @@ "test": "npm-run-all -s build lint" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "primer", diff --git a/modules/primer-markdown/package.json b/modules/primer-markdown/package.json index 4324d34a76..0616cb3da7 100644 --- a/modules/primer-markdown/package.json +++ b/modules/primer-markdown/package.json @@ -1,5 +1,5 @@ { - "version": "3.6.0", + "version": "3.7.0", "name": "primer-markdown", "description": "GitHub stylesheets for rendering markdown.", "homepage": "https://github.com/primer/primer-markdown", @@ -27,7 +27,7 @@ "test": "npm-run-all -s build lint" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "github", diff --git a/modules/primer-marketing-type/package.json b/modules/primer-marketing-type/package.json index 58f8a89825..a74b646640 100644 --- a/modules/primer-marketing-type/package.json +++ b/modules/primer-marketing-type/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.4.0", "name": "primer-marketing-type", "description": "Typography for marketing websites at GitHub", "homepage": "http://primercss.io/", @@ -29,7 +29,7 @@ }, "dependencies": { "primer-marketing-support": "1.3.0", - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "css", diff --git a/modules/primer-marketing-utilities/package.json b/modules/primer-marketing-utilities/package.json index 0b76b75175..d9c48b1f59 100644 --- a/modules/primer-marketing-utilities/package.json +++ b/modules/primer-marketing-utilities/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.4.0", "name": "primer-marketing-utilities", "description": "Marketing specific immutable, atomic CSS classes", "homepage": "http://primercss.io/", @@ -29,7 +29,7 @@ }, "dependencies": { "primer-marketing-support": "1.3.0", - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "primer", diff --git a/modules/primer-marketing/package.json b/modules/primer-marketing/package.json index 0558381cfc..61b1f8cb62 100644 --- a/modules/primer-marketing/package.json +++ b/modules/primer-marketing/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.1", + "version": "5.4.0", "name": "primer-marketing", "description": "Primer CSS marketing packages", "homepage": "http://primercss.io/", @@ -25,14 +25,14 @@ "test": "npm run build" }, "dependencies": { - "primer-breadcrumb": "1.3.0", - "primer-cards": "0.4.1", + "primer-breadcrumb": "1.4.0", + "primer-cards": "0.5.0", "primer-marketing-support": "1.3.0", - "primer-marketing-type": "1.3.0", - "primer-marketing-utilities": "1.3.0", - "primer-page-headers": "1.3.0", - "primer-page-sections": "1.3.0", - "primer-support": "4.3.0", - "primer-tables": "1.3.0" + "primer-marketing-type": "1.4.0", + "primer-marketing-utilities": "1.4.0", + "primer-page-headers": "1.4.0", + "primer-page-sections": "1.4.0", + "primer-support": "4.4.0", + "primer-tables": "1.4.0" } } diff --git a/modules/primer-navigation/package.json b/modules/primer-navigation/package.json index a8daae3b49..cde14c3388 100644 --- a/modules/primer-navigation/package.json +++ b/modules/primer-navigation/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.4.0", "name": "primer-navigation", "description": "Singular purpose and flexible navigation elements.", "homepage": "http://primercss.io/", @@ -27,7 +27,7 @@ "test": "npm-run-all -s build lint" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "primer", diff --git a/modules/primer-page-headers/package.json b/modules/primer-page-headers/package.json index 5fdc1fd58f..2bf62f047e 100644 --- a/modules/primer-page-headers/package.json +++ b/modules/primer-page-headers/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.4.0", "name": "primer-page-headers", "description": "Jumbotrons, heroes, and featured content sections for marketing websites at GitHub.", "homepage": "http://primercss.io/", @@ -28,7 +28,7 @@ }, "dependencies": { "primer-marketing-support": "1.3.0", - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "css", diff --git a/modules/primer-page-sections/package.json b/modules/primer-page-sections/package.json index 5d3e0d271e..d3f1172d1c 100644 --- a/modules/primer-page-sections/package.json +++ b/modules/primer-page-sections/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.4.0", "name": "primer-page-sections", "description": "Styles to create distinct sections of marketing pages at GitHub.", "homepage": "http://primercss.io/", @@ -28,7 +28,7 @@ }, "dependencies": { "primer-marketing-support": "1.3.0", - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "css", diff --git a/modules/primer-product/package.json b/modules/primer-product/package.json index 82143b38c4..b9405afe9e 100644 --- a/modules/primer-product/package.json +++ b/modules/primer-product/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.1", + "version": "5.4.0", "name": "primer-product", "description": "Primer CSS's product modules", "homepage": "http://primercss.io/", @@ -25,11 +25,11 @@ "test": "npm run build" }, "dependencies": { - "primer-alerts": "1.4.0", - "primer-avatars": "1.3.0", - "primer-blankslate": "1.3.0", - "primer-labels": "1.4.0", - "primer-markdown": "3.6.0", - "primer-support": "4.3.0" + "primer-alerts": "1.5.0", + "primer-avatars": "1.4.0", + "primer-blankslate": "1.4.0", + "primer-labels": "1.5.0", + "primer-markdown": "3.7.0", + "primer-support": "4.4.0" } } diff --git a/modules/primer-support/lib/mixins/buttons.scss b/modules/primer-support/lib/mixins/buttons.scss index a4f47d3d76..d4fefa75c8 100644 --- a/modules/primer-support/lib/mixins/buttons.scss +++ b/modules/primer-support/lib/mixins/buttons.scss @@ -23,7 +23,8 @@ } &:active, - &.selected { + &.selected, + [open] > & { background-color: darken(desaturate($bg, 10%), 6%); background-image: none; border-color: rgba($black, 0.35); // repeat to avoid shift on click-drag off of button @@ -54,7 +55,8 @@ } &:active, - &.selected { + &.selected, + [open] > & { background-color: darken(mix($bg, $bg2, 50%), 7%); background-image: none; border-color: $black-fade-50; // repeat to avoid shift on click-drag off of button @@ -99,7 +101,8 @@ } &:active, - &.selected { + &.selected, + [open] > & { color: $text-white; background-color: darken($color, 5%); background-image: none; @@ -129,7 +132,8 @@ &:hover, &:active, - &.selected { + &.selected, + [open] > & { color: $bg-color; background-color: $text-color; background-image: none; diff --git a/modules/primer-support/package.json b/modules/primer-support/package.json index 639f6d4688..8d0c4896fe 100644 --- a/modules/primer-support/package.json +++ b/modules/primer-support/package.json @@ -1,5 +1,5 @@ { - "version": "4.3.0", + "version": "4.4.0", "name": "primer-support", "description": "Sass variables, mixins, and functions for use in our components.", "homepage": "http://primercss.io/", diff --git a/modules/primer-table-object/package.json b/modules/primer-table-object/package.json index 43466fba6f..4ec1c80eb4 100644 --- a/modules/primer-table-object/package.json +++ b/modules/primer-table-object/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.4.0", "name": "primer-table-object", "description": "A module for creating dynamically resizable elements that always sit on the same horizontal line.", "homepage": "http://primercss.io/", @@ -28,7 +28,7 @@ "test": "npm-run-all -s build lint test-docs" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "primer", diff --git a/modules/primer-tables/package.json b/modules/primer-tables/package.json index 37a2d2a43a..7474aa03dd 100644 --- a/modules/primer-tables/package.json +++ b/modules/primer-tables/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.4.0", "name": "primer-tables", "description": "Styles to display tabular data for marketing websites at GitHub.", "homepage": "http://primercss.io/", @@ -28,7 +28,7 @@ }, "dependencies": { "primer-marketing-support": "1.3.0", - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "css", diff --git a/modules/primer-tooltips/package.json b/modules/primer-tooltips/package.json index e7fc7412b5..e0e22e183d 100644 --- a/modules/primer-tooltips/package.json +++ b/modules/primer-tooltips/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.4.0", "name": "primer-tooltips", "description": "Add tooltips built entirely in CSS to nearly any element.", "homepage": "http://primercss.io/", @@ -28,7 +28,7 @@ "test": "npm-run-all -s build lint test-docs" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "primer", diff --git a/modules/primer-truncate/package.json b/modules/primer-truncate/package.json index 5d813c096b..c3b928886d 100644 --- a/modules/primer-truncate/package.json +++ b/modules/primer-truncate/package.json @@ -1,5 +1,5 @@ { - "version": "1.3.0", + "version": "1.4.0", "name": "primer-truncate", "description": "Shorten text with an ellipsis.", "homepage": "http://primercss.io/", @@ -28,7 +28,7 @@ "test": "npm-run-all -s build lint test-docs" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "primer", diff --git a/modules/primer-utilities/package.json b/modules/primer-utilities/package.json index 6db4e44260..dc65861ba3 100644 --- a/modules/primer-utilities/package.json +++ b/modules/primer-utilities/package.json @@ -1,5 +1,5 @@ { - "version": "4.7.0", + "version": "4.8.0", "name": "primer-utilities", "description": "Immutable, atomic CSS classes to rapidly build product", "homepage": "http://primercss.io/", @@ -28,7 +28,7 @@ "test": "npm-run-all -s build lint" }, "dependencies": { - "primer-support": "4.3.0" + "primer-support": "4.4.0" }, "keywords": [ "primer", diff --git a/script/bump-rc b/script/bump-rc new file mode 100755 index 0000000000..d5dca2f2cb --- /dev/null +++ b/script/bump-rc @@ -0,0 +1,44 @@ +#!/bin/bash +set -e + +package="$1" +npm_tag=rc +semver=$(npm bin)/semver + +bold=$(tput bold) +normal=$(tput sgr0) + +pushd modules/$package > /dev/null + +# get the version we're publishing as a release candidate +local_version=$(jq -r .version package.json) +echo "Bumping $package@${local_version}" +if [[ $local_version =~ "-" ]]; then + echo "❌ Found pre-release version: $package@$local_version; bailing!" + exit 1 +fi + +# find the *greatest* published prerelease +rc_prefix="$local_version-rc" +rc_version=$( + npm info "$package@$npm_tag" --json \ + | jq -r '.versions[]' \ + | grep "^${rc_prefix/./\.}" \ + | tail -1 +) +# if there isn't one, use the current local version +if [[ "$rc_version" == "" ]]; then + echo " 🤷‍♀️ no published RC; using ${bold}${local_version}${normal}" + rc_version="$local_version-rc.0" +else + echo " 📰 published RC: ${bold}${rc_version}${normal}" +fi + +# increment by the tagged prerelease id +next_version=$( + $semver -i prerelease --preid $npm_tag "$rc_version" +) + +bumped=$(npm version --no-git "$next_version") +echo " ➡️ ${bold}${bumped}${normal}" +popd > /dev/null diff --git a/script/release-candidate b/script/release-candidate index b6570f21f8..ce7f80b659 100755 --- a/script/release-candidate +++ b/script/release-candidate @@ -2,57 +2,16 @@ set -e echo "👌 Publishing release candidate..." -package=primer-css npm_tag=rc -# get the version we're publishing as a release candidate -local_version=$(jq -r .version modules/$package/package.json) -if [[ $local_version =~ "-" ]]; then - echo "❌ Found pre-release version: $package@$local_version; bailing!" - exit 1 -else - echo "🏔 Local version: $package@$local_version" -fi - -# get the version most recently published to the rc dist-tag -rc_version=$(npm info $package@$npm_tag version) -echo "📦 Published version for $package@$npm_tag: $rc_version" -rc_release=${rc_version%-*} -if [[ $local_version != $rc_release ]]; then - rc_version=$local_version -fi - -# determine the -next_version=$( - $(npm bin)/semver --increment prerelease --preid $npm_tag $rc_version -) -echo "🤜 Next version: $package@$next_version" - -# strip the pre-release version, yielding just major.minor.patch -pre_version=${next_version:${#local_version}} -echo " Prerelease suffix: '$pre_version'" - # if this is the same version, we need to bump the prerelease # for all of the modules using the same prerelease identifier echo "Updating all module versions in place..." echo -module_dirs=modules/primer-* +module_dirs=modules/*primer* for module_dir in $module_dirs; do - pushd $module_dir > /dev/null module=$(basename $module_dir) - - # determine the local version (in git) - module_version=$(jq -r .version package.json) - # strip the rc version, just in case - module_version=${module_version%-*} - module_next_version="$module_version$pre_version" - - echo "$module@$module_version => $module_next_version" - # "upgrade" to the most recent RC version so that - # `npm version prerelease` can increment automatically - npm version --no-git --quiet "$module_next_version" - - popd > /dev/null + $(dirname $0)/bump-rc $module done # publish all the things!