From b01cf28dccc662084ca9cbac08b2c44d1fb5f49a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 10:03:00 -0600 Subject: [PATCH 001/174] a release note about release notes --- .../2023-12-31-new-release-notes-structure.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 source/release-notes/2023-12-31-new-release-notes-structure.md diff --git a/source/release-notes/2023-12-31-new-release-notes-structure.md b/source/release-notes/2023-12-31-new-release-notes-structure.md new file mode 100644 index 0000000000..b85a37bdfd --- /dev/null +++ b/source/release-notes/2023-12-31-new-release-notes-structure.md @@ -0,0 +1,20 @@ +--- +title: New Release Notes Structure +publish_dated: "2023-12-31" +--- + +# New Release Notes Structure + +For nearly a decade, we have published a monthly "changelog" here within our Documentation site that summarizes significant changes to the platform. +Going forward in 2024 we are changing some of the details of how we publish and organize this information. + +Rather than treating the monthly retrospective as the base unit of information, we will instead publish a new "Release Note" for each significant change to the platform as needed, rather than waiting for the monthly summary. + +This switch will support more proactive communication and ensure that any noteworthy change is marked here in addition to the blog posts, emails, and other channels we use to communicate with our customers. + +Here you will find: +* A listing of all Release Notes at docs.pantheon.io/release-notes +* A listing of Release Notes by category like docs.pantheon.io/release-notes/infrastructure +# todo or should it be docs.pantheon.io/release-notes/all/2023/12 ? +* A month-by-month breakdown of all Release Notes like docs.pantheon.io/release-notes/all/2023-12 +* A month-by-month breakdown of Release Notes by catetory and month like docs.pantheon.io/release-notes/infrastructure/2023-12 From b9139943e2b2c0b61050c9e901c968384aea3176 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 10:03:21 -0600 Subject: [PATCH 002/174] a release note about release notes --- source/release-notes/2023-12-31-new-release-notes-structure.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/release-notes/2023-12-31-new-release-notes-structure.md b/source/release-notes/2023-12-31-new-release-notes-structure.md index b85a37bdfd..08db16388e 100644 --- a/source/release-notes/2023-12-31-new-release-notes-structure.md +++ b/source/release-notes/2023-12-31-new-release-notes-structure.md @@ -15,6 +15,5 @@ This switch will support more proactive communication and ensure that any notewo Here you will find: * A listing of all Release Notes at docs.pantheon.io/release-notes * A listing of Release Notes by category like docs.pantheon.io/release-notes/infrastructure -# todo or should it be docs.pantheon.io/release-notes/all/2023/12 ? -* A month-by-month breakdown of all Release Notes like docs.pantheon.io/release-notes/all/2023-12 +* A month-by-month breakdown of all Release Notes like docs.pantheon.io/release-notes/all/2023-12 (todo or should it be docs.pantheon.io/release-notes/all/2023/12) * A month-by-month breakdown of Release Notes by catetory and month like docs.pantheon.io/release-notes/infrastructure/2023-12 From 441a713097b043f6b8b5d220990933f507932711 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 12:40:54 -0600 Subject: [PATCH 003/174] adding another sample --- .../2023-11-02-terminus-composer-logs-plugin.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 source/release-notes/2023-11-02-terminus-composer-logs-plugin.md diff --git a/source/release-notes/2023-11-02-terminus-composer-logs-plugin.md b/source/release-notes/2023-11-02-terminus-composer-logs-plugin.md new file mode 100644 index 0000000000..1597751f59 --- /dev/null +++ b/source/release-notes/2023-11-02-terminus-composer-logs-plugin.md @@ -0,0 +1,8 @@ +--- +title: Terminus Composer Logs Plugin 1.0.0 Released +publish_dated: "2023-11-02" +--- + +# New Release Notes Structure + +Visibility into composer logs has been a top customer request. Now, if you need to debug a composer build failure due to an error, install the Terminus Composer Logs plugin on your machine to view more details. Upstream Update logs are also available. Installation instructions and command usage can be found here in the [plugin's GitHub repository](https://github.com/pantheon-systems/terminus-composer-logs-plugin). From aecdfff1b0ba7bd0efa73a9d17649fe302c48956 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 12:56:49 -0600 Subject: [PATCH 004/174] rename dir --- .../2023-11-02-terminus-composer-logs-plugin.md | 0 .../2023-12-31-new-release-notes-structure.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename source/{release-notes => releasenotes}/2023-11-02-terminus-composer-logs-plugin.md (100%) rename source/{release-notes => releasenotes}/2023-12-31-new-release-notes-structure.md (100%) diff --git a/source/release-notes/2023-11-02-terminus-composer-logs-plugin.md b/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md similarity index 100% rename from source/release-notes/2023-11-02-terminus-composer-logs-plugin.md rename to source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md diff --git a/source/release-notes/2023-12-31-new-release-notes-structure.md b/source/releasenotes/2023-12-31-new-release-notes-structure.md similarity index 100% rename from source/release-notes/2023-12-31-new-release-notes-structure.md rename to source/releasenotes/2023-12-31-new-release-notes-structure.md From 9744350594239e61bfdff2d5056b9fc6d0e29121 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 13:05:57 -0600 Subject: [PATCH 005/174] trying to get release notes pages generating --- gatsby-node.js | 79 ++++++++++++ src/templates/releaseNote.js | 160 ++++++++++++++++++++++++ src/templates/releaseNotesListing.js | 180 +++++++++++++++++++++++++++ 3 files changed, 419 insertions(+) create mode 100644 src/templates/releaseNote.js create mode 100644 src/templates/releaseNotesListing.js diff --git a/gatsby-node.js b/gatsby-node.js index 288a567556..ef18c9857d 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -184,6 +184,40 @@ exports.createPages = ({ graphql, actions }) => { } } + allReleaseNotes: allMdx( + filter: { + fileAbsolutePath: { regex: "/releasenotes/"} + }, + sort: { fields: [fileAbsolutePath], order: DESC } + ) { + edges { + + previous { + fields { + slug + } + } + + node { + id + frontmatter { + title + } + fields { + slug + } + } + + next { + fields { + slug + } + } + + } + } + + allChangelogs: allMdx( filter: { fileAbsolutePath: { regex: "/changelogs/"} @@ -309,6 +343,23 @@ exports.createPages = ({ graphql, actions }) => { }) }) + + + // Create each release note page. + const releaseNotes = result.data.allReleaseNotes.edges; + releaseNotes.forEach(releaseNote => { + const template = calculateTemplate(releaseNote.node, "releaseNote"); + createPage({ + path: releaseNote.node.fields.slug, + component: path.resolve(`./src/templates/${template}.js`), + context: { + slug: releaseNote.node.fields.slug, + }, + }) + console.log('hello'); + }) + + // Create Terminus Command pages const terminusCommands = result.data.dataJson.commands terminusCommands.forEach(command => { @@ -345,6 +396,34 @@ exports.createPages = ({ graphql, actions }) => { }) }) + // Create changelog pagination. + const ReleaseNotesPerPage = 6 + const numberOfReleaseNotePages = Math.ceil(changelogs.length / ReleaseNotesPerPage) + Array.from({ length: numberOfReleaseNotePages }).forEach((_, i) => { + const currentPage = i + 1; + const next = currentPage === 1 ? null : (currentPage === 2 ? `/release-notes/` : `/release-notes/page/${currentPage - 1}`); + const previous = currentPage < numberOfReleaseNotePages ? `/changelog/page/${currentPage + 1}` : null; + createPage({ + path: i === 0 ? `/release-notes/` : `/release-notes/page/${i + 1}`, + component: path.resolve("./src/templates/release-notes.js"), + context: { + limit: ReleaseNotesPerPage, + skip: i * ReleaseNotesPerPage, + numberOfReleaseNotePages, + currentPage, + previous, + next + }, + }) + }) + + + + + + + + // Create contributor pages. const contributors = result.data.allContributorYaml.edges contributors.forEach(contributor => { diff --git a/src/templates/releaseNote.js b/src/templates/releaseNote.js new file mode 100644 index 0000000000..86394e0e92 --- /dev/null +++ b/src/templates/releaseNote.js @@ -0,0 +1,160 @@ +import React from "react" +import { graphql } from "gatsby" +import { MDXRenderer } from "gatsby-plugin-mdx" +import { MDXProvider } from "@mdx-js/react" + +import Layout from "../layout/layout" +import NavButtons from "../components/navButtons" +import Alert from "../components/alert" +import Accordion from "../components/accordion" +import ExternalLink from "../components/externalLink" +import Popover from "../components/popover" +import TabList from "../components/tabList" +import Tab from "../components/tab" +import TOC from "../components/toc" +import Card from "../components/card" +import CardGroup from "../components/cardGroup" +import SEO from "../layout/seo" +import Enablement from "../components/enablement" +import Color from "../components/color.js" +import Download from "../components/download" + + +import { + Container, + Icon, + Pager, + SidebarLayout, +} from "@pantheon-systems/pds-toolkit-react" + +const shortcodes = { + Alert, + Accordion, + ExternalLink, + Popover, + TabList, + Tab, + Card, + CardGroup, + Enablement, + Color, + Download, +} + +// Set container width for search and main content. +const containerWidth = "standard" + +class ChangelogTemplate extends React.Component { + componentDidMount() { + $("[data-toggle=popover]").popover({ + trigger: "click", + }) + + $("body").on("click", function (e) { + $('[data-toggle="popover"]').each(function () { + if ( + !$(this).is(e.target) && + $(this).has(e.target).length === 0 && + $(".popover").has(e.target).length === 0 + ) { + $(this).popover("hide") + } + }) + }) + + $("body").keyup(function (e) { + $('[data-toggle="popover"]').each(function () { + if (event.which === 27) { + $(this).popover("hide") + } + }) + }) + } + + render() { + const node = this.props.data.mdx + + return ( + + +
+ +
+ Pantheon Changelog +
+

{node.frontmatter.title}

+
+

+ Sign up for the Pantheon Changelog Newsletter to receive a + monthly email on what's new and improved across the platform. +

+ + Subscribe Now + + +
+
+ + +
+
+
+
+ + {node.body} + +
+
+
+
+ +
+ +
+
+
+ ) + } +} + +export default ChangelogTemplate + +export const pageQuery = graphql` + query ChangelogBySlug($slug: String!) { + mdx(fields: { slug: { eq: $slug } }) { + id + body + fields { + slug + } + frontmatter { + title + } + } + } +` diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js new file mode 100644 index 0000000000..18f5e7c433 --- /dev/null +++ b/src/templates/releaseNotesListing.js @@ -0,0 +1,180 @@ +import React from "react" +import { graphql, Link } from "gatsby" +import { MDXRenderer } from "gatsby-plugin-mdx" +import { MDXProvider } from "@mdx-js/react" + +import Layout from "../layout/layout" +import NavButtons from "../components/navButtons" +import Callout from "../components/callout" +import Alert from "../components/alert" +import Accordion from "../components/accordion" +import ExternalLink from "../components/externalLink" +import Popover from "../components/popover" +import TabList from "../components/tabList" +import Tab from "../components/tab" +import TOC from "../components/toc" +import Card from "../components/card" +import CardGroup from "../components/cardGroup" +import SEO from "../layout/seo" +import Enablement from "../components/enablement" +import Color from "../components/color.js" +import Download from "../components/download" + + +import { + headline1, + headline2, + headline3, + headline4, +} from "../components/releaseHeadlines" + +import { + Container, + Icon, + Pager, + SidebarLayout, +} from "@pantheon-systems/pds-toolkit-react" + +const shortcodes = { + Callout, + Alert, + Accordion, + ExternalLink, + Popover, + TabList, + Tab, + Card, + CardGroup, + Enablement, + Color, + Download, + h1: headline2, + h2: headline3, + h3: headline4, +} + +// Set container width for search and main content. +const containerWidth = "standard" + +// Combined changelog template. +class ChangelogsTemplate extends React.Component { + componentDidMount() { + $("[data-toggle=popover]").popover({ + trigger: "click", + }) + + $("body").on("click", function (e) { + $('[data-toggle="popover"]').each(function () { + if ( + !$(this).is(e.target) && + $(this).has(e.target).length === 0 && + $(".popover").has(e.target).length === 0 + ) { + $(this).popover("hide") + } + }) + }) + + $("body").keyup(function (e) { + $('[data-toggle="popover"]').each(function () { + if (event.which === 27) { + $(this).popover("hide") + } + }) + }) + } + + render() { + const changelogs = this.props.data.allMdx.edges + return ( + + +
+ +

Pantheon Changelog

+
+

+ Sign up for the Pantheon Changelog Newsletter to receive a + monthly email on what's new and improved across the platform. +

+ + Subscribe Now + + +
+
+ +
+
+
+
+ {changelogs.map((changelog) => ( + + +

+ {changelog.node.frontmatter.title} +

+ + + {changelog.node.body} + +
+ ))} +
+
+
+
+ +
+ +
+
+
+ ) + } +} + +export default ChangelogsTemplate + +export const pageQuery = graphql` + query Changelogs($skip: Int!, $limit: Int!) { + allMdx( + filter: { + fileAbsolutePath: { regex: "/changelogs/" } + frontmatter: { draft: { ne: true } } + } + sort: { fields: [fileAbsolutePath], order: DESC } + skip: $skip + limit: $limit + ) { + edges { + node { + id + body + frontmatter { + title + } + fields { + slug + } + } + } + } + } +` From bb2f193f9604c43da8a8206bd7dff443db22495a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 13:51:24 -0600 Subject: [PATCH 006/174] starting to get release notes loading --- gatsby-config.js | 13 +++ gatsby-node.js | 102 ++++++------------ ...023-11-02-terminus-composer-logs-plugin.md | 3 + src/templates/releaseNotesListing.js | 5 +- 4 files changed, 51 insertions(+), 72 deletions(-) diff --git a/gatsby-config.js b/gatsby-config.js index 8e6af57400..ee16d4e5ce 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -97,6 +97,19 @@ module.exports = { name: `changelogs`, }, }, + + { + resolve: `gatsby-source-filesystem`, + options: { + path: `${__dirname}/source/releasenotes`, + name: `releasenotes`, + }, + }, + + + + + { resolve: `gatsby-source-filesystem`, options: { diff --git a/gatsby-node.js b/gatsby-node.js index ef18c9857d..cb29cf7e21 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -31,6 +31,12 @@ const calculateSlug = (node, getNode) => { const split = fileName.split('-'); // split the file name where hyphenated... return `changelog/${split[0]}/${split[1]}` // and return a slug of changelog/YYYY/MM } + // This section creates the releasenotes slug based on the YYYY-MM-DD-slug.md template + if (getNode(node.parent).absolutePath.includes("releasenotes")) { // If the file is in the releasenotes directory... + const split = fileName.split('-'); // split the file name where hyphenated... + // #todo, wait this should the slug should include all the words after the date, not just the first one. + return `releasenotes/${split[0]}/${split[1]}/${split[3]}${split[4]}` // and return a slug of releasenotes/YYYY/MM/slug + } return `${fileName}` // Otherwise, as long as there is a filename in GraphQL, use it as the slug. } @@ -127,7 +133,7 @@ exports.createPages = ({ graphql, actions }) => { { allDocs: allMdx( filter: { - fileAbsolutePath: { regex: "/content(?!/(partials|changelog|guides)/)/"} + fileAbsolutePath: { regex: "/content(?!/(partials|changelog|guides|releasenotes)/)/"} frontmatter: { draft: {ne: true} } @@ -297,35 +303,6 @@ exports.createPages = ({ graphql, actions }) => { }) }) - // Create guide pages. - const guides = result.data.allGuides.edges - guides.forEach(guide => { - if (guide.node.fields.guide_directory !== null) { - const previous = calculatePrevious(guide); - const next = calculateNext(guide); - const template = calculateTemplate(guide.node, "guide") - createPage({ - path: guide.node.fields.slug, - component: path.resolve(`./src/templates/${template}.js`), - context: { - slug: guide.node.fields.slug, - guide_directory: guide.node.fields.guide_directory, - previous, - next - }, - }) - } else { - const template = calculateTemplate(guide.node, "doc") - createPage({ - path: guide.node.fields.slug, - component: path.resolve(`./src/templates/${template}.js`), - context: { - slug: guide.node.fields.slug, - }, - }) - } - }) - // Create changelog pages. const changelogs = result.data.allChangelogs.edges changelogs.forEach(changelog => { @@ -360,21 +337,6 @@ exports.createPages = ({ graphql, actions }) => { }) - // Create Terminus Command pages - const terminusCommands = result.data.dataJson.commands - terminusCommands.forEach(command => { - const slugRegExp = /:/g - const slug = command.name.replace(slugRegExp, "-") - createPage({ - path: `terminus/commands/${slug}`, - component: path.resolve(`./src/templates/terminusCommand.js`), - context: { - slug: slug, - name: command.name - } - }) - }) - // Create changelog pagination. const postsPerPage = 6 const numPages = Math.ceil(changelogs.length / postsPerPage) @@ -398,14 +360,14 @@ exports.createPages = ({ graphql, actions }) => { // Create changelog pagination. const ReleaseNotesPerPage = 6 - const numberOfReleaseNotePages = Math.ceil(changelogs.length / ReleaseNotesPerPage) + const numberOfReleaseNotePages = Math.ceil(releaseNotes.length / ReleaseNotesPerPage) Array.from({ length: numberOfReleaseNotePages }).forEach((_, i) => { const currentPage = i + 1; const next = currentPage === 1 ? null : (currentPage === 2 ? `/release-notes/` : `/release-notes/page/${currentPage - 1}`); - const previous = currentPage < numberOfReleaseNotePages ? `/changelog/page/${currentPage + 1}` : null; + const previous = currentPage < numberOfReleaseNotePages ? `/release-notes/page/${currentPage + 1}` : null; createPage({ path: i === 0 ? `/release-notes/` : `/release-notes/page/${i + 1}`, - component: path.resolve("./src/templates/release-notes.js"), + component: path.resolve("./src/templates/releaseNotesListing.js"), context: { limit: ReleaseNotesPerPage, skip: i * ReleaseNotesPerPage, @@ -417,6 +379,26 @@ exports.createPages = ({ graphql, actions }) => { }) }) + // Create releasenotes pagination. + Array.from({ length: numPages }).forEach((_, i) => { + const currentPage = i + 1; + const next = currentPage === 1 ? null : (currentPage === 2 ? `/releasenotes/` : `/releasenotes/page/${currentPage - 1}`); + const previous = currentPage < numPages ? `/releasenotes/page/${currentPage + 1}` : null; + createPage({ + path: i === 0 ? `/releasenotes/` : `/releasenotes/page/${i + 1}`, + component: path.resolve("./src/templates/releaseNotesListing.js"), + context: { + limit: postsPerPage, + skip: i * postsPerPage, + numPages, + currentPage, + previous, + next + }, + }) + }) + + @@ -424,29 +406,7 @@ exports.createPages = ({ graphql, actions }) => { - // Create contributor pages. - const contributors = result.data.allContributorYaml.edges - contributors.forEach(contributor => { - createPage({ - path: `contributors/${contributor.node.yamlId}`, - component: path.resolve(`./src/templates/contributor.js`), - context: { - id: contributor.node.yamlId, - }, - }) - }) - // Create topics pages. - const topics = result.data.allLandingsYaml.edges - topics.forEach(topic => { - createPage({ - path: topic.node.path, - component: path.resolve(`./src/templates/landing.js`), - context: { - id: topic.node.id, - }, - }) - }) return null }) @@ -512,7 +472,7 @@ exports.onCreateNode = ({ node, getNode, actions }) => { } } - if (sourceInstanceName === 'changelogs') { + if (sourceInstanceName === 'changelogs' || sourceInstanceName === 'releasenotes') { const content = matter(node.internal.content, { excerpt: true, excerpt_separator: '' } ); const excerpt = content.excerpt || ""; diff --git a/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md b/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md index 1597751f59..fb141c826e 100644 --- a/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md +++ b/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md @@ -6,3 +6,6 @@ publish_dated: "2023-11-02" # New Release Notes Structure Visibility into composer logs has been a top customer request. Now, if you need to debug a composer build failure due to an error, install the Terminus Composer Logs plugin on your machine to view more details. Upstream Update logs are also available. Installation instructions and command usage can be found here in the [plugin's GitHub repository](https://github.com/pantheon-systems/terminus-composer-logs-plugin). + + + diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 18f5e7c433..a34f2b2899 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -86,6 +86,7 @@ class ChangelogsTemplate extends React.Component { render() { const changelogs = this.props.data.allMdx.edges + console.log(changelogs) return (
-

Pantheon Changelog

+

Pantheon Release Notes

Sign up for the Pantheon Changelog Newsletter to receive a @@ -117,7 +118,9 @@ class ChangelogsTemplate extends React.Component {

{changelogs.map((changelog) => ( + +
WHAT
Date: Thu, 14 Dec 2023 13:53:32 -0600 Subject: [PATCH 007/174] releaseNotesListing --- gatsby-node.js | 29 ---------------------------- src/templates/releaseNotesListing.js | 2 +- 2 files changed, 1 insertion(+), 30 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index cb29cf7e21..8cc3c543ae 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -379,35 +379,6 @@ exports.createPages = ({ graphql, actions }) => { }) }) - // Create releasenotes pagination. - Array.from({ length: numPages }).forEach((_, i) => { - const currentPage = i + 1; - const next = currentPage === 1 ? null : (currentPage === 2 ? `/releasenotes/` : `/releasenotes/page/${currentPage - 1}`); - const previous = currentPage < numPages ? `/releasenotes/page/${currentPage + 1}` : null; - createPage({ - path: i === 0 ? `/releasenotes/` : `/releasenotes/page/${i + 1}`, - component: path.resolve("./src/templates/releaseNotesListing.js"), - context: { - limit: postsPerPage, - skip: i * postsPerPage, - numPages, - currentPage, - previous, - next - }, - }) - }) - - - - - - - - - - - return null }) } diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index a34f2b2899..8e396a794e 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -159,7 +159,7 @@ export const pageQuery = graphql` query Changelogs($skip: Int!, $limit: Int!) { allMdx( filter: { - fileAbsolutePath: { regex: "/changelogs/" } + fileAbsolutePath: { regex: "/releasenotes/" } frontmatter: { draft: { ne: true } } } sort: { fields: [fileAbsolutePath], order: DESC } From 1f7f50df981f1914d8c9d48f6ccd688b77ab62d2 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 14:00:54 -0600 Subject: [PATCH 008/174] bring back deleted stuff --- gatsby-node.js | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/gatsby-node.js b/gatsby-node.js index 8cc3c543ae..7b2c3bd0cc 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -303,6 +303,50 @@ exports.createPages = ({ graphql, actions }) => { }) }) + // Create guide pages. + const guides = result.data.allGuides.edges + guides.forEach(guide => { + if (guide.node.fields.guide_directory !== null) { + const previous = calculatePrevious(guide); + const next = calculateNext(guide); + const template = calculateTemplate(guide.node, "guide") + createPage({ + path: guide.node.fields.slug, + component: path.resolve(`./src/templates/${template}.js`), + context: { + slug: guide.node.fields.slug, + guide_directory: guide.node.fields.guide_directory, + previous, + next + }, + }) + } else { + const template = calculateTemplate(guide.node, "doc") + createPage({ + path: guide.node.fields.slug, + component: path.resolve(`./src/templates/${template}.js`), + context: { + slug: guide.node.fields.slug, + }, + }) + } + }) + + // Create Terminus Command pages + const terminusCommands = result.data.dataJson.commands + terminusCommands.forEach(command => { + const slugRegExp = /:/g + const slug = command.name.replace(slugRegExp, "-") + createPage({ + path: `terminus/commands/${slug}`, + component: path.resolve(`./src/templates/terminusCommand.js`), + context: { + slug: slug, + name: command.name + } + }) + }) + // Create changelog pages. const changelogs = result.data.allChangelogs.edges changelogs.forEach(changelog => { @@ -379,6 +423,31 @@ exports.createPages = ({ graphql, actions }) => { }) }) + + // Create contributor pages. + const contributors = result.data.allContributorYaml.edges + contributors.forEach(contributor => { + createPage({ + path: `contributors/${contributor.node.yamlId}`, + component: path.resolve(`./src/templates/contributor.js`), + context: { + id: contributor.node.yamlId, + }, + }) + }) + + // Create topics pages. + const topics = result.data.allLandingsYaml.edges + topics.forEach(topic => { + createPage({ + path: topic.node.path, + component: path.resolve(`./src/templates/landing.js`), + context: { + id: topic.node.id, + }, + }) + }) + return null }) } From ef9e33b8856a8e7e4d7f2ebc5a0cf0cbee97c2e5 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 14:12:50 -0600 Subject: [PATCH 009/174] more progress on release notes --- gatsby-node.js | 10 +++++++--- .../2023-11-02-terminus-composer-logs-plugin.md | 3 --- .../2023-12-31-new-release-notes-structure.md | 2 -- src/templates/releaseNote.js | 17 ++--------------- src/templates/releaseNotesListing.js | 5 ++++- 5 files changed, 13 insertions(+), 24 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index 7b2c3bd0cc..41d0d2f86b 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -35,7 +35,9 @@ const calculateSlug = (node, getNode) => { if (getNode(node.parent).absolutePath.includes("releasenotes")) { // If the file is in the releasenotes directory... const split = fileName.split('-'); // split the file name where hyphenated... // #todo, wait this should the slug should include all the words after the date, not just the first one. - return `releasenotes/${split[0]}/${split[1]}/${split[3]}${split[4]}` // and return a slug of releasenotes/YYYY/MM/slug + // set a const to remaining slug based on the keys from split that are not the date. + const remainingSlug = split.slice(3).join('-'); + return `releasenotes/${split[0]}/${split[1]}/${remainingSlug}` // and return a slug of releasenotes/YYYY/MM/slug } return `${fileName}` // Otherwise, as long as there is a filename in GraphQL, use it as the slug. @@ -402,7 +404,7 @@ exports.createPages = ({ graphql, actions }) => { }) }) - // Create changelog pagination. + // Create Release Note pagination. const ReleaseNotesPerPage = 6 const numberOfReleaseNotePages = Math.ceil(releaseNotes.length / ReleaseNotesPerPage) Array.from({ length: numberOfReleaseNotePages }).forEach((_, i) => { @@ -423,7 +425,6 @@ exports.createPages = ({ graphql, actions }) => { }) }) - // Create contributor pages. const contributors = result.data.allContributorYaml.edges contributors.forEach(contributor => { @@ -586,3 +587,6 @@ exports.onPreBootstrap = () => { fs.copySync(scriptsCopyFrom, scriptsCopyTo) } + + +/* todo should there be an error thrown if a release note category is set that is not allowed */ diff --git a/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md b/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md index fb141c826e..3e6f02f80b 100644 --- a/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md +++ b/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md @@ -3,9 +3,6 @@ title: Terminus Composer Logs Plugin 1.0.0 Released publish_dated: "2023-11-02" --- -# New Release Notes Structure Visibility into composer logs has been a top customer request. Now, if you need to debug a composer build failure due to an error, install the Terminus Composer Logs plugin on your machine to view more details. Upstream Update logs are also available. Installation instructions and command usage can be found here in the [plugin's GitHub repository](https://github.com/pantheon-systems/terminus-composer-logs-plugin). - - diff --git a/source/releasenotes/2023-12-31-new-release-notes-structure.md b/source/releasenotes/2023-12-31-new-release-notes-structure.md index 08db16388e..5aea1aa516 100644 --- a/source/releasenotes/2023-12-31-new-release-notes-structure.md +++ b/source/releasenotes/2023-12-31-new-release-notes-structure.md @@ -3,8 +3,6 @@ title: New Release Notes Structure publish_dated: "2023-12-31" --- -# New Release Notes Structure - For nearly a decade, we have published a monthly "changelog" here within our Documentation site that summarizes significant changes to the platform. Going forward in 2024 we are changing some of the details of how we publish and organize this information. diff --git a/src/templates/releaseNote.js b/src/templates/releaseNote.js index 86394e0e92..9e3334dee6 100644 --- a/src/templates/releaseNote.js +++ b/src/templates/releaseNote.js @@ -85,23 +85,10 @@ class ChangelogTemplate extends React.Component {
- Pantheon Changelog + Pantheon Release Notes

{node.frontmatter.title}

-
-

- Sign up for the Pantheon Changelog Newsletter to receive a - monthly email on what's new and improved across the platform. -

- - Subscribe Now - - -
+
diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 8e396a794e..80f6ad1443 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -102,6 +102,7 @@ class ChangelogsTemplate extends React.Component { Sign up for the Pantheon Changelog Newsletter to receive a monthly email on what's new and improved across the platform.

+ todo link to somewhere other than Pantheon learning.

( -
WHAT
+
HELLO
{changelog.node.frontmatter.title} + test {changelog.node.body} @@ -155,6 +157,7 @@ class ChangelogsTemplate extends React.Component { export default ChangelogsTemplate +/* todo remove draft filter from query */ export const pageQuery = graphql` query Changelogs($skip: Int!, $limit: Int!) { allMdx( From b382559c351439fa67a466bf5c197630f65f4a35 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 14:15:08 -0600 Subject: [PATCH 010/174] adding a note --- .../releasenotes/2023-11-02-terminus-composer-logs-plugin.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md b/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md index 3e6f02f80b..364708b784 100644 --- a/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md +++ b/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md @@ -6,3 +6,6 @@ publish_dated: "2023-11-02" Visibility into composer logs has been a top customer request. Now, if you need to debug a composer build failure due to an error, install the Terminus Composer Logs plugin on your machine to view more details. Upstream Update logs are also available. Installation instructions and command usage can be found here in the [plugin's GitHub repository](https://github.com/pantheon-systems/terminus-composer-logs-plugin). + + +TODO: Does this note belong in "action required?" Not every customer needs to do something. Only those who want to use the plugin. From 8a4d7e002d8e315e5d23c9cae79ce0fef06a7a8e Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 14:31:57 -0600 Subject: [PATCH 011/174] updates --- source/releasenotes/2023-08-18-php-security-updates.md | 9 +++++++++ .../releasenotes/2023-09-20-drupal-sa-core-2023-006.md | 9 +++++++++ source/releasenotes/2023-09-30-docs-design-system.md | 9 +++++++++ .../2023-10-31-front-end-sites-build-caching.md | 9 +++++++++ 4 files changed, 36 insertions(+) create mode 100644 source/releasenotes/2023-08-18-php-security-updates.md create mode 100644 source/releasenotes/2023-09-20-drupal-sa-core-2023-006.md create mode 100644 source/releasenotes/2023-09-30-docs-design-system.md create mode 100644 source/releasenotes/2023-10-31-front-end-sites-build-caching.md diff --git a/source/releasenotes/2023-08-18-php-security-updates.md b/source/releasenotes/2023-08-18-php-security-updates.md new file mode 100644 index 0000000000..c68aed056a --- /dev/null +++ b/source/releasenotes/2023-08-18-php-security-updates.md @@ -0,0 +1,9 @@ +--- +title: "PHP Security Updates" +publish_dated: "2023-08-18" +--- + + +Pantheon has deployed PHP versions [8.2.9](https://www.php.net/ChangeLog-8.php#8.2.9), [8.1.22](https://www.php.net/ChangeLog-8.php#8.1.22), and [8.0.30](https://www.php.net/ChangeLog-8.php#8.0.30) to customer sites running on the platform. These releases address vulnerabilities disclosed in [CVE-2023-3823](https://nvd.nist.gov/vuln/detail/CVE-2023-3823) and [CVE-2023-3824](https://nvd.nist.gov/vuln/detail/CVE-2023-3824). + +If you are using PHP 8.2, 8.1 or 8.0, there is nothing further that you need to do. If you are still on PHP 7.4 or earlier, though, you should schedule some time to upgrade to a supported version.While the vulnerabilities patched in these latest releases are not reported to affect PHP 7.4, the fact remains that there could be (and probably are) unpatched vulnerabilities in the end-of-life versions. Read more about it in Greg Anderson’s [blog post](https://pantheon.io/blog/php-829-security-release-demonstrates-pantheons-commitment-protecting-your-sites). diff --git a/source/releasenotes/2023-09-20-drupal-sa-core-2023-006.md b/source/releasenotes/2023-09-20-drupal-sa-core-2023-006.md new file mode 100644 index 0000000000..fa8be8f92e --- /dev/null +++ b/source/releasenotes/2023-09-20-drupal-sa-core-2023-006.md @@ -0,0 +1,9 @@ +--- +title: "Drupal Security Update: SA Core 2023-006" +publish_dated: "2023-09-20" +--- + + +On September 20th, [Drupal core updates were released to address a critical vulnerability in the JSON:API module](https://status.pantheon.io/incidents/vj842n7k7w40). Those updates became immediately available within the Pantheon dashboard for one-click code updates. Additionally, [our engineers updated our CDN to mitigate potential attacks](https://status.pantheon.io/incidents/598zxv2v8l7p). + +If you have a Drupal site using JSON:API we suggest you update as soon as possible if you haven't done so already. And even if you aren't using JSON:API, it'll still feel good to apply an update, right? To better understand the nature of security updates, [come watch the Pantheon YouTube Livestream on October 25th](https://www.youtube.com/watch?v=WV2ZSeBOziU). diff --git a/source/releasenotes/2023-09-30-docs-design-system.md b/source/releasenotes/2023-09-30-docs-design-system.md new file mode 100644 index 0000000000..4cb3fffb13 --- /dev/null +++ b/source/releasenotes/2023-09-30-docs-design-system.md @@ -0,0 +1,9 @@ +--- +title: Documentation Site Updated with the Design System +publish_dated: "2023-09-30" +--- + + +We're excited to announce that our documentation site has been seamlessly integrated with our brand-new design system. This enhancement brings a fresh and cohesive look to our documentation, providing a unified and visually appealing experience for our users. Explore the updated, improved, and more accessible [Docs site](/) today. + +![Docs Design System](../images/DocsDesignSystem.png) diff --git a/source/releasenotes/2023-10-31-front-end-sites-build-caching.md b/source/releasenotes/2023-10-31-front-end-sites-build-caching.md new file mode 100644 index 0000000000..c57850e874 --- /dev/null +++ b/source/releasenotes/2023-10-31-front-end-sites-build-caching.md @@ -0,0 +1,9 @@ +--- +title: Front-End Build Site Caching +publish_dated: "2023-10-31" +--- + +Pantheon introduced a new build pipeline for Front End Sites to significantly improve build times. Beginning on November 13th, 2023, newly created sites are automatically using the new pipeline and cannot opt back to the old pipeline. Sites made prior to that date can opt-in to the new pipeline to take advantage of the new features. All pre-existing sites that do not opt-in will be switched over for new builds on or around January 15th. + +Additionally, we are adding support for Node 18 (for dynamic sites) and 20 (for both static and dynamic sites). To select a specific version, Pantheon is [moving away from using .nvmrc](/guides/decoupled/overview/manage-settings#nodejs-version) and will instead look to the [“engines” field](https://docs.npmjs.com/cli/v8/configuring-npm/package-json#engines) in your project’s `package.json` file. + From 1c64f89d351ccccb4a83feee781a9239a7f12af4 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 14:34:29 -0600 Subject: [PATCH 012/174] release notes --- .../2023-08-08-pantheon-advanced-page-cache-1-4-1.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 source/releasenotes/2023-08-08-pantheon-advanced-page-cache-1-4-1.md diff --git a/source/releasenotes/2023-08-08-pantheon-advanced-page-cache-1-4-1.md b/source/releasenotes/2023-08-08-pantheon-advanced-page-cache-1-4-1.md new file mode 100644 index 0000000000..632c05cc4f --- /dev/null +++ b/source/releasenotes/2023-08-08-pantheon-advanced-page-cache-1-4-1.md @@ -0,0 +1,9 @@ +--- +title: "Pantheon Advanced Page Cache WordPress Plugin Updates" +publish_dated: "2023-08-08" +--- + + +We released an update for the [Pantheon Advanced Page Cache](https://wordpress.org/plugins/pantheon-advanced-page-cache/) WordPress plugin which adds a filter to allow disabling surrogate keys for posts' taxonomy terms. This can be especially helpful for posts with large numbers of taxonomies (such as WooCommerce products with a large number of global attributes). + +For more information, see [Pantheon documentation](/guides/wordpress-configurations/plugins#disable-surrogate-keys-for-taxonomy-terms). From a86b85e1c47da770357e5985762b5e32b725b18b Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 16:33:34 -0600 Subject: [PATCH 013/174] getting categories partially working --- gatsby-node.js | 3 ++- .../2023-11-02-terminus-composer-logs-plugin.md | 1 + .../releasenotes/2023-12-31-new-release-notes-structure.md | 7 ++++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index 41d0d2f86b..64c11cb4b7 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -209,7 +209,8 @@ exports.createPages = ({ graphql, actions }) => { node { id frontmatter { - title + title, + categories } fields { slug diff --git a/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md b/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md index 364708b784..e64946de44 100644 --- a/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md +++ b/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md @@ -9,3 +9,4 @@ Visibility into composer logs has been a top customer request. Now, if you need TODO: Does this note belong in "action required?" Not every customer needs to do something. Only those who want to use the plugin. +After discussion with Ingrid, no this would not get "Action required". because that should only be used for things that would disrupt. diff --git a/source/releasenotes/2023-12-31-new-release-notes-structure.md b/source/releasenotes/2023-12-31-new-release-notes-structure.md index 5aea1aa516..540328730f 100644 --- a/source/releasenotes/2023-12-31-new-release-notes-structure.md +++ b/source/releasenotes/2023-12-31-new-release-notes-structure.md @@ -1,6 +1,7 @@ --- title: New Release Notes Structure publish_dated: "2023-12-31" +categories: [security, anothercat] --- For nearly a decade, we have published a monthly "changelog" here within our Documentation site that summarizes significant changes to the platform. @@ -12,6 +13,6 @@ This switch will support more proactive communication and ensure that any notewo Here you will find: * A listing of all Release Notes at docs.pantheon.io/release-notes -* A listing of Release Notes by category like docs.pantheon.io/release-notes/infrastructure -* A month-by-month breakdown of all Release Notes like docs.pantheon.io/release-notes/all/2023-12 (todo or should it be docs.pantheon.io/release-notes/all/2023/12) -* A month-by-month breakdown of Release Notes by catetory and month like docs.pantheon.io/release-notes/infrastructure/2023-12 +* A listing of Release Notes by category (WordPress, Drupal, etc) like docs.pantheon.io/release-notes/infrastructure + + From 192086452f8cd20e742f376ab0ecdd75b50f60de Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 17:23:32 -0600 Subject: [PATCH 014/174] starting on a separate category component --- gatsby-node.js | 6 +- ...8-08-pantheon-advanced-page-cache-1-4-1.md | 2 +- .../2023-08-18-php-security-updates.md | 2 +- .../2023-09-20-drupal-sa-core-2023-006.md | 2 +- .../2023-09-30-docs-design-system.md | 2 +- ...023-10-31-front-end-sites-build-caching.md | 2 +- ...023-11-02-terminus-composer-logs-plugin.md | 2 +- .../2023-12-31-new-release-notes-structure.md | 2 +- src/components/releaseNoteCategories.js | 24 +++++++ src/templates/releaseNotesListing.js | 65 ++++++++++--------- 10 files changed, 72 insertions(+), 37 deletions(-) create mode 100644 src/components/releaseNoteCategories.js diff --git a/gatsby-node.js b/gatsby-node.js index 64c11cb4b7..d74e541f3b 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -210,7 +210,8 @@ exports.createPages = ({ graphql, actions }) => { id frontmatter { title, - categories + categories, + published_date } fields { slug @@ -524,6 +525,7 @@ exports.onCreateNode = ({ node, getNode, actions }) => { value: excerpt, }) + const textNode = { id: `${node.id}-MarkdownBody`, parent: node.id, @@ -591,3 +593,5 @@ exports.onPreBootstrap = () => { /* todo should there be an error thrown if a release note category is set that is not allowed */ +/* todo, infer published date from file name. And throw an error if there are files that don't follow the pattern. */ +/* todo, make a json file of allowed categories, description of the category, color name */ diff --git a/source/releasenotes/2023-08-08-pantheon-advanced-page-cache-1-4-1.md b/source/releasenotes/2023-08-08-pantheon-advanced-page-cache-1-4-1.md index 632c05cc4f..e9c4ad53f0 100644 --- a/source/releasenotes/2023-08-08-pantheon-advanced-page-cache-1-4-1.md +++ b/source/releasenotes/2023-08-08-pantheon-advanced-page-cache-1-4-1.md @@ -1,6 +1,6 @@ --- title: "Pantheon Advanced Page Cache WordPress Plugin Updates" -publish_dated: "2023-08-08" +published_date: "2023-08-08" --- diff --git a/source/releasenotes/2023-08-18-php-security-updates.md b/source/releasenotes/2023-08-18-php-security-updates.md index c68aed056a..eff44cf27d 100644 --- a/source/releasenotes/2023-08-18-php-security-updates.md +++ b/source/releasenotes/2023-08-18-php-security-updates.md @@ -1,6 +1,6 @@ --- title: "PHP Security Updates" -publish_dated: "2023-08-18" +published_date: "2023-08-18" --- diff --git a/source/releasenotes/2023-09-20-drupal-sa-core-2023-006.md b/source/releasenotes/2023-09-20-drupal-sa-core-2023-006.md index fa8be8f92e..c6e6cb29a7 100644 --- a/source/releasenotes/2023-09-20-drupal-sa-core-2023-006.md +++ b/source/releasenotes/2023-09-20-drupal-sa-core-2023-006.md @@ -1,6 +1,6 @@ --- title: "Drupal Security Update: SA Core 2023-006" -publish_dated: "2023-09-20" +published_date: "2023-09-20" --- diff --git a/source/releasenotes/2023-09-30-docs-design-system.md b/source/releasenotes/2023-09-30-docs-design-system.md index 4cb3fffb13..77b9335c2d 100644 --- a/source/releasenotes/2023-09-30-docs-design-system.md +++ b/source/releasenotes/2023-09-30-docs-design-system.md @@ -1,6 +1,6 @@ --- title: Documentation Site Updated with the Design System -publish_dated: "2023-09-30" +published_date: "2023-09-30" --- diff --git a/source/releasenotes/2023-10-31-front-end-sites-build-caching.md b/source/releasenotes/2023-10-31-front-end-sites-build-caching.md index c57850e874..4dc7f828b7 100644 --- a/source/releasenotes/2023-10-31-front-end-sites-build-caching.md +++ b/source/releasenotes/2023-10-31-front-end-sites-build-caching.md @@ -1,6 +1,6 @@ --- title: Front-End Build Site Caching -publish_dated: "2023-10-31" +published_date: "2023-10-31" --- Pantheon introduced a new build pipeline for Front End Sites to significantly improve build times. Beginning on November 13th, 2023, newly created sites are automatically using the new pipeline and cannot opt back to the old pipeline. Sites made prior to that date can opt-in to the new pipeline to take advantage of the new features. All pre-existing sites that do not opt-in will be switched over for new builds on or around January 15th. diff --git a/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md b/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md index e64946de44..2ce0d8b346 100644 --- a/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md +++ b/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md @@ -1,6 +1,6 @@ --- title: Terminus Composer Logs Plugin 1.0.0 Released -publish_dated: "2023-11-02" +published_date: "2023-11-02" --- diff --git a/source/releasenotes/2023-12-31-new-release-notes-structure.md b/source/releasenotes/2023-12-31-new-release-notes-structure.md index 540328730f..441ba884eb 100644 --- a/source/releasenotes/2023-12-31-new-release-notes-structure.md +++ b/source/releasenotes/2023-12-31-new-release-notes-structure.md @@ -1,6 +1,6 @@ --- title: New Release Notes Structure -publish_dated: "2023-12-31" +published_date: "2023-12-31" categories: [security, anothercat] --- diff --git a/src/components/releaseNoteCategories.js b/src/components/releaseNoteCategories.js new file mode 100644 index 0000000000..959e9aa0ba --- /dev/null +++ b/src/components/releaseNoteCategories.js @@ -0,0 +1,24 @@ +import React from "react" + +const ReleaseNoteCategories = ({categories}) => { + +console.log(categories); + +if (!categories) { + return null +} + + return ( +
+ {categories.map((category, index) => ( +
+

{category}

+
+ )) + } +
+ + ) +} + +export default ReleaseNoteCategories diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 80f6ad1443..221a963227 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -19,6 +19,7 @@ import SEO from "../layout/seo" import Enablement from "../components/enablement" import Color from "../components/color.js" import Download from "../components/download" +import ReleaseNoteCategories from "../components/releaseNoteCategories" import { @@ -32,7 +33,6 @@ import { Container, Icon, Pager, - SidebarLayout, } from "@pantheon-systems/pds-toolkit-react" const shortcodes = { @@ -87,6 +87,7 @@ class ChangelogsTemplate extends React.Component { render() { const changelogs = this.props.data.allMdx.edges console.log(changelogs) + console.log(changelogs[0].node.frontmatter.categories) return (

- -
-
-
-
- {changelogs.map((changelog) => ( - - -
HELLO
- -

- {changelog.node.frontmatter.title} -

- test - - - {changelog.node.body} - -
- ))} -
-
+
+
+
+ {changelogs.map((changelog) => ( + + + +
HELLO
+ +

+ {changelog.node.frontmatter.title} +

+ + + Todo, transform to date format

+ {changelog.node.frontmatter.published_date} + + Maybe + + + + + {changelog.node.body} + +
+ ))}
- - +
+ Date: Thu, 14 Dec 2023 17:38:38 -0600 Subject: [PATCH 015/174] more release notes cleanup --- .../2023-09-20-drupal-sa-core-2023-006.md | 1 + src/components/releaseNoteCategories.js | 8 +++++- src/templates/releaseNote.js | 26 ++++++------------- src/templates/releaseNotesListing.js | 1 - 4 files changed, 16 insertions(+), 20 deletions(-) diff --git a/source/releasenotes/2023-09-20-drupal-sa-core-2023-006.md b/source/releasenotes/2023-09-20-drupal-sa-core-2023-006.md index c6e6cb29a7..a82127adcf 100644 --- a/source/releasenotes/2023-09-20-drupal-sa-core-2023-006.md +++ b/source/releasenotes/2023-09-20-drupal-sa-core-2023-006.md @@ -1,6 +1,7 @@ --- title: "Drupal Security Update: SA Core 2023-006" published_date: "2023-09-20" +categories: [security] --- diff --git a/src/components/releaseNoteCategories.js b/src/components/releaseNoteCategories.js index 959e9aa0ba..e3135e517e 100644 --- a/src/components/releaseNoteCategories.js +++ b/src/components/releaseNoteCategories.js @@ -10,9 +10,15 @@ if (!categories) { return (
+{/* If there is one category display the singular form. */ + categories.length === 1 + ?

Category:

+ :

Categories:

+} + {categories.map((category, index) => (
-

{category}

+

{category}

)) } diff --git a/src/templates/releaseNote.js b/src/templates/releaseNote.js index 9e3334dee6..ed531080af 100644 --- a/src/templates/releaseNote.js +++ b/src/templates/releaseNote.js @@ -18,6 +18,7 @@ import SEO from "../layout/seo" import Enablement from "../components/enablement" import Color from "../components/color.js" import Download from "../components/download" +import ReleaseNoteCategories from "../components/releaseNoteCategories" import { @@ -44,7 +45,7 @@ const shortcodes = { // Set container width for search and main content. const containerWidth = "standard" -class ChangelogTemplate extends React.Component { +class ReleaseNoteTemplate extends React.Component { componentDidMount() { $("[data-toggle=popover]").popover({ trigger: "click", @@ -88,6 +89,7 @@ class ChangelogTemplate extends React.Component { Pantheon Release Notes

{node.frontmatter.title}

+
@@ -99,6 +101,7 @@ class ChangelogTemplate extends React.Component {
+ {node.body} @@ -106,22 +109,7 @@ class ChangelogTemplate extends React.Component {
- -
@@ -129,7 +117,7 @@ class ChangelogTemplate extends React.Component { } } -export default ChangelogTemplate +export default ReleaseNoteTemplate export const pageQuery = graphql` query ChangelogBySlug($slug: String!) { @@ -140,7 +128,9 @@ export const pageQuery = graphql` slug } frontmatter { - title + title, + published_date, + categories } } } diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 221a963227..0493e38619 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -121,7 +121,6 @@ class ChangelogsTemplate extends React.Component { -
HELLO
Date: Thu, 14 Dec 2023 17:42:37 -0600 Subject: [PATCH 016/174] listing all --- src/templates/releaseNotesListing.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 0493e38619..f4351c3ffb 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -57,7 +57,7 @@ const shortcodes = { const containerWidth = "standard" // Combined changelog template. -class ChangelogsTemplate extends React.Component { +class ReleaseNotesListingTemplate extends React.Component { componentDidMount() { $("[data-toggle=popover]").popover({ trigger: "click", @@ -159,19 +159,16 @@ class ChangelogsTemplate extends React.Component { } } -export default ChangelogsTemplate +export default ReleaseNotesListingTemplate /* todo remove draft filter from query */ export const pageQuery = graphql` - query Changelogs($skip: Int!, $limit: Int!) { + query Changelogs { allMdx( filter: { fileAbsolutePath: { regex: "/releasenotes/" } - frontmatter: { draft: { ne: true } } } sort: { fields: [fileAbsolutePath], order: DESC } - skip: $skip - limit: $limit ) { edges { node { From b2319aaebf0f7d86aa5736218c7cae98663caff2 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 18:09:14 -0600 Subject: [PATCH 017/174] category listing --- gatsby-node.js | 37 ++-- .../2023-12-31-new-release-notes-structure.md | 2 +- src/components/releaseNoteCategories.js | 11 +- src/templates/releaseNotesListing.js | 3 +- .../releaseNotesListingByCategory.js | 190 ++++++++++++++++++ 5 files changed, 226 insertions(+), 17 deletions(-) create mode 100644 src/templates/releaseNotesListingByCategory.js diff --git a/gatsby-node.js b/gatsby-node.js index d74e541f3b..fca7cc8428 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -406,27 +406,36 @@ exports.createPages = ({ graphql, actions }) => { }) }) - // Create Release Note pagination. - const ReleaseNotesPerPage = 6 - const numberOfReleaseNotePages = Math.ceil(releaseNotes.length / ReleaseNotesPerPage) - Array.from({ length: numberOfReleaseNotePages }).forEach((_, i) => { - const currentPage = i + 1; - const next = currentPage === 1 ? null : (currentPage === 2 ? `/release-notes/` : `/release-notes/page/${currentPage - 1}`); - const previous = currentPage < numberOfReleaseNotePages ? `/release-notes/page/${currentPage + 1}` : null; + // Create release notes without pagination. At a later date, we may want to add pagination. + // And can reused the code above. createPage({ - path: i === 0 ? `/release-notes/` : `/release-notes/page/${i + 1}`, + path: `/release-notes/`, component: path.resolve("./src/templates/releaseNotesListing.js"), + }) + + const allowedReleaseNoteCategories = { + "security": { + "Display Name": "Security", + "color": "red" + }, + "documentation": { + "Display Name": "Documentation", + "color": "purple" + }, + }; + + // Loop through all allowed categories and create a page for each one. + Object.keys(allowedReleaseNoteCategories).forEach((category) => { + createPage({ + path: `/release-notes/${category}`, + component: path.resolve("./src/templates/releaseNotesListingByCategory.js"), context: { - limit: ReleaseNotesPerPage, - skip: i * ReleaseNotesPerPage, - numberOfReleaseNotePages, - currentPage, - previous, - next + category: category, }, }) }) + // Create contributor pages. const contributors = result.data.allContributorYaml.edges contributors.forEach(contributor => { diff --git a/source/releasenotes/2023-12-31-new-release-notes-structure.md b/source/releasenotes/2023-12-31-new-release-notes-structure.md index 441ba884eb..4dc4cb5381 100644 --- a/source/releasenotes/2023-12-31-new-release-notes-structure.md +++ b/source/releasenotes/2023-12-31-new-release-notes-structure.md @@ -1,7 +1,7 @@ --- title: New Release Notes Structure published_date: "2023-12-31" -categories: [security, anothercat] +categories: [security, documentation] --- For nearly a decade, we have published a monthly "changelog" here within our Documentation site that summarizes significant changes to the platform. diff --git a/src/components/releaseNoteCategories.js b/src/components/releaseNoteCategories.js index e3135e517e..d9315937eb 100644 --- a/src/components/releaseNoteCategories.js +++ b/src/components/releaseNoteCategories.js @@ -1,4 +1,5 @@ import React from "react" +import { Link } from "gatsby" const ReleaseNoteCategories = ({categories}) => { @@ -18,7 +19,15 @@ if (!categories) { {categories.map((category, index) => (
-

{category}

+ + +

{category}

+ + + +
)) } diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index f4351c3ffb..ec5927e288 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -163,10 +163,11 @@ export default ReleaseNotesListingTemplate /* todo remove draft filter from query */ export const pageQuery = graphql` - query Changelogs { + query Changelogs($category: String!) { allMdx( filter: { fileAbsolutePath: { regex: "/releasenotes/" } + frontmatter: { categories: {eq: $category}} } sort: { fields: [fileAbsolutePath], order: DESC } ) { diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js new file mode 100644 index 0000000000..e7436942b4 --- /dev/null +++ b/src/templates/releaseNotesListingByCategory.js @@ -0,0 +1,190 @@ +import React from "react" +import { graphql, Link } from "gatsby" +import { MDXRenderer } from "gatsby-plugin-mdx" +import { MDXProvider } from "@mdx-js/react" + +import Layout from "../layout/layout" +import NavButtons from "../components/navButtons" +import Callout from "../components/callout" +import Alert from "../components/alert" +import Accordion from "../components/accordion" +import ExternalLink from "../components/externalLink" +import Popover from "../components/popover" +import TabList from "../components/tabList" +import Tab from "../components/tab" +import TOC from "../components/toc" +import Card from "../components/card" +import CardGroup from "../components/cardGroup" +import SEO from "../layout/seo" +import Enablement from "../components/enablement" +import Color from "../components/color.js" +import Download from "../components/download" +import ReleaseNoteCategories from "../components/releaseNoteCategories" + + +import { + headline1, + headline2, + headline3, + headline4, +} from "../components/releaseHeadlines" + +import { + Container, + Icon, + Pager, +} from "@pantheon-systems/pds-toolkit-react" + +const shortcodes = { + Callout, + Alert, + Accordion, + ExternalLink, + Popover, + TabList, + Tab, + Card, + CardGroup, + Enablement, + Color, + Download, + h1: headline2, + h2: headline3, + h3: headline4, +} + +// Set container width for search and main content. +const containerWidth = "standard" + +// Combined changelog template. +class ReleaseNotesListingByCategoryTemplate extends React.Component { + componentDidMount() { + $("[data-toggle=popover]").popover({ + trigger: "click", + }) + + $("body").on("click", function (e) { + $('[data-toggle="popover"]').each(function () { + if ( + !$(this).is(e.target) && + $(this).has(e.target).length === 0 && + $(".popover").has(e.target).length === 0 + ) { + $(this).popover("hide") + } + }) + }) + + $("body").keyup(function (e) { + $('[data-toggle="popover"]').each(function () { + if (event.which === 27) { + $(this).popover("hide") + } + }) + }) + } + + render() { + const changelogs = this.props.data.allMdx.edges + console.log(changelogs) + console.log(changelogs[0].node.frontmatter.categories) + return ( + + +
+ +

Pantheon Release Notes

+
+
+
+
+
+ {changelogs.map((changelog) => ( + + + + +

+ {changelog.node.frontmatter.title} +

+ + + Todo, transform to date format

+ {changelog.node.frontmatter.published_date} + + Maybe + + + + + {changelog.node.body} + +
+ ))} +
+
+
+ + + +
+ + ) + } +} + +export default ReleaseNotesListingByCategoryTemplate + +/* todo remove draft filter from query */ +export const pageQuery = graphql` + query Changelogs($category: String!) { + allMdx( + filter: { + fileAbsolutePath: { regex: "/releasenotes/" } + frontmatter: { categories: {eq: $category}} + } + sort: { fields: [fileAbsolutePath], order: DESC } + ) { + edges { + node { + id + body + frontmatter { + title, + published_date, + categories, + } + fields { + slug + } + } + } + } + } +` From 3e0d46c137390aba12bd765212d9600f9e9c2ba8 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 14 Dec 2023 18:15:32 -0600 Subject: [PATCH 018/174] moar templating --- src/templates/releaseNotesListing.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index ec5927e288..f4351c3ffb 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -163,11 +163,10 @@ export default ReleaseNotesListingTemplate /* todo remove draft filter from query */ export const pageQuery = graphql` - query Changelogs($category: String!) { + query Changelogs { allMdx( filter: { fileAbsolutePath: { regex: "/releasenotes/" } - frontmatter: { categories: {eq: $category}} } sort: { fields: [fileAbsolutePath], order: DESC } ) { From 016065f585761f3baa9c6f7522a80ccdde38601e Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 18 Dec 2023 13:04:20 -0600 Subject: [PATCH 019/174] getting tests passing --- src/templates/releaseNotesListing.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index f4351c3ffb..11d6526236 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -91,8 +91,8 @@ class ReleaseNotesListingTemplate extends React.Component { return (
From 7e7e457750af69e64053716e8942b68fd5d76118 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Mon, 18 Dec 2023 13:04:43 -0600 Subject: [PATCH 020/174] adding playwright examples --- tests/.github/workflows/playwright.yml | 27 ++ tests/.gitignore | 5 + tests/package-lock.json | 91 +++++ tests/package.json | 14 + tests/playwright.config.ts | 77 ++++ tests/tests-examples/demo-todo-app.spec.ts | 437 +++++++++++++++++++++ tests/tests/example.spec.ts | 19 + 7 files changed, 670 insertions(+) create mode 100644 tests/.github/workflows/playwright.yml create mode 100644 tests/.gitignore create mode 100644 tests/package-lock.json create mode 100644 tests/package.json create mode 100644 tests/playwright.config.ts create mode 100644 tests/tests-examples/demo-todo-app.spec.ts create mode 100644 tests/tests/example.spec.ts diff --git a/tests/.github/workflows/playwright.yml b/tests/.github/workflows/playwright.yml new file mode 100644 index 0000000000..90b6b700d4 --- /dev/null +++ b/tests/.github/workflows/playwright.yml @@ -0,0 +1,27 @@ +name: Playwright Tests +on: + push: + branches: [ main, master ] + pull_request: + branches: [ main, master ] +jobs: + test: + timeout-minutes: 60 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 18 + - name: Install dependencies + run: npm ci + - name: Install Playwright Browsers + run: npx playwright install --with-deps + - name: Run Playwright tests + run: npx playwright test + - uses: actions/upload-artifact@v3 + if: always() + with: + name: playwright-report + path: playwright-report/ + retention-days: 30 diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 0000000000..68c5d18f00 --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/tests/package-lock.json b/tests/package-lock.json new file mode 100644 index 0000000000..36ee107cd4 --- /dev/null +++ b/tests/package-lock.json @@ -0,0 +1,91 @@ +{ + "name": "tests", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "tests", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "@playwright/test": "^1.40.1", + "@types/node": "^20.10.5" + } + }, + "node_modules/@playwright/test": { + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.1.tgz", + "integrity": "sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==", + "dev": true, + "dependencies": { + "playwright": "1.40.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@types/node": { + "version": "20.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", + "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/playwright": { + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz", + "integrity": "sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==", + "dev": true, + "dependencies": { + "playwright-core": "1.40.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz", + "integrity": "sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==", + "dev": true, + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + } + } +} diff --git a/tests/package.json b/tests/package.json new file mode 100644 index 0000000000..9d001443e4 --- /dev/null +++ b/tests/package.json @@ -0,0 +1,14 @@ +{ + "name": "tests", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": {}, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@playwright/test": "^1.40.1", + "@types/node": "^20.10.5" + } +} diff --git a/tests/playwright.config.ts b/tests/playwright.config.ts new file mode 100644 index 0000000000..301801ee1d --- /dev/null +++ b/tests/playwright.config.ts @@ -0,0 +1,77 @@ +import { defineConfig, devices } from '@playwright/test'; + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// require('dotenv').config(); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: './tests', + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'html', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + // baseURL: 'http://127.0.0.1:3000', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + + /* Test against mobile viewports. */ + // { + // name: 'Mobile Chrome', + // use: { ...devices['Pixel 5'] }, + // }, + // { + // name: 'Mobile Safari', + // use: { ...devices['iPhone 12'] }, + // }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { ...devices['Desktop Edge'], channel: 'msedge' }, + // }, + // { + // name: 'Google Chrome', + // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, + // }, + ], + + /* Run your local dev server before starting the tests */ + // webServer: { + // command: 'npm run start', + // url: 'http://127.0.0.1:3000', + // reuseExistingServer: !process.env.CI, + // }, +}); diff --git a/tests/tests-examples/demo-todo-app.spec.ts b/tests/tests-examples/demo-todo-app.spec.ts new file mode 100644 index 0000000000..2fd6016fe8 --- /dev/null +++ b/tests/tests-examples/demo-todo-app.spec.ts @@ -0,0 +1,437 @@ +import { test, expect, type Page } from '@playwright/test'; + +test.beforeEach(async ({ page }) => { + await page.goto('https://demo.playwright.dev/todomvc'); +}); + +const TODO_ITEMS = [ + 'buy some cheese', + 'feed the cat', + 'book a doctors appointment' +]; + +test.describe('New Todo', () => { + test('should allow me to add todo items', async ({ page }) => { + // create a new todo locator + const newTodo = page.getByPlaceholder('What needs to be done?'); + + // Create 1st todo. + await newTodo.fill(TODO_ITEMS[0]); + await newTodo.press('Enter'); + + // Make sure the list only has one todo item. + await expect(page.getByTestId('todo-title')).toHaveText([ + TODO_ITEMS[0] + ]); + + // Create 2nd todo. + await newTodo.fill(TODO_ITEMS[1]); + await newTodo.press('Enter'); + + // Make sure the list now has two todo items. + await expect(page.getByTestId('todo-title')).toHaveText([ + TODO_ITEMS[0], + TODO_ITEMS[1] + ]); + + await checkNumberOfTodosInLocalStorage(page, 2); + }); + + test('should clear text input field when an item is added', async ({ page }) => { + // create a new todo locator + const newTodo = page.getByPlaceholder('What needs to be done?'); + + // Create one todo item. + await newTodo.fill(TODO_ITEMS[0]); + await newTodo.press('Enter'); + + // Check that input is empty. + await expect(newTodo).toBeEmpty(); + await checkNumberOfTodosInLocalStorage(page, 1); + }); + + test('should append new items to the bottom of the list', async ({ page }) => { + // Create 3 items. + await createDefaultTodos(page); + + // create a todo count locator + const todoCount = page.getByTestId('todo-count') + + // Check test using different methods. + await expect(page.getByText('3 items left')).toBeVisible(); + await expect(todoCount).toHaveText('3 items left'); + await expect(todoCount).toContainText('3'); + await expect(todoCount).toHaveText(/3/); + + // Check all items in one call. + await expect(page.getByTestId('todo-title')).toHaveText(TODO_ITEMS); + await checkNumberOfTodosInLocalStorage(page, 3); + }); +}); + +test.describe('Mark all as completed', () => { + test.beforeEach(async ({ page }) => { + await createDefaultTodos(page); + await checkNumberOfTodosInLocalStorage(page, 3); + }); + + test.afterEach(async ({ page }) => { + await checkNumberOfTodosInLocalStorage(page, 3); + }); + + test('should allow me to mark all items as completed', async ({ page }) => { + // Complete all todos. + await page.getByLabel('Mark all as complete').check(); + + // Ensure all todos have 'completed' class. + await expect(page.getByTestId('todo-item')).toHaveClass(['completed', 'completed', 'completed']); + await checkNumberOfCompletedTodosInLocalStorage(page, 3); + }); + + test('should allow me to clear the complete state of all items', async ({ page }) => { + const toggleAll = page.getByLabel('Mark all as complete'); + // Check and then immediately uncheck. + await toggleAll.check(); + await toggleAll.uncheck(); + + // Should be no completed classes. + await expect(page.getByTestId('todo-item')).toHaveClass(['', '', '']); + }); + + test('complete all checkbox should update state when items are completed / cleared', async ({ page }) => { + const toggleAll = page.getByLabel('Mark all as complete'); + await toggleAll.check(); + await expect(toggleAll).toBeChecked(); + await checkNumberOfCompletedTodosInLocalStorage(page, 3); + + // Uncheck first todo. + const firstTodo = page.getByTestId('todo-item').nth(0); + await firstTodo.getByRole('checkbox').uncheck(); + + // Reuse toggleAll locator and make sure its not checked. + await expect(toggleAll).not.toBeChecked(); + + await firstTodo.getByRole('checkbox').check(); + await checkNumberOfCompletedTodosInLocalStorage(page, 3); + + // Assert the toggle all is checked again. + await expect(toggleAll).toBeChecked(); + }); +}); + +test.describe('Item', () => { + + test('should allow me to mark items as complete', async ({ page }) => { + // create a new todo locator + const newTodo = page.getByPlaceholder('What needs to be done?'); + + // Create two items. + for (const item of TODO_ITEMS.slice(0, 2)) { + await newTodo.fill(item); + await newTodo.press('Enter'); + } + + // Check first item. + const firstTodo = page.getByTestId('todo-item').nth(0); + await firstTodo.getByRole('checkbox').check(); + await expect(firstTodo).toHaveClass('completed'); + + // Check second item. + const secondTodo = page.getByTestId('todo-item').nth(1); + await expect(secondTodo).not.toHaveClass('completed'); + await secondTodo.getByRole('checkbox').check(); + + // Assert completed class. + await expect(firstTodo).toHaveClass('completed'); + await expect(secondTodo).toHaveClass('completed'); + }); + + test('should allow me to un-mark items as complete', async ({ page }) => { + // create a new todo locator + const newTodo = page.getByPlaceholder('What needs to be done?'); + + // Create two items. + for (const item of TODO_ITEMS.slice(0, 2)) { + await newTodo.fill(item); + await newTodo.press('Enter'); + } + + const firstTodo = page.getByTestId('todo-item').nth(0); + const secondTodo = page.getByTestId('todo-item').nth(1); + const firstTodoCheckbox = firstTodo.getByRole('checkbox'); + + await firstTodoCheckbox.check(); + await expect(firstTodo).toHaveClass('completed'); + await expect(secondTodo).not.toHaveClass('completed'); + await checkNumberOfCompletedTodosInLocalStorage(page, 1); + + await firstTodoCheckbox.uncheck(); + await expect(firstTodo).not.toHaveClass('completed'); + await expect(secondTodo).not.toHaveClass('completed'); + await checkNumberOfCompletedTodosInLocalStorage(page, 0); + }); + + test('should allow me to edit an item', async ({ page }) => { + await createDefaultTodos(page); + + const todoItems = page.getByTestId('todo-item'); + const secondTodo = todoItems.nth(1); + await secondTodo.dblclick(); + await expect(secondTodo.getByRole('textbox', { name: 'Edit' })).toHaveValue(TODO_ITEMS[1]); + await secondTodo.getByRole('textbox', { name: 'Edit' }).fill('buy some sausages'); + await secondTodo.getByRole('textbox', { name: 'Edit' }).press('Enter'); + + // Explicitly assert the new text value. + await expect(todoItems).toHaveText([ + TODO_ITEMS[0], + 'buy some sausages', + TODO_ITEMS[2] + ]); + await checkTodosInLocalStorage(page, 'buy some sausages'); + }); +}); + +test.describe('Editing', () => { + test.beforeEach(async ({ page }) => { + await createDefaultTodos(page); + await checkNumberOfTodosInLocalStorage(page, 3); + }); + + test('should hide other controls when editing', async ({ page }) => { + const todoItem = page.getByTestId('todo-item').nth(1); + await todoItem.dblclick(); + await expect(todoItem.getByRole('checkbox')).not.toBeVisible(); + await expect(todoItem.locator('label', { + hasText: TODO_ITEMS[1], + })).not.toBeVisible(); + await checkNumberOfTodosInLocalStorage(page, 3); + }); + + test('should save edits on blur', async ({ page }) => { + const todoItems = page.getByTestId('todo-item'); + await todoItems.nth(1).dblclick(); + await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).fill('buy some sausages'); + await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).dispatchEvent('blur'); + + await expect(todoItems).toHaveText([ + TODO_ITEMS[0], + 'buy some sausages', + TODO_ITEMS[2], + ]); + await checkTodosInLocalStorage(page, 'buy some sausages'); + }); + + test('should trim entered text', async ({ page }) => { + const todoItems = page.getByTestId('todo-item'); + await todoItems.nth(1).dblclick(); + await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).fill(' buy some sausages '); + await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).press('Enter'); + + await expect(todoItems).toHaveText([ + TODO_ITEMS[0], + 'buy some sausages', + TODO_ITEMS[2], + ]); + await checkTodosInLocalStorage(page, 'buy some sausages'); + }); + + test('should remove the item if an empty text string was entered', async ({ page }) => { + const todoItems = page.getByTestId('todo-item'); + await todoItems.nth(1).dblclick(); + await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).fill(''); + await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).press('Enter'); + + await expect(todoItems).toHaveText([ + TODO_ITEMS[0], + TODO_ITEMS[2], + ]); + }); + + test('should cancel edits on escape', async ({ page }) => { + const todoItems = page.getByTestId('todo-item'); + await todoItems.nth(1).dblclick(); + await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).fill('buy some sausages'); + await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).press('Escape'); + await expect(todoItems).toHaveText(TODO_ITEMS); + }); +}); + +test.describe('Counter', () => { + test('should display the current number of todo items', async ({ page }) => { + // create a new todo locator + const newTodo = page.getByPlaceholder('What needs to be done?'); + + // create a todo count locator + const todoCount = page.getByTestId('todo-count') + + await newTodo.fill(TODO_ITEMS[0]); + await newTodo.press('Enter'); + + await expect(todoCount).toContainText('1'); + + await newTodo.fill(TODO_ITEMS[1]); + await newTodo.press('Enter'); + await expect(todoCount).toContainText('2'); + + await checkNumberOfTodosInLocalStorage(page, 2); + }); +}); + +test.describe('Clear completed button', () => { + test.beforeEach(async ({ page }) => { + await createDefaultTodos(page); + }); + + test('should display the correct text', async ({ page }) => { + await page.locator('.todo-list li .toggle').first().check(); + await expect(page.getByRole('button', { name: 'Clear completed' })).toBeVisible(); + }); + + test('should remove completed items when clicked', async ({ page }) => { + const todoItems = page.getByTestId('todo-item'); + await todoItems.nth(1).getByRole('checkbox').check(); + await page.getByRole('button', { name: 'Clear completed' }).click(); + await expect(todoItems).toHaveCount(2); + await expect(todoItems).toHaveText([TODO_ITEMS[0], TODO_ITEMS[2]]); + }); + + test('should be hidden when there are no items that are completed', async ({ page }) => { + await page.locator('.todo-list li .toggle').first().check(); + await page.getByRole('button', { name: 'Clear completed' }).click(); + await expect(page.getByRole('button', { name: 'Clear completed' })).toBeHidden(); + }); +}); + +test.describe('Persistence', () => { + test('should persist its data', async ({ page }) => { + // create a new todo locator + const newTodo = page.getByPlaceholder('What needs to be done?'); + + for (const item of TODO_ITEMS.slice(0, 2)) { + await newTodo.fill(item); + await newTodo.press('Enter'); + } + + const todoItems = page.getByTestId('todo-item'); + const firstTodoCheck = todoItems.nth(0).getByRole('checkbox'); + await firstTodoCheck.check(); + await expect(todoItems).toHaveText([TODO_ITEMS[0], TODO_ITEMS[1]]); + await expect(firstTodoCheck).toBeChecked(); + await expect(todoItems).toHaveClass(['completed', '']); + + // Ensure there is 1 completed item. + await checkNumberOfCompletedTodosInLocalStorage(page, 1); + + // Now reload. + await page.reload(); + await expect(todoItems).toHaveText([TODO_ITEMS[0], TODO_ITEMS[1]]); + await expect(firstTodoCheck).toBeChecked(); + await expect(todoItems).toHaveClass(['completed', '']); + }); +}); + +test.describe('Routing', () => { + test.beforeEach(async ({ page }) => { + await createDefaultTodos(page); + // make sure the app had a chance to save updated todos in storage + // before navigating to a new view, otherwise the items can get lost :( + // in some frameworks like Durandal + await checkTodosInLocalStorage(page, TODO_ITEMS[0]); + }); + + test('should allow me to display active items', async ({ page }) => { + const todoItem = page.getByTestId('todo-item'); + await page.getByTestId('todo-item').nth(1).getByRole('checkbox').check(); + + await checkNumberOfCompletedTodosInLocalStorage(page, 1); + await page.getByRole('link', { name: 'Active' }).click(); + await expect(todoItem).toHaveCount(2); + await expect(todoItem).toHaveText([TODO_ITEMS[0], TODO_ITEMS[2]]); + }); + + test('should respect the back button', async ({ page }) => { + const todoItem = page.getByTestId('todo-item'); + await page.getByTestId('todo-item').nth(1).getByRole('checkbox').check(); + + await checkNumberOfCompletedTodosInLocalStorage(page, 1); + + await test.step('Showing all items', async () => { + await page.getByRole('link', { name: 'All' }).click(); + await expect(todoItem).toHaveCount(3); + }); + + await test.step('Showing active items', async () => { + await page.getByRole('link', { name: 'Active' }).click(); + }); + + await test.step('Showing completed items', async () => { + await page.getByRole('link', { name: 'Completed' }).click(); + }); + + await expect(todoItem).toHaveCount(1); + await page.goBack(); + await expect(todoItem).toHaveCount(2); + await page.goBack(); + await expect(todoItem).toHaveCount(3); + }); + + test('should allow me to display completed items', async ({ page }) => { + await page.getByTestId('todo-item').nth(1).getByRole('checkbox').check(); + await checkNumberOfCompletedTodosInLocalStorage(page, 1); + await page.getByRole('link', { name: 'Completed' }).click(); + await expect(page.getByTestId('todo-item')).toHaveCount(1); + }); + + test('should allow me to display all items', async ({ page }) => { + await page.getByTestId('todo-item').nth(1).getByRole('checkbox').check(); + await checkNumberOfCompletedTodosInLocalStorage(page, 1); + await page.getByRole('link', { name: 'Active' }).click(); + await page.getByRole('link', { name: 'Completed' }).click(); + await page.getByRole('link', { name: 'All' }).click(); + await expect(page.getByTestId('todo-item')).toHaveCount(3); + }); + + test('should highlight the currently applied filter', async ({ page }) => { + await expect(page.getByRole('link', { name: 'All' })).toHaveClass('selected'); + + //create locators for active and completed links + const activeLink = page.getByRole('link', { name: 'Active' }); + const completedLink = page.getByRole('link', { name: 'Completed' }); + await activeLink.click(); + + // Page change - active items. + await expect(activeLink).toHaveClass('selected'); + await completedLink.click(); + + // Page change - completed items. + await expect(completedLink).toHaveClass('selected'); + }); +}); + +async function createDefaultTodos(page: Page) { + // create a new todo locator + const newTodo = page.getByPlaceholder('What needs to be done?'); + + for (const item of TODO_ITEMS) { + await newTodo.fill(item); + await newTodo.press('Enter'); + } +} + +async function checkNumberOfTodosInLocalStorage(page: Page, expected: number) { + return await page.waitForFunction(e => { + return JSON.parse(localStorage['react-todos']).length === e; + }, expected); +} + +async function checkNumberOfCompletedTodosInLocalStorage(page: Page, expected: number) { + return await page.waitForFunction(e => { + return JSON.parse(localStorage['react-todos']).filter((todo: any) => todo.completed).length === e; + }, expected); +} + +async function checkTodosInLocalStorage(page: Page, title: string) { + return await page.waitForFunction(t => { + return JSON.parse(localStorage['react-todos']).map((todo: any) => todo.title).includes(t); + }, title); +} diff --git a/tests/tests/example.spec.ts b/tests/tests/example.spec.ts new file mode 100644 index 0000000000..590f33f96c --- /dev/null +++ b/tests/tests/example.spec.ts @@ -0,0 +1,19 @@ +import { test, expect } from '@playwright/test'; + +test('has title', async ({ page }) => { + await page.goto('http://localhost:8000/release-notes'); + + // Expect a title "to contain" a substring. + await expect(page).toHaveTitle(/Pantheon Release Notes/); +}); +/* +test('get started link', async ({ page }) => { + await page.goto('https://playwright.dev/'); + + // Click the get started link. + await page.getByRole('link', { name: 'Get started' }).click(); + + // Expects page to have a heading with the name of Installation. + await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible(); +}); +*/ From 3c1ea9e2c5f83020a56433e0c0f8f0dae65c6f46 Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Thu, 21 Dec 2023 15:19:36 -0600 Subject: [PATCH 021/174] Add first pass at script to auto create releasenotes based on past changelog files --- .../create-release-notes-from-changelog-file.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 source/releasenotes/create-release-notes-from-changelog-file.sh diff --git a/source/releasenotes/create-release-notes-from-changelog-file.sh b/source/releasenotes/create-release-notes-from-changelog-file.sh new file mode 100644 index 0000000000..1b1417f7a4 --- /dev/null +++ b/source/releasenotes/create-release-notes-from-changelog-file.sh @@ -0,0 +1,14 @@ +#!/bin/bash +FILENAME=2023-11-01-November.md +DATE_PREFIX+=("${FILENAME:0:10}") +while IFS= read -r line; do + if [[ $line =~ "###" ]]; then + RELEASE_NOTE_FILENAME=("${line:4}") + RELEASE_NOTE_FILENAME="$(echo $DATE_PREFIX $RELEASE_NOTE_FILENAME| tr ' ' '-'| tr '.' '-'| tr '[:upper:]' '[:lower:]').md" + echo "---" >> ./releasenotes/$RELEASE_NOTE_FILENAME + echo "title: "${line:4} >> ./releasenotes/$RELEASE_NOTE_FILENAME + echo "published_date: "'"'$DATE_PREFIX'"' >> ./releasenotes/$RELEASE_NOTE_FILENAME + echo "categories: []" >> ./releasenotes/$RELEASE_NOTE_FILENAME + echo "---" >> ./releasenotes/$RELEASE_NOTE_FILENAME + fi +done <$FILENAME From 08ad2405a82433aa33eee0226ce52b248fb614fd Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Thu, 21 Dec 2023 21:55:34 -0600 Subject: [PATCH 022/174] Backfill changelog entries as release notes Sep - Dec 2023 --- ...9-01-early-access-customer-scheduled-jobs.md | 8 ++++++++ ...early-access-streamlined-user-offboarding.md | 8 ++++++++ .../2023-09-01-front-end-sites-enhancements.md | 17 +++++++++++++++++ .../releasenotes/2023-09-01-new-php-defaults.md | 8 ++++++++ .../releasenotes/2023-09-01-object-cache-pro.md | 8 ++++++++ ...anced-page-cache-wordpress-plugin-updates.md | 8 ++++++++ .../2023-09-01-php-security-updates.md | 8 ++++++++ ...01-solr-search-for-wordpress-2-5-0-update.md | 10 ++++++++++ ...01-wordpress-multisite-search-and-replace.md | 10 ++++++++++ ...2023-10-01-design-system-integration-docs.md | 8 ++++++++ .../2023-10-01-drupal-security-update.md | 8 ++++++++ .../2023-10-01-front-end-sites-settings.md | 7 +++++++ ...-2-updated-to-their-latest-patch-releases.md | 6 ++++++ .../2023-10-01-php-memory-limits-updates.md | 8 ++++++++ ...lity-cache-hit-ratio-increased-24-percent.md | 6 ++++++ .../2023-11-01-composer-logs-visibility.md | 6 ++++++ .../releasenotes/2023-11-01-faster-backups.md | 6 ++++++ ...-sites-build-caching-and-node-js-versions.md | 10 ++++++++++ .../2023-11-01-streamlined-user-offboarding.md | 10 ++++++++++ ...-01-vpat-issued-for-product-accessibility.md | 8 ++++++++ ...-wordpress-native-php-sessions-1-4-update.md | 8 ++++++++ ...from-dashboard-for-streamlined-management.md | 8 ++++++++ ...e-with-front-end-sites-drupal-starter-kit.md | 13 +++++++++++++ ...ed-monitoring-for-high-volume-directories.md | 6 ++++++ ...sures-for-uninterrupted-webops-experience.md | 12 ++++++++++++ ...6-4-2-now-available-for-enhanced-security.md | 6 ++++++ 26 files changed, 221 insertions(+) create mode 100644 source/releasenotes/2023-09-01-early-access-customer-scheduled-jobs.md create mode 100644 source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md create mode 100644 source/releasenotes/2023-09-01-front-end-sites-enhancements.md create mode 100644 source/releasenotes/2023-09-01-new-php-defaults.md create mode 100644 source/releasenotes/2023-09-01-object-cache-pro.md create mode 100644 source/releasenotes/2023-09-01-pantheon-advanced-page-cache-wordpress-plugin-updates.md create mode 100644 source/releasenotes/2023-09-01-php-security-updates.md create mode 100644 source/releasenotes/2023-09-01-solr-search-for-wordpress-2-5-0-update.md create mode 100644 source/releasenotes/2023-09-01-wordpress-multisite-search-and-replace.md create mode 100644 source/releasenotes/2023-10-01-design-system-integration-docs.md create mode 100644 source/releasenotes/2023-10-01-drupal-security-update.md create mode 100644 source/releasenotes/2023-10-01-front-end-sites-settings.md create mode 100644 source/releasenotes/2023-10-01-php-8-1-and-8-2-updated-to-their-latest-patch-releases.md create mode 100644 source/releasenotes/2023-10-01-php-memory-limits-updates.md create mode 100644 source/releasenotes/2023-10-01-wpml-improved-edge-caching-compatibility-cache-hit-ratio-increased-24-percent.md create mode 100644 source/releasenotes/2023-11-01-composer-logs-visibility.md create mode 100644 source/releasenotes/2023-11-01-faster-backups.md create mode 100644 source/releasenotes/2023-11-01-front-end-sites-build-caching-and-node-js-versions.md create mode 100644 source/releasenotes/2023-11-01-streamlined-user-offboarding.md create mode 100644 source/releasenotes/2023-11-01-vpat-issued-for-product-accessibility.md create mode 100644 source/releasenotes/2023-11-01-wordpress-native-php-sessions-1-4-update.md create mode 100644 source/releasenotes/2023-12-01-delete-front-end-sites-multidevs-directly-from-dashboard-for-streamlined-management.md create mode 100644 source/releasenotes/2023-12-01-elevated-experience-with-front-end-sites-drupal-starter-kit.md create mode 100644 source/releasenotes/2023-12-01-optimized-monitoring-for-high-volume-directories.md create mode 100644 source/releasenotes/2023-12-01-upgraded-security-measures-for-uninterrupted-webops-experience.md create mode 100644 source/releasenotes/2023-12-01-wordpress-6-4-2-now-available-for-enhanced-security.md diff --git a/source/releasenotes/2023-09-01-early-access-customer-scheduled-jobs.md b/source/releasenotes/2023-09-01-early-access-customer-scheduled-jobs.md new file mode 100644 index 0000000000..f1b6e3f088 --- /dev/null +++ b/source/releasenotes/2023-09-01-early-access-customer-scheduled-jobs.md @@ -0,0 +1,8 @@ +--- +title: "Early Access: Customer Scheduled Jobs" +published_date: "2023-09-01" +categories: [new-feature, tools-apis] +--- +[The Terminus Scheduled Jobs Plugin](/customer-scheduled-cron-jobs) allows you to schedule and automate specific cron jobs according to site requirements without affecting performance. + +You can specify the desired frequency (e.g., daily, weekly, monthly, hourly), and the actions to be performed. The system then executes the scheduled jobs automatically based on the provided instructions. Helps with long running jobs by granting a total budget of 300 mins (in a 24 hr period) to run jobs. diff --git a/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md b/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md new file mode 100644 index 0000000000..35393f27de --- /dev/null +++ b/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md @@ -0,0 +1,8 @@ +--- +title: "Early Access: Streamlined User Offboarding" +published_date: "2023-09-01" +categories: [account-management, user-interface] +--- +Helps Workspace Admins more effectively manage user access by providing the ability to offboard users from multiple sites in a single click. + +For more information, see Pantheon’s documentation on [Workspace Offboarding](/workspace-offboarding). Or join the [#WordPress Slack Channel](http://slackin.pantheon.io) to connect with other Pantheon customers & super-users. diff --git a/source/releasenotes/2023-09-01-front-end-sites-enhancements.md b/source/releasenotes/2023-09-01-front-end-sites-enhancements.md new file mode 100644 index 0000000000..aa3dbaff01 --- /dev/null +++ b/source/releasenotes/2023-09-01-front-end-sites-enhancements.md @@ -0,0 +1,17 @@ +--- +title: "Front-End Sites Enhancements" +published_date: "2023-09-01" +categories: [front-end-sites, user-interface] +--- +We released version 1.0.5 of the [WP Decoupled Preview plugin](https://wordpress.org/plugins/decoupled-preview/) which contains a bug fix specific to WordPress 6.3. WP Decoupled Preview enables content editors to see their changes in the context of a front-end framework (served through [Pantheon's Front-End Sites](/guides/decoupled/overview)) like Next.js. To try this functionality, request access to Front-End Sites and [follow our tutorial for spinning up our WordPress + Next.js starter](/guides/decoupled/wp-nextjs-frontend-starters). + +Can you tell we want more teams to sign up for Front-End Sites? If you don't yet have access, as of the last month you'll now see callouts in the site creation flow that lead to Front-End Sites Access: + +![Sign up page in the Pantheon dashboard for decoupled Early Access](../images/decoupled/ea-decoupled-signup.png) + +Thanks to efforts in the last month, once you spin up new codebases in Front-End Sites, you will also find: +- Newly improved readme files in your fresh projects. +- Health checks that fire early in the build process if your Front-End Site may be likely to fail due to missing variables for a back-end CMS +- A better navigation and search functionality for [the Decoupled Kit project documentation](https://decoupledkit.pantheon.io/docs). + +Want to chat more about these kinds of sites? Join the [#front-end-frameworks](https://pantheon-community.slack.com/archives/C01DXGMFZFB) Slack Channel. diff --git a/source/releasenotes/2023-09-01-new-php-defaults.md b/source/releasenotes/2023-09-01-new-php-defaults.md new file mode 100644 index 0000000000..83a3e63906 --- /dev/null +++ b/source/releasenotes/2023-09-01-new-php-defaults.md @@ -0,0 +1,8 @@ +--- +title: New PHP Defaults +published_date: "2023-09-01" +categories: [infrastructure, wordpress, drupal, action-required] +--- +Pantheon has pushed an update to WordPress and Drupal 7 core upstreams which sets PHP 8.1 as the new default PHP version, rather than 7.4. + +Please test this core update thoroughly before deploying to the Live environment. If your site requires an older version of PHP, or if you'd like to upgrade to PHP 8.2, see [Pantheon’s documentation on how to manage PHP versions via the pantheon.yml configuration file](/guides/php/php-versions). diff --git a/source/releasenotes/2023-09-01-object-cache-pro.md b/source/releasenotes/2023-09-01-object-cache-pro.md new file mode 100644 index 0000000000..6fe9fb5932 --- /dev/null +++ b/source/releasenotes/2023-09-01-object-cache-pro.md @@ -0,0 +1,8 @@ +--- +title: Object Cache Pro +published_date: "2023-09-01" +categories: [wordpress, action-required, performance, new-feature] +--- +WordPress sites can now leverage an upgraded object caching solution on Pantheon! Object Cache Pro is a highly optimized premium WordPress plugin that integrates with Redis for business class performance. [Find out more about our perspective Object Caching from Steve Persch, Director of Developer Experience](https://pantheon.io/blog/pantheon-includes-object-cache-pro-painless-improved-performance). + +See Pantheon’s documentation for instructions on [how to enable Object Cache Pro](/object-cache/wordpress). Or join the [#WordPress Slack Channel](http://slackin.pantheon.io) to connect with other customers using Object Cache Pro. diff --git a/source/releasenotes/2023-09-01-pantheon-advanced-page-cache-wordpress-plugin-updates.md b/source/releasenotes/2023-09-01-pantheon-advanced-page-cache-wordpress-plugin-updates.md new file mode 100644 index 0000000000..a4c6261767 --- /dev/null +++ b/source/releasenotes/2023-09-01-pantheon-advanced-page-cache-wordpress-plugin-updates.md @@ -0,0 +1,8 @@ +--- +title: Pantheon Advanced Page Cache WordPress Plugin Updates +published_date: "2023-09-01" +categories: [wordpress, action-required, performance] +--- +We released an update for the [Pantheon Advanced Page Cache](https://wordpress.org/plugins/pantheon-advanced-page-cache/) WordPress plugin which adds a filter to allow disabling surrogate keys for posts' taxonomy terms. This can be especially helpful for posts with large numbers of taxonomies (such as WooCommerce products with a large number of global attributes). + +For more information, see [Pantheon documentation](/guides/wordpress-configurations/plugins#disable-surrogate-keys-for-taxonomy-terms). diff --git a/source/releasenotes/2023-09-01-php-security-updates.md b/source/releasenotes/2023-09-01-php-security-updates.md new file mode 100644 index 0000000000..9533b9e382 --- /dev/null +++ b/source/releasenotes/2023-09-01-php-security-updates.md @@ -0,0 +1,8 @@ +--- +title: PHP Security Updates +published_date: "2023-09-01" +categories: [infrastructure, security, action-required] +--- +Pantheon has deployed PHP versions [8.2.9](https://www.php.net/ChangeLog-8.php#8.2.9), [8.1.22](https://www.php.net/ChangeLog-8.php#8.1.22), and [8.0.30](https://www.php.net/ChangeLog-8.php#8.0.30) to customer sites running on the platform. These releases address vulnerabilities disclosed in [CVE-2023-3823](https://nvd.nist.gov/vuln/detail/CVE-2023-3823) and [CVE-2023-3824](https://nvd.nist.gov/vuln/detail/CVE-2023-3824). + +If you are using PHP 8.2, 8.1 or 8.0, there is nothing further that you need to do. If you are still on PHP 7.4 or earlier, though, you should schedule some time to upgrade to a supported version.While the vulnerabilities patched in these latest releases are not reported to affect PHP 7.4, the fact remains that there could be (and probably are) unpatched vulnerabilities in the end-of-life versions. Read more about it in Greg Anderson’s [blog post](https://pantheon.io/blog/php-829-security-release-demonstrates-pantheons-commitment-protecting-your-sites). diff --git a/source/releasenotes/2023-09-01-solr-search-for-wordpress-2-5-0-update.md b/source/releasenotes/2023-09-01-solr-search-for-wordpress-2-5-0-update.md new file mode 100644 index 0000000000..7f187e2bee --- /dev/null +++ b/source/releasenotes/2023-09-01-solr-search-for-wordpress-2-5-0-update.md @@ -0,0 +1,10 @@ +--- +title: "Solr Search for WordPress 2.5.0 Update" +published_date: "2023-09-01" +categories: [wordpress, action-required, performance] +--- +We released an update for the [Solr Search for WordPress plugin](https://wordpress.org/plugins/solr-power/) which disables auto-commit by default and allows cron to push solr commits regularly instead. + +This drastically improves the performance of large sites and avoids 503 errors related to hard committing on every update. This update is recommended for all WordPress sites currently running the plugin. + +You can still enable auto-commit by explicitly setting `SOLRPOWER_DISABLE_AUTOCOMMIT` to `false`. diff --git a/source/releasenotes/2023-09-01-wordpress-multisite-search-and-replace.md b/source/releasenotes/2023-09-01-wordpress-multisite-search-and-replace.md new file mode 100644 index 0000000000..bb525e6e07 --- /dev/null +++ b/source/releasenotes/2023-09-01-wordpress-multisite-search-and-replace.md @@ -0,0 +1,10 @@ +--- +title: WordPress Multisite Search and Replace +published_date: "2023-09-01" +categories: [wordpress, new-feature] +--- +WordPress Multisites can now run automated Search and Replace when cloning the database between environments or spinning up new environments. + +Subdomain Multisites can use a domain map to define the URLs between environments, or auto-convert to a subdirectory Multisite in non-live environments. + +For more information, see Pantheon’s documentation on [Search and Replace](/guides/multisite/search-replace/). Or join the [#WordPress Slack Channel](http://slackin.pantheon.io) to connect with other Pantheon customers & super-users. diff --git a/source/releasenotes/2023-10-01-design-system-integration-docs.md b/source/releasenotes/2023-10-01-design-system-integration-docs.md new file mode 100644 index 0000000000..b5f59313c0 --- /dev/null +++ b/source/releasenotes/2023-10-01-design-system-integration-docs.md @@ -0,0 +1,8 @@ +--- +title: "Design System Integration: Docs" +published_date: "2023-10-01" +categories: [user-interface] +--- +We're excited to announce that our documentation site has been seamlessly integrated with our brand-new design system. This enhancement brings a fresh and cohesive look to our documentation, providing a unified and visually appealing experience for our users. Explore the updated, improved, and more accessible [Docs site](/) today. + +![Docs Design System](../images/DocsDesignSystem.png) diff --git a/source/releasenotes/2023-10-01-drupal-security-update.md b/source/releasenotes/2023-10-01-drupal-security-update.md new file mode 100644 index 0000000000..c0bd845192 --- /dev/null +++ b/source/releasenotes/2023-10-01-drupal-security-update.md @@ -0,0 +1,8 @@ +--- +title: Drupal Security Update +published_date: "2023-10-01" +categories: [drupal, security, action-required] +--- +On September 20th, [Drupal core updates were released to address a critical vulnerability in the JSON:API module](https://status.pantheon.io/incidents/vj842n7k7w40). Those updates became immediately available within the Pantheon dashboard for one-click code updates. Additionally, [our engineers updated our CDN to mitigate potential attacks](https://status.pantheon.io/incidents/598zxv2v8l7p). + +If you have a Drupal site using JSON:API we suggest you update as soon as possible if you haven't done so already. And even if you aren't using JSON:API, it'll still feel good to apply an update, right? To better understand the nature of security updates, [come watch the Pantheon YouTube Livestream on October 25th](https://www.youtube.com/watch?v=WV2ZSeBOziU). diff --git a/source/releasenotes/2023-10-01-front-end-sites-settings.md b/source/releasenotes/2023-10-01-front-end-sites-settings.md new file mode 100644 index 0000000000..64372d2b34 --- /dev/null +++ b/source/releasenotes/2023-10-01-front-end-sites-settings.md @@ -0,0 +1,7 @@ +--- +title: "Front-End Sites Settings" +published_date: "2023-10-01" +categories: [front-end-sites, user-interface] +--- +The Pantheon Front-End Sites Settings page is now available for users of the WordPress for Front-End project. It provides a simplified post install experience where users can copy environment variables for use in the Front-End Sites dashboard, and also test their preview endpoint. Instructions for creating a new WordPress project [can be found here](https://decoupledkit.pantheon.io/docs/backend-starters/decoupled-wordpress/creating-a-new-project). +Want to chat more about these kinds of sites? Join the [#front-end-frameworks](https://pantheon-community.slack.com/archives/C01DXGMFZFB) Slack Channel. diff --git a/source/releasenotes/2023-10-01-php-8-1-and-8-2-updated-to-their-latest-patch-releases.md b/source/releasenotes/2023-10-01-php-8-1-and-8-2-updated-to-their-latest-patch-releases.md new file mode 100644 index 0000000000..ef5e30b54b --- /dev/null +++ b/source/releasenotes/2023-10-01-php-8-1-and-8-2-updated-to-their-latest-patch-releases.md @@ -0,0 +1,6 @@ +--- +title: "PHP 8.1 and 8.2 updated to their latest patch releases" +published_date: "2023-10-01" +categories: [infrastructure, security] +--- +PHP 8.2.11 and 8.1.24 were released on the platform. They contain the latest bug fixes and security releases for PHP. As a reminder, PHP 8.0 will reach End-of-Life on 26 November 2023. For the best performance and security, Pantheon recommends running PHP 8.1 and above. diff --git a/source/releasenotes/2023-10-01-php-memory-limits-updates.md b/source/releasenotes/2023-10-01-php-memory-limits-updates.md new file mode 100644 index 0000000000..659a5dab50 --- /dev/null +++ b/source/releasenotes/2023-10-01-php-memory-limits-updates.md @@ -0,0 +1,8 @@ +--- +title: PHP Memory Limits Updates +published_date: "2023-10-01" +categories: [infrastructure, performance] +--- +Sometimes you just need more memory to serve your site reliably. To learn more about why we doubled the memory for most site plans, [check out this blog](https://pantheon.io/blog/pantheon-increases-php-memory-limits-performance-and-elite-plans) by Rachel Whitton, Lead Technical Writer here at Pantheon. + +To take advantage of the increased memory limit, [contact our customer support team](/guides/support/contact-support/). Or drop by our [regular Zoom-based office hours](http://pantheon.io/developer-community/office-hours). diff --git a/source/releasenotes/2023-10-01-wpml-improved-edge-caching-compatibility-cache-hit-ratio-increased-24-percent.md b/source/releasenotes/2023-10-01-wpml-improved-edge-caching-compatibility-cache-hit-ratio-increased-24-percent.md new file mode 100644 index 0000000000..70f2640dc4 --- /dev/null +++ b/source/releasenotes/2023-10-01-wpml-improved-edge-caching-compatibility-cache-hit-ratio-increased-24-percent.md @@ -0,0 +1,6 @@ +--- +title: "WPML Improved Edge Caching Compatibility - Cache Hit Ratio Increased 24%" +published_date: "2023-10-01" +categories: [wordpress, performance, infrastructure] +--- +Global CDN now has improved compatibility with the WPML multilingual WordPress plugin. Page variations for each language can be cached at the edge. This update was rolled out automatically for all sites that use the WPML plugin and increased site cache hit ratio by 24% on average. diff --git a/source/releasenotes/2023-11-01-composer-logs-visibility.md b/source/releasenotes/2023-11-01-composer-logs-visibility.md new file mode 100644 index 0000000000..973c93073b --- /dev/null +++ b/source/releasenotes/2023-11-01-composer-logs-visibility.md @@ -0,0 +1,6 @@ +--- +title: Composer Logs Visibility +published_date: "2023-11-01" +categories: [new-feature, tools-apis] +--- +Visibility into composer logs has been a top customer request. Now, if you need to debug a composer build failure due to an error, install the Terminus Composer Logs plugin on your machine to view more details. Upstream Update logs are also available. Installation instructions and command usage can be found [here in the plugin's GitHub repository](https://github.com/pantheon-systems/terminus-composer-logs-plugin). diff --git a/source/releasenotes/2023-11-01-faster-backups.md b/source/releasenotes/2023-11-01-faster-backups.md new file mode 100644 index 0000000000..322a7fdc46 --- /dev/null +++ b/source/releasenotes/2023-11-01-faster-backups.md @@ -0,0 +1,6 @@ +--- +title: Faster Backups +published_date: "2023-11-01" +categories: [infrastructure, performance] +--- +The File System team at Pantheon achieved significant speed improvements in backup processes. The Valhalla export process was overhauled, allowing backups to be constructed from new objects, cutting down export times by 25-83%. This was accomplished by initiating object retrieval immediately after receiving MANIFEST metadata, omitting empty files, and promptly archiving received files. diff --git a/source/releasenotes/2023-11-01-front-end-sites-build-caching-and-node-js-versions.md b/source/releasenotes/2023-11-01-front-end-sites-build-caching-and-node-js-versions.md new file mode 100644 index 0000000000..2ba96b55fe --- /dev/null +++ b/source/releasenotes/2023-11-01-front-end-sites-build-caching-and-node-js-versions.md @@ -0,0 +1,10 @@ +--- +title: "Front-End Sites Build Caching and Node.js Versions" +published_date: "2023-11-01" +categories: [front-end-sites, action-required, performance] +--- +Pantheon introduced a new build pipeline for Front End Sites to significantly improve build times. Beginning on November 13th, 2023, newly created sites are automatically using the new pipeline and cannot opt back to the old pipeline. Sites made prior to that date can opt-in to the new pipeline to take advantage of the new features. All pre-existing sites that do not opt-in will be switched over for new builds on or around January 15th. + +Additionally, we are adding support for Node 18 (for dynamic sites) and 20 (for both static and dynamic sites). To select a specific version, Pantheon is [moving away from using .nvmrc](/guides/decoupled/overview/manage-settings#nodejs-version) and will instead look to the [“engines” field](https://docs.npmjs.com/cli/v8/configuring-npm/package-json#engines) in your project’s `package.json` file. + +To find out more about adopting the new pipeline, [check out our documentation](/guides/decoupled/overview/v1-pipeline), and read our [blog post](https://pantheon.io/blog/opt-now-faster-build-pipeline-front-end-sites?utm_medium=email&utm_source=newsletter&utm_content=front_end_sites_blog&utm_campaign=2023_11_PSU_ALL_US_Novemeber_Changelog_Newsletter) about how we’re already experiencing the benefits of this internally at Pantheon. diff --git a/source/releasenotes/2023-11-01-streamlined-user-offboarding.md b/source/releasenotes/2023-11-01-streamlined-user-offboarding.md new file mode 100644 index 0000000000..24cbc3ec79 --- /dev/null +++ b/source/releasenotes/2023-11-01-streamlined-user-offboarding.md @@ -0,0 +1,10 @@ +--- +title: Streamlined User Offboarding +published_date: "2023-11-01" +categories: [account-management, user-interface, new-feature] +--- +Administrators of large workspaces will now be able to easily remove access for offboarded users at scale. When a member of your team changes jobs, or for whatever reason you need to remove a person from your sites, you can now do so faster + +As you remove users from your workspace or site team, you will be prompted to remove access across all sites that a given user may be connected to, which can save multiple clicks and manual labor to ensure the right access levels are maintained. + +To learn more about how this new offboarding process works, take a look at our [documentation](/guides/account-mgmt/workspace-sites-teams/teams#remove-a-user). diff --git a/source/releasenotes/2023-11-01-vpat-issued-for-product-accessibility.md b/source/releasenotes/2023-11-01-vpat-issued-for-product-accessibility.md new file mode 100644 index 0000000000..78c158b62f --- /dev/null +++ b/source/releasenotes/2023-11-01-vpat-issued-for-product-accessibility.md @@ -0,0 +1,8 @@ +--- +title: VPAT issued for product accessibility +published_date: "2023-11-01" +categories: [infrastructure, user-interface] +--- +* As part of Pantheon’s commitment to accessibility, diversity, and inclusion, we are proud to announce that we have completed an external audit of our platform’s accessibility features and the results are available in our [WCAG 2.1 AA VPAT](https://drive.google.com/file/d/1SYnzTsVNOyK4-5eLRYnNQJArdVsM8JUD/view). +* Our teams have ongoing efforts to improve accessibility further and have outlined goals to improve our support of WCAG 2.1 AA criteria for the next two quarters. +* Our partners and customers who depend on WCAG compliant products can confidently continue to use the platform knowing that we hold accessibility to be an important function of the services we provide. diff --git a/source/releasenotes/2023-11-01-wordpress-native-php-sessions-1-4-update.md b/source/releasenotes/2023-11-01-wordpress-native-php-sessions-1-4-update.md new file mode 100644 index 0000000000..eba22d7482 --- /dev/null +++ b/source/releasenotes/2023-11-01-wordpress-native-php-sessions-1-4-update.md @@ -0,0 +1,8 @@ +--- +title: "WordPress Native PHP Sessions 1.4 Update" +published_date: "2023-11-01" +categories: [wordpress, action-required, performance] +--- +The WordPress Native PHP Sessions plugin added primary keys to its custom tables in 1.2.2 for greater performance and redundancy, but did not upgrade existing sites. Now, version 1.4 includes an optional upgrade command for sites that installed the plugin prior to the 1.2.2 release. + +Our open source [WordPress Native PHP Sessions](https://wordpress.org/plugins/wp-native-php-sessions/) is available in the WordPress.org plugins repo. diff --git a/source/releasenotes/2023-12-01-delete-front-end-sites-multidevs-directly-from-dashboard-for-streamlined-management.md b/source/releasenotes/2023-12-01-delete-front-end-sites-multidevs-directly-from-dashboard-for-streamlined-management.md new file mode 100644 index 0000000000..2e3e86a491 --- /dev/null +++ b/source/releasenotes/2023-12-01-delete-front-end-sites-multidevs-directly-from-dashboard-for-streamlined-management.md @@ -0,0 +1,8 @@ +--- +title: "Delete Front-End Sites Multidevs Directly From Dashboard for Streamlined Management" +published_date: "2023-12-01" +categories: [front-end-sites, user-interface] +--- +We've enhanced your site management experience by enabling the ability to delete Multidevs directly from your Front-End Sites dashboard. This upgrade simplifies project organization, providing you with a seamless process to remove unnecessary Multidevs. + +This intuitive addition streamlines site management, offering a hassle-free solution to keep your projects organized and optimized. Find detailed instructions [here](/guides/decoupled/overview/fes-multidev#delete-a-multidev-environment). diff --git a/source/releasenotes/2023-12-01-elevated-experience-with-front-end-sites-drupal-starter-kit.md b/source/releasenotes/2023-12-01-elevated-experience-with-front-end-sites-drupal-starter-kit.md new file mode 100644 index 0000000000..4bc9c73276 --- /dev/null +++ b/source/releasenotes/2023-12-01-elevated-experience-with-front-end-sites-drupal-starter-kit.md @@ -0,0 +1,13 @@ +--- +title: "Elevated Experience With Front-End Sites Drupal Starter Kit" +published_date: "2023-12-01" +categories: [front-end-sites, user-interface] +--- +The Pantheon Drupal Starter Kit for Front-End Sites has undergone significant improvements. +* **Setup experience**: The setup process is now more user-friendly and guided for a seamless experience. +* **Health check script**: The newly introduced health check script alerts you to known configuration issues before a build fails. +* **Front-End Sites settings**: Effortlessly navigate through the Settings page, simplifying the testing of your preview endpoint, and allowing convenient copying of environment variables for use in the Front-End Sites Dashboard. + +Curious about creating a new Drupal project with these enhancements? Find detailed instructions [here](https://decoupledkit.pantheon.io/docs/backend-starters/decoupled-drupal/creating-a-new-project). + +For further insights and discussions on similar sites, join the [#front-end-frameworks](https://pantheon-community.slack.com/archives/C01DXGMFZFB) Slack channel. diff --git a/source/releasenotes/2023-12-01-optimized-monitoring-for-high-volume-directories.md b/source/releasenotes/2023-12-01-optimized-monitoring-for-high-volume-directories.md new file mode 100644 index 0000000000..8613c07cc8 --- /dev/null +++ b/source/releasenotes/2023-12-01-optimized-monitoring-for-high-volume-directories.md @@ -0,0 +1,6 @@ +--- +title: Optimized Monitoring for High-Volume Directories +published_date: "2023-12-01" +categories: [new-feature, user-interface, performance] +--- +Introducing proactive alerts tailored for directories with substantial file counts, which could impact performance or accessibility. Stay informed with timely notifications delivered [directly to your dashboard](/guides/filesystem/large-files/#alerts) and via email when file counts reach 50,000 and 100,000. This feature empowers you to efficiently manage your file system and address potential issues promptly. diff --git a/source/releasenotes/2023-12-01-upgraded-security-measures-for-uninterrupted-webops-experience.md b/source/releasenotes/2023-12-01-upgraded-security-measures-for-uninterrupted-webops-experience.md new file mode 100644 index 0000000000..337de3a79e --- /dev/null +++ b/source/releasenotes/2023-12-01-upgraded-security-measures-for-uninterrupted-webops-experience.md @@ -0,0 +1,12 @@ +--- +title: Upgraded Security Measures for Uninterrupted WebOps Experience +published_date: "2023-12-01" +categories: [infrastructure, security, performance] +--- +We're thrilled to announce an impactful upgrade to Pantheon's security infrastructure, reinforcing our commitment to safeguarding your websites. In response to the escalating sophistication of distributed denial-of-service (DDoS) attacks, we've implemented innovative solutions to fortify our defenses. Particularly, we've addressed a surge in Layer 7 attacks targeting content management systems, ensuring resilience even without our Advanced Global CDN's Web Application Firewall (WAF). + +**Key benefits:** +* **Advanced DDoS protection**: Our engineers have proactively countered Layer 7 attacks, mitigating risks posed by inauthentic traffic targeting web content management systems. +* **Rate limiting capabilities**: We've introduced rate limiting capabilities within our Global CDN, curbing abusive traffic effectively. This ensures a stable online presence, even during large-scale attacks, preventing wider stability issues. + +For more in-depth insights into the measures we've taken and the value they bring to your Pantheon experience, delve into the [full blog post](https://pantheon.io/blog/pantheon-improves-protection-malicious-traffic). Your website's security and stability are our top priorities, and this enhancement is another step in our ongoing commitment to delivering a robust WebOps platform. diff --git a/source/releasenotes/2023-12-01-wordpress-6-4-2-now-available-for-enhanced-security.md b/source/releasenotes/2023-12-01-wordpress-6-4-2-now-available-for-enhanced-security.md new file mode 100644 index 0000000000..1744d7d693 --- /dev/null +++ b/source/releasenotes/2023-12-01-wordpress-6-4-2-now-available-for-enhanced-security.md @@ -0,0 +1,6 @@ +--- +title: "WordPress 6.4.2 Now Available for Enhanced Security" +published_date: "2023-12-01" +categories: [wordpress, security, action-required] +--- +In response to a critical security vulnerability, [WordPress 6.4.2](https://wordpress.org/news/2023/12/wordpress-6-4-2-maintenance-security-release/) was released on December 6, 2023. To ensure the safety of your site, Pantheon strongly advises an immediate upgrade. Prioritize your site's security – upgrade now! From 73ba9b3b941528d58193c078367d1cae47304a5f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 13:15:59 -0600 Subject: [PATCH 023/174] Revert "adding playwright examples" This reverts commit 7e7e457750af69e64053716e8942b68fd5d76118. --- tests/.github/workflows/playwright.yml | 27 -- tests/.gitignore | 5 - tests/package-lock.json | 91 ----- tests/package.json | 14 - tests/playwright.config.ts | 77 ---- tests/tests-examples/demo-todo-app.spec.ts | 437 --------------------- tests/tests/example.spec.ts | 19 - 7 files changed, 670 deletions(-) delete mode 100644 tests/.github/workflows/playwright.yml delete mode 100644 tests/.gitignore delete mode 100644 tests/package-lock.json delete mode 100644 tests/package.json delete mode 100644 tests/playwright.config.ts delete mode 100644 tests/tests-examples/demo-todo-app.spec.ts delete mode 100644 tests/tests/example.spec.ts diff --git a/tests/.github/workflows/playwright.yml b/tests/.github/workflows/playwright.yml deleted file mode 100644 index 90b6b700d4..0000000000 --- a/tests/.github/workflows/playwright.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Playwright Tests -on: - push: - branches: [ main, master ] - pull_request: - branches: [ main, master ] -jobs: - test: - timeout-minutes: 60 - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 18 - - name: Install dependencies - run: npm ci - - name: Install Playwright Browsers - run: npx playwright install --with-deps - - name: Run Playwright tests - run: npx playwright test - - uses: actions/upload-artifact@v3 - if: always() - with: - name: playwright-report - path: playwright-report/ - retention-days: 30 diff --git a/tests/.gitignore b/tests/.gitignore deleted file mode 100644 index 68c5d18f00..0000000000 --- a/tests/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -node_modules/ -/test-results/ -/playwright-report/ -/blob-report/ -/playwright/.cache/ diff --git a/tests/package-lock.json b/tests/package-lock.json deleted file mode 100644 index 36ee107cd4..0000000000 --- a/tests/package-lock.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "name": "tests", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "tests", - "version": "1.0.0", - "license": "ISC", - "devDependencies": { - "@playwright/test": "^1.40.1", - "@types/node": "^20.10.5" - } - }, - "node_modules/@playwright/test": { - "version": "1.40.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.1.tgz", - "integrity": "sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==", - "dev": true, - "dependencies": { - "playwright": "1.40.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@types/node": { - "version": "20.10.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", - "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/playwright": { - "version": "1.40.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz", - "integrity": "sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==", - "dev": true, - "dependencies": { - "playwright-core": "1.40.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=16" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, - "node_modules/playwright-core": { - "version": "1.40.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz", - "integrity": "sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==", - "dev": true, - "bin": { - "playwright-core": "cli.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - } - } -} diff --git a/tests/package.json b/tests/package.json deleted file mode 100644 index 9d001443e4..0000000000 --- a/tests/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "tests", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": {}, - "keywords": [], - "author": "", - "license": "ISC", - "devDependencies": { - "@playwright/test": "^1.40.1", - "@types/node": "^20.10.5" - } -} diff --git a/tests/playwright.config.ts b/tests/playwright.config.ts deleted file mode 100644 index 301801ee1d..0000000000 --- a/tests/playwright.config.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { defineConfig, devices } from '@playwright/test'; - -/** - * Read environment variables from file. - * https://github.com/motdotla/dotenv - */ -// require('dotenv').config(); - -/** - * See https://playwright.dev/docs/test-configuration. - */ -export default defineConfig({ - testDir: './tests', - /* Run tests in files in parallel */ - fullyParallel: true, - /* Fail the build on CI if you accidentally left test.only in the source code. */ - forbidOnly: !!process.env.CI, - /* Retry on CI only */ - retries: process.env.CI ? 2 : 0, - /* Opt out of parallel tests on CI. */ - workers: process.env.CI ? 1 : undefined, - /* Reporter to use. See https://playwright.dev/docs/test-reporters */ - reporter: 'html', - /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ - use: { - /* Base URL to use in actions like `await page.goto('/')`. */ - // baseURL: 'http://127.0.0.1:3000', - - /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ - trace: 'on-first-retry', - }, - - /* Configure projects for major browsers */ - projects: [ - { - name: 'chromium', - use: { ...devices['Desktop Chrome'] }, - }, - - { - name: 'firefox', - use: { ...devices['Desktop Firefox'] }, - }, - - { - name: 'webkit', - use: { ...devices['Desktop Safari'] }, - }, - - /* Test against mobile viewports. */ - // { - // name: 'Mobile Chrome', - // use: { ...devices['Pixel 5'] }, - // }, - // { - // name: 'Mobile Safari', - // use: { ...devices['iPhone 12'] }, - // }, - - /* Test against branded browsers. */ - // { - // name: 'Microsoft Edge', - // use: { ...devices['Desktop Edge'], channel: 'msedge' }, - // }, - // { - // name: 'Google Chrome', - // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, - // }, - ], - - /* Run your local dev server before starting the tests */ - // webServer: { - // command: 'npm run start', - // url: 'http://127.0.0.1:3000', - // reuseExistingServer: !process.env.CI, - // }, -}); diff --git a/tests/tests-examples/demo-todo-app.spec.ts b/tests/tests-examples/demo-todo-app.spec.ts deleted file mode 100644 index 2fd6016fe8..0000000000 --- a/tests/tests-examples/demo-todo-app.spec.ts +++ /dev/null @@ -1,437 +0,0 @@ -import { test, expect, type Page } from '@playwright/test'; - -test.beforeEach(async ({ page }) => { - await page.goto('https://demo.playwright.dev/todomvc'); -}); - -const TODO_ITEMS = [ - 'buy some cheese', - 'feed the cat', - 'book a doctors appointment' -]; - -test.describe('New Todo', () => { - test('should allow me to add todo items', async ({ page }) => { - // create a new todo locator - const newTodo = page.getByPlaceholder('What needs to be done?'); - - // Create 1st todo. - await newTodo.fill(TODO_ITEMS[0]); - await newTodo.press('Enter'); - - // Make sure the list only has one todo item. - await expect(page.getByTestId('todo-title')).toHaveText([ - TODO_ITEMS[0] - ]); - - // Create 2nd todo. - await newTodo.fill(TODO_ITEMS[1]); - await newTodo.press('Enter'); - - // Make sure the list now has two todo items. - await expect(page.getByTestId('todo-title')).toHaveText([ - TODO_ITEMS[0], - TODO_ITEMS[1] - ]); - - await checkNumberOfTodosInLocalStorage(page, 2); - }); - - test('should clear text input field when an item is added', async ({ page }) => { - // create a new todo locator - const newTodo = page.getByPlaceholder('What needs to be done?'); - - // Create one todo item. - await newTodo.fill(TODO_ITEMS[0]); - await newTodo.press('Enter'); - - // Check that input is empty. - await expect(newTodo).toBeEmpty(); - await checkNumberOfTodosInLocalStorage(page, 1); - }); - - test('should append new items to the bottom of the list', async ({ page }) => { - // Create 3 items. - await createDefaultTodos(page); - - // create a todo count locator - const todoCount = page.getByTestId('todo-count') - - // Check test using different methods. - await expect(page.getByText('3 items left')).toBeVisible(); - await expect(todoCount).toHaveText('3 items left'); - await expect(todoCount).toContainText('3'); - await expect(todoCount).toHaveText(/3/); - - // Check all items in one call. - await expect(page.getByTestId('todo-title')).toHaveText(TODO_ITEMS); - await checkNumberOfTodosInLocalStorage(page, 3); - }); -}); - -test.describe('Mark all as completed', () => { - test.beforeEach(async ({ page }) => { - await createDefaultTodos(page); - await checkNumberOfTodosInLocalStorage(page, 3); - }); - - test.afterEach(async ({ page }) => { - await checkNumberOfTodosInLocalStorage(page, 3); - }); - - test('should allow me to mark all items as completed', async ({ page }) => { - // Complete all todos. - await page.getByLabel('Mark all as complete').check(); - - // Ensure all todos have 'completed' class. - await expect(page.getByTestId('todo-item')).toHaveClass(['completed', 'completed', 'completed']); - await checkNumberOfCompletedTodosInLocalStorage(page, 3); - }); - - test('should allow me to clear the complete state of all items', async ({ page }) => { - const toggleAll = page.getByLabel('Mark all as complete'); - // Check and then immediately uncheck. - await toggleAll.check(); - await toggleAll.uncheck(); - - // Should be no completed classes. - await expect(page.getByTestId('todo-item')).toHaveClass(['', '', '']); - }); - - test('complete all checkbox should update state when items are completed / cleared', async ({ page }) => { - const toggleAll = page.getByLabel('Mark all as complete'); - await toggleAll.check(); - await expect(toggleAll).toBeChecked(); - await checkNumberOfCompletedTodosInLocalStorage(page, 3); - - // Uncheck first todo. - const firstTodo = page.getByTestId('todo-item').nth(0); - await firstTodo.getByRole('checkbox').uncheck(); - - // Reuse toggleAll locator and make sure its not checked. - await expect(toggleAll).not.toBeChecked(); - - await firstTodo.getByRole('checkbox').check(); - await checkNumberOfCompletedTodosInLocalStorage(page, 3); - - // Assert the toggle all is checked again. - await expect(toggleAll).toBeChecked(); - }); -}); - -test.describe('Item', () => { - - test('should allow me to mark items as complete', async ({ page }) => { - // create a new todo locator - const newTodo = page.getByPlaceholder('What needs to be done?'); - - // Create two items. - for (const item of TODO_ITEMS.slice(0, 2)) { - await newTodo.fill(item); - await newTodo.press('Enter'); - } - - // Check first item. - const firstTodo = page.getByTestId('todo-item').nth(0); - await firstTodo.getByRole('checkbox').check(); - await expect(firstTodo).toHaveClass('completed'); - - // Check second item. - const secondTodo = page.getByTestId('todo-item').nth(1); - await expect(secondTodo).not.toHaveClass('completed'); - await secondTodo.getByRole('checkbox').check(); - - // Assert completed class. - await expect(firstTodo).toHaveClass('completed'); - await expect(secondTodo).toHaveClass('completed'); - }); - - test('should allow me to un-mark items as complete', async ({ page }) => { - // create a new todo locator - const newTodo = page.getByPlaceholder('What needs to be done?'); - - // Create two items. - for (const item of TODO_ITEMS.slice(0, 2)) { - await newTodo.fill(item); - await newTodo.press('Enter'); - } - - const firstTodo = page.getByTestId('todo-item').nth(0); - const secondTodo = page.getByTestId('todo-item').nth(1); - const firstTodoCheckbox = firstTodo.getByRole('checkbox'); - - await firstTodoCheckbox.check(); - await expect(firstTodo).toHaveClass('completed'); - await expect(secondTodo).not.toHaveClass('completed'); - await checkNumberOfCompletedTodosInLocalStorage(page, 1); - - await firstTodoCheckbox.uncheck(); - await expect(firstTodo).not.toHaveClass('completed'); - await expect(secondTodo).not.toHaveClass('completed'); - await checkNumberOfCompletedTodosInLocalStorage(page, 0); - }); - - test('should allow me to edit an item', async ({ page }) => { - await createDefaultTodos(page); - - const todoItems = page.getByTestId('todo-item'); - const secondTodo = todoItems.nth(1); - await secondTodo.dblclick(); - await expect(secondTodo.getByRole('textbox', { name: 'Edit' })).toHaveValue(TODO_ITEMS[1]); - await secondTodo.getByRole('textbox', { name: 'Edit' }).fill('buy some sausages'); - await secondTodo.getByRole('textbox', { name: 'Edit' }).press('Enter'); - - // Explicitly assert the new text value. - await expect(todoItems).toHaveText([ - TODO_ITEMS[0], - 'buy some sausages', - TODO_ITEMS[2] - ]); - await checkTodosInLocalStorage(page, 'buy some sausages'); - }); -}); - -test.describe('Editing', () => { - test.beforeEach(async ({ page }) => { - await createDefaultTodos(page); - await checkNumberOfTodosInLocalStorage(page, 3); - }); - - test('should hide other controls when editing', async ({ page }) => { - const todoItem = page.getByTestId('todo-item').nth(1); - await todoItem.dblclick(); - await expect(todoItem.getByRole('checkbox')).not.toBeVisible(); - await expect(todoItem.locator('label', { - hasText: TODO_ITEMS[1], - })).not.toBeVisible(); - await checkNumberOfTodosInLocalStorage(page, 3); - }); - - test('should save edits on blur', async ({ page }) => { - const todoItems = page.getByTestId('todo-item'); - await todoItems.nth(1).dblclick(); - await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).fill('buy some sausages'); - await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).dispatchEvent('blur'); - - await expect(todoItems).toHaveText([ - TODO_ITEMS[0], - 'buy some sausages', - TODO_ITEMS[2], - ]); - await checkTodosInLocalStorage(page, 'buy some sausages'); - }); - - test('should trim entered text', async ({ page }) => { - const todoItems = page.getByTestId('todo-item'); - await todoItems.nth(1).dblclick(); - await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).fill(' buy some sausages '); - await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).press('Enter'); - - await expect(todoItems).toHaveText([ - TODO_ITEMS[0], - 'buy some sausages', - TODO_ITEMS[2], - ]); - await checkTodosInLocalStorage(page, 'buy some sausages'); - }); - - test('should remove the item if an empty text string was entered', async ({ page }) => { - const todoItems = page.getByTestId('todo-item'); - await todoItems.nth(1).dblclick(); - await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).fill(''); - await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).press('Enter'); - - await expect(todoItems).toHaveText([ - TODO_ITEMS[0], - TODO_ITEMS[2], - ]); - }); - - test('should cancel edits on escape', async ({ page }) => { - const todoItems = page.getByTestId('todo-item'); - await todoItems.nth(1).dblclick(); - await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).fill('buy some sausages'); - await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).press('Escape'); - await expect(todoItems).toHaveText(TODO_ITEMS); - }); -}); - -test.describe('Counter', () => { - test('should display the current number of todo items', async ({ page }) => { - // create a new todo locator - const newTodo = page.getByPlaceholder('What needs to be done?'); - - // create a todo count locator - const todoCount = page.getByTestId('todo-count') - - await newTodo.fill(TODO_ITEMS[0]); - await newTodo.press('Enter'); - - await expect(todoCount).toContainText('1'); - - await newTodo.fill(TODO_ITEMS[1]); - await newTodo.press('Enter'); - await expect(todoCount).toContainText('2'); - - await checkNumberOfTodosInLocalStorage(page, 2); - }); -}); - -test.describe('Clear completed button', () => { - test.beforeEach(async ({ page }) => { - await createDefaultTodos(page); - }); - - test('should display the correct text', async ({ page }) => { - await page.locator('.todo-list li .toggle').first().check(); - await expect(page.getByRole('button', { name: 'Clear completed' })).toBeVisible(); - }); - - test('should remove completed items when clicked', async ({ page }) => { - const todoItems = page.getByTestId('todo-item'); - await todoItems.nth(1).getByRole('checkbox').check(); - await page.getByRole('button', { name: 'Clear completed' }).click(); - await expect(todoItems).toHaveCount(2); - await expect(todoItems).toHaveText([TODO_ITEMS[0], TODO_ITEMS[2]]); - }); - - test('should be hidden when there are no items that are completed', async ({ page }) => { - await page.locator('.todo-list li .toggle').first().check(); - await page.getByRole('button', { name: 'Clear completed' }).click(); - await expect(page.getByRole('button', { name: 'Clear completed' })).toBeHidden(); - }); -}); - -test.describe('Persistence', () => { - test('should persist its data', async ({ page }) => { - // create a new todo locator - const newTodo = page.getByPlaceholder('What needs to be done?'); - - for (const item of TODO_ITEMS.slice(0, 2)) { - await newTodo.fill(item); - await newTodo.press('Enter'); - } - - const todoItems = page.getByTestId('todo-item'); - const firstTodoCheck = todoItems.nth(0).getByRole('checkbox'); - await firstTodoCheck.check(); - await expect(todoItems).toHaveText([TODO_ITEMS[0], TODO_ITEMS[1]]); - await expect(firstTodoCheck).toBeChecked(); - await expect(todoItems).toHaveClass(['completed', '']); - - // Ensure there is 1 completed item. - await checkNumberOfCompletedTodosInLocalStorage(page, 1); - - // Now reload. - await page.reload(); - await expect(todoItems).toHaveText([TODO_ITEMS[0], TODO_ITEMS[1]]); - await expect(firstTodoCheck).toBeChecked(); - await expect(todoItems).toHaveClass(['completed', '']); - }); -}); - -test.describe('Routing', () => { - test.beforeEach(async ({ page }) => { - await createDefaultTodos(page); - // make sure the app had a chance to save updated todos in storage - // before navigating to a new view, otherwise the items can get lost :( - // in some frameworks like Durandal - await checkTodosInLocalStorage(page, TODO_ITEMS[0]); - }); - - test('should allow me to display active items', async ({ page }) => { - const todoItem = page.getByTestId('todo-item'); - await page.getByTestId('todo-item').nth(1).getByRole('checkbox').check(); - - await checkNumberOfCompletedTodosInLocalStorage(page, 1); - await page.getByRole('link', { name: 'Active' }).click(); - await expect(todoItem).toHaveCount(2); - await expect(todoItem).toHaveText([TODO_ITEMS[0], TODO_ITEMS[2]]); - }); - - test('should respect the back button', async ({ page }) => { - const todoItem = page.getByTestId('todo-item'); - await page.getByTestId('todo-item').nth(1).getByRole('checkbox').check(); - - await checkNumberOfCompletedTodosInLocalStorage(page, 1); - - await test.step('Showing all items', async () => { - await page.getByRole('link', { name: 'All' }).click(); - await expect(todoItem).toHaveCount(3); - }); - - await test.step('Showing active items', async () => { - await page.getByRole('link', { name: 'Active' }).click(); - }); - - await test.step('Showing completed items', async () => { - await page.getByRole('link', { name: 'Completed' }).click(); - }); - - await expect(todoItem).toHaveCount(1); - await page.goBack(); - await expect(todoItem).toHaveCount(2); - await page.goBack(); - await expect(todoItem).toHaveCount(3); - }); - - test('should allow me to display completed items', async ({ page }) => { - await page.getByTestId('todo-item').nth(1).getByRole('checkbox').check(); - await checkNumberOfCompletedTodosInLocalStorage(page, 1); - await page.getByRole('link', { name: 'Completed' }).click(); - await expect(page.getByTestId('todo-item')).toHaveCount(1); - }); - - test('should allow me to display all items', async ({ page }) => { - await page.getByTestId('todo-item').nth(1).getByRole('checkbox').check(); - await checkNumberOfCompletedTodosInLocalStorage(page, 1); - await page.getByRole('link', { name: 'Active' }).click(); - await page.getByRole('link', { name: 'Completed' }).click(); - await page.getByRole('link', { name: 'All' }).click(); - await expect(page.getByTestId('todo-item')).toHaveCount(3); - }); - - test('should highlight the currently applied filter', async ({ page }) => { - await expect(page.getByRole('link', { name: 'All' })).toHaveClass('selected'); - - //create locators for active and completed links - const activeLink = page.getByRole('link', { name: 'Active' }); - const completedLink = page.getByRole('link', { name: 'Completed' }); - await activeLink.click(); - - // Page change - active items. - await expect(activeLink).toHaveClass('selected'); - await completedLink.click(); - - // Page change - completed items. - await expect(completedLink).toHaveClass('selected'); - }); -}); - -async function createDefaultTodos(page: Page) { - // create a new todo locator - const newTodo = page.getByPlaceholder('What needs to be done?'); - - for (const item of TODO_ITEMS) { - await newTodo.fill(item); - await newTodo.press('Enter'); - } -} - -async function checkNumberOfTodosInLocalStorage(page: Page, expected: number) { - return await page.waitForFunction(e => { - return JSON.parse(localStorage['react-todos']).length === e; - }, expected); -} - -async function checkNumberOfCompletedTodosInLocalStorage(page: Page, expected: number) { - return await page.waitForFunction(e => { - return JSON.parse(localStorage['react-todos']).filter((todo: any) => todo.completed).length === e; - }, expected); -} - -async function checkTodosInLocalStorage(page: Page, title: string) { - return await page.waitForFunction(t => { - return JSON.parse(localStorage['react-todos']).map((todo: any) => todo.title).includes(t); - }, title); -} diff --git a/tests/tests/example.spec.ts b/tests/tests/example.spec.ts deleted file mode 100644 index 590f33f96c..0000000000 --- a/tests/tests/example.spec.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { test, expect } from '@playwright/test'; - -test('has title', async ({ page }) => { - await page.goto('http://localhost:8000/release-notes'); - - // Expect a title "to contain" a substring. - await expect(page).toHaveTitle(/Pantheon Release Notes/); -}); -/* -test('get started link', async ({ page }) => { - await page.goto('https://playwright.dev/'); - - // Click the get started link. - await page.getByRole('link', { name: 'Get started' }).click(); - - // Expects page to have a heading with the name of Installation. - await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible(); -}); -*/ From 189d54d1e9d273ab5e70c0c94dfbcb6775291bb1 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 14:06:05 -0600 Subject: [PATCH 024/174] some cleanup --- gatsby-config.js | 5 ---- gatsby-node.js | 36 +++++++++++-------------- src/components/releaseNoteCategories.js | 2 -- 3 files changed, 15 insertions(+), 28 deletions(-) diff --git a/gatsby-config.js b/gatsby-config.js index ee16d4e5ce..45e5310c82 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -105,11 +105,6 @@ module.exports = { name: `releasenotes`, }, }, - - - - - { resolve: `gatsby-source-filesystem`, options: { diff --git a/gatsby-node.js b/gatsby-node.js index fca7cc8428..c1fed0bba0 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -33,11 +33,11 @@ const calculateSlug = (node, getNode) => { } // This section creates the releasenotes slug based on the YYYY-MM-DD-slug.md template if (getNode(node.parent).absolutePath.includes("releasenotes")) { // If the file is in the releasenotes directory... - const split = fileName.split('-'); // split the file name where hyphenated... - // #todo, wait this should the slug should include all the words after the date, not just the first one. + // split the file name where hyphenated. + const split = fileName.split('-'); // set a const to remaining slug based on the keys from split that are not the date. const remainingSlug = split.slice(3).join('-'); - return `releasenotes/${split[0]}/${split[1]}/${remainingSlug}` // and return a slug of releasenotes/YYYY/MM/slug + return `release-notes/${split[0]}/${split[1]}/${remainingSlug}` // and return a slug of releasenotes/YYYY/MM/slug } return `${fileName}` // Otherwise, as long as there is a filename in GraphQL, use it as the slug. @@ -368,23 +368,6 @@ exports.createPages = ({ graphql, actions }) => { }) }) - - - // Create each release note page. - const releaseNotes = result.data.allReleaseNotes.edges; - releaseNotes.forEach(releaseNote => { - const template = calculateTemplate(releaseNote.node, "releaseNote"); - createPage({ - path: releaseNote.node.fields.slug, - component: path.resolve(`./src/templates/${template}.js`), - context: { - slug: releaseNote.node.fields.slug, - }, - }) - console.log('hello'); - }) - - // Create changelog pagination. const postsPerPage = 6 const numPages = Math.ceil(changelogs.length / postsPerPage) @@ -435,6 +418,18 @@ exports.createPages = ({ graphql, actions }) => { }) }) + // Create each release note page. + const releaseNotes = result.data.allReleaseNotes.edges; + releaseNotes.forEach(releaseNote => { + const template = calculateTemplate(releaseNote.node, "releaseNote"); + createPage({ + path: releaseNote.node.fields.slug, + component: path.resolve(`./src/templates/${template}.js`), + context: { + slug: releaseNote.node.fields.slug, + }, + }) + }) // Create contributor pages. const contributors = result.data.allContributorYaml.edges @@ -603,4 +598,3 @@ exports.onPreBootstrap = () => { /* todo should there be an error thrown if a release note category is set that is not allowed */ /* todo, infer published date from file name. And throw an error if there are files that don't follow the pattern. */ -/* todo, make a json file of allowed categories, description of the category, color name */ diff --git a/src/components/releaseNoteCategories.js b/src/components/releaseNoteCategories.js index d9315937eb..ce5934441c 100644 --- a/src/components/releaseNoteCategories.js +++ b/src/components/releaseNoteCategories.js @@ -3,8 +3,6 @@ import { Link } from "gatsby" const ReleaseNoteCategories = ({categories}) => { -console.log(categories); - if (!categories) { return null } From 87fe8f08ebf5072207d449406563d5e7f82e2a5a Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 16:13:10 -0600 Subject: [PATCH 025/174] react refactoring --- gatsby-node.js | 2 +- src/components/mdxWrapper.js | 66 +++++++++++++++++++ src/components/releaseNoteTeaser.js | 44 +++++++++++++ .../{releaseNote.js => releaseNotePage.js} | 2 +- src/templates/releaseNotesListing.js | 29 ++------ 5 files changed, 119 insertions(+), 24 deletions(-) create mode 100644 src/components/mdxWrapper.js create mode 100644 src/components/releaseNoteTeaser.js rename src/templates/{releaseNote.js => releaseNotePage.js} (98%) diff --git a/gatsby-node.js b/gatsby-node.js index c1fed0bba0..b7742cd4ed 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -421,7 +421,7 @@ exports.createPages = ({ graphql, actions }) => { // Create each release note page. const releaseNotes = result.data.allReleaseNotes.edges; releaseNotes.forEach(releaseNote => { - const template = calculateTemplate(releaseNote.node, "releaseNote"); + const template = calculateTemplate(releaseNote.node, "releaseNotePage"); createPage({ path: releaseNote.node.fields.slug, component: path.resolve(`./src/templates/${template}.js`), diff --git a/src/components/mdxWrapper.js b/src/components/mdxWrapper.js new file mode 100644 index 0000000000..0b83ffdc68 --- /dev/null +++ b/src/components/mdxWrapper.js @@ -0,0 +1,66 @@ +import React from "react" +import { graphql, Link } from "gatsby" +import { MDXRenderer } from "gatsby-plugin-mdx" +import { MDXProvider } from "@mdx-js/react" + +import Layout from "../layout/layout" +import NavButtons from "../components/navButtons" +import Callout from "../components/callout" +import Alert from "../components/alert" +import Accordion from "../components/accordion" +import ExternalLink from "../components/externalLink" +import Popover from "../components/popover" +import TabList from "../components/tabList" +import Tab from "../components/tab" +import TOC from "../components/toc" +import Card from "../components/card" +import CardGroup from "../components/cardGroup" +import SEO from "../layout/seo" +import Enablement from "../components/enablement" +import Color from "../components/color.js" +import Download from "../components/download" +import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" +// import { releaseNotePseudoQueryFields } from "../data/fragments.js" + + +import { + headline1, + headline2, + headline3, + headline4, +} from "../components/releaseHeadlines" + +import { + Container, + Icon, + Pager, +} from "@pantheon-systems/pds-toolkit-react" + +const shortcodes = { + Callout, + Alert, + Accordion, + ExternalLink, + Popover, + TabList, + Tab, + Card, + CardGroup, + Enablement, + Color, + Download, + h1: headline2, + h2: headline3, + h3: headline4, +} + + + +const MdxWrapper = ({ mdx }) => { + return ( + + {mdx} + + ) +} +export default MdxWrapper diff --git a/src/components/releaseNoteTeaser.js b/src/components/releaseNoteTeaser.js new file mode 100644 index 0000000000..2662d87695 --- /dev/null +++ b/src/components/releaseNoteTeaser.js @@ -0,0 +1,44 @@ +import React from "react" +import { graphql, Link } from "gatsby" +import ReleaseNoteCategories from "../components/releaseNoteCategories" +import MdxWrapper from "../components/mdxWrapper.js" + + + + + + + + +const ReleaseNoteTeaser = ({ key, ReleaseNoteData }) => { + + + console.log("ReleaseNoteData", ReleaseNoteData); + if (!ReleaseNoteData) { + return null + } + + return ( + +
+ +

+ {ReleaseNoteData.frontmatter.title} +

+ + + + + Todo, transform to date format

+ {ReleaseNoteData.frontmatter.published_date} + + + +
+ ) +} + +export default ReleaseNoteTeaser diff --git a/src/templates/releaseNote.js b/src/templates/releaseNotePage.js similarity index 98% rename from src/templates/releaseNote.js rename to src/templates/releaseNotePage.js index ed531080af..3ba62219d4 100644 --- a/src/templates/releaseNote.js +++ b/src/templates/releaseNotePage.js @@ -120,7 +120,7 @@ class ReleaseNoteTemplate extends React.Component { export default ReleaseNoteTemplate export const pageQuery = graphql` - query ChangelogBySlug($slug: String!) { + query ReleaseNoteBySlug($slug: String!) { mdx(fields: { slug: { eq: $slug } }) { id body diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 11d6526236..5b9e447091 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -19,7 +19,9 @@ import SEO from "../layout/seo" import Enablement from "../components/enablement" import Color from "../components/color.js" import Download from "../components/download" -import ReleaseNoteCategories from "../components/releaseNoteCategories" +import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" +import MdxWrapper from "../components/mdxWrapper.js" +// import { releaseNotePseudoQueryFields } from "../data/fragments.js" import { @@ -86,8 +88,6 @@ class ReleaseNotesListingTemplate extends React.Component { render() { const changelogs = this.props.data.allMdx.edges - console.log(changelogs) - console.log(changelogs[0].node.frontmatter.categories) return ( - -

- {changelog.node.frontmatter.title} -

- - Todo, transform to date format

- {changelog.node.frontmatter.published_date} + - Maybe - - - - - {changelog.node.body} - ))} @@ -161,9 +145,10 @@ class ReleaseNotesListingTemplate extends React.Component { export default ReleaseNotesListingTemplate -/* todo remove draft filter from query */ export const pageQuery = graphql` - query Changelogs { + + +query Changelogs { allMdx( filter: { fileAbsolutePath: { regex: "/releasenotes/" } From ec6291d41e817b68a84b160d9dfdc7b7ff8f1614 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 16:17:26 -0600 Subject: [PATCH 026/174] more cleanup --- src/templates/releaseNotesListing.js | 81 ++-------------------------- 1 file changed, 5 insertions(+), 76 deletions(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 5b9e447091..9dac75f6f5 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -1,64 +1,19 @@ import React from "react" import { graphql, Link } from "gatsby" -import { MDXRenderer } from "gatsby-plugin-mdx" -import { MDXProvider } from "@mdx-js/react" - import Layout from "../layout/layout" -import NavButtons from "../components/navButtons" -import Callout from "../components/callout" -import Alert from "../components/alert" -import Accordion from "../components/accordion" -import ExternalLink from "../components/externalLink" -import Popover from "../components/popover" -import TabList from "../components/tabList" -import Tab from "../components/tab" -import TOC from "../components/toc" -import Card from "../components/card" -import CardGroup from "../components/cardGroup" import SEO from "../layout/seo" -import Enablement from "../components/enablement" -import Color from "../components/color.js" -import Download from "../components/download" import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" -import MdxWrapper from "../components/mdxWrapper.js" // import { releaseNotePseudoQueryFields } from "../data/fragments.js" -import { - headline1, - headline2, - headline3, - headline4, -} from "../components/releaseHeadlines" - import { Container, Icon, - Pager, } from "@pantheon-systems/pds-toolkit-react" -const shortcodes = { - Callout, - Alert, - Accordion, - ExternalLink, - Popover, - TabList, - Tab, - Card, - CardGroup, - Enablement, - Color, - Download, - h1: headline2, - h2: headline3, - h3: headline4, -} - // Set container width for search and main content. const containerWidth = "standard" -// Combined changelog template. class ReleaseNotesListingTemplate extends React.Component { componentDidMount() { $("[data-toggle=popover]").popover({ @@ -87,7 +42,7 @@ class ReleaseNotesListingTemplate extends React.Component { } render() { - const changelogs = this.props.data.allMdx.edges + const releasenotes = this.props.data.allMdx.edges return (

Pantheon Release Notes

-
-

- Sign up for the Pantheon Changelog Newsletter to receive a - monthly email on what's new and improved across the platform. -

- todo link to somewhere other than Pantheon learning.

- - Subscribe Now - - -

- {changelogs.map((changelog) => ( - - - - - - + {releasenotes.map((releasenote) => ( + + ))}
- -
@@ -148,7 +77,7 @@ export default ReleaseNotesListingTemplate export const pageQuery = graphql` -query Changelogs { +query releasenotes { allMdx( filter: { fileAbsolutePath: { regex: "/releasenotes/" } From 923eaf8a81a367db1361a3f5be1cd9debb346a24 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 16:57:14 -0600 Subject: [PATCH 027/174] react cleanup --- src/components/mdxWrapper.js | 16 ------------ src/components/releaseNoteTeaser.js | 16 +++--------- src/templates/releaseNotesListing.js | 37 ++-------------------------- 3 files changed, 6 insertions(+), 63 deletions(-) diff --git a/src/components/mdxWrapper.js b/src/components/mdxWrapper.js index 0b83ffdc68..fdef6ab4d5 100644 --- a/src/components/mdxWrapper.js +++ b/src/components/mdxWrapper.js @@ -1,10 +1,6 @@ import React from "react" -import { graphql, Link } from "gatsby" import { MDXRenderer } from "gatsby-plugin-mdx" import { MDXProvider } from "@mdx-js/react" - -import Layout from "../layout/layout" -import NavButtons from "../components/navButtons" import Callout from "../components/callout" import Alert from "../components/alert" import Accordion from "../components/accordion" @@ -12,30 +8,18 @@ import ExternalLink from "../components/externalLink" import Popover from "../components/popover" import TabList from "../components/tabList" import Tab from "../components/tab" -import TOC from "../components/toc" import Card from "../components/card" import CardGroup from "../components/cardGroup" -import SEO from "../layout/seo" import Enablement from "../components/enablement" import Color from "../components/color.js" import Download from "../components/download" -import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" -// import { releaseNotePseudoQueryFields } from "../data/fragments.js" - import { - headline1, headline2, headline3, headline4, } from "../components/releaseHeadlines" -import { - Container, - Icon, - Pager, -} from "@pantheon-systems/pds-toolkit-react" - const shortcodes = { Callout, Alert, diff --git a/src/components/releaseNoteTeaser.js b/src/components/releaseNoteTeaser.js index 2662d87695..b7d50265dc 100644 --- a/src/components/releaseNoteTeaser.js +++ b/src/components/releaseNoteTeaser.js @@ -1,25 +1,16 @@ import React from "react" -import { graphql, Link } from "gatsby" +import { Link } from "gatsby" import ReleaseNoteCategories from "../components/releaseNoteCategories" import MdxWrapper from "../components/mdxWrapper.js" +const ReleaseNoteTeaser = ({ ReleaseNoteData }) => { - - - - - - -const ReleaseNoteTeaser = ({ key, ReleaseNoteData }) => { - - - console.log("ReleaseNoteData", ReleaseNoteData); if (!ReleaseNoteData) { return null } return ( - +
{
+
) } diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 9dac75f6f5..e6603509a8 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -1,45 +1,18 @@ import React from "react" -import { graphql, Link } from "gatsby" +import { graphql } from "gatsby" import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" // import { releaseNotePseudoQueryFields } from "../data/fragments.js" - import { Container, - Icon, } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. const containerWidth = "standard" class ReleaseNotesListingTemplate extends React.Component { - componentDidMount() { - $("[data-toggle=popover]").popover({ - trigger: "click", - }) - - $("body").on("click", function (e) { - $('[data-toggle="popover"]').each(function () { - if ( - !$(this).is(e.target) && - $(this).has(e.target).length === 0 && - $(".popover").has(e.target).length === 0 - ) { - $(this).popover("hide") - } - }) - }) - - $("body").keyup(function (e) { - $('[data-toggle="popover"]').each(function () { - if (event.which === 27) { - $(this).popover("hide") - } - }) - }) - } render() { const releasenotes = this.props.data.allMdx.edges @@ -55,15 +28,11 @@ class ReleaseNotesListingTemplate extends React.Component {

Pantheon Release Notes


-
{releasenotes.map((releasenote) => ( - - - + ))}
-
@@ -75,8 +44,6 @@ class ReleaseNotesListingTemplate extends React.Component { export default ReleaseNotesListingTemplate export const pageQuery = graphql` - - query releasenotes { allMdx( filter: { From 1b7016381c27c83643bb55a68444c03cfa3d8776 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 17:12:30 -0600 Subject: [PATCH 028/174] refactor --- .../releaseNotesListingByCategory.js | 142 ++---------------- 1 file changed, 10 insertions(+), 132 deletions(-) diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index e7436942b4..ae7f5262ab 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -1,157 +1,36 @@ import React from "react" -import { graphql, Link } from "gatsby" -import { MDXRenderer } from "gatsby-plugin-mdx" -import { MDXProvider } from "@mdx-js/react" - +import { graphql } from "gatsby" import Layout from "../layout/layout" -import NavButtons from "../components/navButtons" -import Callout from "../components/callout" -import Alert from "../components/alert" -import Accordion from "../components/accordion" -import ExternalLink from "../components/externalLink" -import Popover from "../components/popover" -import TabList from "../components/tabList" -import Tab from "../components/tab" -import TOC from "../components/toc" -import Card from "../components/card" -import CardGroup from "../components/cardGroup" import SEO from "../layout/seo" -import Enablement from "../components/enablement" -import Color from "../components/color.js" -import Download from "../components/download" -import ReleaseNoteCategories from "../components/releaseNoteCategories" - - -import { - headline1, - headline2, - headline3, - headline4, -} from "../components/releaseHeadlines" +import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" +import { Container } from "@pantheon-systems/pds-toolkit-react" -import { - Container, - Icon, - Pager, -} from "@pantheon-systems/pds-toolkit-react" - -const shortcodes = { - Callout, - Alert, - Accordion, - ExternalLink, - Popover, - TabList, - Tab, - Card, - CardGroup, - Enablement, - Color, - Download, - h1: headline2, - h2: headline3, - h3: headline4, -} // Set container width for search and main content. const containerWidth = "standard" -// Combined changelog template. class ReleaseNotesListingByCategoryTemplate extends React.Component { - componentDidMount() { - $("[data-toggle=popover]").popover({ - trigger: "click", - }) - - $("body").on("click", function (e) { - $('[data-toggle="popover"]').each(function () { - if ( - !$(this).is(e.target) && - $(this).has(e.target).length === 0 && - $(".popover").has(e.target).length === 0 - ) { - $(this).popover("hide") - } - }) - }) - - $("body").keyup(function (e) { - $('[data-toggle="popover"]').each(function () { - if (event.which === 27) { - $(this).popover("hide") - } - }) - }) - } render() { - const changelogs = this.props.data.allMdx.edges - console.log(changelogs) - console.log(changelogs[0].node.frontmatter.categories) + const releasenotes = this.props.data.allMdx.edges return (
-

Pantheon Release Notes

-
-

- Sign up for the Pantheon Changelog Newsletter to receive a - monthly email on what's new and improved across the platform. -

- todo link to somewhere other than Pantheon learning.

- - Subscribe Now - - -
+

Pantheon Release Notes: TODO get variable in headline


-
- {changelogs.map((changelog) => ( - - - - -

- {changelog.node.frontmatter.title} -

- - - Todo, transform to date format

- {changelog.node.frontmatter.published_date} - - Maybe - - - - - {changelog.node.body} - -
+ {releasenotes.map((releasenote) => ( + ))} -
- -
@@ -161,9 +40,8 @@ class ReleaseNotesListingByCategoryTemplate extends React.Component { export default ReleaseNotesListingByCategoryTemplate -/* todo remove draft filter from query */ export const pageQuery = graphql` - query Changelogs($category: String!) { + query releasenotes($category: String!) { allMdx( filter: { fileAbsolutePath: { regex: "/releasenotes/" } From f4460a0f245693358f734154d188c26324df689e Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 17:44:26 -0600 Subject: [PATCH 029/174] release notes cat handling --- src/data/releaseNoteCategories.js | 10 ++++++++++ src/templates/releaseNotesListingByCategory.js | 12 ++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 src/data/releaseNoteCategories.js diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js new file mode 100644 index 0000000000..fe03110d4c --- /dev/null +++ b/src/data/releaseNoteCategories.js @@ -0,0 +1,10 @@ +export const releaseNoteCategories = { + "security": { + "displayName": "Security", + "color": "red" + }, + "documentation": { + "displayName": "Documentation", + "color": "purple" + }, +}; diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index ae7f5262ab..967a91e50d 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -4,25 +4,29 @@ import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" import { Container } from "@pantheon-systems/pds-toolkit-react" - +import {releaseNoteCategories} from "../data/releaseNoteCategories.js" // Set container width for search and main content. const containerWidth = "standard" + class ReleaseNotesListingByCategoryTemplate extends React.Component { render() { const releasenotes = this.props.data.allMdx.edges + const categorySlug = this.props.pageContext.category; + const categoryDisplayName = releaseNoteCategories[categorySlug]["displayName"]; + return (
-

Pantheon Release Notes: TODO get variable in headline

+

Pantheon Release Notes: {categoryDisplayName}


From b77039e3ab2f61af463cea54baefa7d34a8c1d67 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 17:54:14 -0600 Subject: [PATCH 030/174] using color --- gatsby-node.js | 2 +- src/components/releaseNoteCategories.js | 12 +++++++++--- src/templates/releaseNotesListingByCategory.js | 3 ++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index b7742cd4ed..87a89b8578 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -395,7 +395,7 @@ exports.createPages = ({ graphql, actions }) => { path: `/release-notes/`, component: path.resolve("./src/templates/releaseNotesListing.js"), }) - + // @todo, switch to "../data/releaseNoteCategories.js" const allowedReleaseNoteCategories = { "security": { "Display Name": "Security", diff --git a/src/components/releaseNoteCategories.js b/src/components/releaseNoteCategories.js index ce5934441c..642eed89ac 100644 --- a/src/components/releaseNoteCategories.js +++ b/src/components/releaseNoteCategories.js @@ -1,5 +1,8 @@ import React from "react" import { Link } from "gatsby" +import { releaseNoteCategories } from "../data/releaseNoteCategories.js" + + const ReleaseNoteCategories = ({categories}) => { @@ -15,13 +18,16 @@ if (!categories) { :

Categories:

} - {categories.map((category, index) => ( + + {categories.map((categorySlug, index) => ( + +
-

{category}

+

{releaseNoteCategories[categorySlug].displayName}

diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index 967a91e50d..9cfabf0399 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -3,8 +3,9 @@ import { graphql } from "gatsby" import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" +import { releaseNoteCategories } from "../data/releaseNoteCategories.js" import { Container } from "@pantheon-systems/pds-toolkit-react" -import {releaseNoteCategories} from "../data/releaseNoteCategories.js" + // Set container width for search and main content. const containerWidth = "standard" From 324f6e683ed85f46e371f197b28183f3a82c01ca Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 17:56:59 -0600 Subject: [PATCH 031/174] moving around code block --- gatsby-node.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index 87a89b8578..013d3a2cbd 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -336,21 +336,6 @@ exports.createPages = ({ graphql, actions }) => { } }) - // Create Terminus Command pages - const terminusCommands = result.data.dataJson.commands - terminusCommands.forEach(command => { - const slugRegExp = /:/g - const slug = command.name.replace(slugRegExp, "-") - createPage({ - path: `terminus/commands/${slug}`, - component: path.resolve(`./src/templates/terminusCommand.js`), - context: { - slug: slug, - name: command.name - } - }) - }) - // Create changelog pages. const changelogs = result.data.allChangelogs.edges changelogs.forEach(changelog => { @@ -389,6 +374,21 @@ exports.createPages = ({ graphql, actions }) => { }) }) + // Create Terminus Command pages + const terminusCommands = result.data.dataJson.commands + terminusCommands.forEach(command => { + const slugRegExp = /:/g + const slug = command.name.replace(slugRegExp, "-") + createPage({ + path: `terminus/commands/${slug}`, + component: path.resolve(`./src/templates/terminusCommand.js`), + context: { + slug: slug, + name: command.name + } + }) + }) + // Create release notes without pagination. At a later date, we may want to add pagination. // And can reused the code above. createPage({ From eef17418d5ba019c7ef3e99a8ee81aca00d7df74 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 17:58:48 -0600 Subject: [PATCH 032/174] whitespace --- gatsby-node.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index 013d3a2cbd..5d499a3a8f 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -227,7 +227,6 @@ exports.createPages = ({ graphql, actions }) => { } } - allChangelogs: allMdx( filter: { fileAbsolutePath: { regex: "/changelogs/"} @@ -529,7 +528,6 @@ exports.onCreateNode = ({ node, getNode, actions }) => { value: excerpt, }) - const textNode = { id: `${node.id}-MarkdownBody`, parent: node.id, From c825dae9fdd19869388dffc8180ba02b78844d44 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 18:03:27 -0600 Subject: [PATCH 033/174] more clean up --- src/templates/releaseNotePage.js | 66 +------------------------------- 1 file changed, 2 insertions(+), 64 deletions(-) diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index 3ba62219d4..110d5dcc18 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -1,76 +1,18 @@ import React from "react" import { graphql } from "gatsby" -import { MDXRenderer } from "gatsby-plugin-mdx" -import { MDXProvider } from "@mdx-js/react" - import Layout from "../layout/layout" -import NavButtons from "../components/navButtons" -import Alert from "../components/alert" -import Accordion from "../components/accordion" -import ExternalLink from "../components/externalLink" -import Popover from "../components/popover" -import TabList from "../components/tabList" -import Tab from "../components/tab" -import TOC from "../components/toc" -import Card from "../components/card" -import CardGroup from "../components/cardGroup" import SEO from "../layout/seo" -import Enablement from "../components/enablement" -import Color from "../components/color.js" -import Download from "../components/download" import ReleaseNoteCategories from "../components/releaseNoteCategories" - - +import MdxWrapper from "../components/mdxWrapper.js" import { Container, - Icon, - Pager, SidebarLayout, } from "@pantheon-systems/pds-toolkit-react" -const shortcodes = { - Alert, - Accordion, - ExternalLink, - Popover, - TabList, - Tab, - Card, - CardGroup, - Enablement, - Color, - Download, -} - // Set container width for search and main content. const containerWidth = "standard" class ReleaseNoteTemplate extends React.Component { - componentDidMount() { - $("[data-toggle=popover]").popover({ - trigger: "click", - }) - - $("body").on("click", function (e) { - $('[data-toggle="popover"]').each(function () { - if ( - !$(this).is(e.target) && - $(this).has(e.target).length === 0 && - $(".popover").has(e.target).length === 0 - ) { - $(this).popover("hide") - } - }) - }) - - $("body").keyup(function (e) { - $('[data-toggle="popover"]').each(function () { - if (event.which === 27) { - $(this).popover("hide") - } - }) - }) - } render() { const node = this.props.data.mdx @@ -90,9 +32,7 @@ class ReleaseNoteTemplate extends React.Component {

{node.frontmatter.title}

-
-
- - {node.body} - +
From 031bfd2c0fecc688253561bb4b7c7f9ea9ad485b Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 18:14:01 -0600 Subject: [PATCH 034/174] date component --- src/components/formattedPublishedDate.js | 31 ++++++++++++++++++++++++ src/components/releaseNoteTeaser.js | 8 ++---- src/templates/releaseNotePage.js | 6 ++--- 3 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 src/components/formattedPublishedDate.js diff --git a/src/components/formattedPublishedDate.js b/src/components/formattedPublishedDate.js new file mode 100644 index 0000000000..a01245d2df --- /dev/null +++ b/src/components/formattedPublishedDate.js @@ -0,0 +1,31 @@ +import React from "react" + + + +const FormattedPublishedDate = ({ dateString }) => { + + // Todo, more type checking. + if (!dateString) { + return null + } + + // Turn ReleaseNoteData.frontmatter.published_date into a date object. + // And then format it as Month Day, Year. + // https://stackoverflow.com/questions/3552461/how-to-format-a-javascript-date + const date = new Date(dateString); + const options = { year: 'numeric', month: 'long', day: 'numeric' }; + const formattedDate = date.toLocaleDateString(undefined, options); + + + return ( +
+ + {formattedDate} + + +
+ + ) +} + +export default FormattedPublishedDate diff --git a/src/components/releaseNoteTeaser.js b/src/components/releaseNoteTeaser.js index b7d50265dc..5aa97f34e3 100644 --- a/src/components/releaseNoteTeaser.js +++ b/src/components/releaseNoteTeaser.js @@ -2,6 +2,7 @@ import React from "react" import { Link } from "gatsby" import ReleaseNoteCategories from "../components/releaseNoteCategories" import MdxWrapper from "../components/mdxWrapper.js" +import FormattedPublishedDate from "./formattedPublishedDate.js" const ReleaseNoteTeaser = ({ ReleaseNoteData }) => { @@ -21,13 +22,8 @@ const ReleaseNoteTeaser = ({ ReleaseNoteData }) => { - - - Todo, transform to date format

- {ReleaseNoteData.frontmatter.published_date} - + - ) diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index 110d5dcc18..41b72328f8 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -4,6 +4,8 @@ import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteCategories from "../components/releaseNoteCategories" import MdxWrapper from "../components/mdxWrapper.js" +import FormattedPublishedDate from "../components/formattedPublishedDate.js" + import { Container, SidebarLayout, @@ -39,12 +41,10 @@ class ReleaseNoteTemplate extends React.Component { className="changelog changelog--individual" >
-
- +
-
From 37248a8a2d697740f391350d4a8faa6db1e35309 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 20:27:45 -0600 Subject: [PATCH 035/174] release notes are kind of working --- src/templates/releaseNotePage.js | 40 +++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index 41b72328f8..63333603b3 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -57,7 +57,15 @@ class ReleaseNoteTemplate extends React.Component { export default ReleaseNoteTemplate -export const pageQuery = graphql` +const frontMatterFields = ` + frontmatter { + title + published_date + categories + } +`; +/* +const theQuery = ` query ReleaseNoteBySlug($slug: String!) { mdx(fields: { slug: { eq: $slug } }) { id @@ -73,3 +81,33 @@ export const pageQuery = graphql` } } ` +export const pageQuery = graphql( + {query: theQuery} + ); + +*/ + +export const pageQuery = graphql` + + fragment releaseNotedFields on Mdx { + id + body + } + +query ReleaseNoteBySlug($slug: String!) { + + + + mdx(fields: { slug: { eq: $slug } }) { + ...releaseNotedFields + + fields { + slug + } + frontmatter { + title, + published_date, + categories + } + } + }` From 4bce369db990e075375377dd561d2abaad1b6bd9 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 21:57:56 -0600 Subject: [PATCH 036/174] a sort of working fragment --- src/templates/releaseNotePage.js | 35 ++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index 63333603b3..1072258639 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -5,7 +5,7 @@ import SEO from "../layout/seo" import ReleaseNoteCategories from "../components/releaseNoteCategories" import MdxWrapper from "../components/mdxWrapper.js" import FormattedPublishedDate from "../components/formattedPublishedDate.js" - +import { releaseNotedFraggy } from "../fragments/releaseNote.js" import { Container, SidebarLayout, @@ -87,20 +87,10 @@ export const pageQuery = graphql( */ -export const pageQuery = graphql` - - fragment releaseNotedFields on Mdx { +export const somefields = graphql` + fragment theReleaseNoteFields on Mdx { id body - } - -query ReleaseNoteBySlug($slug: String!) { - - - - mdx(fields: { slug: { eq: $slug } }) { - ...releaseNotedFields - fields { slug } @@ -109,5 +99,24 @@ query ReleaseNoteBySlug($slug: String!) { published_date, categories } + +} + + +` + + +export const pageQuery = graphql` + + + +query ReleaseNoteBySlug($slug: String!) { + + + + mdx(fields: { slug: { eq: $slug } }) { + ...theReleaseNoteFields + + } }` From ed01dc78b0e967d8b62d86e6e68214b6b2206309 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 21:58:56 -0600 Subject: [PATCH 037/174] fragment cleanup --- src/templates/releaseNotePage.js | 42 +------------------------------- 1 file changed, 1 insertion(+), 41 deletions(-) diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index 1072258639..275aec1835 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -57,35 +57,7 @@ class ReleaseNoteTemplate extends React.Component { export default ReleaseNoteTemplate -const frontMatterFields = ` - frontmatter { - title - published_date - categories - } -`; -/* -const theQuery = ` - query ReleaseNoteBySlug($slug: String!) { - mdx(fields: { slug: { eq: $slug } }) { - id - body - fields { - slug - } - frontmatter { - title, - published_date, - categories - } - } - } -` -export const pageQuery = graphql( - {query: theQuery} - ); -*/ export const somefields = graphql` fragment theReleaseNoteFields on Mdx { @@ -99,24 +71,12 @@ export const somefields = graphql` published_date, categories } - -} - - -` +}` export const pageQuery = graphql` - - - query ReleaseNoteBySlug($slug: String!) { - - - mdx(fields: { slug: { eq: $slug } }) { ...theReleaseNoteFields - - } }` From e3b73f1a71547b63165899ed5a760865eb516c9b Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 21:59:41 -0600 Subject: [PATCH 038/174] trying to make fragment a fragment in a different file --- src/fragments/releaseNote.js | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/fragments/releaseNote.js diff --git a/src/fragments/releaseNote.js b/src/fragments/releaseNote.js new file mode 100644 index 0000000000..6574104e69 --- /dev/null +++ b/src/fragments/releaseNote.js @@ -0,0 +1,7 @@ +import { graphql } from "gatsby" + +export const releaseNotedFraggy = graphql` + fragment releaseNotedFraggy on Mdx { + id + }` + From 983b619ce5f4d34981fb1fcb82973e50ad77ba8f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 22:03:14 -0600 Subject: [PATCH 039/174] moving fragment to other file --- src/fragments/releaseNote.js | 15 +++++++++++++++ src/templates/releaseNotePage.js | 17 +---------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/fragments/releaseNote.js b/src/fragments/releaseNote.js index 6574104e69..3d7e087ac5 100644 --- a/src/fragments/releaseNote.js +++ b/src/fragments/releaseNote.js @@ -1,5 +1,20 @@ import { graphql } from "gatsby" +export const somefields = graphql` + fragment theReleaseNoteFields on Mdx { + id + body + fields { + slug + } + frontmatter { + title, + published_date, + categories + } +}` + + export const releaseNotedFraggy = graphql` fragment releaseNotedFraggy on Mdx { id diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index 275aec1835..93cb219865 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -5,6 +5,7 @@ import SEO from "../layout/seo" import ReleaseNoteCategories from "../components/releaseNoteCategories" import MdxWrapper from "../components/mdxWrapper.js" import FormattedPublishedDate from "../components/formattedPublishedDate.js" +// This is used to get the fields from the MDX file. import { releaseNotedFraggy } from "../fragments/releaseNote.js" import { Container, @@ -58,22 +59,6 @@ class ReleaseNoteTemplate extends React.Component { export default ReleaseNoteTemplate - -export const somefields = graphql` - fragment theReleaseNoteFields on Mdx { - id - body - fields { - slug - } - frontmatter { - title, - published_date, - categories - } -}` - - export const pageQuery = graphql` query ReleaseNoteBySlug($slug: String!) { mdx(fields: { slug: { eq: $slug } }) { From 53152808e307bd0414fe7e502ed8b0382de24919 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 23:44:08 -0600 Subject: [PATCH 040/174] breakthrough --- gatsby-node.js | 22 ++++++++++++++++++++++ src/fragments/releaseNote.js | 7 ------- src/templates/releaseNotePage.js | 2 +- src/templates/releaseNotesListing.js | 21 ++++++++++----------- 4 files changed, 33 insertions(+), 19 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index 5d499a3a8f..5cd3deaeea 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -10,6 +10,28 @@ https://www.gatsbyjs.com/docs/reference/config-files/gatsby-node/ The contents of this file define how the source content is converted into web pages. It is prime for refactoring. */ +/* +exports.createResolvers = ({ createResolvers }) => { + createResolvers({ + Query: { + // Include the fragment in every query + releaseNotedFraggy: { + type: "Mdx", // Adjust the type based on your schema + resolve: () => ({}), + }, + releaseNotedFraggy: { + type: "Node", // Adjust the type based on your schema + resolve: () => ({}), + }, + body: { + type: "Node", // Adjust the type based on your schema + resolve: () => ({}), + }, + }, + }); +}; + +*/ /** This helper function determines what slug a piece of content will use */ diff --git a/src/fragments/releaseNote.js b/src/fragments/releaseNote.js index 3d7e087ac5..79e6cb5654 100644 --- a/src/fragments/releaseNote.js +++ b/src/fragments/releaseNote.js @@ -13,10 +13,3 @@ export const somefields = graphql` categories } }` - - -export const releaseNotedFraggy = graphql` - fragment releaseNotedFraggy on Mdx { - id - }` - diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index 93cb219865..d60515b0d9 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -6,7 +6,7 @@ import ReleaseNoteCategories from "../components/releaseNoteCategories" import MdxWrapper from "../components/mdxWrapper.js" import FormattedPublishedDate from "../components/formattedPublishedDate.js" // This is used to get the fields from the MDX file. -import { releaseNotedFraggy } from "../fragments/releaseNote.js" +import { releaseNoteFragment } from "../fragments/releaseNote.js" import { Container, SidebarLayout, diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index e6603509a8..12a3878876 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -3,12 +3,16 @@ import { graphql } from "gatsby" import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" -// import { releaseNotePseudoQueryFields } from "../data/fragments.js" +import ReleaseNoteTeaserBySlug from "../components/releaseNoteTeaserBySlug.js" +import { releaseNoteFragment } from "../fragments/releaseNote.js" + import { Container, } from "@pantheon-systems/pds-toolkit-react" + + // Set container width for search and main content. const containerWidth = "standard" @@ -30,6 +34,7 @@ class ReleaseNotesListingTemplate extends React.Component {
{releasenotes.map((releasenote) => ( + ))}
@@ -44,7 +49,8 @@ class ReleaseNotesListingTemplate extends React.Component { export default ReleaseNotesListingTemplate export const pageQuery = graphql` -query releasenotes { + +query releasenotesListing { allMdx( filter: { fileAbsolutePath: { regex: "/releasenotes/" } @@ -53,15 +59,8 @@ query releasenotes { ) { edges { node { - id - body - frontmatter { - title, - published_date, - categories, - } - fields { - slug + ... on Mdx { + ...theReleaseNoteFields } } } From a3e91c6db862c1914210f43f5add695c370a4084 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Tue, 2 Jan 2024 23:48:08 -0600 Subject: [PATCH 041/174] fragment again --- src/fragments/releaseNote.js | 2 +- src/templates/releaseNotePage.js | 1 - src/templates/releaseNotesListing.js | 1 - src/templates/releaseNotesListingByCategory.js | 11 +---------- 4 files changed, 2 insertions(+), 13 deletions(-) diff --git a/src/fragments/releaseNote.js b/src/fragments/releaseNote.js index 79e6cb5654..6aad884608 100644 --- a/src/fragments/releaseNote.js +++ b/src/fragments/releaseNote.js @@ -1,6 +1,6 @@ import { graphql } from "gatsby" -export const somefields = graphql` +export const releaseNoteFragment = graphql` fragment theReleaseNoteFields on Mdx { id body diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index d60515b0d9..2b92814e60 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -58,7 +58,6 @@ class ReleaseNoteTemplate extends React.Component { export default ReleaseNoteTemplate - export const pageQuery = graphql` query ReleaseNoteBySlug($slug: String!) { mdx(fields: { slug: { eq: $slug } }) { diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 12a3878876..5821622ba8 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -3,7 +3,6 @@ import { graphql } from "gatsby" import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" -import ReleaseNoteTeaserBySlug from "../components/releaseNoteTeaserBySlug.js" import { releaseNoteFragment } from "../fragments/releaseNote.js" diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index 9cfabf0399..6a82b6542d 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -56,16 +56,7 @@ export const pageQuery = graphql` ) { edges { node { - id - body - frontmatter { - title, - published_date, - categories, - } - fields { - slug - } + ...theReleaseNoteFields } } } From 8a84152c563d743c97de3bba61315d403ee0886d Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Thu, 4 Jan 2024 11:59:39 -0600 Subject: [PATCH 042/174] Define attributes for all 'Release Notes' categories in JSON --- src/data/releaseNoteCategories.js | 111 ++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 src/data/releaseNoteCategories.js diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js new file mode 100644 index 0000000000..e965b4fa6e --- /dev/null +++ b/src/data/releaseNoteCategories.js @@ -0,0 +1,111 @@ +export const releaseNoteCategories = { + "action-required": { + "displayName": "Action Required", + "color": "red", + "description": "Requires customer to act in order to avoid disruption" + }, + "drupal": { + "displayName": "Drupal", + "color": "black", + "description": "Tailored for updates specific to the Drupal content management system, helping Drupal users stay informed about platform changes that directly impact their workflows" + }, + "new-feature": { + "displayName": "New Feature", + "color": "green", + "description": "Consolidates information about both new features and improvements, providing users with insights into enhancements that contribute to a better overall experience" + }, + "front-end-sites": { + "displayName": "Front-End Sites", + "color": "purple", + "description": "Focuses on updates related to Front-End Site (FES) enhancements, ensuring that developers and designers stay informed about changes affecting how they use the product" + }, + "infrastructure": { + "displayName": "Infrastructure", + "color": "black", + "description": "Details changes related to the underlying technology and architecture of the Pantheon platform, providing insights into changes that may impact performance and reliability" + }, + "security": { + "displayName": "Security", + "color": "red", + "description": "Addresses security-related updates, emphasizing the importance of staying informed about changes aimed at maintaining a secure and protected environment for users" + }, + "tools-apis": { + "displayName": "Tools & APIs", + "color": "black", + "description": "Keeps users informed about updates related to tools and APIs, helping developers understand changes that may impact their workflows and integrations" + }, + "wordpress": { + "displayName": "WordPress", + "color": "black", + "description": "Tailored for updates specific to the WordPress content management system, helping WordPress users stay informed about platform changes that directly impact their workflows" + }, + "performance": { + "displayName": "Performance", + "color": "black", + "description": "Highlights updates focused on optimizing the speed, efficiency, and overall performance of the Pantheon platform, giving users insights into improvements that enhance user experience" + }, + "user-interface": { + "displayName": "User interface", + "color": "black", + "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" + }, + "account-management": { + "displayName": "Account Management", + "color": "black", + "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" + }, + "policy": { + "displayName": "Policy", + "color": "gray", + "description": "Communicates updates related to platform policies, ensuring users are aware of any changes in rules or guidelines that may impact their usage" + }, + "content-management": { + "displayName": "Content Management", + "color": "gray", + "description": "Include changes relevant to managing digital content on the Pantheon platform, ensuring users stay informed about updates related to content creation, editing, and relevant tools" + }, + "deprecated": { + "displayName": "Deprecated", + "color": "red", + "description": "Reserved for updates indicating the phasing out or discontinuation of specific features or functionalities" + }, + "events": { + "displayName": "Events", + "color": "gray", + "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" + }, + "general": { + "displayName": "General", + "color": "gray", + "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" + }, + "issue-bug": { + "displayName": "Issue/Bug", + "color": "gray", + "description": "Merges information about issues and bugs into a unified category, allowing users to easily identify and understand the current status and steps taken to address reported problems" + }, + "migration": { + "displayName": "Migration", + "color": "gray", + "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" + }, + "integration": { + "displayName": "", + "color": "gray", + "description": "Addresses updates related to system integration, helping IT and tech leads understand changes relevant to connecting Pantheon with other tools and services", + "_comment-from-Rachel": "I think we should remove this as a duplicate of the Tools/APIs category" + }, + "platform": { + "displayName": "Platform", + "color": "gray", + "description": "Offers general updates about the Pantheon platform, providing users with a comprehensive overview of changes that influence the overall system", + "_comment-from-Rachel": "I think we should remove this as a duplicate of the Infrastructure category" + }, + "documentation" : { + "displayName": "Documentation", + "color": "gray", + "description": "Communicates substantive changes to docs.pantheon.io", + "_comment-from-Rachel": "Review needed: New category not yet reviewed/approved by Ingrid or design team", + "_another_comment-from-Rachel": "We should require any new category to go through a review panel which includes design team, since too many tags can reduce usability of the feature and duplicate categories can cause confusion for intended usage." + } +}; From 95d9dd55f49b48f8b8d545a7f5f1b8a9f48aa4f7 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 13:28:13 -0600 Subject: [PATCH 043/174] adding todo about description --- src/templates/releaseNotesListingByCategory.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index 6a82b6542d..f5f2eb72d3 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -6,11 +6,9 @@ import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" import { releaseNoteCategories } from "../data/releaseNoteCategories.js" import { Container } from "@pantheon-systems/pds-toolkit-react" - // Set container width for search and main content. const containerWidth = "standard" - class ReleaseNotesListingByCategoryTemplate extends React.Component { render() { @@ -28,6 +26,7 @@ class ReleaseNotesListingByCategoryTemplate extends React.Component {

Pantheon Release Notes: {categoryDisplayName}

+ TODO Render the category description here.
From 5f4a60dada8ce5960e62ce1cae16ffac9eb5afb7 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 13:37:02 -0600 Subject: [PATCH 044/174] fixing merge error --- src/data/releaseNoteCategories.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js index 20dfb98e08..3001757d2e 100644 --- a/src/data/releaseNoteCategories.js +++ b/src/data/releaseNoteCategories.js @@ -116,5 +116,4 @@ export const releaseNoteCategories = { "_comment-from-Rachel": "Review needed: New category not yet reviewed/approved by Ingrid or design team", "_another_comment-from-Rachel": "We should require any new category to go through a review panel which includes design team, since too many tags can reduce usability of the feature and duplicate categories can cause confusion for intended usage." } ->>>>>>> origin/backfill-release-notes }; From 6c646d2957cf7406be5277da7bf565e4f149b949 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 14:05:47 -0600 Subject: [PATCH 045/174] starting category selector component --- gatsby-node.js | 23 ---------- src/components/releaseNoteCategorySelector.js | 45 +++++++++++++++++++ src/data/releaseNoteCategories.js | 11 +---- src/templates/releaseNotesListing.js | 2 + 4 files changed, 49 insertions(+), 32 deletions(-) create mode 100644 src/components/releaseNoteCategorySelector.js diff --git a/gatsby-node.js b/gatsby-node.js index 5cd3deaeea..208cdb056d 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -10,29 +10,6 @@ https://www.gatsbyjs.com/docs/reference/config-files/gatsby-node/ The contents of this file define how the source content is converted into web pages. It is prime for refactoring. */ -/* -exports.createResolvers = ({ createResolvers }) => { - createResolvers({ - Query: { - // Include the fragment in every query - releaseNotedFraggy: { - type: "Mdx", // Adjust the type based on your schema - resolve: () => ({}), - }, - releaseNotedFraggy: { - type: "Node", // Adjust the type based on your schema - resolve: () => ({}), - }, - body: { - type: "Node", // Adjust the type based on your schema - resolve: () => ({}), - }, - }, - }); -}; - -*/ - /** This helper function determines what slug a piece of content will use */ const calculateSlug = (node, getNode) => { diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js new file mode 100644 index 0000000000..ba7810d1dc --- /dev/null +++ b/src/components/releaseNoteCategorySelector.js @@ -0,0 +1,45 @@ +import React from "react" +import { Link } from "gatsby" +import { releaseNoteCategories } from "../data/releaseNoteCategories.js" + + + + +const ReleaseNoteCategorySelector = (currentCategorySlug) => { + + + + return ( +
+ These are all the categories! + +
    +{ +// Loop through the categories and create a list of links to each category. +Object.keys(releaseNoteCategories).map((categorySlug, index) => ( +
  • + + { // If the current category is the same as the category we're looping through, add a checkmark. + currentCategorySlug === categorySlug && + + } + + {releaseNoteCategories[categorySlug].displayName} + + + +
  • +)) +} +
+ +
+ + ) +} + +export default ReleaseNoteCategorySelector diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js index 3001757d2e..2a67c45534 100644 --- a/src/data/releaseNoteCategories.js +++ b/src/data/releaseNoteCategories.js @@ -1,12 +1,5 @@ export const releaseNoteCategories = { - "security": { - "displayName": "Security", - "color": "red" - }, - "documentation": { - "displayName": "Documentation", - "color": "purple" - }, + "action-required": { "displayName": "Action Required", "color": "red", @@ -98,7 +91,7 @@ export const releaseNoteCategories = { "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" }, "integration": { - "displayName": "", + "displayName": "Integration", "color": "gray", "description": "Addresses updates related to system integration, helping IT and tech leads understand changes relevant to connecting Pantheon with other tools and services", "_comment-from-Rachel": "I think we should remove this as a duplicate of the Tools/APIs category" diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 5821622ba8..b75c3142e2 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -3,6 +3,7 @@ import { graphql } from "gatsby" import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" +import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelector.js" import { releaseNoteFragment } from "../fragments/releaseNote.js" @@ -29,6 +30,7 @@ class ReleaseNotesListingTemplate extends React.Component {

Pantheon Release Notes

+
From 48f6b301a1f704d46e01d0ee2e0406d5d5079b52 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 14:37:24 -0600 Subject: [PATCH 046/174] menu --- src/components/releaseNoteCategorySelector.js | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index ba7810d1dc..901977e867 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -2,9 +2,13 @@ import React from "react" import { Link } from "gatsby" import { releaseNoteCategories } from "../data/releaseNoteCategories.js" +import { +MenuButton +} from "@pantheon-systems/pds-toolkit-react" +const categoryLinks = []; const ReleaseNoteCategorySelector = (currentCategorySlug) => { @@ -14,7 +18,10 @@ const ReleaseNoteCategorySelector = (currentCategorySlug) => { These are all the categories!
    + + { + // Loop through the categories and create a list of links to each category. Object.keys(releaseNoteCategories).map((categorySlug, index) => (
  • @@ -37,8 +44,40 @@ Object.keys(releaseNoteCategories).map((categorySlug, index) => ( }
+
+ and another way + + { + + // Loop through the categories and create a list of links to each category. + Object.keys(releaseNoteCategories).map((categorySlug, index) => ( + + + {releaseNoteCategories[categorySlug].displayName} + + + )) + } + + + +
+ + + +
+ + + + + + ) } From 1cbc0d51d25de4e5423b1c406ca21ed330acd700 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 15:46:58 -0600 Subject: [PATCH 047/174] switching to NavMenu --- src/components/releaseNoteCategorySelector.js | 88 +++++++++++++++---- 1 file changed, 69 insertions(+), 19 deletions(-) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index 901977e867..d8d66def5c 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -3,12 +3,75 @@ import { Link } from "gatsby" import { releaseNoteCategories } from "../data/releaseNoteCategories.js" import { -MenuButton +MenuButton, + NavMenu, } from "@pantheon-systems/pds-toolkit-react" +const mainNavigationLinks = [ + { + label: { + linkContent: ( + + Docs Home + + ), + }, + links: [ + { + linkContent: ( + + Docs Home + + ), + }, + { + linkContent: ( + + Get Started + + ), + }, +]} + +] + + +const releaseNoteCategoryLinks = function () { + + const links = [ + + ]; + // loop over the categories and add the displayName to the links array + Object.keys(releaseNoteCategories).map((categorySlug, index) => ( + links.push( + + + { + linkContent: ( + + { + releaseNoteCategories[categorySlug].displayName + + } + + ), + }, + + + ) + )) + return links; + +} + + + + +// Loop through the categories and create a list of links to each category. + + -const categoryLinks = []; const ReleaseNoteCategorySelector = (currentCategorySlug) => { @@ -46,23 +109,10 @@ Object.keys(releaseNoteCategories).map((categorySlug, index) => (
and another way - - { - - // Loop through the categories and create a list of links to each category. - Object.keys(releaseNoteCategories).map((categorySlug, index) => ( - - - {releaseNoteCategories[categorySlug].displayName} - - - )) - } - +
From fe33cd4df51d363d590d3a274c6f99376a1bf0cc Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 16:05:54 -0600 Subject: [PATCH 048/174] two ways to do category selection --- src/components/releaseNoteCategorySelector.js | 95 +++++-------------- .../releaseNotesListingByCategory.js | 2 + 2 files changed, 28 insertions(+), 69 deletions(-) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index d8d66def5c..6f0ed401ca 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -8,36 +8,26 @@ MenuButton, } from "@pantheon-systems/pds-toolkit-react" -const mainNavigationLinks = [ - { - label: { - linkContent: ( - - Docs Home - - ), - }, - links: [ - { - linkContent: ( - - Docs Home - - ), - }, - { - linkContent: ( - - Get Started - - ), - }, -]} -] -const releaseNoteCategoryLinks = function () { +const releaseNoteCategoryMenuLinks = function (currentCategorySlug) { + const menuArray = [] + + // loop over the categories and add the displayName to the links array + Object.keys(releaseNoteCategories).map((categorySlug, index) => ( + menuArray.push( + { + "label": releaseNoteCategories[categorySlug].displayName, + "callback": () => { window.location.href = `/release-notes/${categorySlug}` }, + } + ) + )) + + return menuArray; +} + +const releaseNoteCategoryLinks = function (currentCategorySlug) { const links = [ @@ -49,7 +39,7 @@ const releaseNoteCategoryLinks = function () { { linkContent: ( - + { releaseNoteCategories[categorySlug].displayName @@ -62,61 +52,28 @@ const releaseNoteCategoryLinks = function () { ) )) return links; - } - - // Loop through the categories and create a list of links to each category. - - - const ReleaseNoteCategorySelector = (currentCategorySlug) => { - - - return (
- These are all the categories! - -
    - - -{ - -// Loop through the categories and create a list of links to each category. -Object.keys(releaseNoteCategories).map((categorySlug, index) => ( -
  • - - { // If the current category is the same as the category we're looping through, add a checkmark. - currentCategorySlug === categorySlug && - - } - - {releaseNoteCategories[categorySlug].displayName} - - - -
  • -)) -} -
-
and another way - -
+
+ and another way + +
diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index f5f2eb72d3..efd2fa8cb3 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -4,6 +4,7 @@ import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" import { releaseNoteCategories } from "../data/releaseNoteCategories.js" +import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelector.js" import { Container } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. @@ -27,6 +28,7 @@ class ReleaseNotesListingByCategoryTemplate extends React.Component {

Pantheon Release Notes: {categoryDisplayName}

TODO Render the category description here. +
From 1d57addc95f60cacbb2b40be66d1cfc2e3411df2 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 16:09:37 -0600 Subject: [PATCH 049/174] some whitespace cleanup --- src/components/releaseNoteCategorySelector.js | 24 +------------------ 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index 6f0ed401ca..9168d278bb 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -8,9 +8,6 @@ MenuButton, } from "@pantheon-systems/pds-toolkit-react" - - - const releaseNoteCategoryMenuLinks = function (currentCategorySlug) { const menuArray = [] @@ -23,38 +20,28 @@ const releaseNoteCategoryMenuLinks = function (currentCategorySlug) { } ) )) - return menuArray; } const releaseNoteCategoryLinks = function (currentCategorySlug) { - - const links = [ - - ]; + const links = []; // loop over the categories and add the displayName to the links array Object.keys(releaseNoteCategories).map((categorySlug, index) => ( links.push( - - { linkContent: ( { releaseNoteCategories[categorySlug].displayName - } ), }, - - ) )) return links; } - // Loop through the categories and create a list of links to each category. const ReleaseNoteCategorySelector = (currentCategorySlug) => { return ( @@ -75,16 +62,7 @@ const ReleaseNoteCategorySelector = (currentCategorySlug) => { />
- -
- - - - - - - ) } From dbc0047f96a3fb99530a200c6039db9d6c43cca6 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 16:23:42 -0600 Subject: [PATCH 050/174] more category cleanup --- src/components/releaseNoteCategorySelector.js | 27 ++++++++----------- .../releaseNotesListingByCategory.js | 2 +- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index 9168d278bb..63af4fcb9d 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -1,7 +1,6 @@ import React from "react" import { Link } from "gatsby" import { releaseNoteCategories } from "../data/releaseNoteCategories.js" - import { MenuButton, NavMenu, @@ -45,24 +44,20 @@ const releaseNoteCategoryLinks = function (currentCategorySlug) { // Loop through the categories and create a list of links to each category. const ReleaseNoteCategorySelector = (currentCategorySlug) => { return ( -
-
- and another way - -
+ + ) +} -
- and another way - { + return ( + -
- -
) } diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index efd2fa8cb3..5775b62894 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -27,7 +27,7 @@ class ReleaseNotesListingByCategoryTemplate extends React.Component {

Pantheon Release Notes: {categoryDisplayName}

- TODO Render the category description here. +

TODO Render the category description here.


From 2e3e2947eac724f4ebfa4b849f90a6d527aa4314 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 16:26:28 -0600 Subject: [PATCH 051/174] pure json --- source/data/releaseNoteCategories.json | 111 +++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 source/data/releaseNoteCategories.json diff --git a/source/data/releaseNoteCategories.json b/source/data/releaseNoteCategories.json new file mode 100644 index 0000000000..844f1cd6b3 --- /dev/null +++ b/source/data/releaseNoteCategories.json @@ -0,0 +1,111 @@ +{ + "action-required": { + "displayName": "Action Required", + "color": "red", + "description": "Requires customer to act in order to avoid disruption" + }, + "drupal": { + "displayName": "Drupal", + "color": "black", + "description": "Tailored for updates specific to the Drupal content management system, helping Drupal users stay informed about platform changes that directly impact their workflows" + }, + "new-feature": { + "displayName": "New Feature", + "color": "green", + "description": "Consolidates information about both new features and improvements, providing users with insights into enhancements that contribute to a better overall experience" + }, + "front-end-sites": { + "displayName": "Front-End Sites", + "color": "purple", + "description": "Focuses on updates related to Front-End Site (FES) enhancements, ensuring that developers and designers stay informed about changes affecting how they use the product" + }, + "infrastructure": { + "displayName": "Infrastructure", + "color": "black", + "description": "Details changes related to the underlying technology and architecture of the Pantheon platform, providing insights into changes that may impact performance and reliability" + }, + "security": { + "displayName": "Security", + "color": "red", + "description": "Addresses security-related updates, emphasizing the importance of staying informed about changes aimed at maintaining a secure and protected environment for users" + }, + "tools-apis": { + "displayName": "Tools & APIs", + "color": "black", + "description": "Keeps users informed about updates related to tools and APIs, helping developers understand changes that may impact their workflows and integrations" + }, + "wordpress": { + "displayName": "WordPress", + "color": "black", + "description": "Tailored for updates specific to the WordPress content management system, helping WordPress users stay informed about platform changes that directly impact their workflows" + }, + "performance": { + "displayName": "Performance", + "color": "black", + "description": "Highlights updates focused on optimizing the speed, efficiency, and overall performance of the Pantheon platform, giving users insights into improvements that enhance user experience" + }, + "user-interface": { + "displayName": "User interface", + "color": "black", + "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" + }, + "account-management": { + "displayName": "Account Management", + "color": "black", + "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" + }, + "policy": { + "displayName": "Policy", + "color": "gray", + "description": "Communicates updates related to platform policies, ensuring users are aware of any changes in rules or guidelines that may impact their usage" + }, + "content-management": { + "displayName": "Content Management", + "color": "gray", + "description": "Include changes relevant to managing digital content on the Pantheon platform, ensuring users stay informed about updates related to content creation, editing, and relevant tools" + }, + "deprecated": { + "displayName": "Deprecated", + "color": "red", + "description": "Reserved for updates indicating the phasing out or discontinuation of specific features or functionalities" + }, + "events": { + "displayName": "Events", + "color": "gray", + "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" + }, + "general": { + "displayName": "General", + "color": "gray", + "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" + }, + "issue-bug": { + "displayName": "Issue/Bug", + "color": "gray", + "description": "Merges information about issues and bugs into a unified category, allowing users to easily identify and understand the current status and steps taken to address reported problems" + }, + "migration": { + "displayName": "Migration", + "color": "gray", + "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" + }, + "integration": { + "displayName": "Integration", + "color": "gray", + "description": "Addresses updates related to system integration, helping IT and tech leads understand changes relevant to connecting Pantheon with other tools and services", + "_comment-from-Rachel": "I think we should remove this as a duplicate of the Tools/APIs category" + }, + "platform": { + "displayName": "Platform", + "color": "gray", + "description": "Offers general updates about the Pantheon platform, providing users with a comprehensive overview of changes that influence the overall system", + "_comment-from-Rachel": "I think we should remove this as a duplicate of the Infrastructure category" + }, + "documentation" : { + "displayName": "Documentation", + "color": "gray", + "description": "Communicates substantive changes to docs.pantheon.io", + "_comment-from-Rachel": "Review needed: New category not yet reviewed/approved by Ingrid or design team", + "_another_comment-from-Rachel": "We should require any new category to go through a review panel which includes design team, since too many tags can reduce usability of the feature and duplicate categories can cause confusion for intended usage." + } +} From c82e6b3a5a0e4b7798b6c2ff8849721b5eb4d08d Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 17:07:57 -0600 Subject: [PATCH 052/174] adding json --- .../releaseNoteCategories.json | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 source/releasenotescategories/releaseNoteCategories.json diff --git a/source/releasenotescategories/releaseNoteCategories.json b/source/releasenotescategories/releaseNoteCategories.json new file mode 100644 index 0000000000..976a5d9489 --- /dev/null +++ b/source/releasenotescategories/releaseNoteCategories.json @@ -0,0 +1,130 @@ +{ + +"categories": [ + +{ + "slug": "drupal", + "displayName": "Drupal", + "color": "black", + "description": "Tailored for updates specific to the Drupal content management system, helping Drupal users stay informed about platform changes that directly impact their workflows" + }, +{ + "slug": "new-feature", + "displayName": "New Feature", + "color": "green", + "description": "Consolidates information about both new features and improvements, providing users with insights into enhancements that contribute to a better overall experience" + }, +{ + "slug": "front-end-sites", + "displayName": "Front-End Sites", + "color": "purple", + "description": "Focuses on updates related to Front-End Site (FES) enhancements, ensuring that developers and designers stay informed about changes affecting how they use the product" + }, +{ + "slug": "infrastructure", + "displayName": "Infrastructure", + "color": "black", + "description": "Details changes related to the underlying technology and architecture of the Pantheon platform, providing insights into changes that may impact performance and reliability" + }, +{ + "slug": "security", + "displayName": "Security", + "color": "red", + "description": "Addresses security-related updates, emphasizing the importance of staying informed about changes aimed at maintaining a secure and protected environment for users" + }, +{ + "slug": "tools-apis", + "displayName": "Tools & APIs", + "color": "black", + "description": "Keeps users informed about updates related to tools and APIs, helping developers understand changes that may impact their workflows and integrations" + }, +{ + "slug": "wordpress", + "displayName": "WordPress", + "color": "black", + "description": "Tailored for updates specific to the WordPress content management system, helping WordPress users stay informed about platform changes that directly impact their workflows" + }, +{ + "slug": "performance", + "displayName": "Performance", + "color": "black", + "description": "Highlights updates focused on optimizing the speed, efficiency, and overall performance of the Pantheon platform, giving users insights into improvements that enhance user experience" + }, +{ + "slug": "user-interface", + "displayName": "User interface", + "color": "black", + "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" + }, +{ + "slug": "account-management", + "displayName": "Account Management", + "color": "black", + "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" + }, +{ + "slug": "policy", + "displayName": "Policy", + "color": "gray", + "description": "Communicates updates related to platform policies, ensuring users are aware of any changes in rules or guidelines that may impact their usage" + }, +{ + "slug": "content-management", + "displayName": "Content Management", + "color": "gray", + "description": "Include changes relevant to managing digital content on the Pantheon platform, ensuring users stay informed about updates related to content creation, editing, and relevant tools" + }, +{ + "slug": "deprecated", + "displayName": "Deprecated", + "color": "red", + "description": "Reserved for updates indicating the phasing out or discontinuation of specific features or functionalities" + }, +{ + "slug": "events", + "displayName": "Events", + "color": "gray", + "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" + }, +{ + "slug": "general", + "displayName": "General", + "color": "gray", + "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" + }, +{ + "slug": "issue-bug", + "displayName": "Issue/Bug", + "color": "gray", + "description": "Merges information about issues and bugs into a unified category, allowing users to easily identify and understand the current status and steps taken to address reported problems" + }, +{ + "slug": "migration", + "displayName": "Migration", + "color": "gray", + "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" + }, + { + "slug": "integration", + "displayName": "Integration", + "color": "gray", + "description": "Addresses updates related to system integration, helping IT and tech leads understand changes relevant to connecting Pantheon with other tools and services", + "_comment-from-Rachel": "I think we should remove this as a duplicate of the Tools/APIs category" + }, + { + "slug": "platform", + "displayName": "Platform", + "color": "gray", + "description": "Offers general updates about the Pantheon platform, providing users with a comprehensive overview of changes that influence the overall system", + "_comment-from-Rachel": "I think we should remove this as a duplicate of the Infrastructure category" + }, + { + "slug": "documentation", + "displayName": "Documentation", + "color": "gray", + "description": "Communicates substantive changes to docs.pantheon.io", + "_comment-from-Rachel": "Review needed: New category not yet reviewed/approved by Ingrid or design team", + "_another_comment-from-Rachel": "We should require any new category to go through a review panel which includes design team, since too many tags can reduce usability of the feature and duplicate categories can cause confusion for intended usage." + } +] +} From 64b65dbcf68ee6e083ced9ba3a690473523a5a17 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 17:08:33 -0600 Subject: [PATCH 053/174] sourcing json --- gatsby-config.js | 7 ++ gatsby-node.js | 24 +++++- source/data/releaseNoteCategories.json | 111 ------------------------- src/data/releaseNoteCategories.js | 22 +++++ 4 files changed, 51 insertions(+), 113 deletions(-) delete mode 100644 source/data/releaseNoteCategories.json diff --git a/gatsby-config.js b/gatsby-config.js index a2462af750..6ab261360b 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -64,6 +64,13 @@ module.exports = { name: `data`, }, }, + { + resolve: `gatsby-source-filesystem`, + options: { + path: `${__dirname}/source/releasenotescategories`, + name: `releasenotecategories`, + }, + }, { // Converts Markdown into HTML resolve: `gatsby-transformer-remark`, // https://www.gatsbyjs.com/plugins/gatsby-transformer-remark/ diff --git a/gatsby-node.js b/gatsby-node.js index 208cdb056d..b53e99db7c 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -276,7 +276,6 @@ exports.createPages = ({ graphql, actions }) => { } } } - dataJson { commands { description @@ -285,7 +284,11 @@ exports.createPages = ({ graphql, actions }) => { usage } } - + releasenotecategoriesJson { + categories { + slug + } + } } `).then(result => { if (result.errors) { @@ -416,6 +419,23 @@ exports.createPages = ({ graphql, actions }) => { }) }) + + // // Create Terminus Command pages + const allReleaseNoteCategories = result.data.dataJson.jokes + console.log(allReleaseNoteCategories) + // terminusCommands.forEach(command => { + // const slugRegExp = /:/g + // const slug = command.name.replace(slugRegExp, "-") + // createPage({ + // path: `terminus/commands/${slug}`, + // component: path.resolve(`./src/templates/terminusCommand.js`), + // context: { + // slug: slug, + // name: command.name + // } + // }) + // }) + // Create each release note page. const releaseNotes = result.data.allReleaseNotes.edges; releaseNotes.forEach(releaseNote => { diff --git a/source/data/releaseNoteCategories.json b/source/data/releaseNoteCategories.json deleted file mode 100644 index 844f1cd6b3..0000000000 --- a/source/data/releaseNoteCategories.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "action-required": { - "displayName": "Action Required", - "color": "red", - "description": "Requires customer to act in order to avoid disruption" - }, - "drupal": { - "displayName": "Drupal", - "color": "black", - "description": "Tailored for updates specific to the Drupal content management system, helping Drupal users stay informed about platform changes that directly impact their workflows" - }, - "new-feature": { - "displayName": "New Feature", - "color": "green", - "description": "Consolidates information about both new features and improvements, providing users with insights into enhancements that contribute to a better overall experience" - }, - "front-end-sites": { - "displayName": "Front-End Sites", - "color": "purple", - "description": "Focuses on updates related to Front-End Site (FES) enhancements, ensuring that developers and designers stay informed about changes affecting how they use the product" - }, - "infrastructure": { - "displayName": "Infrastructure", - "color": "black", - "description": "Details changes related to the underlying technology and architecture of the Pantheon platform, providing insights into changes that may impact performance and reliability" - }, - "security": { - "displayName": "Security", - "color": "red", - "description": "Addresses security-related updates, emphasizing the importance of staying informed about changes aimed at maintaining a secure and protected environment for users" - }, - "tools-apis": { - "displayName": "Tools & APIs", - "color": "black", - "description": "Keeps users informed about updates related to tools and APIs, helping developers understand changes that may impact their workflows and integrations" - }, - "wordpress": { - "displayName": "WordPress", - "color": "black", - "description": "Tailored for updates specific to the WordPress content management system, helping WordPress users stay informed about platform changes that directly impact their workflows" - }, - "performance": { - "displayName": "Performance", - "color": "black", - "description": "Highlights updates focused on optimizing the speed, efficiency, and overall performance of the Pantheon platform, giving users insights into improvements that enhance user experience" - }, - "user-interface": { - "displayName": "User interface", - "color": "black", - "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" - }, - "account-management": { - "displayName": "Account Management", - "color": "black", - "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" - }, - "policy": { - "displayName": "Policy", - "color": "gray", - "description": "Communicates updates related to platform policies, ensuring users are aware of any changes in rules or guidelines that may impact their usage" - }, - "content-management": { - "displayName": "Content Management", - "color": "gray", - "description": "Include changes relevant to managing digital content on the Pantheon platform, ensuring users stay informed about updates related to content creation, editing, and relevant tools" - }, - "deprecated": { - "displayName": "Deprecated", - "color": "red", - "description": "Reserved for updates indicating the phasing out or discontinuation of specific features or functionalities" - }, - "events": { - "displayName": "Events", - "color": "gray", - "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" - }, - "general": { - "displayName": "General", - "color": "gray", - "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" - }, - "issue-bug": { - "displayName": "Issue/Bug", - "color": "gray", - "description": "Merges information about issues and bugs into a unified category, allowing users to easily identify and understand the current status and steps taken to address reported problems" - }, - "migration": { - "displayName": "Migration", - "color": "gray", - "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" - }, - "integration": { - "displayName": "Integration", - "color": "gray", - "description": "Addresses updates related to system integration, helping IT and tech leads understand changes relevant to connecting Pantheon with other tools and services", - "_comment-from-Rachel": "I think we should remove this as a duplicate of the Tools/APIs category" - }, - "platform": { - "displayName": "Platform", - "color": "gray", - "description": "Offers general updates about the Pantheon platform, providing users with a comprehensive overview of changes that influence the overall system", - "_comment-from-Rachel": "I think we should remove this as a duplicate of the Infrastructure category" - }, - "documentation" : { - "displayName": "Documentation", - "color": "gray", - "description": "Communicates substantive changes to docs.pantheon.io", - "_comment-from-Rachel": "Review needed: New category not yet reviewed/approved by Ingrid or design team", - "_another_comment-from-Rachel": "We should require any new category to go through a review panel which includes design team, since too many tags can reduce usability of the feature and duplicate categories can cause confusion for intended usage." - } -} diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js index 2a67c45534..bf58cb7180 100644 --- a/src/data/releaseNoteCategories.js +++ b/src/data/releaseNoteCategories.js @@ -1,108 +1,130 @@ export const releaseNoteCategories = { + "action-required": { + "slug": "action-required", "displayName": "Action Required", "color": "red", "description": "Requires customer to act in order to avoid disruption" }, "drupal": { + "slug": "drupal", "displayName": "Drupal", "color": "black", "description": "Tailored for updates specific to the Drupal content management system, helping Drupal users stay informed about platform changes that directly impact their workflows" }, "new-feature": { + "slug": "new-feature", "displayName": "New Feature", "color": "green", "description": "Consolidates information about both new features and improvements, providing users with insights into enhancements that contribute to a better overall experience" }, "front-end-sites": { + "slug": "front-end-sites", "displayName": "Front-End Sites", "color": "purple", "description": "Focuses on updates related to Front-End Site (FES) enhancements, ensuring that developers and designers stay informed about changes affecting how they use the product" }, "infrastructure": { + "slug": "infrastructure", "displayName": "Infrastructure", "color": "black", "description": "Details changes related to the underlying technology and architecture of the Pantheon platform, providing insights into changes that may impact performance and reliability" }, "security": { + "slug": "security", "displayName": "Security", "color": "red", "description": "Addresses security-related updates, emphasizing the importance of staying informed about changes aimed at maintaining a secure and protected environment for users" }, "tools-apis": { + "slug": "tools-apis", "displayName": "Tools & APIs", "color": "black", "description": "Keeps users informed about updates related to tools and APIs, helping developers understand changes that may impact their workflows and integrations" }, "wordpress": { + "slug": "wordpress", "displayName": "WordPress", "color": "black", "description": "Tailored for updates specific to the WordPress content management system, helping WordPress users stay informed about platform changes that directly impact their workflows" }, "performance": { + "slug": "performance", "displayName": "Performance", "color": "black", "description": "Highlights updates focused on optimizing the speed, efficiency, and overall performance of the Pantheon platform, giving users insights into improvements that enhance user experience" }, "user-interface": { + "slug": "user-interface", "displayName": "User interface", "color": "black", "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" }, "account-management": { + "slug": "account-management", "displayName": "Account Management", "color": "black", "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" }, "policy": { + "slug": "policy", "displayName": "Policy", "color": "gray", "description": "Communicates updates related to platform policies, ensuring users are aware of any changes in rules or guidelines that may impact their usage" }, "content-management": { + "slug": "content-management", "displayName": "Content Management", "color": "gray", "description": "Include changes relevant to managing digital content on the Pantheon platform, ensuring users stay informed about updates related to content creation, editing, and relevant tools" }, "deprecated": { + "slug": "deprecated", "displayName": "Deprecated", "color": "red", "description": "Reserved for updates indicating the phasing out or discontinuation of specific features or functionalities" }, "events": { + "slug": "events", "displayName": "Events", "color": "gray", "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" }, "general": { + "slug": "general", "displayName": "General", "color": "gray", "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" }, "issue-bug": { + "slug": "issue-bug", "displayName": "Issue/Bug", "color": "gray", "description": "Merges information about issues and bugs into a unified category, allowing users to easily identify and understand the current status and steps taken to address reported problems" }, "migration": { + "slug": "migration", "displayName": "Migration", "color": "gray", "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" }, "integration": { + "slug": "integration", "displayName": "Integration", "color": "gray", "description": "Addresses updates related to system integration, helping IT and tech leads understand changes relevant to connecting Pantheon with other tools and services", "_comment-from-Rachel": "I think we should remove this as a duplicate of the Tools/APIs category" }, "platform": { + "slug": "platform", "displayName": "Platform", "color": "gray", "description": "Offers general updates about the Pantheon platform, providing users with a comprehensive overview of changes that influence the overall system", "_comment-from-Rachel": "I think we should remove this as a duplicate of the Infrastructure category" }, "documentation" : { + "slug": "documentation", "displayName": "Documentation", "color": "gray", "description": "Communicates substantive changes to docs.pantheon.io", From cb6729d08d9596d7a8fdf60663cfba6bbe8173b4 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 17:36:49 -0600 Subject: [PATCH 054/174] updating selector to use json object --- gatsby-config.js | 2 +- gatsby-node.js | 16 +++++-- source/data/commands.json | 3 +- src/components/releaseNoteCategorySelector.js | 44 +++++++++++-------- 4 files changed, 42 insertions(+), 23 deletions(-) diff --git a/gatsby-config.js b/gatsby-config.js index 6ab261360b..dd84fbb00a 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -68,7 +68,7 @@ module.exports = { resolve: `gatsby-source-filesystem`, options: { path: `${__dirname}/source/releasenotescategories`, - name: `releasenotecategories`, + name: `releasenotescategories`, }, }, { diff --git a/gatsby-node.js b/gatsby-node.js index b53e99db7c..a94cb1d1d7 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -284,7 +284,7 @@ exports.createPages = ({ graphql, actions }) => { usage } } - releasenotecategoriesJson { + releasenotescategoriesJson { categories { slug } @@ -411,7 +411,7 @@ exports.createPages = ({ graphql, actions }) => { // Loop through all allowed categories and create a page for each one. Object.keys(allowedReleaseNoteCategories).forEach((category) => { createPage({ - path: `/release-notes/${category}`, + path: `/release-notez/${category}`, component: path.resolve("./src/templates/releaseNotesListingByCategory.js"), context: { category: category, @@ -421,8 +421,18 @@ exports.createPages = ({ graphql, actions }) => { // // Create Terminus Command pages - const allReleaseNoteCategories = result.data.dataJson.jokes + const allReleaseNoteCategories = result.data.releasenotescategoriesJson.categories console.log(allReleaseNoteCategories) + allReleaseNoteCategories.forEach(category => { + createPage({ + path: `/release-notes/${category.slug}`, + component: path.resolve("./src/templates/releaseNotesListingByCategory.js"), + context: { + category: category.slug, + }, + }) + }) + // terminusCommands.forEach(command => { // const slugRegExp = /:/g // const slug = command.name.replace(slugRegExp, "-") diff --git a/source/data/commands.json b/source/data/commands.json index c551ab2feb..a5e30d6af2 100644 --- a/source/data/commands.json +++ b/source/data/commands.json @@ -3,6 +3,7 @@ "name": "Terminus", "version": "3.3.0" }, + "commands": [ { "name": "aliases", @@ -16690,4 +16691,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index 63af4fcb9d..5564ae5f13 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -1,27 +1,12 @@ import React from "react" -import { Link } from "gatsby" -import { releaseNoteCategories } from "../data/releaseNoteCategories.js" +import releaseNoteCategoriesObject from "../../source/releasenotescategories/releaseNoteCategories.json" import { MenuButton, NavMenu, } from "@pantheon-systems/pds-toolkit-react" -const releaseNoteCategoryMenuLinks = function (currentCategorySlug) { - const menuArray = [] - - // loop over the categories and add the displayName to the links array - Object.keys(releaseNoteCategories).map((categorySlug, index) => ( - menuArray.push( - { - "label": releaseNoteCategories[categorySlug].displayName, - "callback": () => { window.location.href = `/release-notes/${categorySlug}` }, - } - ) - )) - return menuArray; -} - +/* const releaseNoteCategoryLinks = function (currentCategorySlug) { const links = []; // loop over the categories and add the displayName to the links array @@ -40,13 +25,36 @@ const releaseNoteCategoryLinks = function (currentCategorySlug) { )) return links; } +*/ + +const releaseNoteCategoryLinksFromJson = function () { + const menuItems = [ + { + "label": "All Release Notes", + "callback": () => { window.location.href = `/release-notes` }, + } + ]; + // loop over the categories and add the displayName to the links array + releaseNoteCategoriesObject.categories.forEach((category) => { + + menuItems.push( + { + "label": category.displayName, + "callback": () => { window.location.href = `/release-notes/${category.slug}` }, + } + ) + }) + + return menuItems; +} + // Loop through the categories and create a list of links to each category. const ReleaseNoteCategorySelector = (currentCategorySlug) => { return ( ) } From 0ffa01adffc96b08ccbdb0210893ba60fe07275f Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 20:06:11 -0600 Subject: [PATCH 055/174] working --- .../releaseNoteCategories.json | 6 ++++ src/components/releaseNoteCategories.js | 19 +++++++++++-- src/data/releaseNoteCategories.js | 28 ++++++++++++++++++- 3 files changed, 50 insertions(+), 3 deletions(-) diff --git a/source/releasenotescategories/releaseNoteCategories.json b/source/releasenotescategories/releaseNoteCategories.json index 976a5d9489..ee754fa91c 100644 --- a/source/releasenotescategories/releaseNoteCategories.json +++ b/source/releasenotescategories/releaseNoteCategories.json @@ -2,6 +2,12 @@ "categories": [ + { + "slug": "action-required", + "displayName": "Action Required", + "color": "red", + "description": "Requires customer to act in order to avoid disruption" + }, { "slug": "drupal", "displayName": "Drupal", diff --git a/src/components/releaseNoteCategories.js b/src/components/releaseNoteCategories.js index 642eed89ac..d6ff251029 100644 --- a/src/components/releaseNoteCategories.js +++ b/src/components/releaseNoteCategories.js @@ -1,14 +1,21 @@ import React from "react" import { Link } from "gatsby" -import { releaseNoteCategories } from "../data/releaseNoteCategories.js" +import { theFunction, oldReleaseNoteCategories, otherStuff } from "../data/releaseNoteCategories.js" + + const ReleaseNoteCategories = ({categories}) => { + if (!categories) { return null } + const zoldReleaseNoteCategories = theFunction(); + + console.log(zoldReleaseNoteCategories); +console.log(oldReleaseNoteCategories); return (
@@ -21,18 +28,26 @@ if (!categories) { {categories.map((categorySlug, index) => ( +// If the category is in the oldReleaseNoteCategories object +// return the displayName from the zoldReleaseNoteCategories object +// else return the categorySlug + + +
-

{releaseNoteCategories[categorySlug].displayName}

+

{zoldReleaseNoteCategories[categorySlug].displayName}

+ + )) }
diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js index bf58cb7180..b8ae58f15f 100644 --- a/src/data/releaseNoteCategories.js +++ b/src/data/releaseNoteCategories.js @@ -1,4 +1,30 @@ -export const releaseNoteCategories = { +import releaseNoteCategoriesObject from "../../source/releasenotescategories/releaseNoteCategories.json" + + + + + +export const theFunction = function () { + + + + const NewThings = { + } + + releaseNoteCategoriesObject.categories.forEach(category => { + NewThings[category.slug] = category; + }); + + console.log(NewThings); + + return NewThings; + + +}; + +export const otherStuff = "other stuff"; + +export const oldReleaseNoteCategories = { "action-required": { From ad4644a3de43e9c2bceb8b194a5f88b14fe22bb5 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 20:18:50 -0600 Subject: [PATCH 056/174] simplify categories --- src/components/releaseNoteCategories.js | 30 +---- src/components/releaseNoteTeaser.js | 2 +- src/data/releaseNoteCategories.js | 166 ++---------------------- 3 files changed, 13 insertions(+), 185 deletions(-) diff --git a/src/components/releaseNoteCategories.js b/src/components/releaseNoteCategories.js index d6ff251029..3b4b814c2c 100644 --- a/src/components/releaseNoteCategories.js +++ b/src/components/releaseNoteCategories.js @@ -1,9 +1,6 @@ import React from "react" import { Link } from "gatsby" -import { theFunction, oldReleaseNoteCategories, otherStuff } from "../data/releaseNoteCategories.js" - - - +import { releaseNoteCategoryLoader } from "../data/releaseNoteCategories.js" const ReleaseNoteCategories = ({categories}) => { @@ -12,10 +9,6 @@ const ReleaseNoteCategories = ({categories}) => { if (!categories) { return null } - const zoldReleaseNoteCategories = theFunction(); - - console.log(zoldReleaseNoteCategories); -console.log(oldReleaseNoteCategories); return (
@@ -25,29 +18,12 @@ console.log(oldReleaseNoteCategories); :

Categories:

} - {categories.map((categorySlug, index) => ( - -// If the category is in the oldReleaseNoteCategories object -// return the displayName from the zoldReleaseNoteCategories object -// else return the categorySlug - - - -
- - -

{zoldReleaseNoteCategories[categorySlug].displayName}

+ +

{releaseNoteCategoryLoader(categorySlug).displayName}

- - -
- - )) }
diff --git a/src/components/releaseNoteTeaser.js b/src/components/releaseNoteTeaser.js index 5aa97f34e3..ea1dfa7c60 100644 --- a/src/components/releaseNoteTeaser.js +++ b/src/components/releaseNoteTeaser.js @@ -21,7 +21,7 @@ const ReleaseNoteTeaser = ({ ReleaseNoteData }) => { {ReleaseNoteData.frontmatter.title} - +
diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js index b8ae58f15f..6735229f9c 100644 --- a/src/data/releaseNoteCategories.js +++ b/src/data/releaseNoteCategories.js @@ -1,160 +1,12 @@ import releaseNoteCategoriesObject from "../../source/releasenotescategories/releaseNoteCategories.json" - - - - -export const theFunction = function () { - - - - const NewThings = { - } - - releaseNoteCategoriesObject.categories.forEach(category => { - NewThings[category.slug] = category; - }); - - console.log(NewThings); - - return NewThings; - - -}; - -export const otherStuff = "other stuff"; - -export const oldReleaseNoteCategories = { - - - "action-required": { - "slug": "action-required", - "displayName": "Action Required", - "color": "red", - "description": "Requires customer to act in order to avoid disruption" - }, - "drupal": { - "slug": "drupal", - "displayName": "Drupal", - "color": "black", - "description": "Tailored for updates specific to the Drupal content management system, helping Drupal users stay informed about platform changes that directly impact their workflows" - }, - "new-feature": { - "slug": "new-feature", - "displayName": "New Feature", - "color": "green", - "description": "Consolidates information about both new features and improvements, providing users with insights into enhancements that contribute to a better overall experience" - }, - "front-end-sites": { - "slug": "front-end-sites", - "displayName": "Front-End Sites", - "color": "purple", - "description": "Focuses on updates related to Front-End Site (FES) enhancements, ensuring that developers and designers stay informed about changes affecting how they use the product" - }, - "infrastructure": { - "slug": "infrastructure", - "displayName": "Infrastructure", - "color": "black", - "description": "Details changes related to the underlying technology and architecture of the Pantheon platform, providing insights into changes that may impact performance and reliability" - }, - "security": { - "slug": "security", - "displayName": "Security", - "color": "red", - "description": "Addresses security-related updates, emphasizing the importance of staying informed about changes aimed at maintaining a secure and protected environment for users" - }, - "tools-apis": { - "slug": "tools-apis", - "displayName": "Tools & APIs", - "color": "black", - "description": "Keeps users informed about updates related to tools and APIs, helping developers understand changes that may impact their workflows and integrations" - }, - "wordpress": { - "slug": "wordpress", - "displayName": "WordPress", - "color": "black", - "description": "Tailored for updates specific to the WordPress content management system, helping WordPress users stay informed about platform changes that directly impact their workflows" - }, - "performance": { - "slug": "performance", - "displayName": "Performance", - "color": "black", - "description": "Highlights updates focused on optimizing the speed, efficiency, and overall performance of the Pantheon platform, giving users insights into improvements that enhance user experience" - }, - "user-interface": { - "slug": "user-interface", - "displayName": "User interface", - "color": "black", - "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" - }, - "account-management": { - "slug": "account-management", - "displayName": "Account Management", - "color": "black", - "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" - }, - "policy": { - "slug": "policy", - "displayName": "Policy", - "color": "gray", - "description": "Communicates updates related to platform policies, ensuring users are aware of any changes in rules or guidelines that may impact their usage" - }, - "content-management": { - "slug": "content-management", - "displayName": "Content Management", - "color": "gray", - "description": "Include changes relevant to managing digital content on the Pantheon platform, ensuring users stay informed about updates related to content creation, editing, and relevant tools" - }, - "deprecated": { - "slug": "deprecated", - "displayName": "Deprecated", - "color": "red", - "description": "Reserved for updates indicating the phasing out or discontinuation of specific features or functionalities" - }, - "events": { - "slug": "events", - "displayName": "Events", - "color": "gray", - "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" - }, - "general": { - "slug": "general", - "displayName": "General", - "color": "gray", - "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" - }, - "issue-bug": { - "slug": "issue-bug", - "displayName": "Issue/Bug", - "color": "gray", - "description": "Merges information about issues and bugs into a unified category, allowing users to easily identify and understand the current status and steps taken to address reported problems" - }, - "migration": { - "slug": "migration", - "displayName": "Migration", - "color": "gray", - "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" - }, - "integration": { - "slug": "integration", - "displayName": "Integration", - "color": "gray", - "description": "Addresses updates related to system integration, helping IT and tech leads understand changes relevant to connecting Pantheon with other tools and services", - "_comment-from-Rachel": "I think we should remove this as a duplicate of the Tools/APIs category" - }, - "platform": { - "slug": "platform", - "displayName": "Platform", - "color": "gray", - "description": "Offers general updates about the Pantheon platform, providing users with a comprehensive overview of changes that influence the overall system", - "_comment-from-Rachel": "I think we should remove this as a duplicate of the Infrastructure category" - }, - "documentation" : { - "slug": "documentation", - "displayName": "Documentation", - "color": "gray", - "description": "Communicates substantive changes to docs.pantheon.io", - "_comment-from-Rachel": "Review needed: New category not yet reviewed/approved by Ingrid or design team", - "_another_comment-from-Rachel": "We should require any new category to go through a review panel which includes design team, since too many tags can reduce usability of the feature and duplicate categories can cause confusion for intended usage." +export const releaseNoteCategoryLoader = function (categorySlug) { +// loop over all releaseNoteCategoriesObject.categories return the first one +// that matches the categorySlug + for (let i = 0; i < releaseNoteCategoriesObject.categories.length; i++) { + if (releaseNoteCategoriesObject.categories[i].slug === categorySlug) { + return releaseNoteCategoriesObject.categories[i] + } } -}; + // Todo more elegant error handling when category not found. +} From c65455e6b30d0463eb8d67228a6d97ce819b6054 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 20:23:12 -0600 Subject: [PATCH 057/174] loader --- src/templates/releaseNotesListingByCategory.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index 5775b62894..0683cd30f2 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -3,10 +3,13 @@ import { graphql } from "gatsby" import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" -import { releaseNoteCategories } from "../data/releaseNoteCategories.js" +import { releaseNoteCategoryLoader } from "../data/releaseNoteCategories.js" import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelector.js" import { Container } from "@pantheon-systems/pds-toolkit-react" + + + // Set container width for search and main content. const containerWidth = "standard" @@ -15,7 +18,8 @@ class ReleaseNotesListingByCategoryTemplate extends React.Component { render() { const releasenotes = this.props.data.allMdx.edges const categorySlug = this.props.pageContext.category; - const categoryDisplayName = releaseNoteCategories[categorySlug]["displayName"]; + const categoryData = releaseNoteCategoryLoader(categorySlug); + const categoryDisplayName = categoryData["displayName"]; return ( From 91fbf5f49eb4fa2dcfe974dbc7148eb8fbccf449 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 20:42:13 -0600 Subject: [PATCH 058/174] render categories as tags --- src/components/releaseNoteCategories.js | 16 +++++++++++++--- src/templates/releaseNotesListingByCategory.js | 7 +------ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/components/releaseNoteCategories.js b/src/components/releaseNoteCategories.js index 3b4b814c2c..7b12c4f352 100644 --- a/src/components/releaseNoteCategories.js +++ b/src/components/releaseNoteCategories.js @@ -1,28 +1,38 @@ import React from "react" import { Link } from "gatsby" import { releaseNoteCategoryLoader } from "../data/releaseNoteCategories.js" +import { Tag } from "@pantheon-systems/pds-toolkit-react" const ReleaseNoteCategories = ({categories}) => { - if (!categories) { return null } return (
-{/* If there is one category display the singular form. */ +{/* +@todo: Should this text be present but hidden for screen readers? + +If there is one category display the singular form. categories.length === 1 ?

Category:

:

Categories:

+ */ } {categories.map((categorySlug, index) => (
+ + {/* @TODO the Tags should be links.

{releaseNoteCategoryLoader(categorySlug).displayName}

- + */} + + {/* Todo, figure out how to make the colors meaningful. */} + +
)) } diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index 0683cd30f2..c86e9febad 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -7,9 +7,6 @@ import { releaseNoteCategoryLoader } from "../data/releaseNoteCategories.js" import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelector.js" import { Container } from "@pantheon-systems/pds-toolkit-react" - - - // Set container width for search and main content. const containerWidth = "standard" @@ -19,7 +16,6 @@ class ReleaseNotesListingByCategoryTemplate extends React.Component { const releasenotes = this.props.data.allMdx.edges const categorySlug = this.props.pageContext.category; const categoryData = releaseNoteCategoryLoader(categorySlug); - const categoryDisplayName = categoryData["displayName"]; return ( @@ -30,8 +26,7 @@ class ReleaseNotesListingByCategoryTemplate extends React.Component { />
-

Pantheon Release Notes: {categoryDisplayName}

-

TODO Render the category description here.

+

Pantheon Release Notes: {categoryData["displayName"]}


From 632cfa815a86079dc0f3fc5806921cb7bf55c6e0 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 4 Jan 2024 20:46:55 -0600 Subject: [PATCH 059/174] selecto separator --- src/components/releaseNoteCategorySelector.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index 5564ae5f13..0899324171 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -32,6 +32,9 @@ const releaseNoteCategoryLinksFromJson = function () { { "label": "All Release Notes", "callback": () => { window.location.href = `/release-notes` }, + }, + { + "isSeparator": true } ]; // loop over the categories and add the displayName to the links array From 560957c1a79c94225872e3551122eed59a85792c Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 5 Jan 2024 13:16:35 -0600 Subject: [PATCH 060/174] trying navigate() --- src/components/releaseNoteCategorySelector.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index 0899324171..6b8c345397 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -1,5 +1,6 @@ import React from "react" import releaseNoteCategoriesObject from "../../source/releasenotescategories/releaseNoteCategories.json" +import { navigate } from "@reach/router" import { MenuButton, NavMenu, @@ -28,6 +29,7 @@ const releaseNoteCategoryLinks = function (currentCategorySlug) { */ const releaseNoteCategoryLinksFromJson = function () { + const menuItems = [ { "label": "All Release Notes", @@ -43,7 +45,7 @@ const releaseNoteCategoryLinksFromJson = function () { menuItems.push( { "label": category.displayName, - "callback": () => { window.location.href = `/release-notes/${category.slug}` }, + "callback": () => { navigate( `/release-notes/${category.slug}` ) }, } ) }) @@ -51,7 +53,6 @@ const releaseNoteCategoryLinksFromJson = function () { return menuItems; } - // Loop through the categories and create a list of links to each category. const ReleaseNoteCategorySelector = (currentCategorySlug) => { return ( From 005502560e45b6633d077e2dbc0dfc8dd0b5a381 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Fri, 5 Jan 2024 13:41:20 -0600 Subject: [PATCH 061/174] trying different callback construction --- src/components/releaseNoteCategorySelector.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index 6b8c345397..754f2cb68e 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -30,10 +30,14 @@ const releaseNoteCategoryLinks = function (currentCategorySlug) { const releaseNoteCategoryLinksFromJson = function () { + const navigateToCategory = (categorySlug) => { + return window.location.href = `/release-notes/${categorySlug}` + } + const menuItems = [ { "label": "All Release Notes", - "callback": () => { window.location.href = `/release-notes` }, + "callback": function () { window.location.href = `/release-notes` }, }, { "isSeparator": true @@ -45,7 +49,10 @@ const releaseNoteCategoryLinksFromJson = function () { menuItems.push( { "label": category.displayName, - "callback": () => { navigate( `/release-notes/${category.slug}` ) }, + // "callback": { navigateToCategory(`${category.slug }`) }, + //"callback": () => { window.location.href = `/release-notes/${category.slug}` }, + //"callback": () => { navigateToCategory(`${category.slug}`) }, + "callback": function () { window.location.href = `/release-notes/${category.slug}` }, } ) }) From 1d45eb78481916cd201b36b4895fb2f12121fdca Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Thu, 21 Dec 2023 21:55:34 -0600 Subject: [PATCH 062/174] Backfill changelog entries as release notes Sep - Dec 2023 --- ...9-01-early-access-customer-scheduled-jobs.md | 8 ++++++++ ...early-access-streamlined-user-offboarding.md | 8 ++++++++ .../2023-09-01-front-end-sites-enhancements.md | 17 +++++++++++++++++ .../releasenotes/2023-09-01-new-php-defaults.md | 8 ++++++++ .../releasenotes/2023-09-01-object-cache-pro.md | 8 ++++++++ ...anced-page-cache-wordpress-plugin-updates.md | 8 ++++++++ .../2023-09-01-php-security-updates.md | 8 ++++++++ ...01-solr-search-for-wordpress-2-5-0-update.md | 10 ++++++++++ ...01-wordpress-multisite-search-and-replace.md | 10 ++++++++++ ...2023-10-01-design-system-integration-docs.md | 8 ++++++++ .../2023-10-01-drupal-security-update.md | 8 ++++++++ .../2023-10-01-front-end-sites-settings.md | 7 +++++++ ...-2-updated-to-their-latest-patch-releases.md | 6 ++++++ .../2023-10-01-php-memory-limits-updates.md | 8 ++++++++ ...lity-cache-hit-ratio-increased-24-percent.md | 6 ++++++ .../2023-11-01-composer-logs-visibility.md | 6 ++++++ .../releasenotes/2023-11-01-faster-backups.md | 6 ++++++ ...-sites-build-caching-and-node-js-versions.md | 10 ++++++++++ .../2023-11-01-streamlined-user-offboarding.md | 10 ++++++++++ ...-01-vpat-issued-for-product-accessibility.md | 8 ++++++++ ...-wordpress-native-php-sessions-1-4-update.md | 8 ++++++++ ...from-dashboard-for-streamlined-management.md | 8 ++++++++ ...e-with-front-end-sites-drupal-starter-kit.md | 13 +++++++++++++ ...ed-monitoring-for-high-volume-directories.md | 6 ++++++ ...sures-for-uninterrupted-webops-experience.md | 12 ++++++++++++ ...6-4-2-now-available-for-enhanced-security.md | 6 ++++++ 26 files changed, 221 insertions(+) create mode 100644 source/releasenotes/2023-09-01-early-access-customer-scheduled-jobs.md create mode 100644 source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md create mode 100644 source/releasenotes/2023-09-01-front-end-sites-enhancements.md create mode 100644 source/releasenotes/2023-09-01-new-php-defaults.md create mode 100644 source/releasenotes/2023-09-01-object-cache-pro.md create mode 100644 source/releasenotes/2023-09-01-pantheon-advanced-page-cache-wordpress-plugin-updates.md create mode 100644 source/releasenotes/2023-09-01-php-security-updates.md create mode 100644 source/releasenotes/2023-09-01-solr-search-for-wordpress-2-5-0-update.md create mode 100644 source/releasenotes/2023-09-01-wordpress-multisite-search-and-replace.md create mode 100644 source/releasenotes/2023-10-01-design-system-integration-docs.md create mode 100644 source/releasenotes/2023-10-01-drupal-security-update.md create mode 100644 source/releasenotes/2023-10-01-front-end-sites-settings.md create mode 100644 source/releasenotes/2023-10-01-php-8-1-and-8-2-updated-to-their-latest-patch-releases.md create mode 100644 source/releasenotes/2023-10-01-php-memory-limits-updates.md create mode 100644 source/releasenotes/2023-10-01-wpml-improved-edge-caching-compatibility-cache-hit-ratio-increased-24-percent.md create mode 100644 source/releasenotes/2023-11-01-composer-logs-visibility.md create mode 100644 source/releasenotes/2023-11-01-faster-backups.md create mode 100644 source/releasenotes/2023-11-01-front-end-sites-build-caching-and-node-js-versions.md create mode 100644 source/releasenotes/2023-11-01-streamlined-user-offboarding.md create mode 100644 source/releasenotes/2023-11-01-vpat-issued-for-product-accessibility.md create mode 100644 source/releasenotes/2023-11-01-wordpress-native-php-sessions-1-4-update.md create mode 100644 source/releasenotes/2023-12-01-delete-front-end-sites-multidevs-directly-from-dashboard-for-streamlined-management.md create mode 100644 source/releasenotes/2023-12-01-elevated-experience-with-front-end-sites-drupal-starter-kit.md create mode 100644 source/releasenotes/2023-12-01-optimized-monitoring-for-high-volume-directories.md create mode 100644 source/releasenotes/2023-12-01-upgraded-security-measures-for-uninterrupted-webops-experience.md create mode 100644 source/releasenotes/2023-12-01-wordpress-6-4-2-now-available-for-enhanced-security.md diff --git a/source/releasenotes/2023-09-01-early-access-customer-scheduled-jobs.md b/source/releasenotes/2023-09-01-early-access-customer-scheduled-jobs.md new file mode 100644 index 0000000000..f1b6e3f088 --- /dev/null +++ b/source/releasenotes/2023-09-01-early-access-customer-scheduled-jobs.md @@ -0,0 +1,8 @@ +--- +title: "Early Access: Customer Scheduled Jobs" +published_date: "2023-09-01" +categories: [new-feature, tools-apis] +--- +[The Terminus Scheduled Jobs Plugin](/customer-scheduled-cron-jobs) allows you to schedule and automate specific cron jobs according to site requirements without affecting performance. + +You can specify the desired frequency (e.g., daily, weekly, monthly, hourly), and the actions to be performed. The system then executes the scheduled jobs automatically based on the provided instructions. Helps with long running jobs by granting a total budget of 300 mins (in a 24 hr period) to run jobs. diff --git a/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md b/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md new file mode 100644 index 0000000000..35393f27de --- /dev/null +++ b/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md @@ -0,0 +1,8 @@ +--- +title: "Early Access: Streamlined User Offboarding" +published_date: "2023-09-01" +categories: [account-management, user-interface] +--- +Helps Workspace Admins more effectively manage user access by providing the ability to offboard users from multiple sites in a single click. + +For more information, see Pantheon’s documentation on [Workspace Offboarding](/workspace-offboarding). Or join the [#WordPress Slack Channel](http://slackin.pantheon.io) to connect with other Pantheon customers & super-users. diff --git a/source/releasenotes/2023-09-01-front-end-sites-enhancements.md b/source/releasenotes/2023-09-01-front-end-sites-enhancements.md new file mode 100644 index 0000000000..aa3dbaff01 --- /dev/null +++ b/source/releasenotes/2023-09-01-front-end-sites-enhancements.md @@ -0,0 +1,17 @@ +--- +title: "Front-End Sites Enhancements" +published_date: "2023-09-01" +categories: [front-end-sites, user-interface] +--- +We released version 1.0.5 of the [WP Decoupled Preview plugin](https://wordpress.org/plugins/decoupled-preview/) which contains a bug fix specific to WordPress 6.3. WP Decoupled Preview enables content editors to see their changes in the context of a front-end framework (served through [Pantheon's Front-End Sites](/guides/decoupled/overview)) like Next.js. To try this functionality, request access to Front-End Sites and [follow our tutorial for spinning up our WordPress + Next.js starter](/guides/decoupled/wp-nextjs-frontend-starters). + +Can you tell we want more teams to sign up for Front-End Sites? If you don't yet have access, as of the last month you'll now see callouts in the site creation flow that lead to Front-End Sites Access: + +![Sign up page in the Pantheon dashboard for decoupled Early Access](../images/decoupled/ea-decoupled-signup.png) + +Thanks to efforts in the last month, once you spin up new codebases in Front-End Sites, you will also find: +- Newly improved readme files in your fresh projects. +- Health checks that fire early in the build process if your Front-End Site may be likely to fail due to missing variables for a back-end CMS +- A better navigation and search functionality for [the Decoupled Kit project documentation](https://decoupledkit.pantheon.io/docs). + +Want to chat more about these kinds of sites? Join the [#front-end-frameworks](https://pantheon-community.slack.com/archives/C01DXGMFZFB) Slack Channel. diff --git a/source/releasenotes/2023-09-01-new-php-defaults.md b/source/releasenotes/2023-09-01-new-php-defaults.md new file mode 100644 index 0000000000..83a3e63906 --- /dev/null +++ b/source/releasenotes/2023-09-01-new-php-defaults.md @@ -0,0 +1,8 @@ +--- +title: New PHP Defaults +published_date: "2023-09-01" +categories: [infrastructure, wordpress, drupal, action-required] +--- +Pantheon has pushed an update to WordPress and Drupal 7 core upstreams which sets PHP 8.1 as the new default PHP version, rather than 7.4. + +Please test this core update thoroughly before deploying to the Live environment. If your site requires an older version of PHP, or if you'd like to upgrade to PHP 8.2, see [Pantheon’s documentation on how to manage PHP versions via the pantheon.yml configuration file](/guides/php/php-versions). diff --git a/source/releasenotes/2023-09-01-object-cache-pro.md b/source/releasenotes/2023-09-01-object-cache-pro.md new file mode 100644 index 0000000000..6fe9fb5932 --- /dev/null +++ b/source/releasenotes/2023-09-01-object-cache-pro.md @@ -0,0 +1,8 @@ +--- +title: Object Cache Pro +published_date: "2023-09-01" +categories: [wordpress, action-required, performance, new-feature] +--- +WordPress sites can now leverage an upgraded object caching solution on Pantheon! Object Cache Pro is a highly optimized premium WordPress plugin that integrates with Redis for business class performance. [Find out more about our perspective Object Caching from Steve Persch, Director of Developer Experience](https://pantheon.io/blog/pantheon-includes-object-cache-pro-painless-improved-performance). + +See Pantheon’s documentation for instructions on [how to enable Object Cache Pro](/object-cache/wordpress). Or join the [#WordPress Slack Channel](http://slackin.pantheon.io) to connect with other customers using Object Cache Pro. diff --git a/source/releasenotes/2023-09-01-pantheon-advanced-page-cache-wordpress-plugin-updates.md b/source/releasenotes/2023-09-01-pantheon-advanced-page-cache-wordpress-plugin-updates.md new file mode 100644 index 0000000000..a4c6261767 --- /dev/null +++ b/source/releasenotes/2023-09-01-pantheon-advanced-page-cache-wordpress-plugin-updates.md @@ -0,0 +1,8 @@ +--- +title: Pantheon Advanced Page Cache WordPress Plugin Updates +published_date: "2023-09-01" +categories: [wordpress, action-required, performance] +--- +We released an update for the [Pantheon Advanced Page Cache](https://wordpress.org/plugins/pantheon-advanced-page-cache/) WordPress plugin which adds a filter to allow disabling surrogate keys for posts' taxonomy terms. This can be especially helpful for posts with large numbers of taxonomies (such as WooCommerce products with a large number of global attributes). + +For more information, see [Pantheon documentation](/guides/wordpress-configurations/plugins#disable-surrogate-keys-for-taxonomy-terms). diff --git a/source/releasenotes/2023-09-01-php-security-updates.md b/source/releasenotes/2023-09-01-php-security-updates.md new file mode 100644 index 0000000000..9533b9e382 --- /dev/null +++ b/source/releasenotes/2023-09-01-php-security-updates.md @@ -0,0 +1,8 @@ +--- +title: PHP Security Updates +published_date: "2023-09-01" +categories: [infrastructure, security, action-required] +--- +Pantheon has deployed PHP versions [8.2.9](https://www.php.net/ChangeLog-8.php#8.2.9), [8.1.22](https://www.php.net/ChangeLog-8.php#8.1.22), and [8.0.30](https://www.php.net/ChangeLog-8.php#8.0.30) to customer sites running on the platform. These releases address vulnerabilities disclosed in [CVE-2023-3823](https://nvd.nist.gov/vuln/detail/CVE-2023-3823) and [CVE-2023-3824](https://nvd.nist.gov/vuln/detail/CVE-2023-3824). + +If you are using PHP 8.2, 8.1 or 8.0, there is nothing further that you need to do. If you are still on PHP 7.4 or earlier, though, you should schedule some time to upgrade to a supported version.While the vulnerabilities patched in these latest releases are not reported to affect PHP 7.4, the fact remains that there could be (and probably are) unpatched vulnerabilities in the end-of-life versions. Read more about it in Greg Anderson’s [blog post](https://pantheon.io/blog/php-829-security-release-demonstrates-pantheons-commitment-protecting-your-sites). diff --git a/source/releasenotes/2023-09-01-solr-search-for-wordpress-2-5-0-update.md b/source/releasenotes/2023-09-01-solr-search-for-wordpress-2-5-0-update.md new file mode 100644 index 0000000000..7f187e2bee --- /dev/null +++ b/source/releasenotes/2023-09-01-solr-search-for-wordpress-2-5-0-update.md @@ -0,0 +1,10 @@ +--- +title: "Solr Search for WordPress 2.5.0 Update" +published_date: "2023-09-01" +categories: [wordpress, action-required, performance] +--- +We released an update for the [Solr Search for WordPress plugin](https://wordpress.org/plugins/solr-power/) which disables auto-commit by default and allows cron to push solr commits regularly instead. + +This drastically improves the performance of large sites and avoids 503 errors related to hard committing on every update. This update is recommended for all WordPress sites currently running the plugin. + +You can still enable auto-commit by explicitly setting `SOLRPOWER_DISABLE_AUTOCOMMIT` to `false`. diff --git a/source/releasenotes/2023-09-01-wordpress-multisite-search-and-replace.md b/source/releasenotes/2023-09-01-wordpress-multisite-search-and-replace.md new file mode 100644 index 0000000000..bb525e6e07 --- /dev/null +++ b/source/releasenotes/2023-09-01-wordpress-multisite-search-and-replace.md @@ -0,0 +1,10 @@ +--- +title: WordPress Multisite Search and Replace +published_date: "2023-09-01" +categories: [wordpress, new-feature] +--- +WordPress Multisites can now run automated Search and Replace when cloning the database between environments or spinning up new environments. + +Subdomain Multisites can use a domain map to define the URLs between environments, or auto-convert to a subdirectory Multisite in non-live environments. + +For more information, see Pantheon’s documentation on [Search and Replace](/guides/multisite/search-replace/). Or join the [#WordPress Slack Channel](http://slackin.pantheon.io) to connect with other Pantheon customers & super-users. diff --git a/source/releasenotes/2023-10-01-design-system-integration-docs.md b/source/releasenotes/2023-10-01-design-system-integration-docs.md new file mode 100644 index 0000000000..b5f59313c0 --- /dev/null +++ b/source/releasenotes/2023-10-01-design-system-integration-docs.md @@ -0,0 +1,8 @@ +--- +title: "Design System Integration: Docs" +published_date: "2023-10-01" +categories: [user-interface] +--- +We're excited to announce that our documentation site has been seamlessly integrated with our brand-new design system. This enhancement brings a fresh and cohesive look to our documentation, providing a unified and visually appealing experience for our users. Explore the updated, improved, and more accessible [Docs site](/) today. + +![Docs Design System](../images/DocsDesignSystem.png) diff --git a/source/releasenotes/2023-10-01-drupal-security-update.md b/source/releasenotes/2023-10-01-drupal-security-update.md new file mode 100644 index 0000000000..c0bd845192 --- /dev/null +++ b/source/releasenotes/2023-10-01-drupal-security-update.md @@ -0,0 +1,8 @@ +--- +title: Drupal Security Update +published_date: "2023-10-01" +categories: [drupal, security, action-required] +--- +On September 20th, [Drupal core updates were released to address a critical vulnerability in the JSON:API module](https://status.pantheon.io/incidents/vj842n7k7w40). Those updates became immediately available within the Pantheon dashboard for one-click code updates. Additionally, [our engineers updated our CDN to mitigate potential attacks](https://status.pantheon.io/incidents/598zxv2v8l7p). + +If you have a Drupal site using JSON:API we suggest you update as soon as possible if you haven't done so already. And even if you aren't using JSON:API, it'll still feel good to apply an update, right? To better understand the nature of security updates, [come watch the Pantheon YouTube Livestream on October 25th](https://www.youtube.com/watch?v=WV2ZSeBOziU). diff --git a/source/releasenotes/2023-10-01-front-end-sites-settings.md b/source/releasenotes/2023-10-01-front-end-sites-settings.md new file mode 100644 index 0000000000..64372d2b34 --- /dev/null +++ b/source/releasenotes/2023-10-01-front-end-sites-settings.md @@ -0,0 +1,7 @@ +--- +title: "Front-End Sites Settings" +published_date: "2023-10-01" +categories: [front-end-sites, user-interface] +--- +The Pantheon Front-End Sites Settings page is now available for users of the WordPress for Front-End project. It provides a simplified post install experience where users can copy environment variables for use in the Front-End Sites dashboard, and also test their preview endpoint. Instructions for creating a new WordPress project [can be found here](https://decoupledkit.pantheon.io/docs/backend-starters/decoupled-wordpress/creating-a-new-project). +Want to chat more about these kinds of sites? Join the [#front-end-frameworks](https://pantheon-community.slack.com/archives/C01DXGMFZFB) Slack Channel. diff --git a/source/releasenotes/2023-10-01-php-8-1-and-8-2-updated-to-their-latest-patch-releases.md b/source/releasenotes/2023-10-01-php-8-1-and-8-2-updated-to-their-latest-patch-releases.md new file mode 100644 index 0000000000..ef5e30b54b --- /dev/null +++ b/source/releasenotes/2023-10-01-php-8-1-and-8-2-updated-to-their-latest-patch-releases.md @@ -0,0 +1,6 @@ +--- +title: "PHP 8.1 and 8.2 updated to their latest patch releases" +published_date: "2023-10-01" +categories: [infrastructure, security] +--- +PHP 8.2.11 and 8.1.24 were released on the platform. They contain the latest bug fixes and security releases for PHP. As a reminder, PHP 8.0 will reach End-of-Life on 26 November 2023. For the best performance and security, Pantheon recommends running PHP 8.1 and above. diff --git a/source/releasenotes/2023-10-01-php-memory-limits-updates.md b/source/releasenotes/2023-10-01-php-memory-limits-updates.md new file mode 100644 index 0000000000..659a5dab50 --- /dev/null +++ b/source/releasenotes/2023-10-01-php-memory-limits-updates.md @@ -0,0 +1,8 @@ +--- +title: PHP Memory Limits Updates +published_date: "2023-10-01" +categories: [infrastructure, performance] +--- +Sometimes you just need more memory to serve your site reliably. To learn more about why we doubled the memory for most site plans, [check out this blog](https://pantheon.io/blog/pantheon-increases-php-memory-limits-performance-and-elite-plans) by Rachel Whitton, Lead Technical Writer here at Pantheon. + +To take advantage of the increased memory limit, [contact our customer support team](/guides/support/contact-support/). Or drop by our [regular Zoom-based office hours](http://pantheon.io/developer-community/office-hours). diff --git a/source/releasenotes/2023-10-01-wpml-improved-edge-caching-compatibility-cache-hit-ratio-increased-24-percent.md b/source/releasenotes/2023-10-01-wpml-improved-edge-caching-compatibility-cache-hit-ratio-increased-24-percent.md new file mode 100644 index 0000000000..70f2640dc4 --- /dev/null +++ b/source/releasenotes/2023-10-01-wpml-improved-edge-caching-compatibility-cache-hit-ratio-increased-24-percent.md @@ -0,0 +1,6 @@ +--- +title: "WPML Improved Edge Caching Compatibility - Cache Hit Ratio Increased 24%" +published_date: "2023-10-01" +categories: [wordpress, performance, infrastructure] +--- +Global CDN now has improved compatibility with the WPML multilingual WordPress plugin. Page variations for each language can be cached at the edge. This update was rolled out automatically for all sites that use the WPML plugin and increased site cache hit ratio by 24% on average. diff --git a/source/releasenotes/2023-11-01-composer-logs-visibility.md b/source/releasenotes/2023-11-01-composer-logs-visibility.md new file mode 100644 index 0000000000..973c93073b --- /dev/null +++ b/source/releasenotes/2023-11-01-composer-logs-visibility.md @@ -0,0 +1,6 @@ +--- +title: Composer Logs Visibility +published_date: "2023-11-01" +categories: [new-feature, tools-apis] +--- +Visibility into composer logs has been a top customer request. Now, if you need to debug a composer build failure due to an error, install the Terminus Composer Logs plugin on your machine to view more details. Upstream Update logs are also available. Installation instructions and command usage can be found [here in the plugin's GitHub repository](https://github.com/pantheon-systems/terminus-composer-logs-plugin). diff --git a/source/releasenotes/2023-11-01-faster-backups.md b/source/releasenotes/2023-11-01-faster-backups.md new file mode 100644 index 0000000000..322a7fdc46 --- /dev/null +++ b/source/releasenotes/2023-11-01-faster-backups.md @@ -0,0 +1,6 @@ +--- +title: Faster Backups +published_date: "2023-11-01" +categories: [infrastructure, performance] +--- +The File System team at Pantheon achieved significant speed improvements in backup processes. The Valhalla export process was overhauled, allowing backups to be constructed from new objects, cutting down export times by 25-83%. This was accomplished by initiating object retrieval immediately after receiving MANIFEST metadata, omitting empty files, and promptly archiving received files. diff --git a/source/releasenotes/2023-11-01-front-end-sites-build-caching-and-node-js-versions.md b/source/releasenotes/2023-11-01-front-end-sites-build-caching-and-node-js-versions.md new file mode 100644 index 0000000000..2ba96b55fe --- /dev/null +++ b/source/releasenotes/2023-11-01-front-end-sites-build-caching-and-node-js-versions.md @@ -0,0 +1,10 @@ +--- +title: "Front-End Sites Build Caching and Node.js Versions" +published_date: "2023-11-01" +categories: [front-end-sites, action-required, performance] +--- +Pantheon introduced a new build pipeline for Front End Sites to significantly improve build times. Beginning on November 13th, 2023, newly created sites are automatically using the new pipeline and cannot opt back to the old pipeline. Sites made prior to that date can opt-in to the new pipeline to take advantage of the new features. All pre-existing sites that do not opt-in will be switched over for new builds on or around January 15th. + +Additionally, we are adding support for Node 18 (for dynamic sites) and 20 (for both static and dynamic sites). To select a specific version, Pantheon is [moving away from using .nvmrc](/guides/decoupled/overview/manage-settings#nodejs-version) and will instead look to the [“engines” field](https://docs.npmjs.com/cli/v8/configuring-npm/package-json#engines) in your project’s `package.json` file. + +To find out more about adopting the new pipeline, [check out our documentation](/guides/decoupled/overview/v1-pipeline), and read our [blog post](https://pantheon.io/blog/opt-now-faster-build-pipeline-front-end-sites?utm_medium=email&utm_source=newsletter&utm_content=front_end_sites_blog&utm_campaign=2023_11_PSU_ALL_US_Novemeber_Changelog_Newsletter) about how we’re already experiencing the benefits of this internally at Pantheon. diff --git a/source/releasenotes/2023-11-01-streamlined-user-offboarding.md b/source/releasenotes/2023-11-01-streamlined-user-offboarding.md new file mode 100644 index 0000000000..24cbc3ec79 --- /dev/null +++ b/source/releasenotes/2023-11-01-streamlined-user-offboarding.md @@ -0,0 +1,10 @@ +--- +title: Streamlined User Offboarding +published_date: "2023-11-01" +categories: [account-management, user-interface, new-feature] +--- +Administrators of large workspaces will now be able to easily remove access for offboarded users at scale. When a member of your team changes jobs, or for whatever reason you need to remove a person from your sites, you can now do so faster + +As you remove users from your workspace or site team, you will be prompted to remove access across all sites that a given user may be connected to, which can save multiple clicks and manual labor to ensure the right access levels are maintained. + +To learn more about how this new offboarding process works, take a look at our [documentation](/guides/account-mgmt/workspace-sites-teams/teams#remove-a-user). diff --git a/source/releasenotes/2023-11-01-vpat-issued-for-product-accessibility.md b/source/releasenotes/2023-11-01-vpat-issued-for-product-accessibility.md new file mode 100644 index 0000000000..78c158b62f --- /dev/null +++ b/source/releasenotes/2023-11-01-vpat-issued-for-product-accessibility.md @@ -0,0 +1,8 @@ +--- +title: VPAT issued for product accessibility +published_date: "2023-11-01" +categories: [infrastructure, user-interface] +--- +* As part of Pantheon’s commitment to accessibility, diversity, and inclusion, we are proud to announce that we have completed an external audit of our platform’s accessibility features and the results are available in our [WCAG 2.1 AA VPAT](https://drive.google.com/file/d/1SYnzTsVNOyK4-5eLRYnNQJArdVsM8JUD/view). +* Our teams have ongoing efforts to improve accessibility further and have outlined goals to improve our support of WCAG 2.1 AA criteria for the next two quarters. +* Our partners and customers who depend on WCAG compliant products can confidently continue to use the platform knowing that we hold accessibility to be an important function of the services we provide. diff --git a/source/releasenotes/2023-11-01-wordpress-native-php-sessions-1-4-update.md b/source/releasenotes/2023-11-01-wordpress-native-php-sessions-1-4-update.md new file mode 100644 index 0000000000..eba22d7482 --- /dev/null +++ b/source/releasenotes/2023-11-01-wordpress-native-php-sessions-1-4-update.md @@ -0,0 +1,8 @@ +--- +title: "WordPress Native PHP Sessions 1.4 Update" +published_date: "2023-11-01" +categories: [wordpress, action-required, performance] +--- +The WordPress Native PHP Sessions plugin added primary keys to its custom tables in 1.2.2 for greater performance and redundancy, but did not upgrade existing sites. Now, version 1.4 includes an optional upgrade command for sites that installed the plugin prior to the 1.2.2 release. + +Our open source [WordPress Native PHP Sessions](https://wordpress.org/plugins/wp-native-php-sessions/) is available in the WordPress.org plugins repo. diff --git a/source/releasenotes/2023-12-01-delete-front-end-sites-multidevs-directly-from-dashboard-for-streamlined-management.md b/source/releasenotes/2023-12-01-delete-front-end-sites-multidevs-directly-from-dashboard-for-streamlined-management.md new file mode 100644 index 0000000000..2e3e86a491 --- /dev/null +++ b/source/releasenotes/2023-12-01-delete-front-end-sites-multidevs-directly-from-dashboard-for-streamlined-management.md @@ -0,0 +1,8 @@ +--- +title: "Delete Front-End Sites Multidevs Directly From Dashboard for Streamlined Management" +published_date: "2023-12-01" +categories: [front-end-sites, user-interface] +--- +We've enhanced your site management experience by enabling the ability to delete Multidevs directly from your Front-End Sites dashboard. This upgrade simplifies project organization, providing you with a seamless process to remove unnecessary Multidevs. + +This intuitive addition streamlines site management, offering a hassle-free solution to keep your projects organized and optimized. Find detailed instructions [here](/guides/decoupled/overview/fes-multidev#delete-a-multidev-environment). diff --git a/source/releasenotes/2023-12-01-elevated-experience-with-front-end-sites-drupal-starter-kit.md b/source/releasenotes/2023-12-01-elevated-experience-with-front-end-sites-drupal-starter-kit.md new file mode 100644 index 0000000000..4bc9c73276 --- /dev/null +++ b/source/releasenotes/2023-12-01-elevated-experience-with-front-end-sites-drupal-starter-kit.md @@ -0,0 +1,13 @@ +--- +title: "Elevated Experience With Front-End Sites Drupal Starter Kit" +published_date: "2023-12-01" +categories: [front-end-sites, user-interface] +--- +The Pantheon Drupal Starter Kit for Front-End Sites has undergone significant improvements. +* **Setup experience**: The setup process is now more user-friendly and guided for a seamless experience. +* **Health check script**: The newly introduced health check script alerts you to known configuration issues before a build fails. +* **Front-End Sites settings**: Effortlessly navigate through the Settings page, simplifying the testing of your preview endpoint, and allowing convenient copying of environment variables for use in the Front-End Sites Dashboard. + +Curious about creating a new Drupal project with these enhancements? Find detailed instructions [here](https://decoupledkit.pantheon.io/docs/backend-starters/decoupled-drupal/creating-a-new-project). + +For further insights and discussions on similar sites, join the [#front-end-frameworks](https://pantheon-community.slack.com/archives/C01DXGMFZFB) Slack channel. diff --git a/source/releasenotes/2023-12-01-optimized-monitoring-for-high-volume-directories.md b/source/releasenotes/2023-12-01-optimized-monitoring-for-high-volume-directories.md new file mode 100644 index 0000000000..8613c07cc8 --- /dev/null +++ b/source/releasenotes/2023-12-01-optimized-monitoring-for-high-volume-directories.md @@ -0,0 +1,6 @@ +--- +title: Optimized Monitoring for High-Volume Directories +published_date: "2023-12-01" +categories: [new-feature, user-interface, performance] +--- +Introducing proactive alerts tailored for directories with substantial file counts, which could impact performance or accessibility. Stay informed with timely notifications delivered [directly to your dashboard](/guides/filesystem/large-files/#alerts) and via email when file counts reach 50,000 and 100,000. This feature empowers you to efficiently manage your file system and address potential issues promptly. diff --git a/source/releasenotes/2023-12-01-upgraded-security-measures-for-uninterrupted-webops-experience.md b/source/releasenotes/2023-12-01-upgraded-security-measures-for-uninterrupted-webops-experience.md new file mode 100644 index 0000000000..337de3a79e --- /dev/null +++ b/source/releasenotes/2023-12-01-upgraded-security-measures-for-uninterrupted-webops-experience.md @@ -0,0 +1,12 @@ +--- +title: Upgraded Security Measures for Uninterrupted WebOps Experience +published_date: "2023-12-01" +categories: [infrastructure, security, performance] +--- +We're thrilled to announce an impactful upgrade to Pantheon's security infrastructure, reinforcing our commitment to safeguarding your websites. In response to the escalating sophistication of distributed denial-of-service (DDoS) attacks, we've implemented innovative solutions to fortify our defenses. Particularly, we've addressed a surge in Layer 7 attacks targeting content management systems, ensuring resilience even without our Advanced Global CDN's Web Application Firewall (WAF). + +**Key benefits:** +* **Advanced DDoS protection**: Our engineers have proactively countered Layer 7 attacks, mitigating risks posed by inauthentic traffic targeting web content management systems. +* **Rate limiting capabilities**: We've introduced rate limiting capabilities within our Global CDN, curbing abusive traffic effectively. This ensures a stable online presence, even during large-scale attacks, preventing wider stability issues. + +For more in-depth insights into the measures we've taken and the value they bring to your Pantheon experience, delve into the [full blog post](https://pantheon.io/blog/pantheon-improves-protection-malicious-traffic). Your website's security and stability are our top priorities, and this enhancement is another step in our ongoing commitment to delivering a robust WebOps platform. diff --git a/source/releasenotes/2023-12-01-wordpress-6-4-2-now-available-for-enhanced-security.md b/source/releasenotes/2023-12-01-wordpress-6-4-2-now-available-for-enhanced-security.md new file mode 100644 index 0000000000..1744d7d693 --- /dev/null +++ b/source/releasenotes/2023-12-01-wordpress-6-4-2-now-available-for-enhanced-security.md @@ -0,0 +1,6 @@ +--- +title: "WordPress 6.4.2 Now Available for Enhanced Security" +published_date: "2023-12-01" +categories: [wordpress, security, action-required] +--- +In response to a critical security vulnerability, [WordPress 6.4.2](https://wordpress.org/news/2023/12/wordpress-6-4-2-maintenance-security-release/) was released on December 6, 2023. To ensure the safety of your site, Pantheon strongly advises an immediate upgrade. Prioritize your site's security – upgrade now! From e4811487094e58a0feba0e2678b9c91ba396deb2 Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Thu, 4 Jan 2024 11:59:39 -0600 Subject: [PATCH 063/174] Define attributes for all 'Release Notes' categories in JSON --- src/data/releaseNoteCategories.js | 111 ++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 src/data/releaseNoteCategories.js diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js new file mode 100644 index 0000000000..e965b4fa6e --- /dev/null +++ b/src/data/releaseNoteCategories.js @@ -0,0 +1,111 @@ +export const releaseNoteCategories = { + "action-required": { + "displayName": "Action Required", + "color": "red", + "description": "Requires customer to act in order to avoid disruption" + }, + "drupal": { + "displayName": "Drupal", + "color": "black", + "description": "Tailored for updates specific to the Drupal content management system, helping Drupal users stay informed about platform changes that directly impact their workflows" + }, + "new-feature": { + "displayName": "New Feature", + "color": "green", + "description": "Consolidates information about both new features and improvements, providing users with insights into enhancements that contribute to a better overall experience" + }, + "front-end-sites": { + "displayName": "Front-End Sites", + "color": "purple", + "description": "Focuses on updates related to Front-End Site (FES) enhancements, ensuring that developers and designers stay informed about changes affecting how they use the product" + }, + "infrastructure": { + "displayName": "Infrastructure", + "color": "black", + "description": "Details changes related to the underlying technology and architecture of the Pantheon platform, providing insights into changes that may impact performance and reliability" + }, + "security": { + "displayName": "Security", + "color": "red", + "description": "Addresses security-related updates, emphasizing the importance of staying informed about changes aimed at maintaining a secure and protected environment for users" + }, + "tools-apis": { + "displayName": "Tools & APIs", + "color": "black", + "description": "Keeps users informed about updates related to tools and APIs, helping developers understand changes that may impact their workflows and integrations" + }, + "wordpress": { + "displayName": "WordPress", + "color": "black", + "description": "Tailored for updates specific to the WordPress content management system, helping WordPress users stay informed about platform changes that directly impact their workflows" + }, + "performance": { + "displayName": "Performance", + "color": "black", + "description": "Highlights updates focused on optimizing the speed, efficiency, and overall performance of the Pantheon platform, giving users insights into improvements that enhance user experience" + }, + "user-interface": { + "displayName": "User interface", + "color": "black", + "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" + }, + "account-management": { + "displayName": "Account Management", + "color": "black", + "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" + }, + "policy": { + "displayName": "Policy", + "color": "gray", + "description": "Communicates updates related to platform policies, ensuring users are aware of any changes in rules or guidelines that may impact their usage" + }, + "content-management": { + "displayName": "Content Management", + "color": "gray", + "description": "Include changes relevant to managing digital content on the Pantheon platform, ensuring users stay informed about updates related to content creation, editing, and relevant tools" + }, + "deprecated": { + "displayName": "Deprecated", + "color": "red", + "description": "Reserved for updates indicating the phasing out or discontinuation of specific features or functionalities" + }, + "events": { + "displayName": "Events", + "color": "gray", + "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" + }, + "general": { + "displayName": "General", + "color": "gray", + "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" + }, + "issue-bug": { + "displayName": "Issue/Bug", + "color": "gray", + "description": "Merges information about issues and bugs into a unified category, allowing users to easily identify and understand the current status and steps taken to address reported problems" + }, + "migration": { + "displayName": "Migration", + "color": "gray", + "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" + }, + "integration": { + "displayName": "", + "color": "gray", + "description": "Addresses updates related to system integration, helping IT and tech leads understand changes relevant to connecting Pantheon with other tools and services", + "_comment-from-Rachel": "I think we should remove this as a duplicate of the Tools/APIs category" + }, + "platform": { + "displayName": "Platform", + "color": "gray", + "description": "Offers general updates about the Pantheon platform, providing users with a comprehensive overview of changes that influence the overall system", + "_comment-from-Rachel": "I think we should remove this as a duplicate of the Infrastructure category" + }, + "documentation" : { + "displayName": "Documentation", + "color": "gray", + "description": "Communicates substantive changes to docs.pantheon.io", + "_comment-from-Rachel": "Review needed: New category not yet reviewed/approved by Ingrid or design team", + "_another_comment-from-Rachel": "We should require any new category to go through a review panel which includes design team, since too many tags can reduce usability of the feature and duplicate categories can cause confusion for intended usage." + } +}; From 1cb14d717c984a392543a27908479c13eeaf2edb Mon Sep 17 00:00:00 2001 From: Rachel Date: Thu, 4 Jan 2024 14:07:43 -0600 Subject: [PATCH 064/174] Update src/data/releaseNoteCategories.js Co-authored-by: Steve Persch --- src/data/releaseNoteCategories.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js index e965b4fa6e..440f4c6b95 100644 --- a/src/data/releaseNoteCategories.js +++ b/src/data/releaseNoteCategories.js @@ -90,7 +90,7 @@ export const releaseNoteCategories = { "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" }, "integration": { - "displayName": "", + "displayName": "Integration", "color": "gray", "description": "Addresses updates related to system integration, helping IT and tech leads understand changes relevant to connecting Pantheon with other tools and services", "_comment-from-Rachel": "I think we should remove this as a duplicate of the Tools/APIs category" From f04ed47d758fb62ce717d159501944352717df51 Mon Sep 17 00:00:00 2001 From: Rachel Date: Tue, 9 Jan 2024 13:14:44 -0600 Subject: [PATCH 065/174] Update categories based on feedback in internal worksheet --- src/data/releaseNoteCategories.js | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js index 440f4c6b95..33cf9c33e6 100644 --- a/src/data/releaseNoteCategories.js +++ b/src/data/releaseNoteCategories.js @@ -79,33 +79,19 @@ export const releaseNoteCategories = { "color": "gray", "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" }, - "issue-bug": { - "displayName": "Issue/Bug", - "color": "gray", - "description": "Merges information about issues and bugs into a unified category, allowing users to easily identify and understand the current status and steps taken to address reported problems" - }, "migration": { "displayName": "Migration", "color": "gray", "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" }, - "integration": { - "displayName": "Integration", - "color": "gray", - "description": "Addresses updates related to system integration, helping IT and tech leads understand changes relevant to connecting Pantheon with other tools and services", - "_comment-from-Rachel": "I think we should remove this as a duplicate of the Tools/APIs category" - }, "platform": { "displayName": "Platform", "color": "gray", - "description": "Offers general updates about the Pantheon platform, providing users with a comprehensive overview of changes that influence the overall system", - "_comment-from-Rachel": "I think we should remove this as a duplicate of the Infrastructure category" + "description": "Offers general updates about the Pantheon platform, providing users with a comprehensive overview of changes that influence the overall system" }, - "documentation" : { - "displayName": "Documentation", + "docs": { + "displayName": "Pantheon Docs", "color": "gray", - "description": "Communicates substantive changes to docs.pantheon.io", - "_comment-from-Rachel": "Review needed: New category not yet reviewed/approved by Ingrid or design team", - "_another_comment-from-Rachel": "We should require any new category to go through a review panel which includes design team, since too many tags can reduce usability of the feature and duplicate categories can cause confusion for intended usage." + "description": "Reserved for updates that involve substantive changes, additions, or clarifications within Pantheon Docs — the centralized hub containing manuals and essential documentation for Pantheon users." } }; From d734f246101e8939ac848cf630e2c6005928e3be Mon Sep 17 00:00:00 2001 From: Rachel Date: Tue, 9 Jan 2024 13:16:56 -0600 Subject: [PATCH 066/174] Rename account-management to billing --- src/data/releaseNoteCategories.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js index 33cf9c33e6..bceb01578d 100644 --- a/src/data/releaseNoteCategories.js +++ b/src/data/releaseNoteCategories.js @@ -49,8 +49,8 @@ export const releaseNoteCategories = { "color": "black", "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" }, - "account-management": { - "displayName": "Account Management", + "billing": { + "displayName": "Billing & Finance", "color": "black", "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" }, From 8bbaac01164e2cd5b638e8b91a3cbabdf8a7e27e Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Tue, 9 Jan 2024 13:19:56 -0600 Subject: [PATCH 067/174] Replace account-management category with billing category --- .../2023-09-01-early-access-streamlined-user-offboarding.md | 2 +- source/releasenotes/2023-11-01-streamlined-user-offboarding.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md b/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md index 35393f27de..611f82a0fa 100644 --- a/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md +++ b/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md @@ -1,7 +1,7 @@ --- title: "Early Access: Streamlined User Offboarding" published_date: "2023-09-01" -categories: [account-management, user-interface] +categories: [billing, user-interface] --- Helps Workspace Admins more effectively manage user access by providing the ability to offboard users from multiple sites in a single click. diff --git a/source/releasenotes/2023-11-01-streamlined-user-offboarding.md b/source/releasenotes/2023-11-01-streamlined-user-offboarding.md index 24cbc3ec79..943351729a 100644 --- a/source/releasenotes/2023-11-01-streamlined-user-offboarding.md +++ b/source/releasenotes/2023-11-01-streamlined-user-offboarding.md @@ -1,7 +1,7 @@ --- title: Streamlined User Offboarding published_date: "2023-11-01" -categories: [account-management, user-interface, new-feature] +categories: [billing, user-interface, new-feature] --- Administrators of large workspaces will now be able to easily remove access for offboarded users at scale. When a member of your team changes jobs, or for whatever reason you need to remove a person from your sites, you can now do so faster From 62db9fd4a9120232cdae2c07cbf90057012529f8 Mon Sep 17 00:00:00 2001 From: Rachel Date: Tue, 9 Jan 2024 13:23:55 -0600 Subject: [PATCH 068/174] Remove action-required from OCP entry --- source/releasenotes/2023-09-01-object-cache-pro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2023-09-01-object-cache-pro.md b/source/releasenotes/2023-09-01-object-cache-pro.md index 6fe9fb5932..d7f761463f 100644 --- a/source/releasenotes/2023-09-01-object-cache-pro.md +++ b/source/releasenotes/2023-09-01-object-cache-pro.md @@ -1,7 +1,7 @@ --- title: Object Cache Pro published_date: "2023-09-01" -categories: [wordpress, action-required, performance, new-feature] +categories: [wordpress, performance, new-feature] --- WordPress sites can now leverage an upgraded object caching solution on Pantheon! Object Cache Pro is a highly optimized premium WordPress plugin that integrates with Redis for business class performance. [Find out more about our perspective Object Caching from Steve Persch, Director of Developer Experience](https://pantheon.io/blog/pantheon-includes-object-cache-pro-painless-improved-performance). From b399818eb2a76bcc004119692905c2a9c892ba03 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Wed, 10 Jan 2024 13:30:30 -0800 Subject: [PATCH 069/174] Update 2023-10-01-design-system-integration-docs.md --- .../releasenotes/2023-10-01-design-system-integration-docs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2023-10-01-design-system-integration-docs.md b/source/releasenotes/2023-10-01-design-system-integration-docs.md index b5f59313c0..b77db75c17 100644 --- a/source/releasenotes/2023-10-01-design-system-integration-docs.md +++ b/source/releasenotes/2023-10-01-design-system-integration-docs.md @@ -1,7 +1,7 @@ --- title: "Design System Integration: Docs" published_date: "2023-10-01" -categories: [user-interface] +categories: [user-interface, pantheon-docs] --- We're excited to announce that our documentation site has been seamlessly integrated with our brand-new design system. This enhancement brings a fresh and cohesive look to our documentation, providing a unified and visually appealing experience for our users. Explore the updated, improved, and more accessible [Docs site](/) today. From d0f464b631fc3b1d54fb240d361fbe99f0ddeac7 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Wed, 10 Jan 2024 13:39:36 -0800 Subject: [PATCH 070/174] Update 2023-12-01-elevated-experience-with-front-end-sites-drupal-starter-kit.md --- ...evated-experience-with-front-end-sites-drupal-starter-kit.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2023-12-01-elevated-experience-with-front-end-sites-drupal-starter-kit.md b/source/releasenotes/2023-12-01-elevated-experience-with-front-end-sites-drupal-starter-kit.md index 4bc9c73276..7a914f3d6f 100644 --- a/source/releasenotes/2023-12-01-elevated-experience-with-front-end-sites-drupal-starter-kit.md +++ b/source/releasenotes/2023-12-01-elevated-experience-with-front-end-sites-drupal-starter-kit.md @@ -1,7 +1,7 @@ --- title: "Elevated Experience With Front-End Sites Drupal Starter Kit" published_date: "2023-12-01" -categories: [front-end-sites, user-interface] +categories: [front-end-sites, user-interface, drupal] --- The Pantheon Drupal Starter Kit for Front-End Sites has undergone significant improvements. * **Setup experience**: The setup process is now more user-friendly and guided for a seamless experience. From 5ab8fd5b99c37aa74714ca728d4fe83abd68b2f4 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Wed, 10 Jan 2024 13:41:42 -0800 Subject: [PATCH 071/174] Update 2023-10-01-front-end-sites-settings.md --- source/releasenotes/2023-10-01-front-end-sites-settings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2023-10-01-front-end-sites-settings.md b/source/releasenotes/2023-10-01-front-end-sites-settings.md index 64372d2b34..868863e46d 100644 --- a/source/releasenotes/2023-10-01-front-end-sites-settings.md +++ b/source/releasenotes/2023-10-01-front-end-sites-settings.md @@ -1,7 +1,7 @@ --- title: "Front-End Sites Settings" published_date: "2023-10-01" -categories: [front-end-sites, user-interface] +categories: [front-end-sites, wordpress, user-interface] --- The Pantheon Front-End Sites Settings page is now available for users of the WordPress for Front-End project. It provides a simplified post install experience where users can copy environment variables for use in the Front-End Sites dashboard, and also test their preview endpoint. Instructions for creating a new WordPress project [can be found here](https://decoupledkit.pantheon.io/docs/backend-starters/decoupled-wordpress/creating-a-new-project). Want to chat more about these kinds of sites? Join the [#front-end-frameworks](https://pantheon-community.slack.com/archives/C01DXGMFZFB) Slack Channel. From 3c45e62821550db5a7f8290ca07aaaab1f4b4895 Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Fri, 12 Jan 2024 11:52:15 -0600 Subject: [PATCH 072/174] Add new category for account management --- ...2023-09-01-early-access-streamlined-user-offboarding.md | 2 +- .../2023-11-01-streamlined-user-offboarding.md | 2 +- src/data/releaseNoteCategories.js | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md b/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md index 611f82a0fa..35393f27de 100644 --- a/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md +++ b/source/releasenotes/2023-09-01-early-access-streamlined-user-offboarding.md @@ -1,7 +1,7 @@ --- title: "Early Access: Streamlined User Offboarding" published_date: "2023-09-01" -categories: [billing, user-interface] +categories: [account-management, user-interface] --- Helps Workspace Admins more effectively manage user access by providing the ability to offboard users from multiple sites in a single click. diff --git a/source/releasenotes/2023-11-01-streamlined-user-offboarding.md b/source/releasenotes/2023-11-01-streamlined-user-offboarding.md index 943351729a..24cbc3ec79 100644 --- a/source/releasenotes/2023-11-01-streamlined-user-offboarding.md +++ b/source/releasenotes/2023-11-01-streamlined-user-offboarding.md @@ -1,7 +1,7 @@ --- title: Streamlined User Offboarding published_date: "2023-11-01" -categories: [billing, user-interface, new-feature] +categories: [account-management, user-interface, new-feature] --- Administrators of large workspaces will now be able to easily remove access for offboarded users at scale. When a member of your team changes jobs, or for whatever reason you need to remove a person from your sites, you can now do so faster diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js index bceb01578d..c49bd5efaf 100644 --- a/src/data/releaseNoteCategories.js +++ b/src/data/releaseNoteCategories.js @@ -89,9 +89,14 @@ export const releaseNoteCategories = { "color": "gray", "description": "Offers general updates about the Pantheon platform, providing users with a comprehensive overview of changes that influence the overall system" }, - "docs": { + "pantheon-docs": { "displayName": "Pantheon Docs", "color": "gray", "description": "Reserved for updates that involve substantive changes, additions, or clarifications within Pantheon Docs — the centralized hub containing manuals and essential documentation for Pantheon users." + }, + "account-management": { + "displayName": "Account Management", + "color": "gray", + "description": "Highlights updates related to account permissions, user roles, and any changes that impact how users manage and interact with their accounts." } }; From 02af873f3e0dfdc50fe89e493efa4a88758accd1 Mon Sep 17 00:00:00 2001 From: M Miller Date: Tue, 16 Jan 2024 13:58:47 -0800 Subject: [PATCH 073/174] Update PDS version --- package-lock.json | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index a258818c67..238d73d055 100644 --- a/package-lock.json +++ b/package-lock.json @@ -70,6 +70,9 @@ "date-fns": "^2.29.3", "prettier": "^2.8.3", "react-date-range": "^1.4.0" + }, + "engines": { + "node": ">=18.0.0 <20.0.0" } }, "node_modules/@algolia/cache-browser-local-storage": { @@ -4126,9 +4129,9 @@ } }, "node_modules/@pantheon-systems/pds-toolkit-react": { - "version": "1.0.0-dev.58", - "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.58.tgz", - "integrity": "sha512-WW0L/s4ZmsP1QjlmpLf4nBk6+WDXnJHxtoNphHtD/mBvG8x9o7A7M5yZC9jivNQize1kZO73vEn/UNcxM4T7Hg==", + "version": "1.0.0-dev.67", + "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.67.tgz", + "integrity": "sha512-LU4+ZzNl1ZgNS7kdO50AKV7M1T+U+YYh0vkjwi20YrdPnBK4cici+V1OeRWlG/hj8b2nGICQhOaJu8t+Vxgn6w==", "dependencies": { "@floating-ui/react": "^0.24.3", "focus-trap-react": "^10.2.1", @@ -29356,9 +29359,9 @@ } }, "@pantheon-systems/pds-toolkit-react": { - "version": "1.0.0-dev.58", - "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.58.tgz", - "integrity": "sha512-WW0L/s4ZmsP1QjlmpLf4nBk6+WDXnJHxtoNphHtD/mBvG8x9o7A7M5yZC9jivNQize1kZO73vEn/UNcxM4T7Hg==", + "version": "1.0.0-dev.67", + "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.67.tgz", + "integrity": "sha512-LU4+ZzNl1ZgNS7kdO50AKV7M1T+U+YYh0vkjwi20YrdPnBK4cici+V1OeRWlG/hj8b2nGICQhOaJu8t+Vxgn6w==", "requires": { "@floating-ui/react": "^0.24.3", "focus-trap-react": "^10.2.1", From 63e681cf6bdbeb3bce2ea69b60755683b3c9c702 Mon Sep 17 00:00:00 2001 From: M Miller Date: Tue, 16 Jan 2024 14:31:18 -0800 Subject: [PATCH 074/174] update visually-hidden classes --- src/components/toc/index.js | 2 +- src/pds-middleware/TopicsGrid/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/toc/index.js b/src/components/toc/index.js index 0e35956693..dd4796c34c 100644 --- a/src/components/toc/index.js +++ b/src/components/toc/index.js @@ -31,7 +31,7 @@ const TOC = ({ title }) => { return (
@@ -50,12 +46,9 @@ class ReleaseNotesListingTemplate extends React.Component { export default ReleaseNotesListingTemplate export const pageQuery = graphql` - -query releasenotesListing { + query releasenotesListing { allMdx( - filter: { - fileAbsolutePath: { regex: "/releasenotes/" } - } + filter: { fileAbsolutePath: { regex: "/releasenotes/" } } sort: { fields: [fileAbsolutePath], order: DESC } ) { edges { From 2809e5b0d0155ade7503d720401339cf28ddf4d2 Mon Sep 17 00:00:00 2001 From: M Miller Date: Wed, 17 Jan 2024 12:34:49 -0800 Subject: [PATCH 082/174] Fix tabIndex console warning --- src/templates/certificationpage.js | 2 +- src/templates/changelog.js | 2 +- src/templates/changelogs.js | 2 +- src/templates/contributor.js | 2 +- src/templates/doc.js | 2 +- src/templates/guide.js | 2 +- src/templates/landing.js | 2 +- src/templates/releaseNotesListing.js | 2 +- src/templates/terminusCommand.js | 2 +- src/templates/terminuspage.js | 2 +- src/templates/video.js | 4 ++-- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/templates/certificationpage.js b/src/templates/certificationpage.js index e729429f82..84c29bf948 100644 --- a/src/templates/certificationpage.js +++ b/src/templates/certificationpage.js @@ -191,7 +191,7 @@ class CertificationTemplate extends React.Component {
diff --git a/src/templates/changelog.js b/src/templates/changelog.js index 1cb07a527c..8693b007a4 100644 --- a/src/templates/changelog.js +++ b/src/templates/changelog.js @@ -81,7 +81,7 @@ class ChangelogTemplate extends React.Component { authors={node.frontmatter.contributors} image={"/images/assets/default-thumb-doc.png"} /> -
+
Pantheon Changelog diff --git a/src/templates/changelogs.js b/src/templates/changelogs.js index 8a0b576339..4d3fc815d4 100644 --- a/src/templates/changelogs.js +++ b/src/templates/changelogs.js @@ -92,7 +92,7 @@ class ChangelogsTemplate extends React.Component { description="Pantheon Changelog" image={"assets/images/default-thumb-doc.png"} /> -
+

Pantheon Changelog

diff --git a/src/templates/contributor.js b/src/templates/contributor.js index 09f42d9feb..03ae0bb895 100644 --- a/src/templates/contributor.js +++ b/src/templates/contributor.js @@ -50,7 +50,7 @@ class ContributorTemplate extends React.Component { {contributor.name} -
+
diff --git a/src/templates/doc.js b/src/templates/doc.js index e33651dbfb..9f7c471da3 100644 --- a/src/templates/doc.js +++ b/src/templates/doc.js @@ -112,7 +112,7 @@ class DocTemplate extends React.Component { reviewed={isoDate.frontmatter.reviewed} type={node.frontmatter.type} /> -
+
-
+
-
+
-
+

Pantheon Release Notes

diff --git a/src/templates/terminusCommand.js b/src/templates/terminusCommand.js index 64d0d9a225..5772db0e3c 100644 --- a/src/templates/terminusCommand.js +++ b/src/templates/terminusCommand.js @@ -201,7 +201,7 @@ class CommandsTemplate extends React.Component { /> -
+
Command diff --git a/src/templates/terminuspage.js b/src/templates/terminuspage.js index 18d72b2529..aabd623d99 100644 --- a/src/templates/terminuspage.js +++ b/src/templates/terminuspage.js @@ -190,7 +190,7 @@ class TerminusTemplate extends React.Component {
diff --git a/src/templates/video.js b/src/templates/video.js index 550f146929..af46352552 100644 --- a/src/templates/video.js +++ b/src/templates/video.js @@ -48,7 +48,7 @@ const shortcodes = { Image, Example, Youtube, - Wistia + Wistia, } // Set container width for search and main content. @@ -93,7 +93,7 @@ class VideoTemplate extends React.Component { image={"/images/assets/default-thumb-doc.png"} type={node.frontmatter.type} /> -
+
Date: Wed, 17 Jan 2024 12:51:48 -0800 Subject: [PATCH 083/174] Add key for teaser here as well --- .../releaseNotesListingByCategory.js | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index c86e9febad..76178854c1 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -11,11 +11,10 @@ import { Container } from "@pantheon-systems/pds-toolkit-react" const containerWidth = "standard" class ReleaseNotesListingByCategoryTemplate extends React.Component { - render() { const releasenotes = this.props.data.allMdx.edges - const categorySlug = this.props.pageContext.category; - const categoryData = releaseNoteCategoryLoader(categorySlug); + const categorySlug = this.props.pageContext.category + const categoryData = releaseNoteCategoryLoader(categorySlug) return ( @@ -24,16 +23,19 @@ class ReleaseNotesListingByCategoryTemplate extends React.Component { description="A filtering of changes to the Pantheon Platform by the category of {categoryDisplayName}" image={"assets/images/default-thumb-doc.png"} /> -
+

Pantheon Release Notes: {categoryData["displayName"]}


-
- {releasenotes.map((releasenote) => ( - - ))} +
+ {releasenotes.map((releasenote, index) => ( + + ))}
@@ -50,13 +52,13 @@ export const pageQuery = graphql` allMdx( filter: { fileAbsolutePath: { regex: "/releasenotes/" } - frontmatter: { categories: {eq: $category}} + frontmatter: { categories: { eq: $category } } } sort: { fields: [fileAbsolutePath], order: DESC } ) { edges { node { - ...theReleaseNoteFields + ...theReleaseNoteFields } } } From 59a6403b09212edfa4c9dbfe71b482356f6c8e1b Mon Sep 17 00:00:00 2001 From: M Miller Date: Wed, 17 Jan 2024 14:22:06 -0800 Subject: [PATCH 084/174] Update PDS toolkit --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 59d83f785f..755c3a755c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4129,9 +4129,9 @@ } }, "node_modules/@pantheon-systems/pds-toolkit-react": { - "version": "1.0.0-dev.68", - "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.68.tgz", - "integrity": "sha512-uKXnol0EjefvA8CTy9BxHADMp4Q3G9AAWgCDqF78ZZZvbxDm7Ol/+yvYzUi94tc1fS3gsgjHjuqntNAHujOByg==", + "version": "1.0.0-dev.69", + "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.69.tgz", + "integrity": "sha512-V86yuDgPJJTB8LN/jdU8EG6xRCOirZS2l7oliOWIq+C2U7TzWKeICDKXIBrvcgUpICNFADmZ7kjGttvBso8V3w==", "dependencies": { "@floating-ui/react": "^0.24.3", "focus-trap-react": "^10.2.1", @@ -29359,9 +29359,9 @@ } }, "@pantheon-systems/pds-toolkit-react": { - "version": "1.0.0-dev.68", - "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.68.tgz", - "integrity": "sha512-uKXnol0EjefvA8CTy9BxHADMp4Q3G9AAWgCDqF78ZZZvbxDm7Ol/+yvYzUi94tc1fS3gsgjHjuqntNAHujOByg==", + "version": "1.0.0-dev.69", + "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.69.tgz", + "integrity": "sha512-V86yuDgPJJTB8LN/jdU8EG6xRCOirZS2l7oliOWIq+C2U7TzWKeICDKXIBrvcgUpICNFADmZ7kjGttvBso8V3w==", "requires": { "@floating-ui/react": "^0.24.3", "focus-trap-react": "^10.2.1", From 326ed679322eeb8f291a57ecd314800632a22559 Mon Sep 17 00:00:00 2001 From: M Miller Date: Wed, 17 Jan 2024 14:40:02 -0800 Subject: [PATCH 085/174] Update and style PublishedDate component --- .../index.js} | 24 ++++---------- src/components/PublishedDate/style.css | 5 +++ src/components/releaseNoteTeaser.js | 33 ++++++++++--------- 3 files changed, 30 insertions(+), 32 deletions(-) rename src/components/{formattedPublishedDate.js => PublishedDate/index.js} (57%) create mode 100644 src/components/PublishedDate/style.css diff --git a/src/components/formattedPublishedDate.js b/src/components/PublishedDate/index.js similarity index 57% rename from src/components/formattedPublishedDate.js rename to src/components/PublishedDate/index.js index a01245d2df..2255994dc9 100644 --- a/src/components/formattedPublishedDate.js +++ b/src/components/PublishedDate/index.js @@ -1,9 +1,8 @@ import React from "react" +import "./style.css" - -const FormattedPublishedDate = ({ dateString }) => { - +const PublishedDate = ({ dateString }) => { // Todo, more type checking. if (!dateString) { return null @@ -12,20 +11,11 @@ const FormattedPublishedDate = ({ dateString }) => { // Turn ReleaseNoteData.frontmatter.published_date into a date object. // And then format it as Month Day, Year. // https://stackoverflow.com/questions/3552461/how-to-format-a-javascript-date - const date = new Date(dateString); - const options = { year: 'numeric', month: 'long', day: 'numeric' }; - const formattedDate = date.toLocaleDateString(undefined, options); - - - return ( -
- - {formattedDate} - - -
+ const date = new Date(dateString) + const options = { year: "numeric", month: "long", day: "numeric" } + const formattedDate = date.toLocaleDateString(undefined, options) - ) + return
{formattedDate}
} -export default FormattedPublishedDate +export default PublishedDate diff --git a/src/components/PublishedDate/style.css b/src/components/PublishedDate/style.css new file mode 100644 index 0000000000..9208849749 --- /dev/null +++ b/src/components/PublishedDate/style.css @@ -0,0 +1,5 @@ +.docs-published-date { + font-size: var(--pds-typography-size-m); + font-weight: var(--pds-typography-font-weight-bold); + margin-block: var(--pds-spacing-m); +} diff --git a/src/components/releaseNoteTeaser.js b/src/components/releaseNoteTeaser.js index ea1dfa7c60..a537e1964d 100644 --- a/src/components/releaseNoteTeaser.js +++ b/src/components/releaseNoteTeaser.js @@ -2,29 +2,32 @@ import React from "react" import { Link } from "gatsby" import ReleaseNoteCategories from "../components/releaseNoteCategories" import MdxWrapper from "../components/mdxWrapper.js" -import FormattedPublishedDate from "./formattedPublishedDate.js" +import PublishedDate from "./PublishedDate" const ReleaseNoteTeaser = ({ ReleaseNoteData }) => { - if (!ReleaseNoteData) { return null } return ( -
- -

- {ReleaseNoteData.frontmatter.title} -

- - - - -
+
+ +

+ {ReleaseNoteData.frontmatter.title} +

+ + + + +
) } From d59535cb86f240b8ee2ec2f81d0ecb9e502b9bd6 Mon Sep 17 00:00:00 2001 From: M Miller Date: Wed, 17 Jan 2024 15:21:28 -0800 Subject: [PATCH 086/174] Update and style ReleaseNoteCategories --- src/components/ReleaseNoteCategories/index.js | 38 ++++++++++++++++ .../ReleaseNoteCategories/style.css | 4 ++ src/components/releaseNoteCategories.js | 44 ------------------- 3 files changed, 42 insertions(+), 44 deletions(-) create mode 100644 src/components/ReleaseNoteCategories/index.js create mode 100644 src/components/ReleaseNoteCategories/style.css delete mode 100644 src/components/releaseNoteCategories.js diff --git a/src/components/ReleaseNoteCategories/index.js b/src/components/ReleaseNoteCategories/index.js new file mode 100644 index 0000000000..62529d16cd --- /dev/null +++ b/src/components/ReleaseNoteCategories/index.js @@ -0,0 +1,38 @@ +import React from "react" +import { Link } from "gatsby" +import { releaseNoteCategoryLoader } from "../../data/releaseNoteCategories.js" +import { Tag } from "@pantheon-systems/pds-toolkit-react" + +import "./style.css" + +const ReleaseNoteCategories = ({ categories, className }) => { + if (!categories) { + return null + } + + return ( +
+ { + /* If there is one category display the singular form.*/ + categories.length === 1 ? ( +

Category:

+ ) : ( +

Categories:

+ ) + } + +
+ {categories.map((categorySlug, index) => ( + } + tagLabel={releaseNoteCategoryLoader(categorySlug).displayName} + tagColor={releaseNoteCategoryLoader(categorySlug).color} + /> + ))} +
+
+ ) +} + +export default ReleaseNoteCategories diff --git a/src/components/ReleaseNoteCategories/style.css b/src/components/ReleaseNoteCategories/style.css new file mode 100644 index 0000000000..9f031ecd3b --- /dev/null +++ b/src/components/ReleaseNoteCategories/style.css @@ -0,0 +1,4 @@ +.docs-release-notes-tags { + column-gap: var(--pds-spacing-s); + display: flex; +} diff --git a/src/components/releaseNoteCategories.js b/src/components/releaseNoteCategories.js deleted file mode 100644 index 7b12c4f352..0000000000 --- a/src/components/releaseNoteCategories.js +++ /dev/null @@ -1,44 +0,0 @@ -import React from "react" -import { Link } from "gatsby" -import { releaseNoteCategoryLoader } from "../data/releaseNoteCategories.js" -import { Tag } from "@pantheon-systems/pds-toolkit-react" - - -const ReleaseNoteCategories = ({categories}) => { - -if (!categories) { - return null -} - - return ( -
-{/* -@todo: Should this text be present but hidden for screen readers? - -If there is one category display the singular form. - categories.length === 1 - ?

Category:

- :

Categories:

- */ -} - - {categories.map((categorySlug, index) => ( -
- - {/* @TODO the Tags should be links. - -

{releaseNoteCategoryLoader(categorySlug).displayName}

- */} - - {/* Todo, figure out how to make the colors meaningful. */} - - -
- )) - } -
- - ) -} - -export default ReleaseNoteCategories From a42d809e050866e3a190f47e6d845b9c6706eb41 Mon Sep 17 00:00:00 2001 From: M Miller Date: Wed, 17 Jan 2024 15:35:12 -0800 Subject: [PATCH 087/174] update PublishedDate component --- src/components/PublishedDate/index.js | 13 +++++++++++-- src/components/PublishedDate/style.css | 1 - 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/components/PublishedDate/index.js b/src/components/PublishedDate/index.js index 2255994dc9..3b14c286d4 100644 --- a/src/components/PublishedDate/index.js +++ b/src/components/PublishedDate/index.js @@ -2,7 +2,7 @@ import React from "react" import "./style.css" -const PublishedDate = ({ dateString }) => { +const PublishedDate = ({ dateString, className }) => { // Todo, more type checking. if (!dateString) { return null @@ -15,7 +15,16 @@ const PublishedDate = ({ dateString }) => { const options = { year: "numeric", month: "long", day: "numeric" } const formattedDate = date.toLocaleDateString(undefined, options) - return
{formattedDate}
+ return ( +
+ {formattedDate} +
+ ) } export default PublishedDate diff --git a/src/components/PublishedDate/style.css b/src/components/PublishedDate/style.css index 9208849749..c795a38ce8 100644 --- a/src/components/PublishedDate/style.css +++ b/src/components/PublishedDate/style.css @@ -1,5 +1,4 @@ .docs-published-date { font-size: var(--pds-typography-size-m); font-weight: var(--pds-typography-font-weight-bold); - margin-block: var(--pds-spacing-m); } From e3b409c81545e42fb062609b144d92f9c6b20098 Mon Sep 17 00:00:00 2001 From: M Miller Date: Wed, 17 Jan 2024 15:35:26 -0800 Subject: [PATCH 088/174] Update releaseNotePage.js clean up and style --- src/templates/releaseNotePage.js | 52 ++++++++++++++++---------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index 2b92814e60..1d81342bca 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -2,21 +2,17 @@ import React from "react" import { graphql } from "gatsby" import Layout from "../layout/layout" import SEO from "../layout/seo" -import ReleaseNoteCategories from "../components/releaseNoteCategories" +import ReleaseNoteCategories from "../components/ReleaseNoteCategories" import MdxWrapper from "../components/mdxWrapper.js" -import FormattedPublishedDate from "../components/formattedPublishedDate.js" +import PublishedDate from "../components/PublishedDate" // This is used to get the fields from the MDX file. import { releaseNoteFragment } from "../fragments/releaseNote.js" -import { - Container, - SidebarLayout, -} from "@pantheon-systems/pds-toolkit-react" +import { Container, SidebarLayout } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. -const containerWidth = "standard" +const containerWidth = "narrow" class ReleaseNoteTemplate extends React.Component { - render() { const node = this.props.data.mdx @@ -28,27 +24,30 @@ class ReleaseNoteTemplate extends React.Component { authors={node.frontmatter.contributors} image={"/images/assets/default-thumb-doc.png"} /> -
+
Pantheon Release Notes
-

{node.frontmatter.title}

- -
- -
-
-
- - -
+

+ {node.frontmatter.title} +

+ + +
+
+
+ +
-
- +
+
@@ -59,8 +58,9 @@ class ReleaseNoteTemplate extends React.Component { export default ReleaseNoteTemplate export const pageQuery = graphql` -query ReleaseNoteBySlug($slug: String!) { + query ReleaseNoteBySlug($slug: String!) { mdx(fields: { slug: { eq: $slug } }) { ...theReleaseNoteFields } - }` + } +` From 3472d513b6ef5bdd103015255e7753c6913310e4 Mon Sep 17 00:00:00 2001 From: M Miller Date: Wed, 17 Jan 2024 15:57:35 -0800 Subject: [PATCH 089/174] update ReleaseNoteTeaser --- src/components/ReleaseNoteTeaser/index.js | 45 ++++++++++++++++++++++ src/components/ReleaseNoteTeaser/style.css | 5 +++ src/components/releaseNoteTeaser.js | 35 ----------------- 3 files changed, 50 insertions(+), 35 deletions(-) create mode 100644 src/components/ReleaseNoteTeaser/index.js create mode 100644 src/components/ReleaseNoteTeaser/style.css delete mode 100644 src/components/releaseNoteTeaser.js diff --git a/src/components/ReleaseNoteTeaser/index.js b/src/components/ReleaseNoteTeaser/index.js new file mode 100644 index 0000000000..1b5af7ee96 --- /dev/null +++ b/src/components/ReleaseNoteTeaser/index.js @@ -0,0 +1,45 @@ +import React from "react" +import { Link } from "gatsby" +import ReleaseNoteCategories from "../ReleaseNoteCategories/index.js" +import MdxWrapper from "../mdxWrapper.js" +import PublishedDate from "../PublishedDate/index.js" + +import "./style.css" + +const ReleaseNoteTeaser = ({ ReleaseNoteData, className }) => { + if (!ReleaseNoteData) { + return null + } + + return ( + +
+
+ +

+ {ReleaseNoteData.frontmatter.title} +

+ + +
+ + +
+
+ ) +} + +export default ReleaseNoteTeaser diff --git a/src/components/ReleaseNoteTeaser/style.css b/src/components/ReleaseNoteTeaser/style.css new file mode 100644 index 0000000000..f18441f518 --- /dev/null +++ b/src/components/ReleaseNoteTeaser/style.css @@ -0,0 +1,5 @@ +.docs-release-note-teaser__header { + display: flex; + align-content: center; + column-gap: var(--pds-spacing-l); +} diff --git a/src/components/releaseNoteTeaser.js b/src/components/releaseNoteTeaser.js deleted file mode 100644 index a537e1964d..0000000000 --- a/src/components/releaseNoteTeaser.js +++ /dev/null @@ -1,35 +0,0 @@ -import React from "react" -import { Link } from "gatsby" -import ReleaseNoteCategories from "../components/releaseNoteCategories" -import MdxWrapper from "../components/mdxWrapper.js" -import PublishedDate from "./PublishedDate" - -const ReleaseNoteTeaser = ({ ReleaseNoteData }) => { - if (!ReleaseNoteData) { - return null - } - - return ( - -
- -

- {ReleaseNoteData.frontmatter.title} -

- - - - -
-
- ) -} - -export default ReleaseNoteTeaser From 9937ce2dd725b970fbf8503a4cf8b11c85d492e8 Mon Sep 17 00:00:00 2001 From: M Miller Date: Wed, 17 Jan 2024 15:57:52 -0800 Subject: [PATCH 090/174] style listing pages --- src/styles/pds-additions.css | 4 ++++ src/templates/releaseNotesListing.js | 19 +++++++++---------- .../releaseNotesListingByCategory.js | 19 +++++++++---------- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/styles/pds-additions.css b/src/styles/pds-additions.css index 1fefcb4c6b..9908012f2a 100644 --- a/src/styles/pds-additions.css +++ b/src/styles/pds-additions.css @@ -5,3 +5,7 @@ width: 5rem; height: 5rem; } + +.pds-tag { + white-space: nowrap; +} diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 47b5abe89d..34b9edd43b 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -2,14 +2,14 @@ import React from "react" import { graphql } from "gatsby" import Layout from "../layout/layout" import SEO from "../layout/seo" -import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" +import ReleaseNoteTeaser from "../components/ReleaseNoteTeaser" import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelector.js" import { releaseNoteFragment } from "../fragments/releaseNote.js" import { Container } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. -const containerWidth = "standard" +const containerWidth = "narrow" class ReleaseNotesListingTemplate extends React.Component { render() { @@ -27,14 +27,13 @@ class ReleaseNotesListingTemplate extends React.Component {
-
- {releasenotes.map((releasenote, index) => ( - - ))} -
+ {releasenotes.map((releasenote, index) => ( + + ))}
diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index 76178854c1..ec270ef31e 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -2,13 +2,13 @@ import React from "react" import { graphql } from "gatsby" import Layout from "../layout/layout" import SEO from "../layout/seo" -import ReleaseNoteTeaser from "../components/releaseNoteTeaser.js" +import ReleaseNoteTeaser from "../components/ReleaseNoteTeaser" import { releaseNoteCategoryLoader } from "../data/releaseNoteCategories.js" import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelector.js" import { Container } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. -const containerWidth = "standard" +const containerWidth = "narrow" class ReleaseNotesListingByCategoryTemplate extends React.Component { render() { @@ -29,14 +29,13 @@ class ReleaseNotesListingByCategoryTemplate extends React.Component {
-
- {releasenotes.map((releasenote, index) => ( - - ))} -
+ {releasenotes.map((releasenote, index) => ( + + ))}
From d3c2c740cca8701c6e47d68aeb1fc5ae8f5f0114 Mon Sep 17 00:00:00 2001 From: Steve Persch Date: Thu, 18 Jan 2024 11:02:55 -0600 Subject: [PATCH 091/174] Update CODEOWNERS with release-note-authors --- CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CODEOWNERS b/CODEOWNERS index db728ae584..b5b4828283 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -15,3 +15,5 @@ source/content/guides/integrated-composer/ @pantheon-systems/lifecycle-ops source/content/guides/multisite/ @pantheon-systems/cms-platform # The cms-platform team is responsible for External Libraries on Pantheon source/content/external-libraries @pantheon-systems/cms-platform +# There is a team just for release note permissions +source/releasenotes/ @pantheon-systems/release-note-authors From 0283a41824aeb0e2bf0df4de451d77ad9d692338 Mon Sep 17 00:00:00 2001 From: M Miller Date: Thu, 18 Jan 2024 11:25:52 -0800 Subject: [PATCH 092/174] testing --- src/components/releaseNoteCategorySelector.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index 84e497a514..fb64c26af1 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -13,7 +13,7 @@ const releaseNoteCategoryLinks = function () { isSeparator: true, }, ] - // loop over the categories and add each to the links array + // Loop over the categories and add each to the links array. releaseNoteCategoriesObject.categories.forEach((category) => { menuItems.push({ isLink: true, From 2fcc55789981a617ba7ae85cc2e135759eac4c89 Mon Sep 17 00:00:00 2001 From: M Miller Date: Thu, 18 Jan 2024 14:05:33 -0800 Subject: [PATCH 093/174] update static header logo component --- src/layout/StaticHeader/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/layout/StaticHeader/index.js b/src/layout/StaticHeader/index.js index 0917e2c750..ccd01b9f94 100644 --- a/src/layout/StaticHeader/index.js +++ b/src/layout/StaticHeader/index.js @@ -10,7 +10,10 @@ const StaticHeader = ({ page }) => (
, + }} />
From 5d88639000cb9b85336602d0e8922dcb5b70635c Mon Sep 17 00:00:00 2001 From: M Miller Date: Thu, 18 Jan 2024 18:39:11 -0800 Subject: [PATCH 094/174] update PDS toolkit --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 755c3a755c..ba6684a2af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4129,9 +4129,9 @@ } }, "node_modules/@pantheon-systems/pds-toolkit-react": { - "version": "1.0.0-dev.69", - "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.69.tgz", - "integrity": "sha512-V86yuDgPJJTB8LN/jdU8EG6xRCOirZS2l7oliOWIq+C2U7TzWKeICDKXIBrvcgUpICNFADmZ7kjGttvBso8V3w==", + "version": "1.0.0-dev.70", + "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.70.tgz", + "integrity": "sha512-AnpriQ3X1bd6+HXh1qFqVMgFfbiMoyVz1dO2jm0zhF1JoU++4xnm8rxgGbaVwAKtUYd2Mp3Jz0+1dfzQKyI1SQ==", "dependencies": { "@floating-ui/react": "^0.24.3", "focus-trap-react": "^10.2.1", @@ -29359,9 +29359,9 @@ } }, "@pantheon-systems/pds-toolkit-react": { - "version": "1.0.0-dev.69", - "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.69.tgz", - "integrity": "sha512-V86yuDgPJJTB8LN/jdU8EG6xRCOirZS2l7oliOWIq+C2U7TzWKeICDKXIBrvcgUpICNFADmZ7kjGttvBso8V3w==", + "version": "1.0.0-dev.70", + "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.70.tgz", + "integrity": "sha512-AnpriQ3X1bd6+HXh1qFqVMgFfbiMoyVz1dO2jm0zhF1JoU++4xnm8rxgGbaVwAKtUYd2Mp3Jz0+1dfzQKyI1SQ==", "requires": { "@floating-ui/react": "^0.24.3", "focus-trap-react": "^10.2.1", From 397afb7499d12b7a001be9a6402381053d58b13f Mon Sep 17 00:00:00 2001 From: M Miller Date: Thu, 18 Jan 2024 19:02:00 -0800 Subject: [PATCH 095/174] Updates based on toolkit update --- src/components/HeroCTA/index.js | 2 +- src/components/headerBody/index.js | 2 +- src/layout/subtopic-group/index.js | 4 ++-- src/pages/contributors.js | 2 +- src/templates/changelog.js | 2 +- src/templates/changelogs.js | 2 +- src/templates/contributor.js | 2 +- src/templates/landing.js | 5 ++--- src/templates/releaseNotePage.js | 2 +- src/templates/releaseNotesListing.js | 2 +- src/templates/releaseNotesListingByCategory.js | 2 +- src/templates/video.js | 2 +- 12 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/components/HeroCTA/index.js b/src/components/HeroCTA/index.js index cf8b7355f4..eb5e4b5943 100644 --- a/src/components/HeroCTA/index.js +++ b/src/components/HeroCTA/index.js @@ -28,7 +28,7 @@ function HeroCTA(props) { />
-

{title}

+

{title}

{subTitle}

{subtitle}} -

+

{description}

diff --git a/src/layout/subtopic-group/index.js b/src/layout/subtopic-group/index.js index 9a382c1a05..7ce7e84b42 100644 --- a/src/layout/subtopic-group/index.js +++ b/src/layout/subtopic-group/index.js @@ -15,11 +15,11 @@ const propTypes = { function SubtopicGroup(props) { const { title, subTitle, topics } = props return ( - +

{title}

{subTitle && ( -

{subTitle}

+

{subTitle}

)}
{topics && diff --git a/src/pages/contributors.js b/src/pages/contributors.js index 8162f98c63..13b21b368b 100644 --- a/src/pages/contributors.js +++ b/src/pages/contributors.js @@ -6,7 +6,7 @@ import SEO from "../layout/seo" import { AvatarTileList, Container } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. -const containerWidth = "narrow" +const containerWidth = "standard" class Contributors extends React.Component { render() { diff --git a/src/templates/changelog.js b/src/templates/changelog.js index 8693b007a4..fbaf290300 100644 --- a/src/templates/changelog.js +++ b/src/templates/changelog.js @@ -88,7 +88,7 @@ class ChangelogTemplate extends React.Component {

{node.frontmatter.title}

-

+

Sign up for the Pantheon Changelog Newsletter to receive a monthly email on what's new and improved across the platform.

diff --git a/src/templates/changelogs.js b/src/templates/changelogs.js index 4d3fc815d4..dd33d5e733 100644 --- a/src/templates/changelogs.js +++ b/src/templates/changelogs.js @@ -96,7 +96,7 @@ class ChangelogsTemplate extends React.Component {

Pantheon Changelog

-

+

Sign up for the Pantheon Changelog Newsletter to receive a monthly email on what's new and improved across the platform.

diff --git a/src/templates/contributor.js b/src/templates/contributor.js index 03ae0bb895..8b547d1347 100644 --- a/src/templates/contributor.js +++ b/src/templates/contributor.js @@ -34,7 +34,7 @@ const links = [ ] // Set container width for search and main content. -const containerWidth = "narrow" +const containerWidth = "standard" class ContributorTemplate extends React.Component { render() { diff --git a/src/templates/landing.js b/src/templates/landing.js index ff97ee0691..9137961908 100644 --- a/src/templates/landing.js +++ b/src/templates/landing.js @@ -20,7 +20,7 @@ import { } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. -const containerWidth = "narrow" +const containerWidth = "standard" const twoColumnClasses = "pds-grid-item pds-grid-item--sm-4 pds-grid-item--md-6 pds-grid-item--lg-6" @@ -52,12 +52,11 @@ class LandingTemplate extends Component { alignItems="center" flexDirection="column" mobileFlex="same" - spacing="narrow" className="landing-page-heading pds-spacing-pad-block-m" >

{topic.title}

{topic.subtitle && ( -
+
{topic.subtitle}
)} diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index 1d81342bca..7075177022 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -10,7 +10,7 @@ import { releaseNoteFragment } from "../fragments/releaseNote.js" import { Container, SidebarLayout } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. -const containerWidth = "narrow" +const containerWidth = "standard" class ReleaseNoteTemplate extends React.Component { render() { diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 34b9edd43b..0bf32a664d 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -9,7 +9,7 @@ import { releaseNoteFragment } from "../fragments/releaseNote.js" import { Container } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. -const containerWidth = "narrow" +const containerWidth = "standard" class ReleaseNotesListingTemplate extends React.Component { render() { diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index ec270ef31e..5aba4a3b69 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -8,7 +8,7 @@ import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelect import { Container } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. -const containerWidth = "narrow" +const containerWidth = "standard" class ReleaseNotesListingByCategoryTemplate extends React.Component { render() { diff --git a/src/templates/video.js b/src/templates/video.js index af46352552..701c0f4f21 100644 --- a/src/templates/video.js +++ b/src/templates/video.js @@ -52,7 +52,7 @@ const shortcodes = { } // Set container width for search and main content. -const containerWidth = "narrow" +const containerWidth = "standard" class VideoTemplate extends React.Component { componentDidMount() { From 7b6cb45a99388b2a6a293a8401f7350f8a9858f0 Mon Sep 17 00:00:00 2001 From: M Miller Date: Thu, 18 Jan 2024 19:16:14 -0800 Subject: [PATCH 096/174] Update categories heading with proper semantic h level --- src/components/ReleaseNoteCategories/index.js | 18 ++++++++---------- src/templates/releaseNotePage.js | 3 ++- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/components/ReleaseNoteCategories/index.js b/src/components/ReleaseNoteCategories/index.js index 62529d16cd..a89614c616 100644 --- a/src/components/ReleaseNoteCategories/index.js +++ b/src/components/ReleaseNoteCategories/index.js @@ -5,22 +5,20 @@ import { Tag } from "@pantheon-systems/pds-toolkit-react" import "./style.css" -const ReleaseNoteCategories = ({ categories, className }) => { +const ReleaseNoteCategories = ({ categories, displayType, className }) => { if (!categories) { return null } + /* If there is one category display the singular form.*/ + const categoryHeading = categories.length === 1 ? "Category:" : "Categories:" + + /* Change heading level based on displayType prop */ + const HeadingLevel = displayType === "page" ? "h2" : "h3" + return (
- { - /* If there is one category display the singular form.*/ - categories.length === 1 ? ( -

Category:

- ) : ( -

Categories:

- ) - } - + {categoryHeading}
{categories.map((categorySlug, index) => ( -
+
Date: Thu, 18 Jan 2024 19:17:30 -0800 Subject: [PATCH 097/174] update footer width --- src/layout/footer/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layout/footer/index.js b/src/layout/footer/index.js index 1d0b240569..6e85f01730 100644 --- a/src/layout/footer/index.js +++ b/src/layout/footer/index.js @@ -52,7 +52,7 @@ const Footer = ({ data, className }) => { ) return ( - +
Date: Fri, 19 Jan 2024 11:53:06 -0800 Subject: [PATCH 098/174] Clean up styles on listing pages --- src/components/ReleaseNoteTeaser/style.css | 15 +++++++++++++-- src/templates/releaseNotesListing.js | 5 ++--- src/templates/releaseNotesListingByCategory.js | 6 +++--- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/components/ReleaseNoteTeaser/style.css b/src/components/ReleaseNoteTeaser/style.css index f18441f518..51f2951db9 100644 --- a/src/components/ReleaseNoteTeaser/style.css +++ b/src/components/ReleaseNoteTeaser/style.css @@ -1,5 +1,16 @@ .docs-release-note-teaser__header { display: flex; - align-content: center; - column-gap: var(--pds-spacing-l); + column-gap: var(--pds-spacing-xl); + margin-block-end: var(--pds-spacing-l); +} + +.docs-release-note-teaser__header { + .docs-release-notes-tags { + padding-block-start: var(--pds-spacing-4xs); + } +} + +.individual-changelog-link h2 { + padding: 0; + margin: 0; } diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 0bf32a664d..94f8f4cb97 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -25,13 +25,12 @@ class ReleaseNotesListingTemplate extends React.Component {

Pantheon Release Notes

-
-
+
{releasenotes.map((releasenote, index) => ( ))}
diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index 5aba4a3b69..98a1100f17 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -27,13 +27,13 @@ class ReleaseNotesListingByCategoryTemplate extends React.Component {

Pantheon Release Notes: {categoryData["displayName"]}

-
-
+ +
{releasenotes.map((releasenote, index) => ( ))}
From ec30bf0e890b2b5570ed7dba3df7dca721ce8f09 Mon Sep 17 00:00:00 2001 From: M Miller Date: Fri, 19 Jan 2024 12:09:36 -0800 Subject: [PATCH 099/174] Update releaseNoteCategorySelector.js Rework to pre-build array instead of a function to provide links --- src/components/releaseNoteCategorySelector.js | 46 +++++++++---------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index fb64c26af1..f6462ee0e7 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -3,38 +3,34 @@ import releaseNoteCategoriesObject from "../../source/releasenotescategories/rel import { MenuButton } from "@pantheon-systems/pds-toolkit-react" import { Link } from "gatsby" -const releaseNoteCategoryLinks = function () { - const menuItems = [ - { - isLink: true, - linkContent: All Release Notes, - }, - { - isSeparator: true, - }, - ] - // Loop over the categories and add each to the links array. - releaseNoteCategoriesObject.categories.forEach((category) => { - menuItems.push({ - isLink: true, - linkContent: ( - - {category.displayName} - - ), - }) - }) +// Initialize the links array with the All Release Notes link and a separator. +const categoryMenuItems = [ + { + isLink: true, + linkContent: All Release Notes, + }, + { + isSeparator: true, + }, +] - return menuItems -} +// Map over the categories and add each to the links array. +releaseNoteCategoriesObject.categories.map((category) => { + categoryMenuItems.push({ + isLink: true, + linkContent: ( + {category.displayName} + ), + }) +}) -// Loop through the categories and create a list of links to each category. +// Create the menu button with the links array. const ReleaseNoteCategorySelector = (currentCategorySlug) => { return ( ) } From e168cb2aa7559ef2f1f14d8544f4bc9351e5740b Mon Sep 17 00:00:00 2001 From: M Miller Date: Fri, 19 Jan 2024 18:51:49 -0800 Subject: [PATCH 100/174] Update gatsby-node.js Remove old debugging code --- gatsby-node.js | 226 +++++++++++++++++++++++-------------------------- 1 file changed, 108 insertions(+), 118 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index a94cb1d1d7..5cfcd56ef7 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -1,7 +1,7 @@ const path = require(`path`) const crypto = require("crypto") -const matter = require('gray-matter'); -var fs = require('fs-extra') +const matter = require("gray-matter") +var fs = require("fs-extra") /* For additional reference material, see @@ -14,7 +14,8 @@ into web pages. It is prime for refactoring. /** This helper function determines what slug a piece of content will use */ const calculateSlug = (node, getNode) => { const fileName = getNode(node.parent).name // Sets the filename from GraphQL - if (node.frontmatter.permalink) { //If the "permalink" frontmatter value is present... + if (node.frontmatter.permalink) { + //If the "permalink" frontmatter value is present... return node.frontmatter.permalink // return it. .replace(":basename", fileName) // If permalink includes ":basename", prepend the filename to the slug .replace("docs", "") // If it includes "docs", remove it. Docs is added by the pathPrefix in gatsby-config.js @@ -26,26 +27,33 @@ const calculateSlug = (node, getNode) => { } // This section creates the changelog slug based on the YYYY-MM-DD-MONTH.md template - if (getNode(node.parent).absolutePath.includes("changelogs")) { // If the file is in the changelogs directory... - const split = fileName.split('-'); // split the file name where hyphenated... + if (getNode(node.parent).absolutePath.includes("changelogs")) { + // If the file is in the changelogs directory... + const split = fileName.split("-") // split the file name where hyphenated... return `changelog/${split[0]}/${split[1]}` // and return a slug of changelog/YYYY/MM } // This section creates the releasenotes slug based on the YYYY-MM-DD-slug.md template - if (getNode(node.parent).absolutePath.includes("releasenotes")) { // If the file is in the releasenotes directory... + if (getNode(node.parent).absolutePath.includes("releasenotes")) { + // If the file is in the releasenotes directory... // split the file name where hyphenated. - const split = fileName.split('-'); + const split = fileName.split("-") // set a const to remaining slug based on the keys from split that are not the date. - const remainingSlug = split.slice(3).join('-'); + const remainingSlug = split.slice(3).join("-") return `release-notes/${split[0]}/${split[1]}/${remainingSlug}` // and return a slug of releasenotes/YYYY/MM/slug } return `${fileName}` // Otherwise, as long as there is a filename in GraphQL, use it as the slug. } - /* This helper function helps determine which template should be applied to a piece of content */ -const calculateTemplate = (node, defaultTemplate) => { // The functions accepts as arguments a GraphQL node and default template. - if (node.frontmatter && node.frontmatter.layout && node.frontmatter.layout !== null) { // If the node has the layout value in frontmatter... +const calculateTemplate = (node, defaultTemplate) => { + // The functions accepts as arguments a GraphQL node and default template. + if ( + node.frontmatter && + node.frontmatter.layout && + node.frontmatter.layout !== null + ) { + // If the node has the layout value in frontmatter... return node.frontmatter.layout // use that value. } @@ -55,42 +63,39 @@ const calculateTemplate = (node, defaultTemplate) => { // The functions accepts /* These helper functions are used to provide multi-page guide pages with the previous and next pages in the guide, to be used in the construction of the table of contents. */ -const calculatePrevious = (guide) => { // The function accepts as an argument the node of the guide page in question - if (!guide.previous) { // If the page doesn't have a value for the "previous" field in GraphQL - return null; // return nothing. +const calculatePrevious = (guide) => { + // The function accepts as an argument the node of the guide page in question + if (!guide.previous) { + // If the page doesn't have a value for the "previous" field in GraphQL + return null // return nothing. } // Also return nothing if the guide_directory value doesn't exist. - if (guide.node.fields.guide_directory !== guide.previous.fields.guide_directory) { - return null; + if ( + guide.node.fields.guide_directory !== guide.previous.fields.guide_directory + ) { + return null } // Otherwise, return the slug of the page identified as previous by GraphQL. How it determines which one is previous, unclear to me at this time. - return guide.previous.fields.slug; + return guide.previous.fields.slug } // Same as above. const calculateNext = (guide) => { if (!guide.next) { - return null; + return null } if (guide.node.fields.guide_directory !== guide.next.fields.guide_directory) { - return null; + return null } - return guide.next.fields.slug; + return guide.next.fields.slug } -const digest = str => - (str != null) ? - crypto - .createHash("md5") - .update(str) - .digest("hex") - : - crypto - .createHash("md5") - .update(" ") - .digest("hex") +const digest = (str) => + str != null + ? crypto.createHash("md5").update(str).digest("hex") + : crypto.createHash("md5").update(" ").digest("hex") exports.onCreateWebpackConfig = ({ actions }) => { actions.setWebpackConfig({ @@ -101,13 +106,12 @@ exports.onCreateWebpackConfig = ({ actions }) => { } exports.createSchemaCustomization = ({ actions, schema }) => { - actions.createFieldExtension({ name: `defaultFalse`, extend() { return { resolve(source, args, context, info) { - if (source[info.fieldName] == null ) { + if (source[info.fieldName] == null) { return false } return source[info.fieldName] @@ -134,10 +138,10 @@ exports.createPages = ({ graphql, actions }) => { { allDocs: allMdx( filter: { - fileAbsolutePath: { regex: "/content(?!/(partials|changelog|guides|releasenotes)/)/"} - frontmatter: { - draft: {ne: true} + fileAbsolutePath: { + regex: "/content(?!/(partials|changelog|guides|releasenotes)/)/" } + frontmatter: { draft: { ne: true } } } ) { edges { @@ -158,8 +162,8 @@ exports.createPages = ({ graphql, actions }) => { allGuides: allMdx( filter: { - fileAbsolutePath: { regex: "/guides/"} - frontmatter: { draft: {ne: true}} + fileAbsolutePath: { regex: "/guides/" } + frontmatter: { draft: { ne: true } } } sort: { fields: [fileAbsolutePath], order: ASC } ) { @@ -192,13 +196,10 @@ exports.createPages = ({ graphql, actions }) => { } allReleaseNotes: allMdx( - filter: { - fileAbsolutePath: { regex: "/releasenotes/"} - }, + filter: { fileAbsolutePath: { regex: "/releasenotes/" } } sort: { fields: [fileAbsolutePath], order: DESC } ) { edges { - previous { fields { slug @@ -208,8 +209,8 @@ exports.createPages = ({ graphql, actions }) => { node { id frontmatter { - title, - categories, + title + categories published_date } fields { @@ -222,19 +223,17 @@ exports.createPages = ({ graphql, actions }) => { slug } } - } } allChangelogs: allMdx( filter: { - fileAbsolutePath: { regex: "/changelogs/"} - frontmatter: { draft: {ne: true}} - }, + fileAbsolutePath: { regex: "/changelogs/" } + frontmatter: { draft: { ne: true } } + } sort: { fields: [fileAbsolutePath], order: DESC } ) { edges { - previous { fields { slug @@ -256,7 +255,6 @@ exports.createPages = ({ graphql, actions }) => { slug } } - } } @@ -290,14 +288,14 @@ exports.createPages = ({ graphql, actions }) => { } } } - `).then(result => { + `).then((result) => { if (result.errors) { throw result.errors } // Create doc pages. const docs = result.data.allDocs.edges - docs.forEach(doc => { + docs.forEach((doc) => { const template = calculateTemplate(doc.node, "doc") createPage({ path: doc.node.fields.slug, @@ -310,10 +308,10 @@ exports.createPages = ({ graphql, actions }) => { // Create guide pages. const guides = result.data.allGuides.edges - guides.forEach(guide => { + guides.forEach((guide) => { if (guide.node.fields.guide_directory !== null) { - const previous = calculatePrevious(guide); - const next = calculateNext(guide); + const previous = calculatePrevious(guide) + const next = calculateNext(guide) const template = calculateTemplate(guide.node, "guide") createPage({ path: guide.node.fields.slug, @@ -322,7 +320,7 @@ exports.createPages = ({ graphql, actions }) => { slug: guide.node.fields.slug, guide_directory: guide.node.fields.guide_directory, previous, - next + next, }, }) } else { @@ -339,8 +337,10 @@ exports.createPages = ({ graphql, actions }) => { // Create changelog pages. const changelogs = result.data.allChangelogs.edges - changelogs.forEach(changelog => { - const previous = changelog.previous ? changelog.previous.fields.slug || null : null + changelogs.forEach((changelog) => { + const previous = changelog.previous + ? changelog.previous.fields.slug || null + : null const next = changelog.next ? changelog.next.fields.slug || null : null const template = calculateTemplate(changelog.node, "changelog") createPage({ @@ -349,7 +349,7 @@ exports.createPages = ({ graphql, actions }) => { context: { slug: changelog.node.fields.slug, next: previous, - previous: next + previous: next, }, }) }) @@ -358,9 +358,15 @@ exports.createPages = ({ graphql, actions }) => { const postsPerPage = 6 const numPages = Math.ceil(changelogs.length / postsPerPage) Array.from({ length: numPages }).forEach((_, i) => { - const currentPage = i + 1; - const next = currentPage === 1 ? null : (currentPage === 2 ? `/changelog/` : `/changelog/page/${currentPage - 1}`); - const previous = currentPage < numPages ? `/changelog/page/${currentPage + 1}` : null; + const currentPage = i + 1 + const next = + currentPage === 1 + ? null + : currentPage === 2 + ? `/changelog/` + : `/changelog/page/${currentPage - 1}` + const previous = + currentPage < numPages ? `/changelog/page/${currentPage + 1}` : null createPage({ path: i === 0 ? `/changelog/` : `/changelog/page/${i + 1}`, component: path.resolve("./src/templates/changelogs.js"), @@ -370,14 +376,14 @@ exports.createPages = ({ graphql, actions }) => { numPages, currentPage, previous, - next + next, }, }) }) // Create Terminus Command pages const terminusCommands = result.data.dataJson.commands - terminusCommands.forEach(command => { + terminusCommands.forEach((command) => { const slugRegExp = /:/g const slug = command.name.replace(slugRegExp, "-") createPage({ @@ -385,54 +391,33 @@ exports.createPages = ({ graphql, actions }) => { component: path.resolve(`./src/templates/terminusCommand.js`), context: { slug: slug, - name: command.name - } + name: command.name, + }, }) }) - // Create release notes without pagination. At a later date, we may want to add pagination. - // And can reused the code above. - createPage({ - path: `/release-notes/`, - component: path.resolve("./src/templates/releaseNotesListing.js"), - }) - // @todo, switch to "../data/releaseNoteCategories.js" - const allowedReleaseNoteCategories = { - "security": { - "Display Name": "Security", - "color": "red" - }, - "documentation": { - "Display Name": "Documentation", - "color": "purple" - }, - }; + // Create release notes without pagination. At a later date, we may want to add pagination. + // And can reused the code above. + createPage({ + path: `/release-notes/`, + component: path.resolve("./src/templates/releaseNotesListing.js"), + }) - // Loop through all allowed categories and create a page for each one. - Object.keys(allowedReleaseNoteCategories).forEach((category) => { + // Create Terminus Command pages + const allReleaseNoteCategories = + result.data.releasenotescategoriesJson.categories + allReleaseNoteCategories.forEach((category) => { createPage({ - path: `/release-notez/${category}`, - component: path.resolve("./src/templates/releaseNotesListingByCategory.js"), + path: `/release-notes/${category.slug}`, + component: path.resolve( + "./src/templates/releaseNotesListingByCategory.js" + ), context: { - category: category, + category: category.slug, }, }) }) - - // // Create Terminus Command pages - const allReleaseNoteCategories = result.data.releasenotescategoriesJson.categories - console.log(allReleaseNoteCategories) - allReleaseNoteCategories.forEach(category => { - createPage({ - path: `/release-notes/${category.slug}`, - component: path.resolve("./src/templates/releaseNotesListingByCategory.js"), - context: { - category: category.slug, - }, - }) - }) - // terminusCommands.forEach(command => { // const slugRegExp = /:/g // const slug = command.name.replace(slugRegExp, "-") @@ -447,9 +432,9 @@ exports.createPages = ({ graphql, actions }) => { // }) // Create each release note page. - const releaseNotes = result.data.allReleaseNotes.edges; - releaseNotes.forEach(releaseNote => { - const template = calculateTemplate(releaseNote.node, "releaseNotePage"); + const releaseNotes = result.data.allReleaseNotes.edges + releaseNotes.forEach((releaseNote) => { + const template = calculateTemplate(releaseNote.node, "releaseNotePage") createPage({ path: releaseNote.node.fields.slug, component: path.resolve(`./src/templates/${template}.js`), @@ -461,7 +446,7 @@ exports.createPages = ({ graphql, actions }) => { // Create contributor pages. const contributors = result.data.allContributorYaml.edges - contributors.forEach(contributor => { + contributors.forEach((contributor) => { createPage({ path: `contributors/${contributor.node.yamlId}`, component: path.resolve(`./src/templates/contributor.js`), @@ -473,7 +458,7 @@ exports.createPages = ({ graphql, actions }) => { // Create topics pages. const topics = result.data.allLandingsYaml.edges - topics.forEach(topic => { + topics.forEach((topic) => { createPage({ path: topic.node.path, component: path.resolve(`./src/templates/landing.js`), @@ -517,14 +502,14 @@ exports.onCreateNode = ({ node, getNode, actions }) => { // MDX content if (node.internal.type === `Mdx`) { - const sourceInstanceName = getNode(node.parent).sourceInstanceName; - if (sourceInstanceName === 'content') { - const editPath = `source/content/${getNode(node.parent).relativePath}`; - // Add editPath field + const sourceInstanceName = getNode(node.parent).sourceInstanceName + if (sourceInstanceName === "content") { + const editPath = `source/content/${getNode(node.parent).relativePath}` + // Add editPath field createNodeField({ name: `editPath`, node, - value: editPath + value: editPath, }) } @@ -533,11 +518,11 @@ exports.onCreateNode = ({ node, getNode, actions }) => { createNodeField({ name: `slug`, node, - value: slug + value: slug, }) if (slug.includes("guides/")) { - if (getNode(node.parent).relativeDirectory !== 'guides') { + if (getNode(node.parent).relativeDirectory !== "guides") { // Add guide_directory field createNodeField({ name: `guide_directory`, @@ -547,9 +532,15 @@ exports.onCreateNode = ({ node, getNode, actions }) => { } } - if (sourceInstanceName === 'changelogs' || sourceInstanceName === 'releasenotes') { - const content = matter(node.internal.content, { excerpt: true, excerpt_separator: '' } ); - const excerpt = content.excerpt || ""; + if ( + sourceInstanceName === "changelogs" || + sourceInstanceName === "releasenotes" + ) { + const content = matter(node.internal.content, { + excerpt: true, + excerpt_separator: "", + }) + const excerpt = content.excerpt || "" createNodeField({ name: `excerpt`, @@ -622,6 +613,5 @@ exports.onPreBootstrap = () => { fs.copySync(scriptsCopyFrom, scriptsCopyTo) } - /* todo should there be an error thrown if a release note category is set that is not allowed */ /* todo, infer published date from file name. And throw an error if there are files that don't follow the pattern. */ From 0cdfc4a37de6808450002b5bfd6cf92862253bf4 Mon Sep 17 00:00:00 2001 From: M Miller Date: Fri, 19 Jan 2024 18:54:09 -0800 Subject: [PATCH 101/174] Update releaseNoteCategories.js Function to determine active release notes categories --- src/data/releaseNoteCategories.js | 62 ++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js index 6735229f9c..93025d62ce 100644 --- a/src/data/releaseNoteCategories.js +++ b/src/data/releaseNoteCategories.js @@ -1,8 +1,9 @@ +import { useStaticQuery, graphql } from "gatsby" import releaseNoteCategoriesObject from "../../source/releasenotescategories/releaseNoteCategories.json" export const releaseNoteCategoryLoader = function (categorySlug) { -// loop over all releaseNoteCategoriesObject.categories return the first one -// that matches the categorySlug + // loop over all releaseNoteCategoriesObject.categories return the first one + // that matches the categorySlug for (let i = 0; i < releaseNoteCategoriesObject.categories.length; i++) { if (releaseNoteCategoriesObject.categories[i].slug === categorySlug) { return releaseNoteCategoriesObject.categories[i] @@ -10,3 +11,60 @@ export const releaseNoteCategoryLoader = function (categorySlug) { } // Todo more elegant error handling when category not found. } + +// Function to determine active release notes categories. +// Checks all releasenotes for categories in use, then compares to approved categories. +export const activeReleaseNoteCategories = () => { + // Get release notes data. + const data = useStaticQuery(graphql` + query allReleasenotes { + allMdx(filter: { fileAbsolutePath: { regex: "/releasenotes/" } }) { + edges { + node { + ... on Mdx { + frontmatter { + categories + } + } + } + } + } + } + `) + const releasenotes = data.allMdx.edges + + // Determine which categories are in use via slug. + const categoriesInUse = [] + releasenotes.map((releasenote) => { + const releasenoteCategories = releasenote.node.frontmatter.categories + + if (releasenoteCategories) { + releasenoteCategories.map((releasenoteCategory) => { + if (!categoriesInUse.includes(releasenoteCategory)) { + categoriesInUse.push(releasenoteCategory) + } + }) + } + }) + + // Get all approved categories from releaseNoteCategories.json. + const allCategories = [] + releaseNoteCategoriesObject.categories.map((category) => { + allCategories.push({ + slug: category.slug, + displayName: category.displayName, + }) + }) + + // Make sure each item in the categoriesInUse array is a valid category, then create array of objects. + const activeCategories = [] + categoriesInUse.map((category) => { + const categoryObject = allCategories.find((item) => item.slug === category) + activeCategories.push(categoryObject) + }) + + // Sort the categories alphabetically by display name. + activeCategories.sort((a, b) => (a.displayName > b.displayName ? 1 : -1)) + + return JSON.stringify(activeCategories) +} From 54465c67323420b1fbe1c0a044c8a5cf2c061310 Mon Sep 17 00:00:00 2001 From: M Miller Date: Fri, 19 Jan 2024 18:54:32 -0800 Subject: [PATCH 102/174] Update releaseNoteCategorySelector.js Configure to use only active categories --- src/components/releaseNoteCategorySelector.js | 65 +++++++++++-------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index f6462ee0e7..4dbc411563 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -1,37 +1,48 @@ import React from "react" -import releaseNoteCategoriesObject from "../../source/releasenotescategories/releaseNoteCategories.json" +import { activeReleaseNoteCategories } from "../data/releaseNoteCategories" import { MenuButton } from "@pantheon-systems/pds-toolkit-react" import { Link } from "gatsby" -// Initialize the links array with the All Release Notes link and a separator. -const categoryMenuItems = [ - { - isLink: true, - linkContent: All Release Notes, - }, - { - isSeparator: true, - }, -] +const ReleaseNoteCategorySelector = () => { + // Initialize the links array with the All Release Notes link and a separator. + const categoryMenuItems = [ + { + isLink: true, + linkContent: All Release Notes, + }, + { + isSeparator: true, + }, + ] -// Map over the categories and add each to the links array. -releaseNoteCategoriesObject.categories.map((category) => { - categoryMenuItems.push({ - isLink: true, - linkContent: ( - {category.displayName} - ), - }) -}) + // Function to create menu items for each valid category in use. + const createCategoryMenuItems = (categoryObjects) => { + categoryObjects.map((category) => { + categoryMenuItems.push({ + isLink: true, + linkContent: ( + + {category.displayName} + + ), + }) + }) + } + + // Get the active categories data. + const activeCategories = JSON.parse(activeReleaseNoteCategories()) + + // Create the menu items. + createCategoryMenuItems(activeCategories) -// Create the menu button with the links array. -const ReleaseNoteCategorySelector = (currentCategorySlug) => { return ( - + <> + + ) } From 88c21dfde2dd620133b1faee26fcf9bc22257b7f Mon Sep 17 00:00:00 2001 From: M Miller Date: Fri, 19 Jan 2024 19:12:45 -0800 Subject: [PATCH 103/174] Misc style tweaks --- src/components/PublishedDate/style.css | 2 +- src/components/ReleaseNoteTeaser/style.css | 12 +++++++++++- src/styles/pds-additions.css | 4 ++++ src/templates/releaseNotesListing.js | 2 +- src/templates/releaseNotesListingByCategory.js | 2 +- 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/components/PublishedDate/style.css b/src/components/PublishedDate/style.css index c795a38ce8..57453c8ddd 100644 --- a/src/components/PublishedDate/style.css +++ b/src/components/PublishedDate/style.css @@ -1,4 +1,4 @@ .docs-published-date { font-size: var(--pds-typography-size-m); - font-weight: var(--pds-typography-font-weight-bold); + font-weight: var(--pds-typography-font-weight-semibold); } diff --git a/src/components/ReleaseNoteTeaser/style.css b/src/components/ReleaseNoteTeaser/style.css index 51f2951db9..00e1dbba35 100644 --- a/src/components/ReleaseNoteTeaser/style.css +++ b/src/components/ReleaseNoteTeaser/style.css @@ -1,9 +1,19 @@ .docs-release-note-teaser__header { display: flex; - column-gap: var(--pds-spacing-xl); + flex-direction: column; + row-gap: var(--pds-spacing-s); margin-block-end: var(--pds-spacing-l); } +@media (min-width: 1025px) { + .docs-release-note-teaser__header { + display: flex; + column-gap: var(--pds-spacing-xl); + margin-block-end: var(--pds-spacing-l); + flex-direction: row; + } +} + .docs-release-note-teaser__header { .docs-release-notes-tags { padding-block-start: var(--pds-spacing-4xs); diff --git a/src/styles/pds-additions.css b/src/styles/pds-additions.css index 9908012f2a..8d3cbe1c15 100644 --- a/src/styles/pds-additions.css +++ b/src/styles/pds-additions.css @@ -6,6 +6,10 @@ height: 5rem; } +strong { + font-weight: var(--pds-typography-font-weight-semibold); +} + .pds-tag { white-space: nowrap; } diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 94f8f4cb97..5540ed8a8e 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -30,7 +30,7 @@ class ReleaseNotesListingTemplate extends React.Component { ))}
diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index 98a1100f17..41ea795296 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -33,7 +33,7 @@ class ReleaseNotesListingByCategoryTemplate extends React.Component { ))}
From 3a2da86ca21cb0c594e889a973cf5fe5acfea511 Mon Sep 17 00:00:00 2001 From: M Miller Date: Fri, 19 Jan 2024 20:31:50 -0800 Subject: [PATCH 104/174] Simplify category selector data transfer --- src/components/releaseNoteCategorySelector.js | 8 +------- src/data/releaseNoteCategories.js | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index 4dbc411563..38fa8d99a2 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -29,18 +29,12 @@ const ReleaseNoteCategorySelector = () => { }) } - // Get the active categories data. - const activeCategories = JSON.parse(activeReleaseNoteCategories()) - - // Create the menu items. - createCategoryMenuItems(activeCategories) - return ( <> ) diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js index 93025d62ce..18522623e4 100644 --- a/src/data/releaseNoteCategories.js +++ b/src/data/releaseNoteCategories.js @@ -66,5 +66,5 @@ export const activeReleaseNoteCategories = () => { // Sort the categories alphabetically by display name. activeCategories.sort((a, b) => (a.displayName > b.displayName ? 1 : -1)) - return JSON.stringify(activeCategories) + return activeCategories } From 05a90c1b12bd4e43982334bbd05d8cafd83e6c6e Mon Sep 17 00:00:00 2001 From: M Miller Date: Fri, 19 Jan 2024 20:40:19 -0800 Subject: [PATCH 105/174] Update category tag placement --- src/components/ReleaseNoteTeaser/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/ReleaseNoteTeaser/style.css b/src/components/ReleaseNoteTeaser/style.css index 00e1dbba35..cda579f8b9 100644 --- a/src/components/ReleaseNoteTeaser/style.css +++ b/src/components/ReleaseNoteTeaser/style.css @@ -3,6 +3,7 @@ flex-direction: column; row-gap: var(--pds-spacing-s); margin-block-end: var(--pds-spacing-l); + justify-content: space-between; } @media (min-width: 1025px) { From 2b0a0842fab6732b91431b6920dc3b2f4f425823 Mon Sep 17 00:00:00 2001 From: M Miller Date: Sat, 20 Jan 2024 16:55:19 -0800 Subject: [PATCH 106/174] Update PDS toolkit version --- package-lock.json | 12 ++++++------ src/templates/releaseNotePage.js | 10 ++++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index ba6684a2af..f06b3bb246 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4129,9 +4129,9 @@ } }, "node_modules/@pantheon-systems/pds-toolkit-react": { - "version": "1.0.0-dev.70", - "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.70.tgz", - "integrity": "sha512-AnpriQ3X1bd6+HXh1qFqVMgFfbiMoyVz1dO2jm0zhF1JoU++4xnm8rxgGbaVwAKtUYd2Mp3Jz0+1dfzQKyI1SQ==", + "version": "1.0.0-dev.71", + "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.71.tgz", + "integrity": "sha512-OJo3HA+G/vW0l/hnoUIc9ZgeX8i0hOaI6ceCWarWQjPwlCKCy9tsUzJrzkb7tZ3ghw+CBD1jOPoS6VitzoYqjg==", "dependencies": { "@floating-ui/react": "^0.24.3", "focus-trap-react": "^10.2.1", @@ -29359,9 +29359,9 @@ } }, "@pantheon-systems/pds-toolkit-react": { - "version": "1.0.0-dev.70", - "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.70.tgz", - "integrity": "sha512-AnpriQ3X1bd6+HXh1qFqVMgFfbiMoyVz1dO2jm0zhF1JoU++4xnm8rxgGbaVwAKtUYd2Mp3Jz0+1dfzQKyI1SQ==", + "version": "1.0.0-dev.71", + "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.71.tgz", + "integrity": "sha512-OJo3HA+G/vW0l/hnoUIc9ZgeX8i0hOaI6ceCWarWQjPwlCKCy9tsUzJrzkb7tZ3ghw+CBD1jOPoS6VitzoYqjg==", "requires": { "@floating-ui/react": "^0.24.3", "focus-trap-react": "^10.2.1", diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index edb8358425..0044f72b66 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -1,5 +1,5 @@ import React from "react" -import { graphql } from "gatsby" +import { Link, graphql } from "gatsby" import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteCategories from "../components/ReleaseNoteCategories" @@ -26,9 +26,11 @@ class ReleaseNoteTemplate extends React.Component { />
-
- Pantheon Release Notes -
+ +
+ Pantheon Release Notes +
+

{node.frontmatter.title}

From ca3d3d449b498a655993b78edf115bb37e152b8c Mon Sep 17 00:00:00 2001 From: M Miller Date: Sun, 21 Jan 2024 18:15:43 -0800 Subject: [PATCH 107/174] update PDS toolkit --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index f06b3bb246..f67467208e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4129,9 +4129,9 @@ } }, "node_modules/@pantheon-systems/pds-toolkit-react": { - "version": "1.0.0-dev.71", - "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.71.tgz", - "integrity": "sha512-OJo3HA+G/vW0l/hnoUIc9ZgeX8i0hOaI6ceCWarWQjPwlCKCy9tsUzJrzkb7tZ3ghw+CBD1jOPoS6VitzoYqjg==", + "version": "1.0.0-dev.72", + "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.72.tgz", + "integrity": "sha512-KPnwoFj3z9jXwnJqn2V/jjaLVCw+DnupdJggURxsq23jNLfCjdVLJJuRLB7JSFhISJUT5j4HZlrDVabAMjqfAw==", "dependencies": { "@floating-ui/react": "^0.24.3", "focus-trap-react": "^10.2.1", @@ -29359,9 +29359,9 @@ } }, "@pantheon-systems/pds-toolkit-react": { - "version": "1.0.0-dev.71", - "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.71.tgz", - "integrity": "sha512-OJo3HA+G/vW0l/hnoUIc9ZgeX8i0hOaI6ceCWarWQjPwlCKCy9tsUzJrzkb7tZ3ghw+CBD1jOPoS6VitzoYqjg==", + "version": "1.0.0-dev.72", + "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.72.tgz", + "integrity": "sha512-KPnwoFj3z9jXwnJqn2V/jjaLVCw+DnupdJggURxsq23jNLfCjdVLJJuRLB7JSFhISJUT5j4HZlrDVabAMjqfAw==", "requires": { "@floating-ui/react": "^0.24.3", "focus-trap-react": "^10.2.1", From 6ab850c7b866f958020c677c8a950f33ba2c4a3c Mon Sep 17 00:00:00 2001 From: M Miller Date: Sun, 21 Jan 2024 18:51:43 -0800 Subject: [PATCH 108/174] Update releaseNotePage.js Make kicker link back to release notes home --- src/templates/releaseNotePage.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index 0044f72b66..eaa2b032b0 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -26,11 +26,11 @@ class ReleaseNoteTemplate extends React.Component { />
- -
+
+ Pantheon Release Notes -
- + +

{node.frontmatter.title}

From 09410c8b706a34f65e8da88baca2072f017af4c1 Mon Sep 17 00:00:00 2001 From: M Miller Date: Sun, 21 Jan 2024 19:06:46 -0800 Subject: [PATCH 109/174] assign tag colors --- .../releaseNoteCategories.json | 152 +++++++++--------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/source/releasenotescategories/releaseNoteCategories.json b/source/releasenotescategories/releaseNoteCategories.json index 6af26c0584..bba4c706f5 100644 --- a/source/releasenotescategories/releaseNoteCategories.json +++ b/source/releasenotescategories/releaseNoteCategories.json @@ -1,134 +1,134 @@ { "categories": [ + { + "slug": "account-management", + "displayName": "Account Management", + "color": "color-1", + "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" + }, { "slug": "action-required", "displayName": "Action Required", - "color": "color-1", + "color": "color-3", "description": "Requires customer to act in order to avoid disruption" }, + { + "slug": "content-management", + "displayName": "Content Management", + "color": "color-9", + "description": "Include changes relevant to managing digital content on the Pantheon platform, ensuring users stay informed about updates related to content creation, editing, and relevant tools" + }, + { + "slug": "deprecated", + "displayName": "Deprecated", + "color": "color-4", + "description": "Reserved for updates indicating the phasing out or discontinuation of specific features or functionalities" + }, + { + "slug": "documentation", + "displayName": "Documentation", + "color": "color-4", + "description": "Communicates substantive changes to docs.pantheon.io", + "_comment-from-Rachel": "Review needed: New category not yet reviewed/approved by Ingrid or design team", + "_another_comment-from-Rachel": "We should require any new category to go through a review panel which includes design team, since too many tags can reduce usability of the feature and duplicate categories can cause confusion for intended usage." + }, { "slug": "drupal", "displayName": "Drupal", - "color": "color-2", + "color": "color-9", "description": "Tailored for updates specific to the Drupal content management system, helping Drupal users stay informed about platform changes that directly impact their workflows" }, { - "slug": "new-feature", - "displayName": "New Feature", - "color": "color-3", - "description": "Consolidates information about both new features and improvements, providing users with insights into enhancements that contribute to a better overall experience" + "slug": "events", + "displayName": "Events", + "color": "color-6", + "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" }, { "slug": "front-end-sites", "displayName": "Front-End Sites", - "color": "color-4", + "color": "color-2", "description": "Focuses on updates related to Front-End Site (FES) enhancements, ensuring that developers and designers stay informed about changes affecting how they use the product" }, + { + "slug": "general", + "displayName": "General", + "color": "color-4", + "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" + }, { "slug": "infrastructure", "displayName": "Infrastructure", - "color": "color-5", + "color": "color-10", "description": "Details changes related to the underlying technology and architecture of the Pantheon platform, providing insights into changes that may impact performance and reliability" }, { - "slug": "security", - "displayName": "Security", - "color": "color-6", - "description": "Addresses security-related updates, emphasizing the importance of staying informed about changes aimed at maintaining a secure and protected environment for users" + "slug": "integration", + "displayName": "Integration", + "color": "color-3", + "description": "Addresses updates related to system integration, helping IT and tech leads understand changes relevant to connecting Pantheon with other tools and services", + "_comment-from-Rachel": "I think we should remove this as a duplicate of the Tools/APIs category" }, { - "slug": "tools-apis", - "displayName": "Tools & APIs", - "color": "color-7", - "description": "Keeps users informed about updates related to tools and APIs, helping developers understand changes that may impact their workflows and integrations" + "slug": "issue-bug", + "displayName": "Issue/Bug", + "color": "color-5", + "description": "Merges information about issues and bugs into a unified category, allowing users to easily identify and understand the current status and steps taken to address reported problems" }, { - "slug": "wordpress", - "displayName": "WordPress", - "color": "color-8", - "description": "Tailored for updates specific to the WordPress content management system, helping WordPress users stay informed about platform changes that directly impact their workflows" + "slug": "migration", + "displayName": "Migration", + "color": "color-6", + "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" + }, + { + "slug": "new-feature", + "displayName": "New Feature", + "color": "color-7", + "description": "Consolidates information about both new features and improvements, providing users with insights into enhancements that contribute to a better overall experience" }, { "slug": "performance", "displayName": "Performance", - "color": "color-1", + "color": "color-7", "description": "Highlights updates focused on optimizing the speed, efficiency, and overall performance of the Pantheon platform, giving users insights into improvements that enhance user experience" }, - { - "slug": "user-interface", - "displayName": "User interface", - "color": "color-2", - "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" - }, - { - "slug": "account-management", - "displayName": "Account Management", - "color": "color-3", - "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" - }, { "slug": "policy", "displayName": "Policy", - "color": "color-4", + "color": "color-10", "description": "Communicates updates related to platform policies, ensuring users are aware of any changes in rules or guidelines that may impact their usage" }, { - "slug": "content-management", - "displayName": "Content Management", + "slug": "security", + "displayName": "Security", "color": "color-5", - "description": "Include changes relevant to managing digital content on the Pantheon platform, ensuring users stay informed about updates related to content creation, editing, and relevant tools" - }, - { - "slug": "deprecated", - "displayName": "Deprecated", - "color": "color-6", - "description": "Reserved for updates indicating the phasing out or discontinuation of specific features or functionalities" + "description": "Addresses security-related updates, emphasizing the importance of staying informed about changes aimed at maintaining a secure and protected environment for users" }, { - "slug": "events", - "displayName": "Events", - "color": "color-7", - "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" + "slug": "tools-apis", + "displayName": "Tools & APIs", + "color": "color-2", + "description": "Keeps users informed about updates related to tools and APIs, helping developers understand changes that may impact their workflows and integrations" }, { - "slug": "general", - "displayName": "General", + "slug": "user-interface", + "displayName": "User interface", "color": "color-8", - "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" - }, - { - "slug": "issue-bug", - "displayName": "Issue/Bug", - "color": "color-1", - "description": "Merges information about issues and bugs into a unified category, allowing users to easily identify and understand the current status and steps taken to address reported problems" - }, - { - "slug": "migration", - "displayName": "Migration", - "color": "color-2", - "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" + "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" }, { - "slug": "integration", - "displayName": "Integration", - "color": "color-3", - "description": "Addresses updates related to system integration, helping IT and tech leads understand changes relevant to connecting Pantheon with other tools and services", - "_comment-from-Rachel": "I think we should remove this as a duplicate of the Tools/APIs category" + "slug": "wordpress", + "displayName": "WordPress", + "color": "color-8", + "description": "Tailored for updates specific to the WordPress content management system, helping WordPress users stay informed about platform changes that directly impact their workflows" }, { "slug": "platform", "displayName": "Platform", - "color": "color-4", + "color": "color-10", "description": "Offers general updates about the Pantheon platform, providing users with a comprehensive overview of changes that influence the overall system", "_comment-from-Rachel": "I think we should remove this as a duplicate of the Infrastructure category" - }, - { - "slug": "documentation", - "displayName": "Documentation", - "color": "color-5", - "description": "Communicates substantive changes to docs.pantheon.io", - "_comment-from-Rachel": "Review needed: New category not yet reviewed/approved by Ingrid or design team", - "_another_comment-from-Rachel": "We should require any new category to go through a review panel which includes design team, since too many tags can reduce usability of the feature and duplicate categories can cause confusion for intended usage." } ] } From 903027aabd27c789a9b7fd90b3e211a62f0d0e28 Mon Sep 17 00:00:00 2001 From: M Miller Date: Sun, 21 Jan 2024 19:36:54 -0800 Subject: [PATCH 110/174] Revert "Simplify category selector data transfer" This reverts commit 3a2da86ca21cb0c594e889a973cf5fe5acfea511. --- src/components/releaseNoteCategorySelector.js | 8 +++++++- src/data/releaseNoteCategories.js | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index 38fa8d99a2..4dbc411563 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -29,12 +29,18 @@ const ReleaseNoteCategorySelector = () => { }) } + // Get the active categories data. + const activeCategories = JSON.parse(activeReleaseNoteCategories()) + + // Create the menu items. + createCategoryMenuItems(activeCategories) + return ( <> ) diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js index 18522623e4..93025d62ce 100644 --- a/src/data/releaseNoteCategories.js +++ b/src/data/releaseNoteCategories.js @@ -66,5 +66,5 @@ export const activeReleaseNoteCategories = () => { // Sort the categories alphabetically by display name. activeCategories.sort((a, b) => (a.displayName > b.displayName ? 1 : -1)) - return activeCategories + return JSON.stringify(activeCategories) } From 0fb62275cff973e7ce6a2c25f0ebd5276e846a90 Mon Sep 17 00:00:00 2001 From: M Miller Date: Sun, 21 Jan 2024 19:40:53 -0800 Subject: [PATCH 111/174] Update releaseNoteCategorySelector.js --- src/components/releaseNoteCategorySelector.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index 4dbc411563..8e5864a0ef 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -38,7 +38,7 @@ const ReleaseNoteCategorySelector = () => { return ( <> From 29da616f55052bb65f258dd5a50ea43c1551e489 Mon Sep 17 00:00:00 2001 From: M Miller Date: Sun, 21 Jan 2024 19:51:52 -0800 Subject: [PATCH 112/174] Convert RN listing templates to functional components ...so we can use state --- src/templates/releaseNotesListing.js | 56 +++++++++--------- .../releaseNotesListingByCategory.js | 58 +++++++++---------- 2 files changed, 55 insertions(+), 59 deletions(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 5540ed8a8e..1f308e71cd 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -3,7 +3,7 @@ import { graphql } from "gatsby" import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteTeaser from "../components/ReleaseNoteTeaser" -import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelector.js" +import ReleaseNoteCategorySelector from "../components/ReleaseNoteCategorySelector.js" import { releaseNoteFragment } from "../fragments/releaseNote.js" import { Container } from "@pantheon-systems/pds-toolkit-react" @@ -11,34 +11,32 @@ import { Container } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. const containerWidth = "standard" -class ReleaseNotesListingTemplate extends React.Component { - render() { - const releasenotes = this.props.data.allMdx.edges - return ( - - -
- -

Pantheon Release Notes

- -
- {releasenotes.map((releasenote, index) => ( - - ))} -
-
-
-
- ) - } +const ReleaseNotesListingTemplate = ({ data }) => { + const releasenotes = data.allMdx.edges + return ( + + +
+ +

Pantheon Release Notes

+ +
+ {releasenotes.map((releasenote, index) => ( + + ))} +
+
+
+
+ ) } export default ReleaseNotesListingTemplate diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index 41ea795296..a934ec6cbb 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -10,38 +10,36 @@ import { Container } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. const containerWidth = "standard" -class ReleaseNotesListingByCategoryTemplate extends React.Component { - render() { - const releasenotes = this.props.data.allMdx.edges - const categorySlug = this.props.pageContext.category - const categoryData = releaseNoteCategoryLoader(categorySlug) +const ReleaseNotesListingByCategoryTemplate = ({ data, pageContext }) => { + const releasenotes = data.allMdx.edges + const categorySlug = pageContext.category + const categoryData = releaseNoteCategoryLoader(categorySlug) - return ( - - -
- -

Pantheon Release Notes: {categoryData["displayName"]}

- + return ( + + +
+ +

Pantheon Release Notes: {categoryData["displayName"]}

+ -
- {releasenotes.map((releasenote, index) => ( - - ))} -
-
-
-
- ) - } +
+ {releasenotes.map((releasenote, index) => ( + + ))} +
+
+
+
+ ) } export default ReleaseNotesListingByCategoryTemplate From e66b140316603d5cda7d6feaf0be970b97918edb Mon Sep 17 00:00:00 2001 From: M Miller Date: Sun, 21 Jan 2024 20:40:43 -0800 Subject: [PATCH 113/174] testing basic RN search functionality --- src/templates/releaseNotesListing.js | 41 ++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 1f308e71cd..8d3f8e0824 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -1,4 +1,4 @@ -import React from "react" +import React, { useState } from "react" import { graphql } from "gatsby" import Layout from "../layout/layout" import SEO from "../layout/seo" @@ -12,7 +12,34 @@ import { Container } from "@pantheon-systems/pds-toolkit-react" const containerWidth = "standard" const ReleaseNotesListingTemplate = ({ data }) => { - const releasenotes = data.allMdx.edges + const allReleasenotes = data.allMdx.edges + const emptyQuery = "" + + // Set up state. + const [filteredData, setFilteredData] = useState([]) + const [query, setQuery] = useState(emptyQuery) + + // Handle search input. + const handleInputChange = (event) => { + const query = event.target.value + + // const releasenotes = data.allMdx.edges || [] + + // Filter releasenotes based on query. + const filteredData = releasenotes.filter((releasenote) => { + const { title } = releasenote.node.frontmatter + return title.toLowerCase().includes(query.toLowerCase()) + }) + + // Update state based on query. + setFilteredData(filteredData) + setQuery(query) + } + + // If query is empty, show all releasenotes. + const hasSearchResults = filteredData && query !== emptyQuery + const releasenotes = hasSearchResults ? filteredData : allReleasenotes + return ( {

Pantheon Release Notes

+
+ +
{releasenotes.map((releasenote, index) => ( From b9edb38b8ececb7961bf8880b4069e09208d95fc Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Mon, 22 Jan 2024 13:20:32 -0600 Subject: [PATCH 114/174] Add random comment --- src/templates/releaseNotePage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index eaa2b032b0..dfc9c1ec91 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -11,7 +11,7 @@ import { Container, SidebarLayout } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. const containerWidth = "standard" - +// Add comment class ReleaseNoteTemplate extends React.Component { render() { const node = this.props.data.mdx From 2ff0a38b015ff6ac6320b1d3909adbcf2af96a25 Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Mon, 22 Jan 2024 13:21:08 -0600 Subject: [PATCH 115/174] Revert "Add random comment" This reverts commit b9edb38b8ececb7961bf8880b4069e09208d95fc. --- src/templates/releaseNotePage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/templates/releaseNotePage.js b/src/templates/releaseNotePage.js index dfc9c1ec91..eaa2b032b0 100644 --- a/src/templates/releaseNotePage.js +++ b/src/templates/releaseNotePage.js @@ -11,7 +11,7 @@ import { Container, SidebarLayout } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. const containerWidth = "standard" -// Add comment + class ReleaseNoteTemplate extends React.Component { render() { const node = this.props.data.mdx From 6908110eebca3561c58183cefc8c61d304d7a1a8 Mon Sep 17 00:00:00 2001 From: M Miller Date: Mon, 22 Jan 2024 11:33:19 -0800 Subject: [PATCH 116/174] fix typo in import name --- src/templates/releaseNotesListing.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 8d3f8e0824..2324ffda0f 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -3,7 +3,7 @@ import { graphql } from "gatsby" import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteTeaser from "../components/ReleaseNoteTeaser" -import ReleaseNoteCategorySelector from "../components/ReleaseNoteCategorySelector.js" +import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelector.js" import { releaseNoteFragment } from "../fragments/releaseNote.js" import { Container } from "@pantheon-systems/pds-toolkit-react" From 94220b5d8a26f5ccfeceefcac7a086e3a83538b4 Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Mon, 22 Jan 2024 13:45:43 -0600 Subject: [PATCH 117/174] Delete platform category, in favor of infrastrcuture only based on discussion with Ingrid --- src/data/releaseNoteCategories.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/data/releaseNoteCategories.js b/src/data/releaseNoteCategories.js index c49bd5efaf..ebc76dfe2b 100644 --- a/src/data/releaseNoteCategories.js +++ b/src/data/releaseNoteCategories.js @@ -84,15 +84,10 @@ export const releaseNoteCategories = { "color": "gray", "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" }, - "platform": { - "displayName": "Platform", - "color": "gray", - "description": "Offers general updates about the Pantheon platform, providing users with a comprehensive overview of changes that influence the overall system" - }, "pantheon-docs": { "displayName": "Pantheon Docs", "color": "gray", - "description": "Reserved for updates that involve substantive changes, additions, or clarifications within Pantheon Docs — the centralized hub containing manuals and essential documentation for Pantheon users." + "description": "Reserved for updates that involve substantive changes, additions, or clarifications within Pantheon Docs — the centralized hub containing manuals and essential documentation for Pantheon users." }, "account-management": { "displayName": "Account Management", From 5721faf69ae7f1ec9318e923754b258c598ea538 Mon Sep 17 00:00:00 2001 From: M Miller Date: Mon, 22 Jan 2024 13:24:20 -0800 Subject: [PATCH 118/174] Update releaseNotesListing.js Style form; add body to search; fix backtracking search --- src/templates/releaseNotesListing.js | 51 +++++++++++++++++++--------- 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 2324ffda0f..e6b4445be8 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -6,7 +6,7 @@ import ReleaseNoteTeaser from "../components/ReleaseNoteTeaser" import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelector.js" import { releaseNoteFragment } from "../fragments/releaseNote.js" -import { Container } from "@pantheon-systems/pds-toolkit-react" +import { Container, FlexContainer } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. const containerWidth = "standard" @@ -23,12 +23,17 @@ const ReleaseNotesListingTemplate = ({ data }) => { const handleInputChange = (event) => { const query = event.target.value - // const releasenotes = data.allMdx.edges || [] + // Get all releasenotes. + const releasenotes = data.allMdx.edges || [] // Filter releasenotes based on query. const filteredData = releasenotes.filter((releasenote) => { const { title } = releasenote.node.frontmatter - return title.toLowerCase().includes(query.toLowerCase()) + const { rawBody } = releasenote.node + return ( + title.toLowerCase().includes(query.toLowerCase()) || + rawBody.toLowerCase().includes(query.toLowerCase()) + ) }) // Update state based on query. @@ -50,23 +55,36 @@ const ReleaseNotesListingTemplate = ({ data }) => {

Pantheon Release Notes

-
- -
- -
+ +
+ +
+ +
+
{releasenotes.map((releasenote, index) => ( ))}
@@ -86,6 +104,7 @@ export const pageQuery = graphql` ) { edges { node { + rawBody ... on Mdx { ...theReleaseNoteFields } From 5f615e0ea9253760f138b6589a8838a4a97dcf34 Mon Sep 17 00:00:00 2001 From: M Miller Date: Mon, 22 Jan 2024 13:38:38 -0800 Subject: [PATCH 119/174] Debounce release notes search --- src/templates/releaseNotesListing.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index e6b4445be8..abecd74382 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -1,5 +1,7 @@ import React, { useState } from "react" import { graphql } from "gatsby" +import debounce from "lodash.debounce" + import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteTeaser from "../components/ReleaseNoteTeaser" @@ -7,6 +9,7 @@ import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelect import { releaseNoteFragment } from "../fragments/releaseNote.js" import { Container, FlexContainer } from "@pantheon-systems/pds-toolkit-react" +import { de } from "date-fns/locale" // Set container width for search and main content. const containerWidth = "standard" @@ -41,6 +44,9 @@ const ReleaseNotesListingTemplate = ({ data }) => { setQuery(query) } + // Debounce search input. + const debouncedHandleInputChange = debounce(handleInputChange, 500) + // If query is empty, show all releasenotes. const hasSearchResults = filteredData && query !== emptyQuery const releasenotes = hasSearchResults ? filteredData : allReleasenotes @@ -70,11 +76,11 @@ const ReleaseNotesListingTemplate = ({ data }) => { >
From cbd565459bf0afe7c2806456d251c33424975301 Mon Sep 17 00:00:00 2001 From: M Miller Date: Mon, 22 Jan 2024 13:42:50 -0800 Subject: [PATCH 120/174] Update releaseNotesListing.js remove errant import --- src/templates/releaseNotesListing.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index abecd74382..a9eee07010 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -9,7 +9,6 @@ import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelect import { releaseNoteFragment } from "../fragments/releaseNote.js" import { Container, FlexContainer } from "@pantheon-systems/pds-toolkit-react" -import { de } from "date-fns/locale" // Set container width for search and main content. const containerWidth = "standard" From 1adf50cd3568bc51bdfbad8813fcd9cae1834ab0 Mon Sep 17 00:00:00 2001 From: M Miller Date: Mon, 22 Jan 2024 13:53:49 -0800 Subject: [PATCH 121/174] Update releaseNotesListingByCategory.js Add filter to category listing --- .../releaseNotesListingByCategory.js | 76 +++++++++++++++++-- 1 file changed, 70 insertions(+), 6 deletions(-) diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index a934ec6cbb..16b91b91f1 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -1,20 +1,58 @@ -import React from "react" +import React, { useState } from "react" import { graphql } from "gatsby" +import debounce from "lodash.debounce" + import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteTeaser from "../components/ReleaseNoteTeaser" import { releaseNoteCategoryLoader } from "../data/releaseNoteCategories.js" import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelector.js" -import { Container } from "@pantheon-systems/pds-toolkit-react" + +import { Container, FlexContainer } from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. const containerWidth = "standard" const ReleaseNotesListingByCategoryTemplate = ({ data, pageContext }) => { - const releasenotes = data.allMdx.edges + const allReleasenotes = data.allMdx.edges const categorySlug = pageContext.category const categoryData = releaseNoteCategoryLoader(categorySlug) + const emptyQuery = "" + + // Set up state. + const [filteredData, setFilteredData] = useState([]) + const [query, setQuery] = useState(emptyQuery) + + // Handle search input. + const handleInputChange = (event) => { + const query = event.target.value + + // Get all releasenotes. + const releasenotes = data.allMdx.edges || [] + + // Filter releasenotes based on query. + const filteredData = releasenotes.filter((releasenote) => { + const { title } = releasenote.node.frontmatter + const { rawBody } = releasenote.node + return ( + title.toLowerCase().includes(query.toLowerCase()) || + rawBody.toLowerCase().includes(query.toLowerCase()) + ) + }) + + // Update state based on query. + setFilteredData(filteredData) + setQuery(query) + } + + // Debounce search input. + const debouncedHandleInputChange = debounce(handleInputChange, 500) + + // If query is empty, show all releasenotes. + const hasSearchResults = filteredData && query !== emptyQuery + const releasenotes = hasSearchResults ? filteredData : allReleasenotes + return ( { />
-

Pantheon Release Notes: {categoryData["displayName"]}

- +

+ Pantheon Release Notes: {categoryData["displayName"]} +

+ +
+ +
+ +
-
+
{releasenotes.map((releasenote, index) => ( Date: Mon, 22 Jan 2024 15:18:49 -0800 Subject: [PATCH 122/174] Update releaseNotesListingByCategory.js Fix format of metatags --- src/templates/releaseNotesListingByCategory.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index 16b91b91f1..7462bd6d8e 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -56,8 +56,8 @@ const ReleaseNotesListingByCategoryTemplate = ({ data, pageContext }) => { return (
From d1958056e27ed4d8f1fe5eff5b635b697bbd96bc Mon Sep 17 00:00:00 2001 From: M Miller Date: Mon, 22 Jan 2024 15:19:18 -0800 Subject: [PATCH 123/174] Update releaseNotesListingByCategory.js Fix spacing --- src/templates/releaseNotesListingByCategory.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index 7462bd6d8e..b14ed1b2e5 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -95,7 +95,7 @@ const ReleaseNotesListingByCategoryTemplate = ({ data, pageContext }) => { ))}
From bef7ba4aab938ddc5ac019f027a1669845d01ea5 Mon Sep 17 00:00:00 2001 From: M Miller Date: Mon, 22 Jan 2024 16:44:17 -0800 Subject: [PATCH 124/174] Clean up; add date to filter --- src/templates/releaseNotesListing.js | 32 +++++++++++++++---- .../releaseNotesListingByCategory.js | 29 ++++++++++++----- 2 files changed, 46 insertions(+), 15 deletions(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index a9eee07010..ad35c821b7 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -8,7 +8,11 @@ import ReleaseNoteTeaser from "../components/ReleaseNoteTeaser" import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelector.js" import { releaseNoteFragment } from "../fragments/releaseNote.js" -import { Container, FlexContainer } from "@pantheon-systems/pds-toolkit-react" +import { + Container, + FlexContainer, + Icon, +} from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. const containerWidth = "standard" @@ -30,11 +34,18 @@ const ReleaseNotesListingTemplate = ({ data }) => { // Filter releasenotes based on query. const filteredData = releasenotes.filter((releasenote) => { - const { title } = releasenote.node.frontmatter - const { rawBody } = releasenote.node + const title = releasenote.node.frontmatter.title + const rawBody = releasenote.node.rawBody + const publishedDate = releasenote.node.frontmatter.published_date + const dateOptions = { year: "numeric", month: "long", day: "numeric" } + const formattedDate = new Date(publishedDate).toLocaleDateString( + undefined, + dateOptions + ) return ( title.toLowerCase().includes(query.toLowerCase()) || - rawBody.toLowerCase().includes(query.toLowerCase()) + rawBody.toLowerCase().includes(query.toLowerCase()) || + formattedDate.toLowerCase().includes(query.toLowerCase()) ) }) @@ -44,12 +55,16 @@ const ReleaseNotesListingTemplate = ({ data }) => { } // Debounce search input. - const debouncedHandleInputChange = debounce(handleInputChange, 500) + const debouncedHandleInputChange = debounce(handleInputChange, 300) // If query is empty, show all releasenotes. const hasSearchResults = filteredData && query !== emptyQuery const releasenotes = hasSearchResults ? filteredData : allReleasenotes + releasenotes.map((releasenote, index) => + console.log(releasenote.node.frontmatter.published_date) + ) + return ( { flexGrow: "2", }} > +
+ +
diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index b14ed1b2e5..c979915251 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -8,7 +8,11 @@ import ReleaseNoteTeaser from "../components/ReleaseNoteTeaser" import { releaseNoteCategoryLoader } from "../data/releaseNoteCategories.js" import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelector.js" -import { Container, FlexContainer } from "@pantheon-systems/pds-toolkit-react" +import { + Container, + FlexContainer, + Icon, +} from "@pantheon-systems/pds-toolkit-react" // Set container width for search and main content. const containerWidth = "standard" @@ -33,21 +37,27 @@ const ReleaseNotesListingByCategoryTemplate = ({ data, pageContext }) => { // Filter releasenotes based on query. const filteredData = releasenotes.filter((releasenote) => { - const { title } = releasenote.node.frontmatter - const { rawBody } = releasenote.node + const title = releasenote.node.frontmatter.title + const rawBody = releasenote.node.rawBody + const publishedDate = releasenote.node.frontmatter.published_date + const dateOptions = { year: "numeric", month: "long", day: "numeric" } + const formattedDate = new Date(publishedDate).toLocaleDateString( + undefined, + dateOptions + ) return ( title.toLowerCase().includes(query.toLowerCase()) || - rawBody.toLowerCase().includes(query.toLowerCase()) + rawBody.toLowerCase().includes(query.toLowerCase()) || + formattedDate.toLowerCase().includes(query.toLowerCase()) ) }) - // Update state based on query. setFilteredData(filteredData) setQuery(query) } // Debounce search input. - const debouncedHandleInputChange = debounce(handleInputChange, 500) + const debouncedHandleInputChange = debounce(handleInputChange, 300) // If query is empty, show all releasenotes. const hasSearchResults = filteredData && query !== emptyQuery @@ -78,11 +88,14 @@ const ReleaseNotesListingByCategoryTemplate = ({ data, pageContext }) => { flexGrow: "2", }} > +
+ +
From 44654d6d41d3daa7ca9a649e5d189858743afb91 Mon Sep 17 00:00:00 2001 From: M Miller Date: Mon, 22 Jan 2024 16:53:29 -0800 Subject: [PATCH 125/174] Exclude docs search from release notes pages --- src/layout/layout/index.js | 9 ++++++--- src/templates/releaseNotePage.js | 7 +++++-- src/templates/releaseNotesListing.js | 7 +++++-- src/templates/releaseNotesListingByCategory.js | 7 +++++-- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/layout/layout/index.js b/src/layout/layout/index.js index 17c212ed03..378814156a 100644 --- a/src/layout/layout/index.js +++ b/src/layout/layout/index.js @@ -22,6 +22,7 @@ const secondaryCTA = { const Layout = ({ children, containerWidth, + excludeSearch, hasCta, footerBorder, pageType = "default", @@ -29,9 +30,11 @@ const Layout = ({ return (
- - - + {!excludeSearch && ( + + + + )} {children} {hasCta && ( +
- +
Pantheon Release Notes diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index ad35c821b7..88314dcf7c 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -66,14 +66,17 @@ const ReleaseNotesListingTemplate = ({ data }) => { ) return ( - +
- +

Pantheon Release Notes

{ const releasenotes = hasSearchResults ? filteredData : allReleasenotes return ( - +
- +

Pantheon Release Notes: {categoryData["displayName"]}

From cc81d9059a51e478e7531775321fab0653f288fa Mon Sep 17 00:00:00 2001 From: M Miller Date: Mon, 22 Jan 2024 17:22:20 -0800 Subject: [PATCH 126/174] spacing tweaks --- src/styles/pds-additions.css | 4 ++++ src/templates/releaseNotesListing.js | 2 +- src/templates/releaseNotesListingByCategory.js | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/styles/pds-additions.css b/src/styles/pds-additions.css index 8d3cbe1c15..d5b5b7cc1c 100644 --- a/src/styles/pds-additions.css +++ b/src/styles/pds-additions.css @@ -13,3 +13,7 @@ strong { .pds-tag { white-space: nowrap; } + +.pds-input-field__decorators { + padding-inline: var(--pds-spacing-5xs); +} diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 88314dcf7c..4222a1ef64 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -82,7 +82,7 @@ const ReleaseNotesListingTemplate = ({ data }) => { style={{ borderBottom: "1px solid var(--pds-color-border-default)", paddingBlockEnd: "var(--pds-spacing-3xl)", - paddingBlockStart: "var(--pds-spacing-s)", + paddingBlockStart: "var(--pds-spacing-m)", }} >
{ style={{ borderBottom: "1px solid var(--pds-color-border-default)", paddingBlockEnd: "var(--pds-spacing-3xl)", - paddingBlockStart: "var(--pds-spacing-s)", + paddingBlockStart: "var(--pds-spacing-m)", }} >
Date: Mon, 22 Jan 2024 17:56:47 -0800 Subject: [PATCH 127/174] Add no results functionality for release notes --- src/templates/releaseNotesListing.js | 24 +++++++++++------- .../releaseNotesListingByCategory.js | 25 +++++++++++++------ 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 4222a1ef64..a21746bfca 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -61,9 +61,21 @@ const ReleaseNotesListingTemplate = ({ data }) => { const hasSearchResults = filteredData && query !== emptyQuery const releasenotes = hasSearchResults ? filteredData : allReleasenotes - releasenotes.map((releasenote, index) => - console.log(releasenote.node.frontmatter.published_date) + // Preprocess release notes teasers. + const renderedTeasers = releasenotes.map((releasenote, index) => ( + + )) + + // Render release notes or no results message. + const noResultsMessage = ( +

No results.

) + const renderedReleaseNotes = + releasenotes.length !== 0 ? renderedTeasers : noResultsMessage return ( @@ -106,13 +118,7 @@ const ReleaseNotesListingTemplate = ({ data }) => {
- {releasenotes.map((releasenote, index) => ( - - ))} + {renderedReleaseNotes}
diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index 63e146fc94..c76cef83b5 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -63,6 +63,22 @@ const ReleaseNotesListingByCategoryTemplate = ({ data, pageContext }) => { const hasSearchResults = filteredData && query !== emptyQuery const releasenotes = hasSearchResults ? filteredData : allReleasenotes + // Preprocess release notes teasers. + const renderedTeasers = releasenotes.map((releasenote, index) => ( + + )) + + // Render release notes or no results message. + const noResultsMessage = ( +

No results.

+ ) + const renderedReleaseNotes = + releasenotes.length !== 0 ? renderedTeasers : noResultsMessage + return ( {
-
- {releasenotes.map((releasenote, index) => ( - - ))} + {renderedReleaseNotes}
From 16b6a07550a12c5271a72caf824c822d0e344d43 Mon Sep 17 00:00:00 2001 From: M Miller Date: Mon, 22 Jan 2024 18:59:17 -0800 Subject: [PATCH 128/174] Update font weight in subscribe button --- src/styles/main.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/styles/main.css b/src/styles/main.css index 23d3e62754..efe27a8b5a 100755 --- a/src/styles/main.css +++ b/src/styles/main.css @@ -149,7 +149,7 @@ a.individual-changelog-link:hover { color: var(--pds-color-button-primary-foreground-default) !important; font-family: var(--pds-typography-font-default) !important; font-size: 1rem !important; - font-weight: var(--pds-typography-font-weight-bold) !important; + font-weight: var(--pds-typography-font-weight-semibold) !important; height: 2.25rem; letter-spacing: var(--pds-typography-letter-spacing-m); transition: var(--pds-animation-button-transition); From 0450b871a9f90bc7822cc84d7742e00ca369e726 Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Tue, 23 Jan 2024 12:16:21 -0600 Subject: [PATCH 129/174] Relocate json dump defining categories to match release-notes branch --- .../releasenotescategories/releaseNoteCategories.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/data/releaseNoteCategories.js => source/releasenotescategories/releaseNoteCategories.json (100%) diff --git a/src/data/releaseNoteCategories.js b/source/releasenotescategories/releaseNoteCategories.json similarity index 100% rename from src/data/releaseNoteCategories.js rename to source/releasenotescategories/releaseNoteCategories.json From 58698be897baf07a5db1372c0b9ad90823acd1ee Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Tue, 23 Jan 2024 12:48:44 -0600 Subject: [PATCH 130/174] Convert to JSON format, align with release-notes, remove platform, remove bugs/issues, remove integration, remove content-management --- .../releaseNoteCategories.json | 209 ++++++++++-------- 1 file changed, 112 insertions(+), 97 deletions(-) diff --git a/source/releasenotescategories/releaseNoteCategories.json b/source/releasenotescategories/releaseNoteCategories.json index ebc76dfe2b..afb188f442 100644 --- a/source/releasenotescategories/releaseNoteCategories.json +++ b/source/releasenotescategories/releaseNoteCategories.json @@ -1,97 +1,112 @@ -export const releaseNoteCategories = { - "action-required": { - "displayName": "Action Required", - "color": "red", - "description": "Requires customer to act in order to avoid disruption" - }, - "drupal": { - "displayName": "Drupal", - "color": "black", - "description": "Tailored for updates specific to the Drupal content management system, helping Drupal users stay informed about platform changes that directly impact their workflows" - }, - "new-feature": { - "displayName": "New Feature", - "color": "green", - "description": "Consolidates information about both new features and improvements, providing users with insights into enhancements that contribute to a better overall experience" - }, - "front-end-sites": { - "displayName": "Front-End Sites", - "color": "purple", - "description": "Focuses on updates related to Front-End Site (FES) enhancements, ensuring that developers and designers stay informed about changes affecting how they use the product" - }, - "infrastructure": { - "displayName": "Infrastructure", - "color": "black", - "description": "Details changes related to the underlying technology and architecture of the Pantheon platform, providing insights into changes that may impact performance and reliability" - }, - "security": { - "displayName": "Security", - "color": "red", - "description": "Addresses security-related updates, emphasizing the importance of staying informed about changes aimed at maintaining a secure and protected environment for users" - }, - "tools-apis": { - "displayName": "Tools & APIs", - "color": "black", - "description": "Keeps users informed about updates related to tools and APIs, helping developers understand changes that may impact their workflows and integrations" - }, - "wordpress": { - "displayName": "WordPress", - "color": "black", - "description": "Tailored for updates specific to the WordPress content management system, helping WordPress users stay informed about platform changes that directly impact their workflows" - }, - "performance": { - "displayName": "Performance", - "color": "black", - "description": "Highlights updates focused on optimizing the speed, efficiency, and overall performance of the Pantheon platform, giving users insights into improvements that enhance user experience" - }, - "user-interface": { - "displayName": "User interface", - "color": "black", - "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" - }, - "billing": { - "displayName": "Billing & Finance", - "color": "black", - "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" - }, - "policy": { - "displayName": "Policy", - "color": "gray", - "description": "Communicates updates related to platform policies, ensuring users are aware of any changes in rules or guidelines that may impact their usage" - }, - "content-management": { - "displayName": "Content Management", - "color": "gray", - "description": "Include changes relevant to managing digital content on the Pantheon platform, ensuring users stay informed about updates related to content creation, editing, and relevant tools" - }, - "deprecated": { - "displayName": "Deprecated", - "color": "red", - "description": "Reserved for updates indicating the phasing out or discontinuation of specific features or functionalities" - }, - "events": { - "displayName": "Events", - "color": "gray", - "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" - }, - "general": { - "displayName": "General", - "color": "gray", - "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" - }, - "migration": { - "displayName": "Migration", - "color": "gray", - "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" - }, - "pantheon-docs": { - "displayName": "Pantheon Docs", - "color": "gray", - "description": "Reserved for updates that involve substantive changes, additions, or clarifications within Pantheon Docs — the centralized hub containing manuals and essential documentation for Pantheon users." - }, - "account-management": { - "displayName": "Account Management", - "color": "gray", - "description": "Highlights updates related to account permissions, user roles, and any changes that impact how users manage and interact with their accounts." - } -}; +{ + "categories": [ + { + "slug": "account-management", + "displayName": "Account Management", + "color": "color-1", + "description": "Highlights updates related to account permissions, user roles, and any changes that impact how users manage and interact with their accounts" + }, + { + "slug": "action-required", + "displayName": "Action Required", + "color": "color-3", + "description": "Requires customer to act in order to avoid disruption" + }, + { + "slug": "billing", + "displayName": "Billing & Finance", + "color": "color-1", + "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" + }, + { + "slug": "deprecated", + "displayName": "Deprecated", + "color": "color-4", + "description": "Reserved for updates indicating the phasing out or discontinuation of specific features or functionalities" + }, + { + "slug": "documentation", + "displayName": "Pantheon Docs", + "color": "color-4", + "description": "Reserved for updates that involve substantive changes, additions, or clarifications within Pantheon Docs — the centralized hub containing manuals and essential documentation for Pantheon users" + }, + { + "slug": "drupal", + "displayName": "Drupal", + "color": "color-9", + "description": "Tailored for updates specific to the Drupal content management system, helping Drupal users stay informed about platform changes that directly impact their workflows" + }, + { + "slug": "events", + "displayName": "Events", + "color": "color-6", + "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" + }, + { + "slug": "front-end-sites", + "displayName": "Front-End Sites", + "color": "color-2", + "description": "Focuses on updates related to Front-End Site (FES) enhancements, ensuring that developers and designers stay informed about changes affecting how they use the product" + }, + { + "slug": "general", + "displayName": "General", + "color": "color-4", + "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" + }, + { + "slug": "infrastructure", + "displayName": "Infrastructure", + "color": "color-10", + "description": "Details changes related to the underlying technology and architecture of the Pantheon platform, providing insights into changes that may impact performance and reliability" + }, + { + "slug": "migration", + "displayName": "Migration", + "color": "color-6", + "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" + }, + { + "slug": "new-feature", + "displayName": "New Feature", + "color": "color-7", + "description": "Consolidates information about both new features and improvements, providing users with insights into enhancements that contribute to a better overall experience" + }, + { + "slug": "performance", + "displayName": "Performance", + "color": "color-7", + "description": "Highlights updates focused on optimizing the speed, efficiency, and overall performance of the Pantheon platform, giving users insights into improvements that enhance user experience" + }, + { + "slug": "policy", + "displayName": "Policy", + "color": "color-10", + "description": "Communicates updates related to platform policies, ensuring users are aware of any changes in rules or guidelines that may impact their usage" + }, + { + "slug": "security", + "displayName": "Security", + "color": "color-5", + "description": "Addresses security-related updates, emphasizing the importance of staying informed about changes aimed at maintaining a secure and protected environment for users" + }, + { + "slug": "tools-apis", + "displayName": "Tools & APIs", + "color": "color-2", + "description": "Keeps users informed about updates related to tools and APIs, helping developers understand changes that may impact their workflows and integrations" + }, + { + "slug": "user-interface", + "displayName": "User interface", + "color": "color-8", + "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" + }, + { + "slug": "wordpress", + "displayName": "WordPress", + "color": "color-8", + "description": "Tailored for updates specific to the WordPress content management system, helping WordPress users stay informed about platform changes that directly impact their workflows" + } + ] +} From cb3519c1af12373231ecb3036597a4c192bbeb2a Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Tue, 23 Jan 2024 13:11:50 -0600 Subject: [PATCH 131/174] Suggest updated colors for a few categories --- .../releaseNoteCategories.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/releasenotescategories/releaseNoteCategories.json b/source/releasenotescategories/releaseNoteCategories.json index afb188f442..8ec1df810d 100644 --- a/source/releasenotescategories/releaseNoteCategories.json +++ b/source/releasenotescategories/releaseNoteCategories.json @@ -39,13 +39,13 @@ { "slug": "events", "displayName": "Events", - "color": "color-6", + "color": "color-4", "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" }, { "slug": "front-end-sites", "displayName": "Front-End Sites", - "color": "color-2", + "color": "color-9", "description": "Focuses on updates related to Front-End Site (FES) enhancements, ensuring that developers and designers stay informed about changes affecting how they use the product" }, { @@ -57,7 +57,7 @@ { "slug": "infrastructure", "displayName": "Infrastructure", - "color": "color-10", + "color": "color-8", "description": "Details changes related to the underlying technology and architecture of the Pantheon platform, providing insights into changes that may impact performance and reliability" }, { @@ -75,7 +75,7 @@ { "slug": "performance", "displayName": "Performance", - "color": "color-7", + "color": "color-6", "description": "Highlights updates focused on optimizing the speed, efficiency, and overall performance of the Pantheon platform, giving users insights into improvements that enhance user experience" }, { @@ -99,13 +99,13 @@ { "slug": "user-interface", "displayName": "User interface", - "color": "color-8", + "color": "color-2", "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" }, { "slug": "wordpress", "displayName": "WordPress", - "color": "color-8", + "color": "color-9", "description": "Tailored for updates specific to the WordPress content management system, helping WordPress users stay informed about platform changes that directly impact their workflows" } ] From 61712d5a5df8274a40b76b8bb1d5ff1cbd94064a Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Tue, 23 Jan 2024 15:43:38 -0600 Subject: [PATCH 132/174] Swap out changelog for release-notes in site nav dropdown menu --- src/layout/header/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/layout/header/index.js b/src/layout/header/index.js index 8414ef3004..18c8678a4f 100644 --- a/src/layout/header/index.js +++ b/src/layout/header/index.js @@ -83,8 +83,8 @@ const mainNavigationLinks = [ }, { linkContent: ( - - Changelog + + Release Notes ), }, From 25b2820b7e81f7281044210d463e4da471053111 Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Tue, 23 Jan 2024 15:57:40 -0600 Subject: [PATCH 133/174] Use 'Release Notes (Changelog)' in the dropdown menu nav instead of 'Release Notes' --- src/layout/header/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layout/header/index.js b/src/layout/header/index.js index 18c8678a4f..799d1503ed 100644 --- a/src/layout/header/index.js +++ b/src/layout/header/index.js @@ -84,7 +84,7 @@ const mainNavigationLinks = [ { linkContent: ( - Release Notes + Release Notes (Changelog) ), }, From df7c04bb4d964221ce0a4a9ea9dcd7e63be9207d Mon Sep 17 00:00:00 2001 From: Rachel Whitton Date: Tue, 23 Jan 2024 16:51:16 -0600 Subject: [PATCH 134/174] Remove dupe entries added to help early dev and replaced by backfill task --- .../2023-08-08-pantheon-advanced-page-cache-1-4-1.md | 9 --------- .../releasenotes/2023-08-18-php-security-updates.md | 9 --------- source/releasenotes/2023-09-30-docs-design-system.md | 9 --------- .../2023-10-31-front-end-sites-build-caching.md | 9 --------- .../2023-11-02-terminus-composer-logs-plugin.md | 12 ------------ .../2023-12-31-new-release-notes-structure.md | 4 +--- 6 files changed, 1 insertion(+), 51 deletions(-) delete mode 100644 source/releasenotes/2023-08-08-pantheon-advanced-page-cache-1-4-1.md delete mode 100644 source/releasenotes/2023-08-18-php-security-updates.md delete mode 100644 source/releasenotes/2023-09-30-docs-design-system.md delete mode 100644 source/releasenotes/2023-10-31-front-end-sites-build-caching.md delete mode 100644 source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md diff --git a/source/releasenotes/2023-08-08-pantheon-advanced-page-cache-1-4-1.md b/source/releasenotes/2023-08-08-pantheon-advanced-page-cache-1-4-1.md deleted file mode 100644 index e9c4ad53f0..0000000000 --- a/source/releasenotes/2023-08-08-pantheon-advanced-page-cache-1-4-1.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Pantheon Advanced Page Cache WordPress Plugin Updates" -published_date: "2023-08-08" ---- - - -We released an update for the [Pantheon Advanced Page Cache](https://wordpress.org/plugins/pantheon-advanced-page-cache/) WordPress plugin which adds a filter to allow disabling surrogate keys for posts' taxonomy terms. This can be especially helpful for posts with large numbers of taxonomies (such as WooCommerce products with a large number of global attributes). - -For more information, see [Pantheon documentation](/guides/wordpress-configurations/plugins#disable-surrogate-keys-for-taxonomy-terms). diff --git a/source/releasenotes/2023-08-18-php-security-updates.md b/source/releasenotes/2023-08-18-php-security-updates.md deleted file mode 100644 index eff44cf27d..0000000000 --- a/source/releasenotes/2023-08-18-php-security-updates.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "PHP Security Updates" -published_date: "2023-08-18" ---- - - -Pantheon has deployed PHP versions [8.2.9](https://www.php.net/ChangeLog-8.php#8.2.9), [8.1.22](https://www.php.net/ChangeLog-8.php#8.1.22), and [8.0.30](https://www.php.net/ChangeLog-8.php#8.0.30) to customer sites running on the platform. These releases address vulnerabilities disclosed in [CVE-2023-3823](https://nvd.nist.gov/vuln/detail/CVE-2023-3823) and [CVE-2023-3824](https://nvd.nist.gov/vuln/detail/CVE-2023-3824). - -If you are using PHP 8.2, 8.1 or 8.0, there is nothing further that you need to do. If you are still on PHP 7.4 or earlier, though, you should schedule some time to upgrade to a supported version.While the vulnerabilities patched in these latest releases are not reported to affect PHP 7.4, the fact remains that there could be (and probably are) unpatched vulnerabilities in the end-of-life versions. Read more about it in Greg Anderson’s [blog post](https://pantheon.io/blog/php-829-security-release-demonstrates-pantheons-commitment-protecting-your-sites). diff --git a/source/releasenotes/2023-09-30-docs-design-system.md b/source/releasenotes/2023-09-30-docs-design-system.md deleted file mode 100644 index 77b9335c2d..0000000000 --- a/source/releasenotes/2023-09-30-docs-design-system.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Documentation Site Updated with the Design System -published_date: "2023-09-30" ---- - - -We're excited to announce that our documentation site has been seamlessly integrated with our brand-new design system. This enhancement brings a fresh and cohesive look to our documentation, providing a unified and visually appealing experience for our users. Explore the updated, improved, and more accessible [Docs site](/) today. - -![Docs Design System](../images/DocsDesignSystem.png) diff --git a/source/releasenotes/2023-10-31-front-end-sites-build-caching.md b/source/releasenotes/2023-10-31-front-end-sites-build-caching.md deleted file mode 100644 index 4dc7f828b7..0000000000 --- a/source/releasenotes/2023-10-31-front-end-sites-build-caching.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Front-End Build Site Caching -published_date: "2023-10-31" ---- - -Pantheon introduced a new build pipeline for Front End Sites to significantly improve build times. Beginning on November 13th, 2023, newly created sites are automatically using the new pipeline and cannot opt back to the old pipeline. Sites made prior to that date can opt-in to the new pipeline to take advantage of the new features. All pre-existing sites that do not opt-in will be switched over for new builds on or around January 15th. - -Additionally, we are adding support for Node 18 (for dynamic sites) and 20 (for both static and dynamic sites). To select a specific version, Pantheon is [moving away from using .nvmrc](/guides/decoupled/overview/manage-settings#nodejs-version) and will instead look to the [“engines” field](https://docs.npmjs.com/cli/v8/configuring-npm/package-json#engines) in your project’s `package.json` file. - diff --git a/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md b/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md deleted file mode 100644 index 2ce0d8b346..0000000000 --- a/source/releasenotes/2023-11-02-terminus-composer-logs-plugin.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Terminus Composer Logs Plugin 1.0.0 Released -published_date: "2023-11-02" ---- - - -Visibility into composer logs has been a top customer request. Now, if you need to debug a composer build failure due to an error, install the Terminus Composer Logs plugin on your machine to view more details. Upstream Update logs are also available. Installation instructions and command usage can be found here in the [plugin's GitHub repository](https://github.com/pantheon-systems/terminus-composer-logs-plugin). - - - -TODO: Does this note belong in "action required?" Not every customer needs to do something. Only those who want to use the plugin. -After discussion with Ingrid, no this would not get "Action required". because that should only be used for things that would disrupt. diff --git a/source/releasenotes/2023-12-31-new-release-notes-structure.md b/source/releasenotes/2023-12-31-new-release-notes-structure.md index 4dc4cb5381..a0174df68f 100644 --- a/source/releasenotes/2023-12-31-new-release-notes-structure.md +++ b/source/releasenotes/2023-12-31-new-release-notes-structure.md @@ -1,7 +1,7 @@ --- title: New Release Notes Structure published_date: "2023-12-31" -categories: [security, documentation] +categories: [documentation] --- For nearly a decade, we have published a monthly "changelog" here within our Documentation site that summarizes significant changes to the platform. @@ -14,5 +14,3 @@ This switch will support more proactive communication and ensure that any notewo Here you will find: * A listing of all Release Notes at docs.pantheon.io/release-notes * A listing of Release Notes by category (WordPress, Drupal, etc) like docs.pantheon.io/release-notes/infrastructure - - From 71eb7cb5f6d8b4348787864e5bf49f73bcf3c917 Mon Sep 17 00:00:00 2001 From: M Miller Date: Tue, 23 Jan 2024 15:01:29 -0800 Subject: [PATCH 135/174] Ensure release note tags are alpha sorted --- src/components/ReleaseNoteCategories/index.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/components/ReleaseNoteCategories/index.js b/src/components/ReleaseNoteCategories/index.js index a89614c616..a202c2564e 100644 --- a/src/components/ReleaseNoteCategories/index.js +++ b/src/components/ReleaseNoteCategories/index.js @@ -10,17 +10,20 @@ const ReleaseNoteCategories = ({ categories, displayType, className }) => { return null } - /* If there is one category display the singular form.*/ + // If there is one category display the singular form. const categoryHeading = categories.length === 1 ? "Category:" : "Categories:" - /* Change heading level based on displayType prop */ + // Change heading level based on displayType prop. const HeadingLevel = displayType === "page" ? "h2" : "h3" + // Put categories in alphabetical order. + const sortedCategories = categories.sort() + return (
{categoryHeading}
- {categories.map((categorySlug, index) => ( + {sortedCategories.map((categorySlug, index) => ( } From 75ed1ab141e3ff0cf915448fce539a9f854be851 Mon Sep 17 00:00:00 2001 From: M Miller Date: Tue, 23 Jan 2024 15:04:17 -0800 Subject: [PATCH 136/174] Update category label casing per convo w/Ingrid --- .../releaseNoteCategories.json | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/source/releasenotescategories/releaseNoteCategories.json b/source/releasenotescategories/releaseNoteCategories.json index 8ec1df810d..6644041eaa 100644 --- a/source/releasenotescategories/releaseNoteCategories.json +++ b/source/releasenotescategories/releaseNoteCategories.json @@ -2,25 +2,25 @@ "categories": [ { "slug": "account-management", - "displayName": "Account Management", + "displayName": "account management", "color": "color-1", "description": "Highlights updates related to account permissions, user roles, and any changes that impact how users manage and interact with their accounts" }, { "slug": "action-required", - "displayName": "Action Required", + "displayName": "action required", "color": "color-3", "description": "Requires customer to act in order to avoid disruption" }, { "slug": "billing", - "displayName": "Billing & Finance", + "displayName": "billing & finance", "color": "color-1", "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" }, { "slug": "deprecated", - "displayName": "Deprecated", + "displayName": "deprecated", "color": "color-4", "description": "Reserved for updates indicating the phasing out or discontinuation of specific features or functionalities" }, @@ -38,7 +38,7 @@ }, { "slug": "events", - "displayName": "Events", + "displayName": "events", "color": "color-4", "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" }, @@ -50,43 +50,43 @@ }, { "slug": "general", - "displayName": "General", + "displayName": "general", "color": "color-4", "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" }, { "slug": "infrastructure", - "displayName": "Infrastructure", + "displayName": "infrastructure", "color": "color-8", "description": "Details changes related to the underlying technology and architecture of the Pantheon platform, providing insights into changes that may impact performance and reliability" }, { "slug": "migration", - "displayName": "Migration", + "displayName": "migration", "color": "color-6", "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" }, { "slug": "new-feature", - "displayName": "New Feature", + "displayName": "new feature", "color": "color-7", "description": "Consolidates information about both new features and improvements, providing users with insights into enhancements that contribute to a better overall experience" }, { "slug": "performance", - "displayName": "Performance", + "displayName": "performance", "color": "color-6", "description": "Highlights updates focused on optimizing the speed, efficiency, and overall performance of the Pantheon platform, giving users insights into improvements that enhance user experience" }, { "slug": "policy", - "displayName": "Policy", + "displayName": "policy", "color": "color-10", "description": "Communicates updates related to platform policies, ensuring users are aware of any changes in rules or guidelines that may impact their usage" }, { "slug": "security", - "displayName": "Security", + "displayName": "security", "color": "color-5", "description": "Addresses security-related updates, emphasizing the importance of staying informed about changes aimed at maintaining a secure and protected environment for users" }, @@ -98,7 +98,7 @@ }, { "slug": "user-interface", - "displayName": "User interface", + "displayName": "user interface", "color": "color-2", "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" }, From d9f54c76e643eb9060a5a1b81a4af8dce721b4a0 Mon Sep 17 00:00:00 2001 From: M Miller Date: Tue, 23 Jan 2024 15:11:56 -0800 Subject: [PATCH 137/174] Update RN search language --- src/templates/releaseNotesListing.js | 11 +++++++---- src/templates/releaseNotesListingByCategory.js | 11 +++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index a21746bfca..93d985a8ff 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -72,7 +72,10 @@ const ReleaseNotesListingTemplate = ({ data }) => { // Render release notes or no results message. const noResultsMessage = ( -

No results.

+

+ No results found. Try refining your search terms or explore other + categories. +

) const renderedReleaseNotes = releasenotes.length !== 0 ? renderedTeasers : noResultsMessage @@ -104,12 +107,12 @@ const ReleaseNotesListingTemplate = ({ data }) => { }} >
- +
{ // Render release notes or no results message. const noResultsMessage = ( -

No results.

+

+ No results found. Try refining your search terms or explore other + categories. +

) const renderedReleaseNotes = releasenotes.length !== 0 ? renderedTeasers : noResultsMessage @@ -108,12 +111,12 @@ const ReleaseNotesListingByCategoryTemplate = ({ data, pageContext }) => { }} >
- +
Date: Tue, 23 Jan 2024 16:31:02 -0800 Subject: [PATCH 138/174] fix className syntax --- src/templates/releaseNotesListing.js | 2 +- src/templates/releaseNotesListingByCategory.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 93d985a8ff..fe1cff106d 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -106,7 +106,7 @@ const ReleaseNotesListingTemplate = ({ data }) => { flexGrow: "2", }} > -
+
{ flexGrow: "2", }} > -
+
Date: Tue, 23 Jan 2024 17:20:53 -0800 Subject: [PATCH 139/174] Testing search highlight functionality --- package-lock.json | 13 +++++++++++++ package.json | 1 + src/templates/releaseNotesListing.js | 17 ++++++++++++++++- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index f67467208e..672b8176d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,6 +68,7 @@ "devDependencies": { "@octokit/rest": "^16.43.2", "date-fns": "^2.29.3", + "mark.js": "^8.11.1", "prettier": "^2.8.3", "react-date-range": "^1.4.0" }, @@ -18792,6 +18793,12 @@ "node": ">=0.10.0" } }, + "node_modules/mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", + "dev": true + }, "node_modules/markdown-escapes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", @@ -40243,6 +40250,12 @@ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" }, + "mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", + "dev": true + }, "markdown-escapes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", diff --git a/package.json b/package.json index 2c292e303a..fc4d46d703 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,7 @@ "devDependencies": { "@octokit/rest": "^16.43.2", "date-fns": "^2.29.3", + "mark.js": "^8.11.1", "prettier": "^2.8.3", "react-date-range": "^1.4.0" }, diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index fe1cff106d..725ef25643 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -1,6 +1,7 @@ import React, { useState } from "react" import { graphql } from "gatsby" import debounce from "lodash.debounce" +import Mark from "mark.js" import Layout from "../layout/layout" import SEO from "../layout/seo" @@ -52,6 +53,17 @@ const ReleaseNotesListingTemplate = ({ data }) => { // Update state based on query. setFilteredData(filteredData) setQuery(query) + + var context = document.querySelector(".docs-release-note-results") + var markInstance = new Mark(context) + + setTimeout(function () { + markInstance.unmark({ + done: function () { + markInstance.mark(query) + }, + }) + }, 100) } // Debounce search input. @@ -120,7 +132,10 @@ const ReleaseNotesListingTemplate = ({ data }) => {
-
+
{renderedReleaseNotes}
From 1f1f310a619b346dd2253caf167b8a9670651851 Mon Sep 17 00:00:00 2001 From: M Miller Date: Tue, 23 Jan 2024 17:36:04 -0800 Subject: [PATCH 140/174] add highlighted mark styles --- src/styles/main.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/styles/main.css b/src/styles/main.css index efe27a8b5a..0d96f1d3c6 100755 --- a/src/styles/main.css +++ b/src/styles/main.css @@ -21,6 +21,11 @@ table { margin-block-end: var(--pds-spacing-m) !important; } +/* Highlighted text */ +mark { + background-color: #fff1a9; +} + /* Landing pages */ .landing-page__header { text-align: center; From 2ed82fe9e8fc26a782a064acaff6699bd0c9656e Mon Sep 17 00:00:00 2001 From: M Miller Date: Tue, 23 Jan 2024 17:38:28 -0800 Subject: [PATCH 141/174] Update releaseNoteCategories.json Making all tags sentence case --- .../releaseNoteCategories.json | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/source/releasenotescategories/releaseNoteCategories.json b/source/releasenotescategories/releaseNoteCategories.json index 6644041eaa..dea313a426 100644 --- a/source/releasenotescategories/releaseNoteCategories.json +++ b/source/releasenotescategories/releaseNoteCategories.json @@ -2,25 +2,25 @@ "categories": [ { "slug": "account-management", - "displayName": "account management", + "displayName": "Account management", "color": "color-1", "description": "Highlights updates related to account permissions, user roles, and any changes that impact how users manage and interact with their accounts" }, { "slug": "action-required", - "displayName": "action required", + "displayName": "Action required", "color": "color-3", "description": "Requires customer to act in order to avoid disruption" }, { "slug": "billing", - "displayName": "billing & finance", + "displayName": "Billing & Finance", "color": "color-1", "description": "Covers finance and billing-related updates, allowing billing and finance managers to track changes affecting their financial aspects" }, { "slug": "deprecated", - "displayName": "deprecated", + "displayName": "Deprecated", "color": "color-4", "description": "Reserved for updates indicating the phasing out or discontinuation of specific features or functionalities" }, @@ -38,7 +38,7 @@ }, { "slug": "events", - "displayName": "events", + "displayName": "Events", "color": "color-4", "description": "Highlights updates related to special events, promotions, or limited-time occurrences on the Pantheon platform, keeping users informed about time-sensitive opportunities" }, @@ -50,43 +50,43 @@ }, { "slug": "general", - "displayName": "general", + "displayName": "General", "color": "color-4", "description": "Serves as a catch-all for updates that don't neatly fit into specific categories, offering a broad overview of general changes on the Pantheon platform" }, { "slug": "infrastructure", - "displayName": "infrastructure", + "displayName": "Infrastructure", "color": "color-8", "description": "Details changes related to the underlying technology and architecture of the Pantheon platform, providing insights into changes that may impact performance and reliability" }, { "slug": "migration", - "displayName": "migration", + "displayName": "Migration", "color": "color-6", "description": "Reserved for updates related to migrations, ensuring users are informed about changes affecting the movement of data and content within the Pantheon platform" }, { "slug": "new-feature", - "displayName": "new feature", + "displayName": "New feature", "color": "color-7", "description": "Consolidates information about both new features and improvements, providing users with insights into enhancements that contribute to a better overall experience" }, { "slug": "performance", - "displayName": "performance", + "displayName": "Performance", "color": "color-6", "description": "Highlights updates focused on optimizing the speed, efficiency, and overall performance of the Pantheon platform, giving users insights into improvements that enhance user experience" }, { "slug": "policy", - "displayName": "policy", + "displayName": "Policy", "color": "color-10", "description": "Communicates updates related to platform policies, ensuring users are aware of any changes in rules or guidelines that may impact their usage" }, { "slug": "security", - "displayName": "security", + "displayName": "Security", "color": "color-5", "description": "Addresses security-related updates, emphasizing the importance of staying informed about changes aimed at maintaining a secure and protected environment for users" }, @@ -98,7 +98,7 @@ }, { "slug": "user-interface", - "displayName": "user interface", + "displayName": "User interface", "color": "color-2", "description": "Highlights updates related to changes in the user interface, ensuring that designers, marketers, and other users are aware of alterations to the visual and interactive elements of the platform" }, From b0c73b8203c6017fbd7a1cd0b3ef1e915cc39eb6 Mon Sep 17 00:00:00 2001 From: M Miller Date: Tue, 23 Jan 2024 17:41:27 -0800 Subject: [PATCH 142/174] Update to sentence case in other RN UI --- src/components/releaseNoteCategorySelector.js | 2 +- src/templates/releaseNotesListing.js | 4 ++-- src/templates/releaseNotesListingByCategory.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/releaseNoteCategorySelector.js b/src/components/releaseNoteCategorySelector.js index 8e5864a0ef..0e848670cb 100644 --- a/src/components/releaseNoteCategorySelector.js +++ b/src/components/releaseNoteCategorySelector.js @@ -8,7 +8,7 @@ const ReleaseNoteCategorySelector = () => { const categoryMenuItems = [ { isLink: true, - linkContent: All Release Notes, + linkContent: All release notes, }, { isSeparator: true, diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index fe1cff106d..b6879e362f 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -83,7 +83,7 @@ const ReleaseNotesListingTemplate = ({ data }) => { return ( @@ -92,7 +92,7 @@ const ReleaseNotesListingTemplate = ({ data }) => { width={containerWidth} className="pds-spacing-mar-block-start-3xl" > -

Pantheon Release Notes

+

Pantheon release notes

{ return ( @@ -95,7 +95,7 @@ const ReleaseNotesListingByCategoryTemplate = ({ data, pageContext }) => { className="pds-spacing-mar-block-start-3xl" >

- Pantheon Release Notes: {categoryData["displayName"]} + Pantheon release notes: {categoryData["displayName"]}

Date: Wed, 24 Jan 2024 10:04:53 -0800 Subject: [PATCH 143/174] Update releaseNotesListing.js remove unnecessary import --- src/templates/releaseNotesListing.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 3d6b2287ad..272de1e59b 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -7,7 +7,6 @@ import Layout from "../layout/layout" import SEO from "../layout/seo" import ReleaseNoteTeaser from "../components/ReleaseNoteTeaser" import ReleaseNoteCategorySelector from "../components/releaseNoteCategorySelector.js" -import { releaseNoteFragment } from "../fragments/releaseNote.js" import { Container, From 8258d2195601eabf90eac4b306e32d2ac2abce65 Mon Sep 17 00:00:00 2001 From: M Miller Date: Wed, 24 Jan 2024 10:10:41 -0800 Subject: [PATCH 144/174] Finish adding RN highlighting --- src/templates/releaseNotesListing.js | 1 + .../releaseNotesListingByCategory.js | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/templates/releaseNotesListing.js b/src/templates/releaseNotesListing.js index 272de1e59b..894aad7a59 100644 --- a/src/templates/releaseNotesListing.js +++ b/src/templates/releaseNotesListing.js @@ -53,6 +53,7 @@ const ReleaseNotesListingTemplate = ({ data }) => { setFilteredData(filteredData) setQuery(query) + // Mark releasenotes based on query. var context = document.querySelector(".docs-release-note-results") var markInstance = new Mark(context) diff --git a/src/templates/releaseNotesListingByCategory.js b/src/templates/releaseNotesListingByCategory.js index 370c716f3f..d87dfe7cab 100644 --- a/src/templates/releaseNotesListingByCategory.js +++ b/src/templates/releaseNotesListingByCategory.js @@ -1,6 +1,7 @@ import React, { useState } from "react" import { graphql } from "gatsby" import debounce from "lodash.debounce" +import Mark from "mark.js" import Layout from "../layout/layout" import SEO from "../layout/seo" @@ -51,9 +52,22 @@ const ReleaseNotesListingByCategoryTemplate = ({ data, pageContext }) => { formattedDate.toLowerCase().includes(query.toLowerCase()) ) }) + // Update state based on query. setFilteredData(filteredData) setQuery(query) + + // Mark releasenotes based on query. + var context = document.querySelector(".docs-release-note-results") + var markInstance = new Mark(context) + + setTimeout(function () { + markInstance.unmark({ + done: function () { + markInstance.mark(query) + }, + }) + }, 100) } // Debounce search input. @@ -124,7 +138,10 @@ const ReleaseNotesListingByCategoryTemplate = ({ data, pageContext }) => {
-
+
{renderedReleaseNotes}
From 8de17a02d4587e1197cc2e0e6c0e992f52f7aaab Mon Sep 17 00:00:00 2001 From: M Miller Date: Wed, 24 Jan 2024 14:00:30 -0800 Subject: [PATCH 145/174] update PDS toolkit --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 672b8176d2..b86ba77fb5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4130,9 +4130,9 @@ } }, "node_modules/@pantheon-systems/pds-toolkit-react": { - "version": "1.0.0-dev.72", - "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.72.tgz", - "integrity": "sha512-KPnwoFj3z9jXwnJqn2V/jjaLVCw+DnupdJggURxsq23jNLfCjdVLJJuRLB7JSFhISJUT5j4HZlrDVabAMjqfAw==", + "version": "1.0.0-dev.73", + "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.73.tgz", + "integrity": "sha512-fHHJsATAUhxs0riomJ9K2LvrUgYqgsEw1YGk7nZ6ZxRQyb/ilpPgEDHLxT3o5UHjKrk0qhNarx01MR5xTRhlfw==", "dependencies": { "@floating-ui/react": "^0.24.3", "focus-trap-react": "^10.2.1", @@ -29366,9 +29366,9 @@ } }, "@pantheon-systems/pds-toolkit-react": { - "version": "1.0.0-dev.72", - "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.72.tgz", - "integrity": "sha512-KPnwoFj3z9jXwnJqn2V/jjaLVCw+DnupdJggURxsq23jNLfCjdVLJJuRLB7JSFhISJUT5j4HZlrDVabAMjqfAw==", + "version": "1.0.0-dev.73", + "resolved": "https://registry.npmjs.org/@pantheon-systems/pds-toolkit-react/-/pds-toolkit-react-1.0.0-dev.73.tgz", + "integrity": "sha512-fHHJsATAUhxs0riomJ9K2LvrUgYqgsEw1YGk7nZ6ZxRQyb/ilpPgEDHLxT3o5UHjKrk0qhNarx01MR5xTRhlfw==", "requires": { "@floating-ui/react": "^0.24.3", "focus-trap-react": "^10.2.1", From ee6b4ecdc1f132cee4b95e6b9cdf8dff315c14cc Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 09:47:10 -0800 Subject: [PATCH 146/174] Update 2023-12-31-new-release-notes-structure.md --- .../2023-12-31-new-release-notes-structure.md | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/source/releasenotes/2023-12-31-new-release-notes-structure.md b/source/releasenotes/2023-12-31-new-release-notes-structure.md index a0174df68f..2430f6918f 100644 --- a/source/releasenotes/2023-12-31-new-release-notes-structure.md +++ b/source/releasenotes/2023-12-31-new-release-notes-structure.md @@ -1,16 +1,22 @@ --- -title: New Release Notes Structure -published_date: "2023-12-31" +title: Pantheon release notes - A new year, a new chapter +published_date: "2024-01-25" categories: [documentation] --- -For nearly a decade, we have published a monthly "changelog" here within our Documentation site that summarizes significant changes to the platform. -Going forward in 2024 we are changing some of the details of how we publish and organize this information. +As we embark on a new year, we're excited to unveil a transformation. This January marks the introduction of **Pantheon release notes**, a rebranding of our changelog. Our aim is to elevate your platform experience by providing even more valuable insights into product updates. -Rather than treating the monthly retrospective as the base unit of information, we will instead publish a new "Release Note" for each significant change to the platform as needed, rather than waiting for the monthly summary. +**What's new?** +* **Enhanced visibility:** Discover our improved interface with added tags to each release note, indicating their category and whether action is required. This feature ensures quick insights at a glance, making your navigation smoother. +* **Filter functionality:** Explore the convenience of our newly integrated filter functionality, allowing you to tailor your release note view based on specific tags. This feature ensures you get information that's most relevant to you. -This switch will support more proactive communication and ensure that any noteworthy change is marked here in addition to the blog posts, emails, and other channels we use to communicate with our customers. +**What’s coming up?** +Get ready for a streamlined and more dynamic experience with Pantheon release notes. We're committed to keeping you in the loop every step of the way, ensuring you stay informed about the latest. -Here you will find: -* A listing of all Release Notes at docs.pantheon.io/release-notes -* A listing of Release Notes by category (WordPress, Drupal, etc) like docs.pantheon.io/release-notes/infrastructure +* **Frequent updates:** Say goodbye to waiting for a monthly summary. We're shifting from the monthly retrospective model to publishing a release note for each significant update, providing you with real-time information. +* **Proactive communication:** This change supports more proactive communication. Now, any noteworthy change will be marked here, complementing other channels like blog posts and emails. + +**What lies ahead?** +This is just the beginning! Stay tuned for more enhancements down the road as we continue to refine and elevate your Pantheon experience. + +We appreciate your continued support and look forward to a year filled with collaborative success. From cd048998502f19b781d5b1bc6aa119f6f56ee7fa Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 09:48:39 -0800 Subject: [PATCH 147/174] Update 2023-12-31-new-release-notes-structure.md --- source/releasenotes/2023-12-31-new-release-notes-structure.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/releasenotes/2023-12-31-new-release-notes-structure.md b/source/releasenotes/2023-12-31-new-release-notes-structure.md index 2430f6918f..ee23f1ecab 100644 --- a/source/releasenotes/2023-12-31-new-release-notes-structure.md +++ b/source/releasenotes/2023-12-31-new-release-notes-structure.md @@ -11,12 +11,14 @@ As we embark on a new year, we're excited to unveil a transformation. This Janua * **Filter functionality:** Explore the convenience of our newly integrated filter functionality, allowing you to tailor your release note view based on specific tags. This feature ensures you get information that's most relevant to you. **What’s coming up?** + Get ready for a streamlined and more dynamic experience with Pantheon release notes. We're committed to keeping you in the loop every step of the way, ensuring you stay informed about the latest. * **Frequent updates:** Say goodbye to waiting for a monthly summary. We're shifting from the monthly retrospective model to publishing a release note for each significant update, providing you with real-time information. * **Proactive communication:** This change supports more proactive communication. Now, any noteworthy change will be marked here, complementing other channels like blog posts and emails. **What lies ahead?** + This is just the beginning! Stay tuned for more enhancements down the road as we continue to refine and elevate your Pantheon experience. We appreciate your continued support and look forward to a year filled with collaborative success. From 6be7a1018c0ae5b746d9e199a476446a27373bf7 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 09:50:09 -0800 Subject: [PATCH 148/174] Rename 2023-12-31-new-release-notes-structure.md to 2024-01-25 Pantheon release notes - A new year, a new chapter.md --- ...4-01-25 Pantheon release notes - A new year, a new chapter.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename source/releasenotes/{2023-12-31-new-release-notes-structure.md => 2024-01-25 Pantheon release notes - A new year, a new chapter.md} (100%) diff --git a/source/releasenotes/2023-12-31-new-release-notes-structure.md b/source/releasenotes/2024-01-25 Pantheon release notes - A new year, a new chapter.md similarity index 100% rename from source/releasenotes/2023-12-31-new-release-notes-structure.md rename to source/releasenotes/2024-01-25 Pantheon release notes - A new year, a new chapter.md From 7bc7aaf80bb6fd1b3d30b000c3984e236b6ea348 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:03:42 -0800 Subject: [PATCH 149/174] Rename 2024-01-25 Pantheon release notes - A new year, a new chapter.md to 2024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md --- ...024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename source/releasenotes/{2024-01-25 Pantheon release notes - A new year, a new chapter.md => 2024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md} (100%) diff --git a/source/releasenotes/2024-01-25 Pantheon release notes - A new year, a new chapter.md b/source/releasenotes/2024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md similarity index 100% rename from source/releasenotes/2024-01-25 Pantheon release notes - A new year, a new chapter.md rename to source/releasenotes/2024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md From 0a7b2f56d294f6b1fe26310d57418a0b4d828b17 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:05:22 -0800 Subject: [PATCH 150/174] Update 2024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md --- ...24-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md b/source/releasenotes/2024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md index ee23f1ecab..e9a3f421e8 100644 --- a/source/releasenotes/2024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md +++ b/source/releasenotes/2024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md @@ -1,7 +1,7 @@ --- title: Pantheon release notes - A new year, a new chapter published_date: "2024-01-25" -categories: [documentation] +categories: [new-feature, user-interface] --- As we embark on a new year, we're excited to unveil a transformation. This January marks the introduction of **Pantheon release notes**, a rebranding of our changelog. Our aim is to elevate your platform experience by providing even more valuable insights into product updates. From 86ca7896671303f4e6fe8df2e6f5555867e4047a Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:17:56 -0800 Subject: [PATCH 151/174] Create 2024-01-24-WP-CLI-v2-9-0-release-now-available-on-Pantheon.md --- ...2-9-0-release-now-available-on-Pantheon.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 source/releasenotes/2024-01-24-WP-CLI-v2-9-0-release-now-available-on-Pantheon.md diff --git a/source/releasenotes/2024-01-24-WP-CLI-v2-9-0-release-now-available-on-Pantheon.md b/source/releasenotes/2024-01-24-WP-CLI-v2-9-0-release-now-available-on-Pantheon.md new file mode 100644 index 0000000000..955a895bad --- /dev/null +++ b/source/releasenotes/2024-01-24-WP-CLI-v2-9-0-release-now-available-on-Pantheon.md @@ -0,0 +1,21 @@ +--- +title: WP-CLI v2.9.0 release now available on Pantheon +published_date: "2024-01-25" +categories: [wordpress] +--- + +We're thrilled to announce the availability of WP-CLI v2.9.0 on the Pantheon platform. + +WP-CLI is easily accessible for any WordPress site on Pantheon through our CLI, [Terminus](https://docs.pantheon.io/terminus). Manage your WordPress installations efficiently with the power of WP-CLI at your fingertips. + +**Highlights** +* **Enhanced PHP 8.2 support:** +This release is dedicated to refining support for [PHP 8.2](https://docs.pantheon.io/guides/php), the recommended version on Pantheon. +* **Optimized compatibility with WordPress 6.4:** +We've worked to guarantee seamless compatibility, providing you with the best performance and features available. +* **Introducing "wp config is-true" command:** +Our Pantheon engineers have introduced the new "wp config is-true" command. Specifically designed for shell scripting, this command improves WP-CLI functionality and is already integrated into some of our automation processes. +* **Bug fixes:** +Although primarily a compact release, WP-CLI v2.9.0 brings a significant impact with crucial bug fixes to enhance usability. + +For those who love diving into the details, we encourage you to explore the [detailed WP-CLI changelog](https://make.wordpress.org/cli/2023/10/25/wp-cli-v2-9-0-release-notes/#changelog). From 33449eb585b07a7f006b9ce37897e8ef62576575 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:20:54 -0800 Subject: [PATCH 152/174] Create 2024-01-23-wordpress-6-4-2-security-update.md --- ...4-01-23-wordpress-6-4-2-security-update.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md diff --git a/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md b/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md new file mode 100644 index 0000000000..955a895bad --- /dev/null +++ b/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md @@ -0,0 +1,21 @@ +--- +title: WP-CLI v2.9.0 release now available on Pantheon +published_date: "2024-01-25" +categories: [wordpress] +--- + +We're thrilled to announce the availability of WP-CLI v2.9.0 on the Pantheon platform. + +WP-CLI is easily accessible for any WordPress site on Pantheon through our CLI, [Terminus](https://docs.pantheon.io/terminus). Manage your WordPress installations efficiently with the power of WP-CLI at your fingertips. + +**Highlights** +* **Enhanced PHP 8.2 support:** +This release is dedicated to refining support for [PHP 8.2](https://docs.pantheon.io/guides/php), the recommended version on Pantheon. +* **Optimized compatibility with WordPress 6.4:** +We've worked to guarantee seamless compatibility, providing you with the best performance and features available. +* **Introducing "wp config is-true" command:** +Our Pantheon engineers have introduced the new "wp config is-true" command. Specifically designed for shell scripting, this command improves WP-CLI functionality and is already integrated into some of our automation processes. +* **Bug fixes:** +Although primarily a compact release, WP-CLI v2.9.0 brings a significant impact with crucial bug fixes to enhance usability. + +For those who love diving into the details, we encourage you to explore the [detailed WP-CLI changelog](https://make.wordpress.org/cli/2023/10/25/wp-cli-v2-9-0-release-notes/#changelog). From 14142954a2ebac7c13b633dc6fb0c7c3df0df12f Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:21:38 -0800 Subject: [PATCH 153/174] Rename 2024-01-24-WP-CLI-v2-9-0-release-now-available-on-Pantheon.md to 2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md --- ...2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename source/releasenotes/{2024-01-24-WP-CLI-v2-9-0-release-now-available-on-Pantheon.md => 2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md} (100%) diff --git a/source/releasenotes/2024-01-24-WP-CLI-v2-9-0-release-now-available-on-Pantheon.md b/source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md similarity index 100% rename from source/releasenotes/2024-01-24-WP-CLI-v2-9-0-release-now-available-on-Pantheon.md rename to source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md From 21da92dd6757d60a9afc3df0d994d4d3e682d33b Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:25:06 -0800 Subject: [PATCH 154/174] Update 2024-01-23-wordpress-6-4-2-security-update.md --- ...4-01-23-wordpress-6-4-2-security-update.md | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md b/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md index 955a895bad..7cfbf60910 100644 --- a/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md +++ b/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md @@ -1,21 +1,17 @@ --- -title: WP-CLI v2.9.0 release now available on Pantheon +title: WordPress 6.4.2 security updates published_date: "2024-01-25" -categories: [wordpress] +categories: [wordpress, security] --- -We're thrilled to announce the availability of WP-CLI v2.9.0 on the Pantheon platform. - -WP-CLI is easily accessible for any WordPress site on Pantheon through our CLI, [Terminus](https://docs.pantheon.io/terminus). Manage your WordPress installations efficiently with the power of WP-CLI at your fingertips. +The latest version of WordPress, 6.4.2, became available on Pantheon as of December 6, 2023. **Highlights** -* **Enhanced PHP 8.2 support:** -This release is dedicated to refining support for [PHP 8.2](https://docs.pantheon.io/guides/php), the recommended version on Pantheon. -* **Optimized compatibility with WordPress 6.4:** -We've worked to guarantee seamless compatibility, providing you with the best performance and features available. -* **Introducing "wp config is-true" command:** -Our Pantheon engineers have introduced the new "wp config is-true" command. Specifically designed for shell scripting, this command improves WP-CLI functionality and is already integrated into some of our automation processes. -* **Bug fixes:** -Although primarily a compact release, WP-CLI v2.9.0 brings a significant impact with crucial bug fixes to enhance usability. +* **Security updates:** + +Addressed a Remote Code Execution vulnerability. While not directly exploitable in core, its potential severity was recognized, especially when combined with certain plugins, particularly in multisite installations. +* **[7 bug fixes](https://core.trac.wordpress.org/query?status=closed&milestone=6.4.2&groupdesc=1&group=resolution&col=id&col=summary&col=status&col=milestone&col=owner&col=type&col=priority&col=keywords&order=priority) in Core** + +Resolved an issue causing inconsistencies in stylesheet and theme directories. -For those who love diving into the details, we encourage you to explore the [detailed WP-CLI changelog](https://make.wordpress.org/cli/2023/10/25/wp-cli-v2-9-0-release-notes/#changelog). +Upgrade to WordPress 6.4.2 right from your Pantheon dashboard or Terminus for added security. From 917aa67ccaae143fc10ae62e5bef4a6abaf93ae3 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:26:29 -0800 Subject: [PATCH 155/174] Update 2024-01-23-wordpress-6-4-2-security-update.md --- .../2024-01-23-wordpress-6-4-2-security-update.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md b/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md index 7cfbf60910..8607ec2c26 100644 --- a/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md +++ b/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md @@ -7,11 +7,7 @@ categories: [wordpress, security] The latest version of WordPress, 6.4.2, became available on Pantheon as of December 6, 2023. **Highlights** -* **Security updates:** - -Addressed a Remote Code Execution vulnerability. While not directly exploitable in core, its potential severity was recognized, especially when combined with certain plugins, particularly in multisite installations. -* **[7 bug fixes](https://core.trac.wordpress.org/query?status=closed&milestone=6.4.2&groupdesc=1&group=resolution&col=id&col=summary&col=status&col=milestone&col=owner&col=type&col=priority&col=keywords&order=priority) in Core** - -Resolved an issue causing inconsistencies in stylesheet and theme directories. +* **Security updates:** Addressed a Remote Code Execution vulnerability. While not directly exploitable in core, its potential severity was recognized, especially when combined with certain plugins, particularly in multisite installations. +* **[7 bug fixes](https://core.trac.wordpress.org/query?status=closed&milestone=6.4.2&groupdesc=1&group=resolution&col=id&col=summary&col=status&col=milestone&col=owner&col=type&col=priority&col=keywords&order=priority) in Core:** Resolved an issue causing inconsistencies in stylesheet and theme directories. Upgrade to WordPress 6.4.2 right from your Pantheon dashboard or Terminus for added security. From 8b1425e557f613788797b1c1c890e6dbcef1d896 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:31:49 -0800 Subject: [PATCH 156/174] Create drupal-7-99-release -bug fixes-and-feature-enhancements.md --- ...ease -bug fixes-and-feature-enhancements.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 source/releasenotes/drupal-7-99-release -bug fixes-and-feature-enhancements.md diff --git a/source/releasenotes/drupal-7-99-release -bug fixes-and-feature-enhancements.md b/source/releasenotes/drupal-7-99-release -bug fixes-and-feature-enhancements.md new file mode 100644 index 0000000000..a822d583a8 --- /dev/null +++ b/source/releasenotes/drupal-7-99-release -bug fixes-and-feature-enhancements.md @@ -0,0 +1,18 @@ + +--- +title: Drupal 7.99 release - bug fixes & feature enhancements +published_date: "2024-01-22" +categories: [drupal] +--- + +Pantheon has seamlessly integrated the Drupal 7.99 release, packed with bug fixes and exciting feature enhancements. + +**Highlights** + +* **Menu link enhancement:** 'Parent link' in new custom menu creation is now limited to the current menu, simplifying the process. Editing still allows access to links from other menus, enabling easy relocation. + +* **New Drupal 7 hook:** Introduced a new “hook_field_schema_alter()”, providing additional flexibility for schema alterations. + +* **Security improvement for failed logins:** Error messages after a failed login now include a password reset link without disclosing the username, enhancing security by preventing unintended disclosure to third-party services. + +Elevate your Drupal 7 experience by applying these updates directly from your Pantheon dashboard. If you would like to delve into specifics of this release, please explore on [drupal.org](https://www.drupal.org/project/drupal/releases/7.99). From f8ee926f3004bd3ad5a1ac7a9306f90b7fb8a40b Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:32:15 -0800 Subject: [PATCH 157/174] Rename drupal-7-99-release -bug fixes-and-feature-enhancements.md to 2024-01-22-drupal-7-99-release -bug fixes-and-feature-enhancements.md --- ...22-drupal-7-99-release -bug fixes-and-feature-enhancements.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename source/releasenotes/{drupal-7-99-release -bug fixes-and-feature-enhancements.md => 2024-01-22-drupal-7-99-release -bug fixes-and-feature-enhancements.md} (100%) diff --git a/source/releasenotes/drupal-7-99-release -bug fixes-and-feature-enhancements.md b/source/releasenotes/2024-01-22-drupal-7-99-release -bug fixes-and-feature-enhancements.md similarity index 100% rename from source/releasenotes/drupal-7-99-release -bug fixes-and-feature-enhancements.md rename to source/releasenotes/2024-01-22-drupal-7-99-release -bug fixes-and-feature-enhancements.md From cf3eb689113140a28692fc47992dc13095ee45f8 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:33:44 -0800 Subject: [PATCH 158/174] Update 2024-01-22-drupal-7-99-release -bug fixes-and-feature-enhancements.md --- ...22-drupal-7-99-release -bug fixes-and-feature-enhancements.md | 1 - 1 file changed, 1 deletion(-) diff --git a/source/releasenotes/2024-01-22-drupal-7-99-release -bug fixes-and-feature-enhancements.md b/source/releasenotes/2024-01-22-drupal-7-99-release -bug fixes-and-feature-enhancements.md index a822d583a8..c1497452b5 100644 --- a/source/releasenotes/2024-01-22-drupal-7-99-release -bug fixes-and-feature-enhancements.md +++ b/source/releasenotes/2024-01-22-drupal-7-99-release -bug fixes-and-feature-enhancements.md @@ -1,4 +1,3 @@ - --- title: Drupal 7.99 release - bug fixes & feature enhancements published_date: "2024-01-22" From 579ca74ca1e5501ab97cbc82402210cfcf12db89 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:37:31 -0800 Subject: [PATCH 159/174] Rename 2024-01-22-drupal-7-99-release -bug fixes-and-feature-enhancements.md to 2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md --- ...-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename source/releasenotes/{2024-01-22-drupal-7-99-release -bug fixes-and-feature-enhancements.md => 2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md} (100%) diff --git a/source/releasenotes/2024-01-22-drupal-7-99-release -bug fixes-and-feature-enhancements.md b/source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md similarity index 100% rename from source/releasenotes/2024-01-22-drupal-7-99-release -bug fixes-and-feature-enhancements.md rename to source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md From dc973464db088284c28193ca0aa158f989481755 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:38:02 -0800 Subject: [PATCH 160/174] Rename 2024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md to 2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md --- ...2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename source/releasenotes/{2024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md => 2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md} (100%) diff --git a/source/releasenotes/2024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md b/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md similarity index 100% rename from source/releasenotes/2024-01-25--pantheon-release-notes-a-new-year-a-new-chapter.md rename to source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md From 9364790ae29d149a892423dd7942ed85adfc992c Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:41:25 -0800 Subject: [PATCH 161/174] Update 2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md --- ...024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md b/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md index e9a3f421e8..ee23f1ecab 100644 --- a/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md +++ b/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md @@ -1,7 +1,7 @@ --- title: Pantheon release notes - A new year, a new chapter published_date: "2024-01-25" -categories: [new-feature, user-interface] +categories: [documentation] --- As we embark on a new year, we're excited to unveil a transformation. This January marks the introduction of **Pantheon release notes**, a rebranding of our changelog. Our aim is to elevate your platform experience by providing even more valuable insights into product updates. From 4d2ca7f862d94c570db4939c516a625531af318f Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 10:42:27 -0800 Subject: [PATCH 162/174] Update 2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md --- ...024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md b/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md index ee23f1ecab..0e1c1e2858 100644 --- a/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md +++ b/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md @@ -1,7 +1,7 @@ --- title: Pantheon release notes - A new year, a new chapter published_date: "2024-01-25" -categories: [documentation] +categories: [documentation, user-interface] --- As we embark on a new year, we're excited to unveil a transformation. This January marks the introduction of **Pantheon release notes**, a rebranding of our changelog. Our aim is to elevate your platform experience by providing even more valuable insights into product updates. From 1223653832105afb8f17229262ed1b57b504db7c Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:05:37 -0800 Subject: [PATCH 163/174] Update 2023-12-01-optimized-monitoring-for-high-volume-directories.md --- ...23-12-01-optimized-monitoring-for-high-volume-directories.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2023-12-01-optimized-monitoring-for-high-volume-directories.md b/source/releasenotes/2023-12-01-optimized-monitoring-for-high-volume-directories.md index 8613c07cc8..00cd4b5dc6 100644 --- a/source/releasenotes/2023-12-01-optimized-monitoring-for-high-volume-directories.md +++ b/source/releasenotes/2023-12-01-optimized-monitoring-for-high-volume-directories.md @@ -1,5 +1,5 @@ --- -title: Optimized Monitoring for High-Volume Directories +title: Optimized monitoring for high-volume directories published_date: "2023-12-01" categories: [new-feature, user-interface, performance] --- From 8e57db96b246a6f7c6430fca48fdaf69f7d54d2e Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:07:45 -0800 Subject: [PATCH 164/174] Update 2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md --- ...024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md b/source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md index 955a895bad..b4f527865f 100644 --- a/source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md +++ b/source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md @@ -1,6 +1,6 @@ --- title: WP-CLI v2.9.0 release now available on Pantheon -published_date: "2024-01-25" +published_date: "2024-01-24" categories: [wordpress] --- From 647ab11837f14f3ae0fb5cd4d12269605436ed29 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:08:08 -0800 Subject: [PATCH 165/174] Update 2024-01-23-wordpress-6-4-2-security-update.md --- .../releasenotes/2024-01-23-wordpress-6-4-2-security-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md b/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md index 8607ec2c26..06f04b3f24 100644 --- a/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md +++ b/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md @@ -1,6 +1,6 @@ --- title: WordPress 6.4.2 security updates -published_date: "2024-01-25" +published_date: "2024-01-23" categories: [wordpress, security] --- From 541c609836bc9e0552e257303da0fb701ae9cc5b Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:10:14 -0800 Subject: [PATCH 166/174] Update 2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md --- ...22-drupal-7-99-release-bug fixes-and-feature-enhancements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md b/source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md index c1497452b5..3b2fe4a0b9 100644 --- a/source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md +++ b/source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md @@ -8,7 +8,7 @@ Pantheon has seamlessly integrated the Drupal 7.99 release, packed with bug fixe **Highlights** -* **Menu link enhancement:** 'Parent link' in new custom menu creation is now limited to the current menu, simplifying the process. Editing still allows access to links from other menus, enabling easy relocation. +* **Menu link enhancement:** "Parent link" in new custom menu creation is now limited to the current menu, simplifying the process. Editing still allows access to links from other menus, enabling easy relocation. * **New Drupal 7 hook:** Introduced a new “hook_field_schema_alter()”, providing additional flexibility for schema alterations. From bc0c8a5c458df828cc64aa31973704a3f0b9cb7a Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:10:57 -0800 Subject: [PATCH 167/174] Update 2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md --- ...22-drupal-7-99-release-bug fixes-and-feature-enhancements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md b/source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md index 3b2fe4a0b9..27a3435c3f 100644 --- a/source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md +++ b/source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md @@ -10,7 +10,7 @@ Pantheon has seamlessly integrated the Drupal 7.99 release, packed with bug fixe * **Menu link enhancement:** "Parent link" in new custom menu creation is now limited to the current menu, simplifying the process. Editing still allows access to links from other menus, enabling easy relocation. -* **New Drupal 7 hook:** Introduced a new “hook_field_schema_alter()”, providing additional flexibility for schema alterations. +* **New Drupal 7 hook:** Introduced a new “**hook_field_schema_alter()**”, providing additional flexibility for schema alterations. * **Security improvement for failed logins:** Error messages after a failed login now include a password reset link without disclosing the username, enhancing security by preventing unintended disclosure to third-party services. From dcfa2f087e781b78b07e4599f3a5795e732c5b0e Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:12:29 -0800 Subject: [PATCH 168/174] Update 2024-01-23-wordpress-6-4-2-security-update.md --- .../releasenotes/2024-01-23-wordpress-6-4-2-security-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md b/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md index 06f04b3f24..4215827acd 100644 --- a/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md +++ b/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md @@ -7,7 +7,7 @@ categories: [wordpress, security] The latest version of WordPress, 6.4.2, became available on Pantheon as of December 6, 2023. **Highlights** -* **Security updates:** Addressed a Remote Code Execution vulnerability. While not directly exploitable in core, its potential severity was recognized, especially when combined with certain plugins, particularly in multisite installations. +* **Security updates:** Addressed a Remote Code Execution vulnerability. While not directly exploitable in Core, its potential severity was recognized, especially when combined with certain plugins, particularly in multisite installations. * **[7 bug fixes](https://core.trac.wordpress.org/query?status=closed&milestone=6.4.2&groupdesc=1&group=resolution&col=id&col=summary&col=status&col=milestone&col=owner&col=type&col=priority&col=keywords&order=priority) in Core:** Resolved an issue causing inconsistencies in stylesheet and theme directories. Upgrade to WordPress 6.4.2 right from your Pantheon dashboard or Terminus for added security. From 07b9e0162f6b9bb12ccf88de7dd86aa752ba8750 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:22:16 -0800 Subject: [PATCH 169/174] Update 2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md --- ...4-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md b/source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md index b4f527865f..77ede7fb19 100644 --- a/source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md +++ b/source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md @@ -6,11 +6,11 @@ categories: [wordpress] We're thrilled to announce the availability of WP-CLI v2.9.0 on the Pantheon platform. -WP-CLI is easily accessible for any WordPress site on Pantheon through our CLI, [Terminus](https://docs.pantheon.io/terminus). Manage your WordPress installations efficiently with the power of WP-CLI at your fingertips. +WP-CLI is easily accessible for any WordPress site on Pantheon through our CLI, [Terminus](/terminus). Manage your WordPress installations efficiently with the power of WP-CLI at your fingertips. **Highlights** * **Enhanced PHP 8.2 support:** -This release is dedicated to refining support for [PHP 8.2](https://docs.pantheon.io/guides/php), the recommended version on Pantheon. +This release is dedicated to refining support for [PHP 8.2](/guides/php), the recommended version on Pantheon. * **Optimized compatibility with WordPress 6.4:** We've worked to guarantee seamless compatibility, providing you with the best performance and features available. * **Introducing "wp config is-true" command:** From 0c1bb3fd0f8003e7edb527beaaf6a043ce4582ba Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:31:51 -0800 Subject: [PATCH 170/174] Update 2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md --- ...1-25-pantheon-release-notes-a-new-year-a-new-chapter.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md b/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md index 0e1c1e2858..aba70e6195 100644 --- a/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md +++ b/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md @@ -6,18 +6,19 @@ categories: [documentation, user-interface] As we embark on a new year, we're excited to unveil a transformation. This January marks the introduction of **Pantheon release notes**, a rebranding of our changelog. Our aim is to elevate your platform experience by providing even more valuable insights into product updates. -**What's new?** +

What's new?

* **Enhanced visibility:** Discover our improved interface with added tags to each release note, indicating their category and whether action is required. This feature ensures quick insights at a glance, making your navigation smoother. * **Filter functionality:** Explore the convenience of our newly integrated filter functionality, allowing you to tailor your release note view based on specific tags. This feature ensures you get information that's most relevant to you. -**What’s coming up?** + +

What’s coming up?

Get ready for a streamlined and more dynamic experience with Pantheon release notes. We're committed to keeping you in the loop every step of the way, ensuring you stay informed about the latest. * **Frequent updates:** Say goodbye to waiting for a monthly summary. We're shifting from the monthly retrospective model to publishing a release note for each significant update, providing you with real-time information. * **Proactive communication:** This change supports more proactive communication. Now, any noteworthy change will be marked here, complementing other channels like blog posts and emails. -**What lies ahead?** +

What lies ahead?

This is just the beginning! Stay tuned for more enhancements down the road as we continue to refine and elevate your Pantheon experience. From 11a37049eabac6204d98a355229bf848fcfd1049 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:32:56 -0800 Subject: [PATCH 171/174] Update 2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md --- ...24-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md b/source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md index 77ede7fb19..90a3cfb121 100644 --- a/source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md +++ b/source/releasenotes/2024-01-24-wp-cli-v2-9-0-release-now-available-on-pantheon.md @@ -8,7 +8,8 @@ We're thrilled to announce the availability of WP-CLI v2.9.0 on the Pantheon pla WP-CLI is easily accessible for any WordPress site on Pantheon through our CLI, [Terminus](/terminus). Manage your WordPress installations efficiently with the power of WP-CLI at your fingertips. -**Highlights** +

Highlights

+ * **Enhanced PHP 8.2 support:** This release is dedicated to refining support for [PHP 8.2](/guides/php), the recommended version on Pantheon. * **Optimized compatibility with WordPress 6.4:** From 4497febeeef208e82bc4478388fd564edc628df1 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:33:24 -0800 Subject: [PATCH 172/174] Update 2024-01-23-wordpress-6-4-2-security-update.md --- .../releasenotes/2024-01-23-wordpress-6-4-2-security-update.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md b/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md index 4215827acd..7fea244830 100644 --- a/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md +++ b/source/releasenotes/2024-01-23-wordpress-6-4-2-security-update.md @@ -6,7 +6,8 @@ categories: [wordpress, security] The latest version of WordPress, 6.4.2, became available on Pantheon as of December 6, 2023. -**Highlights** +

Highlights

+ * **Security updates:** Addressed a Remote Code Execution vulnerability. While not directly exploitable in Core, its potential severity was recognized, especially when combined with certain plugins, particularly in multisite installations. * **[7 bug fixes](https://core.trac.wordpress.org/query?status=closed&milestone=6.4.2&groupdesc=1&group=resolution&col=id&col=summary&col=status&col=milestone&col=owner&col=type&col=priority&col=keywords&order=priority) in Core:** Resolved an issue causing inconsistencies in stylesheet and theme directories. From a31e3aed4bfb42e9d4ff3980fbfb113de8e63459 Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:33:43 -0800 Subject: [PATCH 173/174] Update 2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md --- ...22-drupal-7-99-release-bug fixes-and-feature-enhancements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md b/source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md index 27a3435c3f..bf77105ae8 100644 --- a/source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md +++ b/source/releasenotes/2024-01-22-drupal-7-99-release-bug fixes-and-feature-enhancements.md @@ -6,7 +6,7 @@ categories: [drupal] Pantheon has seamlessly integrated the Drupal 7.99 release, packed with bug fixes and exciting feature enhancements. -**Highlights** +

Highlights

* **Menu link enhancement:** "Parent link" in new custom menu creation is now limited to the current menu, simplifying the process. Editing still allows access to links from other menus, enabling easy relocation. From d758103deba6d8fe74c33a864c51c658f200eb3f Mon Sep 17 00:00:00 2001 From: Ingrid <148255657+IngridKwok@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:34:27 -0800 Subject: [PATCH 174/174] Update 2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md --- ...2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md | 1 + 1 file changed, 1 insertion(+) diff --git a/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md b/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md index aba70e6195..4532e04bc7 100644 --- a/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md +++ b/source/releasenotes/2024-01-25-pantheon-release-notes-a-new-year-a-new-chapter.md @@ -7,6 +7,7 @@ categories: [documentation, user-interface] As we embark on a new year, we're excited to unveil a transformation. This January marks the introduction of **Pantheon release notes**, a rebranding of our changelog. Our aim is to elevate your platform experience by providing even more valuable insights into product updates.

What's new?

+ * **Enhanced visibility:** Discover our improved interface with added tags to each release note, indicating their category and whether action is required. This feature ensures quick insights at a glance, making your navigation smoother. * **Filter functionality:** Explore the convenience of our newly integrated filter functionality, allowing you to tailor your release note view based on specific tags. This feature ensures you get information that's most relevant to you.