Skip to content

Commit 4fc1416

Browse files
authored
[Calendar] Do not duplicate session description in agenda (#323)
As noted in #320, the session description used to be duplicated between the actual event description and the agenda in the calendar. That was done on purpose because calendar entries were then processed and copied over to another page. That's no longer the case. The session description now contains: sessions chairs, the actual session description, the goals (and if we ever enable that again, the list of tracks). The chairs are listed because, while they appear as event organizers as well, the organizers do not appear in the list view of the calendar. The session agenda contains the rest, in other words, the actual agenda, the materials links (and the "restricted attendance" prose if needed).
1 parent b73a8a0 commit 4fc1416

File tree

2 files changed

+36
-28
lines changed

2 files changed

+36
-28
lines changed

test/check-calendar-conversion.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ describe('Conversion to calendar entries', function () {
3434
"uuid": "9e7690a7-cd77-4192-ab60-337243f9b70a",
3535
"general": {
3636
"title": "Web features, Baseline status, and standardization signals",
37-
"description": "How do web developers talk about web features? What names do they use? How do these features map to specifications, fine-grained API functions and tests? What does a developer view tell us about the interoperability of the web platform?\n\nThe [`web-features` project](https://github.com/web-platform-dx/web-features), [envisioned in 2022](https://www.w3.org/2022/09/TPAC/breakouts.html#webdx) and [launched in 2023](https://www.w3.org/2023/09/TPAC/demos/web-features.html), explores the set of interoperable features of the web platform by:\n\n- Creating feature definitions, which identify and describe capabilities of web browsers.\n- Generating [Baseline](https://github.com/web-platform-dx/web-features/blob/main/docs/baseline.md) support data, which summarizes the availability of web features across key browsers and releases.\n- Publishing the `web-features` npm package, which bundles feature identifiers with Baseline statuses.\n\nDeveloped by the WebDX Community Group and contributors, web-features data leverages compatibility data from the browser-compat-data project, is already [integrated in MDN](https://developer.mozilla.org/en-US/blog/baseline-evolution-on-mdn/), [Can I Use](https://caniuse.com/css-nesting), [Web Platform Tests](https://github.com/web-platform-tests/wpt.fyi/blob/main/api/query/README.md#feature), and is starting to reach additional authors of JavaScript libraries and dashboards.\n\nLooking forward, feature identifiers at the \"right\" level make it possible to tag signals from the web community in surveys, browser standard positions, bug trackers, polyfills and usage counters. It also makes it easier to combine these signals with other projects that generate data out of specifications such as [`browser-specs`](https://github.com/w3c/browser-specs/) and [webref](https://github.com/w3c/webref).\n\nFeatures are also used in standardization groups, informally to organize discussions, but also formally to address transition requirements set forth by the W3C Process Document for advancing specifications on the Recommendation track. Within the Process, [new features](https://www.w3.org/2023/Process-20231103/#class-4) are defined as substantive changes that add new functionality, and used to assess [implementation experience](https://www.w3.org/2023/Process-20231103/#implementation-experience), document functionality that is considered [at risk](https://www.w3.org/2023/Process-20231103/#at-risk), and scope changes that may be incorporated in a specification depending on its maturity stage. This raises questions on the intersection between web-features and W3C’s standardization process, including:\n\n- Can web-features provide useful information to working groups?\n- Can it also inform the standardization process, e.g., to detect the need to transition a feature implemented by more than one browser out of incubation?\n- What additional data or tooling would make web-features a powerful tool for standards bodies?\n- How would **you** like to see web-features data presented in standards work?",
37+
"description": "**Chairs:**\ntidoust, captainbrosset, atopal\n\n**Description:**\nHow do web developers talk about web features? What names do they use? How do these features map to specifications, fine-grained API functions and tests? What does a developer view tell us about the interoperability of the web platform?\n\nThe [`web-features` project](https://github.com/web-platform-dx/web-features), [envisioned in 2022](https://www.w3.org/2022/09/TPAC/breakouts.html#webdx) and [launched in 2023](https://www.w3.org/2023/09/TPAC/demos/web-features.html), explores the set of interoperable features of the web platform by:\n\n- Creating feature definitions, which identify and describe capabilities of web browsers.\n- Generating [Baseline](https://github.com/web-platform-dx/web-features/blob/main/docs/baseline.md) support data, which summarizes the availability of web features across key browsers and releases.\n- Publishing the `web-features` npm package, which bundles feature identifiers with Baseline statuses.\n\nDeveloped by the WebDX Community Group and contributors, web-features data leverages compatibility data from the browser-compat-data project, is already [integrated in MDN](https://developer.mozilla.org/en-US/blog/baseline-evolution-on-mdn/), [Can I Use](https://caniuse.com/css-nesting), [Web Platform Tests](https://github.com/web-platform-tests/wpt.fyi/blob/main/api/query/README.md#feature), and is starting to reach additional authors of JavaScript libraries and dashboards.\n\nLooking forward, feature identifiers at the \"right\" level make it possible to tag signals from the web community in surveys, browser standard positions, bug trackers, polyfills and usage counters. It also makes it easier to combine these signals with other projects that generate data out of specifications such as [`browser-specs`](https://github.com/w3c/browser-specs/) and [webref](https://github.com/w3c/webref).\n\nFeatures are also used in standardization groups, informally to organize discussions, but also formally to address transition requirements set forth by the W3C Process Document for advancing specifications on the Recommendation track. Within the Process, [new features](https://www.w3.org/2023/Process-20231103/#class-4) are defined as substantive changes that add new functionality, and used to assess [implementation experience](https://www.w3.org/2023/Process-20231103/#implementation-experience), document functionality that is considered [at risk](https://www.w3.org/2023/Process-20231103/#at-risk), and scope changes that may be incorporated in a specification depending on its maturity stage. This raises questions on the intersection between web-features and W3C’s standardization process, including:\n\n- Can web-features provide useful information to working groups?\n- Can it also inform the standardization process, e.g., to detect the need to transition a feature implemented by more than one browser out of incubation?\n- What additional data or tooling would make web-features a powerful tool for standards bodies?\n- How would **you** like to see web-features data presented in standards work?\n\n**Goal(s):**\nShare updates on the web-features project, its use to inform the standardization process, and additional data, tooling and visualizations to make web-features a powerful tool for standards bodies.\n",
3838
"location": "Koto",
3939
"big-meeting": "tpac2024",
4040
"category": "breakout-sessions",
@@ -61,7 +61,7 @@ describe('Conversion to calendar entries', function () {
6161
},
6262
"agenda": {
6363
"url": "",
64-
"agenda": "**Chairs:**\ntidoust, captainbrosset, atopal\n\n**Description:**\nHow do web developers talk about web features? What names do they use? How do these features map to specifications, fine-grained API functions and tests? What does a developer view tell us about the interoperability of the web platform?\n\nThe [`web-features` project](https://github.com/web-platform-dx/web-features), [envisioned in 2022](https://www.w3.org/2022/09/TPAC/breakouts.html#webdx) and [launched in 2023](https://www.w3.org/2023/09/TPAC/demos/web-features.html), explores the set of interoperable features of the web platform by:\n\n- Creating feature definitions, which identify and describe capabilities of web browsers.\n- Generating [Baseline](https://github.com/web-platform-dx/web-features/blob/main/docs/baseline.md) support data, which summarizes the availability of web features across key browsers and releases.\n- Publishing the `web-features` npm package, which bundles feature identifiers with Baseline statuses.\n\nDeveloped by the WebDX Community Group and contributors, web-features data leverages compatibility data from the browser-compat-data project, is already [integrated in MDN](https://developer.mozilla.org/en-US/blog/baseline-evolution-on-mdn/), [Can I Use](https://caniuse.com/css-nesting), [Web Platform Tests](https://github.com/web-platform-tests/wpt.fyi/blob/main/api/query/README.md#feature), and is starting to reach additional authors of JavaScript libraries and dashboards.\n\nLooking forward, feature identifiers at the \"right\" level make it possible to tag signals from the web community in surveys, browser standard positions, bug trackers, polyfills and usage counters. It also makes it easier to combine these signals with other projects that generate data out of specifications such as [`browser-specs`](https://github.com/w3c/browser-specs/) and [webref](https://github.com/w3c/webref).\n\nFeatures are also used in standardization groups, informally to organize discussions, but also formally to address transition requirements set forth by the W3C Process Document for advancing specifications on the Recommendation track. Within the Process, [new features](https://www.w3.org/2023/Process-20231103/#class-4) are defined as substantive changes that add new functionality, and used to assess [implementation experience](https://www.w3.org/2023/Process-20231103/#implementation-experience), document functionality that is considered [at risk](https://www.w3.org/2023/Process-20231103/#at-risk), and scope changes that may be incorporated in a specification depending on its maturity stage. This raises questions on the intersection between web-features and W3C’s standardization process, including:\n\n- Can web-features provide useful information to working groups?\n- Can it also inform the standardization process, e.g., to detect the need to transition a feature implemented by more than one browser out of incubation?\n- What additional data or tooling would make web-features a powerful tool for standards bodies?\n- How would **you** like to see web-features data presented in standards work?\n\n**Goal(s):**\nShare updates on the web-features project, its use to inform the standardization process, and additional data, tooling and visualizations to make web-features a powerful tool for standards bodies.\n\n\n**Agenda:**\n- Presentation (20mn - see [slides](https://docs.google.com/presentation/d/e/2PACX-1vT5PiEfUCia_p-hIKu-LxQ90qwQks42FtsXTxI4wATYuG1OWEQlCnGcP7R_gENVnGUa82ZTGkQXQgRQ/pub))\n - Web developers and web features\n - Web features and standardization\n - First stab at gathering signals to inform standardization process\n - Late incubations\n - Late Working Drafts\n - Not-so-well supported Recommendations\n- Discussion (30mn)\n\n**Materials:**\n- [minutes](https://www.w3.org/2024/03/12-web-features-minutes.html)\n- [Session proposal on GitHub](https://github.com/w3c/tpac-breakouts/issues/22)\n"
64+
"agenda": "- Presentation (20mn - see [slides](https://docs.google.com/presentation/d/e/2PACX-1vT5PiEfUCia_p-hIKu-LxQ90qwQks42FtsXTxI4wATYuG1OWEQlCnGcP7R_gENVnGUa82ZTGkQXQgRQ/pub))\n - Web developers and web features\n - Web features and standardization\n - First stab at gathering signals to inform standardization process\n - Late incubations\n - Late Working Drafts\n - Not-so-well supported Recommendations\n- Discussion (30mn)\n\n**Materials:**\n- [minutes](https://www.w3.org/2024/03/12-web-features-minutes.html)\n- [Session proposal on GitHub](https://github.com/w3c/tpac-breakouts/issues/22)\n"
6565
},
6666
"minutes": {
6767
"url": "https://www.w3.org/2024/03/12-web-features-minutes.html"

tools/common/calendar.mjs

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,10 @@ function convertToCalendarMarkdown(text) {
5555

5656

5757
/**
58-
* Helper function to format calendar entry description from the session's info
58+
* Helper function to format the calendar entry description from the session's
59+
* info.
5960
*/
60-
function formatAgenda(session, options) {
61-
const issueUrl = `https://github.com/${session.repository}/issues/${session.number}`;
62-
const materials = Object.entries(session.description.materials || [])
63-
.filter(([key, value]) => (key !== 'agenda') && (key !== 'calendar'))
64-
.filter(([key, value]) => !todoStrings.includes(value))
65-
.map(([key, value]) => `- [${key}](${value})`);
66-
materials.push(`- [Session proposal on GitHub](${issueUrl})`);
67-
61+
function formatDescription(session, options) {
6862
let tracksStr = '';
6963
if (options?.tracks === 'show') {
7064
const tracks = session.tracks ?? [];
@@ -76,18 +70,6 @@ ${tracks.join('\n')}`;
7670
}
7771
}
7872

79-
const attendanceStr = session.description.attendance === 'restricted' ? `
80-
**Attendance:**
81-
This session is restricted to TPAC registrants.` :
82-
'';
83-
84-
const agendaUrl = getAgendaUrl(session);
85-
const detailedAgenda = agendaUrl ? null : session.description.agenda;
86-
const detailedAgendaStr = detailedAgenda ? `
87-
**Agenda:**
88-
${detailedAgenda}` :
89-
'';
90-
9173
return `**Chairs:**
9274
${session.chairs.map(chair => chair.name ?? '@' + chair.login).join(', ')}
9375
@@ -96,12 +78,35 @@ ${convertToCalendarMarkdown(session.description.description)}
9678
9779
**Goal(s):**
9880
${convertToCalendarMarkdown(session.description.goal)}
99-
${attendanceStr}
100-
${detailedAgendaStr}
81+
${tracksStr}`;
82+
}
83+
84+
85+
/**
86+
* Helper function to format calendar entry agenda from the session's info
87+
*/
88+
function formatAgenda(session) {
89+
const issueUrl = `https://github.com/${session.repository}/issues/${session.number}`;
90+
const materials = Object.entries(session.description.materials || [])
91+
.filter(([key, value]) => (key !== 'agenda') && (key !== 'calendar'))
92+
.filter(([key, value]) => !todoStrings.includes(value))
93+
.map(([key, value]) => `- [${key}](${value})`);
94+
materials.push(`- [Session proposal on GitHub](${issueUrl})`);
95+
96+
const attendanceStr = session.description.attendance === 'restricted' ? `
97+
**Attendance:**
98+
This session is restricted to TPAC registrants.` :
99+
'';
100+
101+
const agendaUrl = getAgendaUrl(session);
102+
const detailedAgenda = agendaUrl ? null : session.description.agenda;
103+
const detailedAgendaStr = detailedAgenda ? detailedAgenda : '';
104+
105+
return `${detailedAgendaStr}
101106
102107
**Materials:**
103108
${materials.join('\n')}
104-
${tracksStr}`;
109+
${attendanceStr}`;
105110
}
106111

107112

@@ -371,9 +376,12 @@ export function convertEntryToJSON({
371376
if (!res.agenda) {
372377
res.agenda = {};
373378
}
374-
res.agenda.agenda = formatAgenda(session, { tracks: project.metadata.tracks });
379+
res.agenda.agenda = formatAgenda(session);
380+
}
381+
if (project.metadata.type !== 'groups') {
382+
res.general.description = formatDescription(session, { tracks: project.metadata.tracks });
375383
}
376-
if (project.metadata.type !== 'groups' || convertToCalendarMarkdown(session.description.description)) {
384+
else if (convertToCalendarMarkdown(session.description.description)) {
377385
res.general.description = convertToCalendarMarkdown(session.description.description);
378386
}
379387
}

0 commit comments

Comments
 (0)