diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..d16b414 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +use-node-version=22.17.1 diff --git a/.prettierignore b/.prettierignore index d7ab459..1dc3e3a 100644 --- a/.prettierignore +++ b/.prettierignore @@ -4,6 +4,9 @@ # compiled output /dist/ +# data files +/data/ + # misc /coverage/ !.* diff --git a/app/app-styles/app.css b/app/app-styles/app.css index 1406c46..a7bd33d 100644 --- a/app/app-styles/app.css +++ b/app/app-styles/app.css @@ -1,51 +1,90 @@ -/* stylelint-disable import-notation, property-no-vendor-prefix, selector-class-pattern */ -@import 'mdbook.css'; -@import 'fonts.css'; -@import 'variables.css'; -@import 'chrome.css'; +.rfc-card { + display: grid; + grid-template-columns: 100px 1fr 200px; + grid-template-rows: min-content 1fr; + grid-gap: 0; + width: 100%; + margin-bottom: var(--spacing-2); +} + +.card-number { grid-area: 1 / 1 / 2 / 2; } +.card-title { grid-area: 1 / 2 / 2 / 3; } +.card-summary { grid-area: 2 / 2 / 3 / 3; } +.card-champion { grid-area: 1 / 3 / 3 / 4; } + +.card-champion li { + display: flex; + align-items: center; + gap: var(--spacing-1); + margin-top: var(--spacing-1); +} -button.reset { - border: none; - margin: 0; - padding: 0; - width: auto; - overflow: visible; - background: transparent; - color: inherit; - font: inherit; - line-height: normal; - -webkit-font-smoothing: inherit; - -moz-osx-font-smoothing: inherit; - -webkit-appearance: none; +.card-fcp { + width: 160px; + height: 20px; + border-radius: 24px; + color: var(--color-white); + background-color: var(--color-brand-hc-dark); + display: block; + font-size: 12px; + font-weight: 700; + text-align: center; } -.margin-auto { - margin: auto; +.rfc-card img { + width: 50px; + height: 50px; + border-radius: 25px; } -.p1 { - padding: 0.5em; +.table { + border-collapse: separate; + border-spacing: 0; + border: 2px solid var(--color-brand); + border-radius: var(--radius); } -.p2 { - padding: 1em; +.table th, +.table td { + padding: var(--spacing-1); + text-align: left; + border-left: none; + border-right: none; } -.stage-title { - margin-top: 0.5rem; - margin-bottom: 0; +/* Row borders */ +.table tr + tr td { + border-top: 1px solid var(--color-card-border); } -ul.chapter { - margin-top: 0; +/* Optional: top border for the header row */ +.table thead tr th { + background-color: var(--color-brand); + border-bottom: 1px solid var(--color-card-border); + color: var(--color-white); } -.rfc-data-table ul { - padding-left: 1em; +/* Optional: remove the last row bottom border if needed */ +.table tr:last-child td { + border-bottom: none; } -.svg-inline--fa { - display: inline-block; - height: 1em; - vertical-align: -0.125em; +@media screen and (width <= 1024px) { + .rfc-card { + grid-template-columns: 100px 1fr; + grid-template-rows: min-content 1fr min-content; + grid-gap: 0; + width: 100%; + margin-bottom: var(--spacing-2); + } + + .card-number { grid-area: 1 / 1 / 2 / 2; } + .card-title { grid-area: 1 / 2 / 2 / 4; } + .card-summary { grid-area: 2 / 1 / 2 / 4; } + + .card-champion { + grid-area: 3 / 1 / 3 / 4; + padding-left: 0; + } + } diff --git a/app/app-styles/chrome.css b/app/app-styles/chrome.css deleted file mode 100644 index 0469cd8..0000000 --- a/app/app-styles/chrome.css +++ /dev/null @@ -1,515 +0,0 @@ -/* stylelint-disable alpha-value-notation, at-rule-empty-line-before, color-function-alias-notation, color-function-notation, declaration-block-no-redundant-longhand-properties, declaration-empty-line-before, import-notation, length-zero-no-unit, media-feature-range-notation, no-descending-specificity, property-no-vendor-prefix, rule-empty-line-before, selector-not-notation, shorthand-property-no-redundant-values, value-no-vendor-prefix */ - -/* CSS for UI elements (a.k.a. chrome) */ - -@import 'variables.css'; - -::-webkit-scrollbar { - background: var(--bg); -} -::-webkit-scrollbar-thumb { - background: var(--scrollbar); -} -html { - scrollbar-color: var(--scrollbar) var(--bg); -} -#searchresults a, -.content a:link, -a:visited, -a > .hljs { - color: var(--links); -} - -/* Menu Bar */ - -#menu-bar, -#menu-bar-hover-placeholder { - z-index: 101; - margin: auto calc(0px - var(--page-padding)); -} -#menu-bar { - position: relative; - display: flex; - flex-wrap: wrap; - background-color: var(--bg); - border-bottom-color: var(--bg); - border-bottom-width: 1px; - border-bottom-style: solid; -} -#menu-bar.sticky, -.js #menu-bar-hover-placeholder:hover + #menu-bar, -.js #menu-bar:hover, -.js.sidebar-visible #menu-bar { - position: -webkit-sticky; - position: sticky; - top: 0 !important; -} -#menu-bar-hover-placeholder { - position: sticky; - position: -webkit-sticky; - top: 0; - height: var(--menu-bar-height); -} -#menu-bar.bordered { - border-bottom-color: var(--table-border-color); -} -#menu-bar i, -#menu-bar .icon-button { - position: relative; - padding: 0 8px; - z-index: 10; - line-height: var(--menu-bar-height); - cursor: pointer; - transition: color 0.5s; -} -@media only screen and (max-width: 420px) { - #menu-bar i, - #menu-bar .icon-button { - padding: 0 5px; - } -} - -.icon-button { - border: none; - background: none; - padding: 0; - color: inherit; -} -.icon-button i { - margin: 0; -} - -.right-buttons { - margin: 0 15px; -} -.right-buttons a { - text-decoration: none; -} - -.left-buttons { - display: flex; - margin: 0 5px; -} -.no-js .left-buttons { - display: none; -} - -.menu-title { - display: inline-block; - font-weight: 200; - font-size: 2.4rem; - line-height: var(--menu-bar-height); - text-align: center; - margin: 0; - flex: 1; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.js .menu-title { - cursor: pointer; -} - -.menu-bar, -.menu-bar:visited, -.nav-chapters, -.nav-chapters:visited, -.mobile-nav-chapters, -.mobile-nav-chapters:visited, -.menu-bar .icon-button, -.menu-bar a i { - color: var(--icons); -} - -.menu-bar i:hover, -.menu-bar .icon-button:hover, -.nav-chapters:hover, -.mobile-nav-chapters i:hover { - color: var(--icons-hover); -} - -/* Nav Icons */ - -.nav-chapters { - font-size: 2.5em; - text-align: center; - text-decoration: none; - - position: fixed; - top: 0; - bottom: 0; - margin: 0; - max-width: 150px; - min-width: 90px; - - display: flex; - justify-content: center; - align-content: center; - flex-direction: column; - - transition: - color 0.5s, - background-color 0.5s; -} - -.nav-chapters:hover { - text-decoration: none; - background-color: var(--theme-hover); - transition: - background-color 0.15s, - color 0.15s; -} - -.nav-wrapper { - margin-top: 50px; - display: none; -} - -.mobile-nav-chapters { - font-size: 2.5em; - text-align: center; - text-decoration: none; - width: 90px; - border-radius: 5px; - background-color: var(--sidebar-bg); -} - -.previous { - float: left; -} - -.next { - float: right; - right: var(--page-padding); -} - -@media only screen and (max-width: 1080px) { - .nav-wide-wrapper { - display: none; - } - .nav-wrapper { - display: block; - } -} - -@media only screen and (max-width: 1380px) { - .sidebar-visible .nav-wide-wrapper { - display: none; - } - .sidebar-visible .nav-wrapper { - display: block; - } -} - -/* Inline code */ - -:not(pre) > .hljs { - display: inline; - padding: 0.1em 0.3em; - border-radius: 3px; -} - -:not(pre):not(a) > .hljs { - color: var(--inline-code-color); - overflow-x: initial; -} - -a:hover > .hljs { - text-decoration: underline; -} - -pre { - position: relative; -} -pre > .buttons { - position: absolute; - z-index: 100; - right: 5px; - top: 5px; - - color: var(--sidebar-fg); - cursor: pointer; -} -pre > .buttons :hover { - color: var(--sidebar-active); -} -pre > .buttons i { - margin-left: 8px; -} -pre > .buttons button { - color: inherit; - background: transparent; - border: none; - cursor: inherit; -} -pre > .result { - margin-top: 10px; -} - -/* Search */ - -#searchresults a { - text-decoration: none; -} - -mark { - border-radius: 2px; - padding: 0 3px 1px 3px; - margin: 0 -3px -1px -3px; - background-color: var(--search-mark-bg); - transition: background-color 300ms linear; - cursor: pointer; -} - -mark.fade-out { - background-color: rgba(0, 0, 0, 0) !important; - cursor: auto; -} - -.searchbar-outer { - margin-left: auto; - margin-right: auto; - max-width: var(--content-max-width); -} - -#searchbar { - width: 100%; - margin: 5px auto 0px auto; - padding: 10px 16px; - transition: box-shadow 300ms ease-in-out; - border: 1px solid var(--searchbar-border-color); - border-radius: 3px; - background-color: var(--searchbar-bg); - color: var(--searchbar-fg); -} -#searchbar:focus, -#searchbar.active { - box-shadow: 0 0 3px var(--searchbar-shadow-color); -} - -.searchresults-header { - font-weight: bold; - font-size: 1em; - padding: 18px 0 0 5px; - color: var(--searchresults-header-fg); -} - -.searchresults-outer { - margin-left: auto; - margin-right: auto; - max-width: var(--content-max-width); - border-bottom: 1px dashed var(--searchresults-border-color); -} - -ul#searchresults { - list-style: none; - padding-left: 20px; -} -ul#searchresults li { - margin: 10px 0px; - padding: 2px; - border-radius: 2px; -} -ul#searchresults li.focus { - background-color: var(--searchresults-li-bg); -} -ul#searchresults span.teaser { - display: block; - clear: both; - margin: 5px 0 0 20px; - font-size: 0.8em; -} -ul#searchresults span.teaser em { - font-weight: bold; - font-style: normal; -} - -/* Sidebar */ - -.sidebar { - position: fixed; - left: 0; - top: 0; - bottom: 0; - width: var(--sidebar-width); - font-size: 0.875em; - box-sizing: border-box; - -webkit-overflow-scrolling: touch; - overscroll-behavior-y: contain; - background-color: var(--sidebar-bg); - color: var(--sidebar-fg); -} -.sidebar-resizing { - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; -} -.js:not(.sidebar-resizing) .sidebar { - transition: transform 0.3s; /* Animation: slide away */ -} -.sidebar code { - line-height: 2em; -} -.sidebar .sidebar-scrollbox { - overflow-y: auto; - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - padding: 10px 10px; -} -.sidebar .sidebar-resize-handle { - position: absolute; - cursor: col-resize; - width: 0; - right: 0; - top: 0; - bottom: 0; -} -.js .sidebar .sidebar-resize-handle { - cursor: col-resize; - width: 5px; -} -.sidebar-hidden .sidebar { - transform: translateX(calc(0px - var(--sidebar-width))); -} -.sidebar::-webkit-scrollbar { - background: var(--sidebar-bg); -} -.sidebar::-webkit-scrollbar-thumb { - background: var(--scrollbar); -} - -.sidebar-visible .page-wrapper { - transform: translateX(var(--sidebar-width)); -} -@media only screen and (min-width: 620px) { - .sidebar-visible .page-wrapper { - transform: none; - margin-left: var(--sidebar-width); - } -} - -.chapter { - list-style: none outside none; - padding-left: 0; - line-height: 2.2em; -} - -.chapter ol { - width: 100%; -} - -.chapter li { - display: flex; - color: var(--sidebar-non-existant); -} -.chapter li a { - display: block; - padding: 0; - text-decoration: none; - color: var(--sidebar-fg); -} - -.chapter li a:hover { - color: var(--sidebar-active); -} - -.chapter li a.active { - color: var(--sidebar-active); -} - -.chapter li > a.toggle { - cursor: pointer; - display: block; - margin-left: auto; - padding: 0 10px; - user-select: none; - opacity: 0.68; -} - -.chapter li > a.toggle div { - transition: transform 0.5s; -} - -/* collapse the section */ -.chapter li:not(.expanded) + li > ol { - display: none; -} - -.chapter li.chapter-item { - line-height: 1.5em; - margin-top: 0.6em; -} - -.chapter li.expanded > a.toggle div { - transform: rotate(90deg); -} - -.spacer { - width: 100%; - height: 3px; - margin: 5px 0px; -} -.chapter .spacer { - background-color: var(--sidebar-spacer); -} - -@media (-moz-touch-enabled: 1), (pointer: coarse) { - .chapter li a { - padding: 5px 0; - } - .spacer { - margin: 10px 0; - } -} - -.section { - list-style: none outside none; - padding-left: 20px; - line-height: 1.9em; -} - -/* Theme Menu Popup */ - -.theme-popup { - position: absolute; - left: 10px; - top: var(--menu-bar-height); - z-index: 1000; - border-radius: 4px; - font-size: 0.7em; - color: var(--fg); - background: var(--theme-popup-bg); - border: 1px solid var(--theme-popup-border); - margin: 0; - padding: 0; - list-style: none; - display: none; -} -.theme-popup .default { - color: var(--icons); -} -.theme-popup .theme { - width: 100%; - border: 0; - margin: 0; - padding: 2px 10px; - line-height: 25px; - white-space: nowrap; - text-align: left; - cursor: pointer; - color: inherit; - background: inherit; - font-size: inherit; -} -.theme-popup .theme:hover { - background-color: var(--theme-hover); -} -.theme-popup .theme:hover:first-child, -.theme-popup .theme:hover:last-child { - border-top-left-radius: inherit; - border-top-right-radius: inherit; -} diff --git a/app/app-styles/fonts.css b/app/app-styles/fonts.css deleted file mode 100644 index de3aba3..0000000 --- a/app/app-styles/fonts.css +++ /dev/null @@ -1,27 +0,0 @@ -/* stylelint-disable comment-empty-line-before */ -/* open-sans-regular - latin */ -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 400; - font-display: swap; - src: - local('Open Sans Regular'), - local('OpenSans-Regular'), - url('/fonts/open-sans-v16-latin-regular.woff2') format('woff2'), - /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('/fonts/open-sans-v16-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} -/* open-sans-700 - latin */ -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 700; - font-display: swap; - src: - local('Open Sans Bold'), - local('OpenSans-Bold'), - url('/fonts/open-sans-v16-latin-700.woff2') format('woff2'), - /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('/fonts/open-sans-v16-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} diff --git a/app/app-styles/mdbook.css b/app/app-styles/mdbook.css deleted file mode 100644 index bf67370..0000000 --- a/app/app-styles/mdbook.css +++ /dev/null @@ -1,1007 +0,0 @@ -/* stylelint-disable at-rule-empty-line-before, comment-empty-line-before, comment-whitespace-inside, declaration-block-no-redundant-longhand-properties, declaration-empty-line-before, declaration-property-value-no-unknown, font-family-no-duplicate-names, length-zero-no-unit, media-feature-range-notation, no-descending-specificity, property-no-unknown, property-no-vendor-prefix, rule-empty-line-before, shorthand-property-no-redundant-values, value-no-vendor-prefix */ -html, -body { - font-family: 'Open Sans', sans-serif; - color: #333; -} -body { - margin: 0; - font-size: 1rem; -} -code { - font-family: - 'Source Code Pro', Consolas, 'Ubuntu Mono', Menlo, 'DejaVu Sans Mono', - monospace, monospace; - font-size: 0.875em; -} -.left { - float: left; -} -.right { - float: right; -} -.hidden { - display: none; -} -.play-button.hidden { - display: none; -} -h2, -h3 { - margin-top: 2.5em; -} -h4, -h5 { - margin-top: 2em; -} -.header + .header h3, -.header + .header h4, -.header + .header h5 { - margin-top: 1em; -} -table { - margin: 0 auto; - border-collapse: collapse; -} -table td { - padding: 3px 20px; - border: 1px solid; -} -table thead td { - font-weight: 700; -} -.sidebar { - position: fixed; - left: 0; - top: 0; - bottom: 0; - width: 300px; - overflow-y: auto; - padding: 10px 10px; - font-size: 0.875em; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-overflow-scrolling: touch; - -webkit-transition: left 0.5s; - -moz-transition: left 0.5s; - -o-transition: left 0.5s; - -ms-transition: left 0.5s; - transition: left 0.5s; -} -@media only screen and (max-width: 1060px) { - .sidebar { - left: -300px; - } -} -.sidebar code { - line-height: 2em; -} -.sidebar-hidden .sidebar { - left: -300px; -} -.sidebar-visible .sidebar { - left: 0; -} -.chapter { - list-style: none outside none; - padding-left: 0; - line-height: 2.2em; -} -.chapter li a { - padding: 5px 0; - text-decoration: none; -} -.chapter li a:hover { - text-decoration: none; -} -.chapter .spacer { - width: 100%; - height: 3px; - margin: 10px 0px; -} -.section { - list-style: none outside none; - padding-left: 20px; - line-height: 1.9em; -} -.section li { - -o-text-overflow: ellipsis; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} -.page-wrapper { - padding-left: 300px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - min-height: 100%; - -webkit-transition: padding-left 0.5s; - -moz-transition: padding-left 0.5s; - -o-transition: padding-left 0.5s; - -ms-transition: padding-left 0.5s; - transition: padding-left 0.5s; -} -@media only screen and (max-width: 1060px) { - .page-wrapper { - padding-left: 0; - } -} -.sidebar-hidden .page-wrapper { - padding-left: 0; -} -.sidebar-visible .page-wrapper { - padding-left: 300px; -} -.page { - outline: 0; - padding: 0 15px; -} -.content { - margin-left: auto; - margin-right: auto; - max-width: 750px; - padding-bottom: 50px; -} -.content a { - text-decoration: none; -} -.content a:hover { - text-decoration: underline; -} -.content img { - max-width: 100%; -} -.menu-bar { - position: relative; - height: 50px; -} -.menu-bar i { - position: relative; - margin: 0 10px; - z-index: 10; - line-height: 50px; - -webkit-transition: color 0.5s; - -moz-transition: color 0.5s; - -o-transition: color 0.5s; - -ms-transition: color 0.5s; - transition: color 0.5s; -} -.menu-bar i:hover { - cursor: pointer; -} -.menu-bar .left-buttons { - float: left; -} -.menu-bar .right-buttons { - float: right; -} -.menu-title { - display: inline-block; - font-weight: 200; - font-size: 20px; - line-height: 50px; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - text-align: center; - margin: 0; - opacity: 0; - -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)'; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.5s ease-in-out; - -moz-transition: opacity 0.5s ease-in-out; - -o-transition: opacity 0.5s ease-in-out; - -ms-transition: opacity 0.5s ease-in-out; - transition: opacity 0.5s ease-in-out; -} -.menu-bar:hover .menu-title { - opacity: 1; - -ms-filter: none; - filter: none; -} -.nav-chapters { - font-size: 2.5em; - text-align: center; - text-decoration: none; - position: fixed; - top: 50px /* Height of menu-bar */; - bottom: 0; - margin: 0; - max-width: 150px; - min-width: 90px; - display: -webkit-box; - display: -moz-box; - display: -webkit-flex; - display: -ms-flexbox; - display: box; - display: flex; - -webkit-box-pack: center; - -moz-box-pack: center; - -o-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -ms-flex-line-pack: center; - -webkit-align-content: center; - align-content: center; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -o-box-orient: vertical; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-transition: color 0.5s; - -moz-transition: color 0.5s; - -o-transition: color 0.5s; - -ms-transition: color 0.5s; - transition: color 0.5s; -} -.mobile-nav-chapters { - display: none; -} -.nav-chapters:hover { - text-decoration: none; -} -.previous { - left: 315px; - -webkit-transition: left 0.5s; - -moz-transition: left 0.5s; - -o-transition: left 0.5s; - -ms-transition: left 0.5s; - transition: left 0.5s; -} -@media only screen and (max-width: 1060px) { - .previous { - left: 15px; - } -} -.next { - right: 15px; -} -.sidebar-hidden .previous { - left: 15px; -} -.sidebar-visible .previous { - left: 315px; -} -.theme-popup { - position: relative; - left: 10px; - z-index: 1000; - border-radius: 4px; - font-size: 0.7em; -} -.theme-popup .theme { - margin: 0; - padding: 2px 10px; - line-height: 25px; - white-space: nowrap; - cursor: pointer; -} -.theme-popup .theme:hover:first-child, -.theme-popup .theme:hover:last-child { - border-top-left-radius: inherit; - border-top-right-radius: inherit; -} -@media only screen and (max-width: 1250px) { - .nav-chapters { - display: none; - } - .mobile-nav-chapters { - font-size: 2.5em; - text-align: center; - text-decoration: none; - max-width: 150px; - min-width: 90px; - -webkit-box-pack: center; - -moz-box-pack: center; - -o-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - justify-content: center; - -ms-flex-line-pack: center; - -webkit-align-content: center; - align-content: center; - position: relative; - display: inline-block; - margin-bottom: 50px; - border-radius: 5px; - } - .next { - float: right; - } - .previous { - float: left; - } -} -.light { - color: #333; - background-color: #fff; - /* Inline code */ -} -.light .content .header:link, -.light .content .header:visited { - color: #333; - pointer: cursor; -} -.light .content .header:link:hover, -.light .content .header:visited:hover { - text-decoration: none; -} -.light.sidebar { - background-color: #fafafa; - color: #364149; -} -.light .chapter li { - color: #aaa; -} -.light .chapter li a { - color: #364149; -} -.light .chapter li .active, -.light .chapter li a:hover { - /* Animate color change */ - color: #008cff; -} -.light .chapter .spacer { - background-color: #f4f4f4; -} -.light .menu-bar, -.light .menu-bar:visited, -.light .nav-chapters, -.light .nav-chapters:visited, -.light .mobile-nav-chapters, -.light .mobile-nav-chapters:visited, -.light .menu-bar a i { - color: #ccc; -} -.light .menu-bar i:hover, -.light .nav-chapters:hover, -.light .mobile-nav-chapters i:hover { - color: #333; -} -.light .mobile-nav-chapters i:hover { - color: #364149; -} -.light .mobile-nav-chapters { - background-color: #fafafa; -} -.light .content a:link, -.light a:visited, -.light a > .hljs { - color: #4183c4; -} -.light .theme-popup { - color: #333; - background: #fafafa; - border: 1px solid #ccc; -} -.light .theme-popup .theme:hover { - background-color: #e6e6e6; -} -.light .theme-popup .default { - color: #ccc; -} -.light blockquote { - margin: 20px 0; - padding: 0 20px; - color: #333; - background-color: #f2f7f9; - border-top: 0.1em solid #e1edf1; - border-bottom: 0.1em solid #e1edf1; -} -.light table td { - border-color: #f2f2f2; -} -.light table tbody tr:nth-child(2n) { - background: #f7f7f7; -} -.light table thead { - background: #ccc; -} -.light table thead td { - border: none; -} -.light table thead tr { - border: 1px #ccc solid; -} -.light :not(pre) > .hljs { - display: inline-block; - vertical-align: middle; - padding: 0.1em 0.3em; - border-radius: 3px; - color: #6e6b5e; -} -.light a:hover > .hljs { - text-decoration: underline; -} -.light pre { - position: relative; -} -.light pre > .buttons { - position: absolute; - z-index: 100; - right: 5px; - top: 5px; - color: #364149; - cursor: pointer; -} -.light pre > .buttons :hover { - color: #008cff; -} -.light pre > .buttons i { - margin-left: 8px; -} -.light pre > .result { - margin-top: 10px; -} -.coal { - color: #98a3ad; - background-color: #141617; - /* Inline code */ -} -.coal .content .header:link, -.coal .content .header:visited { - color: #98a3ad; - pointer: cursor; -} -.coal .content .header:link:hover, -.coal .content .header:visited:hover { - text-decoration: none; -} -.coal .sidebar { - background-color: #292c2f; - color: #a1adb8; -} -.coal .chapter li { - color: #505254; -} -.coal .chapter li a { - color: #a1adb8; -} -.coal .chapter li .active, -.coal .chapter li a:hover { - /* Animate color change */ - color: #3473ad; -} -.coal .chapter .spacer { - background-color: #393939; -} -.coal .menu-bar, -.coal .menu-bar:visited, -.coal .nav-chapters, -.coal .nav-chapters:visited, -.coal .mobile-nav-chapters, -.coal .mobile-nav-chapters:visited, -.coal .menu-bar a i { - color: #43484d; -} -.coal .menu-bar i:hover, -.coal .nav-chapters:hover, -.coal .mobile-nav-chapters i:hover { - color: #b3c0cc; -} -.coal .mobile-nav-chapters i:hover { - color: #a1adb8; -} -.coal .mobile-nav-chapters { - background-color: #292c2f; -} -.coal .content a:link, -.coal a:visited, -.coal a > .hljs { - color: #2b79a2; -} -.coal .theme-popup { - color: #98a3ad; - background: #141617; - border: 1px solid #43484d; -} -.coal .theme-popup .theme:hover { - background-color: #1f2124; -} -.coal .theme-popup .default { - color: #43484d; -} -.coal blockquote { - margin: 20px 0; - padding: 0 20px; - color: #98a3ad; - background-color: #242637; - border-top: 0.1em solid #2c2f44; - border-bottom: 0.1em solid #2c2f44; -} -.coal table td { - border-color: #1f2223; -} -.coal table tbody tr:nth-child(2n) { - background: #1b1d1e; -} -.coal table thead { - background: #3f4649; -} -.coal table thead td { - border: none; -} -.coal table thead tr { - border: 1px #3f4649 solid; -} -.coal :not(pre) > .hljs { - display: inline-block; - vertical-align: middle; - padding: 0.1em 0.3em; - border-radius: 3px; - color: #c5c8c6; -} -.coal a:hover > .hljs { - text-decoration: underline; -} -.coal pre { - position: relative; -} -.coal pre > .buttons { - position: absolute; - z-index: 100; - right: 5px; - top: 5px; - color: #a1adb8; - cursor: pointer; -} -.coal pre > .buttons :hover { - color: #3473ad; -} -.coal pre > .buttons i { - margin-left: 8px; -} -.coal pre > .result { - margin-top: 10px; -} -.navy { - color: #bcbdd0; - background-color: #161923; - /* Inline code */ -} -.navy .content .header:link, -.navy .content .header:visited { - color: #bcbdd0; - pointer: cursor; -} -.navy .content .header:link:hover, -.navy .content .header:visited:hover { - text-decoration: none; -} -.navy .sidebar { - background-color: #282d3f; - color: #c8c9db; -} -.navy .chapter li { - color: #505274; -} -.navy .chapter li a { - color: #c8c9db; -} -.navy .chapter li .active, -.navy .chapter li a:hover { - /* Animate color change */ - color: #2b79a2; -} -.navy .chapter .spacer { - background-color: #2d334f; -} -.navy .menu-bar, -.navy .menu-bar:visited, -.navy .nav-chapters, -.navy .nav-chapters:visited, -.navy .mobile-nav-chapters, -.navy .mobile-nav-chapters:visited, -.navy .menu-bar a i { - color: #737480; -} -.navy .menu-bar i:hover, -.navy .nav-chapters:hover, -.navy .mobile-nav-chapters i:hover { - color: #b7b9cc; -} -.navy .mobile-nav-chapters i:hover { - color: #c8c9db; -} -.navy .mobile-nav-chapters { - background-color: #282d3f; -} -.navy .content a:link, -.navy a:visited, -.navy a > .hljs { - color: #2b79a2; -} -.navy .theme-popup { - color: #bcbdd0; - background: #161923; - border: 1px solid #737480; -} -.navy .theme-popup .theme:hover { - background-color: #282e40; -} -.navy .theme-popup .default { - color: #737480; -} -.navy blockquote { - margin: 20px 0; - padding: 0 20px; - color: #bcbdd0; - background-color: #262933; - border-top: 0.1em solid #2f333f; - border-bottom: 0.1em solid #2f333f; -} -.navy table td { - border-color: #1f2331; -} -.navy table tbody tr:nth-child(2n) { - background: #1b1f2b; -} -.navy table thead { - background: #39415b; -} -.navy table thead td { - border: none; -} -.navy table thead tr { - border: 1px #39415b solid; -} -.navy :not(pre) > .hljs { - display: inline-block; - vertical-align: middle; - padding: 0.1em 0.3em; - border-radius: 3px; - color: #c5c8c6; -} -.navy a:hover > .hljs { - text-decoration: underline; -} -.navy pre { - position: relative; -} -.navy pre > .buttons { - position: absolute; - z-index: 100; - right: 5px; - top: 5px; - color: #c8c9db; - cursor: pointer; -} -.navy pre > .buttons :hover { - color: #2b79a2; -} -.navy pre > .buttons i { - margin-left: 8px; -} -.navy pre > .result { - margin-top: 10px; -} -.rust { - color: #262625; - background-color: #e1e1db; - /* Inline code */ -} -.rust .content .header:link, -.rust .content .header:visited { - color: #262625; - pointer: cursor; -} -.rust .content .header:link:hover, -.rust .content .header:visited:hover { - text-decoration: none; -} -.rust .sidebar { - background-color: #3b2e2a; - color: #c8c9db; -} -.rust .chapter li { - color: #505254; -} -.rust .chapter li a { - color: #c8c9db; -} -.rust .chapter li .active, -.rust .chapter li a:hover { - /* Animate color change */ - color: #e69f67; -} -.rust .chapter .spacer { - background-color: #45373a; -} -.rust .menu-bar, -.rust .menu-bar:visited, -.rust .nav-chapters, -.rust .nav-chapters:visited, -.rust .mobile-nav-chapters, -.rust .mobile-nav-chapters:visited, -.rust .menu-bar a i { - color: #737480; -} -.rust .menu-bar i:hover, -.rust .nav-chapters:hover, -.rust .mobile-nav-chapters i:hover { - color: #262625; -} -.rust .mobile-nav-chapters i:hover { - color: #c8c9db; -} -.rust .mobile-nav-chapters { - background-color: #3b2e2a; -} -.rust .content a:link, -.rust a:visited, -.rust a > .hljs { - color: #2b79a2; -} -.rust .theme-popup { - color: #262625; - background: #e1e1db; - border: 1px solid #b38f6b; -} -.rust .theme-popup .theme:hover { - background-color: #99908a; -} -.rust .theme-popup .default { - color: #737480; -} -.rust blockquote { - margin: 20px 0; - padding: 0 20px; - color: #262625; - background-color: #c1c1bb; - border-top: 0.1em solid #b8b8b1; - border-bottom: 0.1em solid #b8b8b1; -} -.rust table td { - border-color: #d7d7cf; -} -.rust table tbody tr:nth-child(2n) { - background: #dbdbd4; -} -.rust table thead { - background: #b3a497; -} -.rust table thead td { - border: none; -} -.rust table thead tr { - border: 1px #b3a497 solid; -} -.rust :not(pre) > .hljs { - display: inline-block; - vertical-align: middle; - padding: 0.1em 0.3em; - border-radius: 3px; - color: #6e6b5e; -} -.rust a:hover > .hljs { - text-decoration: underline; -} -.rust pre { - position: relative; -} -.rust pre > .buttons { - position: absolute; - z-index: 100; - right: 5px; - top: 5px; - color: #c8c9db; - cursor: pointer; -} -.rust pre > .buttons :hover { - color: #e69f67; -} -.rust pre > .buttons i { - margin-left: 8px; -} -.rust pre > .result { - margin-top: 10px; -} -.ayu { - color: #c5c5c5; - background-color: #0f1419; - /* Inline code */ -} -.ayu .content .header:link, -.ayu .content .header:visited { - color: #c5c5c5; - pointer: cursor; -} -.ayu .content .header:link:hover, -.ayu .content .header:visited:hover { - text-decoration: none; -} -.ayu .sidebar { - background-color: #14191f; - color: #c8c9db; -} -.ayu .chapter li { - color: #5c6773; -} -.ayu .chapter li a { - color: #c8c9db; -} -.ayu .chapter li .active, -.ayu .chapter li a:hover { - /* Animate color change */ - color: #ffb454; -} -.ayu .chapter .spacer { - background-color: #2d334f; -} -.ayu .menu-bar, -.ayu .menu-bar:visited, -.ayu .nav-chapters, -.ayu .nav-chapters:visited, -.ayu .mobile-nav-chapters, -.ayu .mobile-nav-chapters:visited, -.ayu .menu-bar a i { - color: #737480; -} -.ayu .menu-bar i:hover, -.ayu .nav-chapters:hover, -.ayu .mobile-nav-chapters i:hover { - color: #b7b9cc; -} -.ayu .mobile-nav-chapters i:hover { - color: #c8c9db; -} -.ayu .mobile-nav-chapters { - background-color: #14191f; -} -.ayu .content a:link, -.ayu a:visited, -.ayu a > .hljs { - color: #0096cf; -} -.ayu .theme-popup { - color: #c5c5c5; - background: #14191f; - border: 1px solid #5c6773; -} -.ayu .theme-popup .theme:hover { - background-color: #191f26; -} -.ayu .theme-popup .default { - color: #737480; -} -.ayu blockquote { - margin: 20px 0; - padding: 0 20px; - color: #c5c5c5; - background-color: #262933; - border-top: 0.1em solid #2f333f; - border-bottom: 0.1em solid #2f333f; -} -.ayu table td { - border-color: #182028; -} -.ayu table tbody tr:nth-child(2n) { - background: #141b22; -} -.ayu table thead { - background: #324354; -} -.ayu table thead td { - border: none; -} -.ayu table thead tr { - border: 1px #324354 solid; -} -.ayu :not(pre) > .hljs { - display: inline-block; - vertical-align: middle; - padding: 0.1em 0.3em; - border-radius: 3px; - color: #ffb454; -} -.ayu a:hover > .hljs { - text-decoration: underline; -} -.ayu pre { - position: relative; -} -.ayu pre > .buttons { - position: absolute; - z-index: 100; - right: 5px; - top: 5px; - color: #c8c9db; - cursor: pointer; -} -.ayu pre > .buttons :hover { - color: #ffb454; -} -.ayu pre > .buttons i { - margin-left: 8px; -} -.ayu pre > .result { - margin-top: 10px; -} -@media only print { - #sidebar, - #menu-bar, - .nav-chapters, - .mobile-nav-chapters { - display: none; - } - #page-wrapper { - left: 0; - overflow-y: initial; - } - #page-wrapper.page-wrapper { - padding-left: 0px; - } - #content { - max-width: none; - margin: 0; - padding: 0; - } - .page { - overflow-y: initial; - } - code { - background-color: #666; - border-radius: 5px; - /* Force background to be printed in Chrome */ - -webkit-print-color-adjust: exact; - } - pre > .buttons { - z-index: 2; - } - a, - a:visited, - a:active, - a:hover { - color: #4183c4; - text-decoration: none; - } - h1, - h2, - h3, - h4, - h5, - h6 { - page-break-inside: avoid; - page-break-after: avoid; - /*break-after: avoid*/ - } - pre, - code { - page-break-inside: avoid; - white-space: pre-wrap /* CSS 3 */; - white-space: -moz-pre-wrap /* Mozilla, since 1999 */; - white-space: -pre-wrap /* Opera 4-6 */; - white-space: -o-pre-wrap /* Opera 7 */; - word-wrap: break-word /* Internet Explorer 5.5+ */; - } -} -.tooltiptext { - position: absolute; - visibility: hidden; - color: #fff; - background-color: #333; - -webkit-transform: translateX(-50%); - -moz-transform: translateX(-50%); - -o-transform: translateX(-50%); - -ms-transform: translateX(-50%); - transform: translateX( - -50% - ); /* Center by moving tooltip 50% of its width left */ - left: -8px; /* Half of the width of the icon */ - top: -35px; - font-size: 0.8em; - text-align: center; - border-radius: 6px; - padding: 5px 8px; - margin: 5px; - z-index: 1000; -} -.tooltipped .tooltiptext { - visibility: visible; -} diff --git a/app/app-styles/variables.css b/app/app-styles/variables.css deleted file mode 100644 index 3b6b2d3..0000000 --- a/app/app-styles/variables.css +++ /dev/null @@ -1,254 +0,0 @@ -/* stylelint-disable color-function-notation, color-hex-length, custom-property-empty-line-before, hue-degree-notation */ - -/* Globals */ - -:root { - --sidebar-width: 300px; - --page-padding: 15px; - --content-max-width: 750px; - --menu-bar-height: 50px; -} - -/* Themes */ - -.ayu { - --bg: hsl(210, 25%, 8%); - --fg: #c5c5c5; - - --sidebar-bg: #14191f; - --sidebar-fg: #c8c9db; - --sidebar-non-existant: #5c6773; - --sidebar-active: #ffb454; - --sidebar-spacer: #2d334f; - - --scrollbar: var(--sidebar-fg); - - --icons: #737480; - --icons-hover: #b7b9cc; - - --links: #0096cf; - - --inline-code-color: #ffb454; - - --theme-popup-bg: #14191f; - --theme-popup-border: #5c6773; - --theme-hover: #191f26; - - --quote-bg: hsl(226, 15%, 17%); - --quote-border: hsl(226, 15%, 22%); - - --table-border-color: hsl(210, 25%, 13%); - --table-header-bg: hsl(210, 25%, 28%); - --table-alternate-bg: hsl(210, 25%, 11%); - - --searchbar-border-color: #848484; - --searchbar-bg: #424242; - --searchbar-fg: #fff; - --searchbar-shadow-color: #d4c89f; - --searchresults-header-fg: #666; - --searchresults-border-color: #888; - --searchresults-li-bg: #252932; - --search-mark-bg: #e3b171; -} - -.coal { - --bg: hsl(200, 7%, 8%); - --fg: #98a3ad; - - --sidebar-bg: #292c2f; - --sidebar-fg: #a1adb8; - --sidebar-non-existant: #505254; - --sidebar-active: #3473ad; - --sidebar-spacer: #393939; - - --scrollbar: var(--sidebar-fg); - - --icons: #43484d; - --icons-hover: #b3c0cc; - - --links: #2b79a2; - - --inline-code-color: #c5c8c6; - - --theme-popup-bg: #141617; - --theme-popup-border: #43484d; - --theme-hover: #1f2124; - - --quote-bg: hsl(234, 21%, 18%); - --quote-border: hsl(234, 21%, 23%); - - --table-border-color: hsl(200, 7%, 13%); - --table-header-bg: hsl(200, 7%, 28%); - --table-alternate-bg: hsl(200, 7%, 11%); - - --searchbar-border-color: #aaa; - --searchbar-bg: #b7b7b7; - --searchbar-fg: #000; - --searchbar-shadow-color: #aaa; - --searchresults-header-fg: #666; - --searchresults-border-color: #98a3ad; - --searchresults-li-bg: #2b2b2f; - --search-mark-bg: #355c7d; -} - -.light { - --bg: hsl(0, 0%, 100%); - --fg: hsl(0, 0%, 0%); - - --sidebar-bg: #fafafa; - --sidebar-fg: hsl(0, 0%, 0%); - --sidebar-non-existant: #aaaaaa; - --sidebar-active: #1f1fff; - --sidebar-spacer: #f4f4f4; - - --scrollbar: #8f8f8f; - - --icons: #747474; - --icons-hover: #000000; - - --links: #20609f; - - --inline-code-color: #301900; - - --theme-popup-bg: #fafafa; - --theme-popup-border: #cccccc; - --theme-hover: #e6e6e6; - - --quote-bg: hsl(197, 37%, 96%); - --quote-border: hsl(197, 37%, 91%); - - --table-border-color: hsl(0, 0%, 95%); - --table-header-bg: hsl(0, 0%, 80%); - --table-alternate-bg: hsl(0, 0%, 97%); - - --searchbar-border-color: #aaa; - --searchbar-bg: #fafafa; - --searchbar-fg: #000; - --searchbar-shadow-color: #aaa; - --searchresults-header-fg: #666; - --searchresults-border-color: #888; - --searchresults-li-bg: #e4f2fe; - --search-mark-bg: #a2cff5; -} - -.navy { - --bg: hsl(226, 23%, 11%); - --fg: #bcbdd0; - - --sidebar-bg: #282d3f; - --sidebar-fg: #c8c9db; - --sidebar-non-existant: #505274; - --sidebar-active: #2b79a2; - --sidebar-spacer: #2d334f; - - --scrollbar: var(--sidebar-fg); - - --icons: #737480; - --icons-hover: #b7b9cc; - - --links: #2b79a2; - - --inline-code-color: #c5c8c6; - - --theme-popup-bg: #161923; - --theme-popup-border: #737480; - --theme-hover: #282e40; - - --quote-bg: hsl(226, 15%, 17%); - --quote-border: hsl(226, 15%, 22%); - - --table-border-color: hsl(226, 23%, 16%); - --table-header-bg: hsl(226, 23%, 31%); - --table-alternate-bg: hsl(226, 23%, 14%); - - --searchbar-border-color: #aaa; - --searchbar-bg: #aeaec6; - --searchbar-fg: #000; - --searchbar-shadow-color: #aaa; - --searchresults-header-fg: #5f5f71; - --searchresults-border-color: #5c5c68; - --searchresults-li-bg: #242430; - --search-mark-bg: #a2cff5; -} - -.rust { - --bg: hsl(60, 9%, 87%); - --fg: #262625; - - --sidebar-bg: #3b2e2a; - --sidebar-fg: #c8c9db; - --sidebar-non-existant: #505254; - --sidebar-active: #e69f67; - --sidebar-spacer: #45373a; - - --scrollbar: var(--sidebar-fg); - - --icons: #737480; - --icons-hover: #262625; - - --links: #2b79a2; - - --inline-code-color: #6e6b5e; - - --theme-popup-bg: #e1e1db; - --theme-popup-border: #b38f6b; - --theme-hover: #99908a; - - --quote-bg: hsl(60, 5%, 75%); - --quote-border: hsl(60, 5%, 70%); - - --table-border-color: hsl(60, 9%, 82%); - --table-header-bg: #b3a497; - --table-alternate-bg: hsl(60, 9%, 84%); - - --searchbar-border-color: #aaa; - --searchbar-bg: #fafafa; - --searchbar-fg: #000; - --searchbar-shadow-color: #aaa; - --searchresults-header-fg: #666; - --searchresults-border-color: #888; - --searchresults-li-bg: #dec2a2; - --search-mark-bg: #e69f67; -} - -@media (prefers-color-scheme: dark) { - .light.no-js { - --bg: hsl(200, 7%, 8%); - --fg: #98a3ad; - - --sidebar-bg: #292c2f; - --sidebar-fg: #a1adb8; - --sidebar-non-existant: #505254; - --sidebar-active: #3473ad; - --sidebar-spacer: #393939; - - --scrollbar: var(--sidebar-fg); - - --icons: #43484d; - --icons-hover: #b3c0cc; - - --links: #2b79a2; - - --inline-code-color: #c5c8c6; - - --theme-popup-bg: #141617; - --theme-popup-border: #43484d; - --theme-hover: #1f2124; - - --quote-bg: hsl(234, 21%, 18%); - --quote-border: hsl(234, 21%, 23%); - - --table-border-color: hsl(200, 7%, 13%); - --table-header-bg: hsl(200, 7%, 28%); - --table-alternate-bg: hsl(200, 7%, 11%); - - --searchbar-border-color: #aaa; - --searchbar-bg: #b7b7b7; - --searchbar-fg: #000; - --searchbar-shadow-color: #aaa; - --searchresults-header-fg: #666; - --searchresults-border-color: #98a3ad; - --searchresults-li-bg: #2b2b2f; - --search-mark-bg: #355c7d; - } -} diff --git a/app/components/rfc-card.gjs b/app/components/rfc-card.gjs new file mode 100644 index 0000000..42b1ce3 --- /dev/null +++ b/app/components/rfc-card.gjs @@ -0,0 +1,31 @@ +import Component from '@glimmer/component'; +import { LinkTo } from '@ember/routing'; + +export default class RfcCard extends Component { + + + get getURL() { + return `/id/${this.args.rfc.rfcFile}`; + } +} diff --git a/app/router.js b/app/router.js index 0e35511..10cd1c9 100644 --- a/app/router.js +++ b/app/router.js @@ -8,4 +8,18 @@ export default class Router extends EmberRouter { Router.map(function () { this.route('rfc', { path: 'id/:id' }); + this.route('stages', function () { + this.route('proposed'); + this.route('exploring'); + this.route('accepted'); + this.route('released'); + this.route('recommended'); + this.route('discontinued'); + this.route('closed'); + this.route('ready-for-release'); + }); + this.route('create-rfc'); + this.route('role-core-team'); + this.route('rfcs-input'); + this.route('rfcs-help'); }); diff --git a/app/routes/application.js b/app/routes/application.js index 96bded0..72f0d5e 100644 --- a/app/routes/application.js +++ b/app/routes/application.js @@ -1,8 +1,3 @@ import Route from '@ember/routing/route'; -import toc from 'rfcs-app-toc-builder:toc.json'; -export default class ApplicationRoute extends Route { - async model() { - return toc; - } -} +export default class ApplicationRoute extends Route {} diff --git a/app/routes/create-rfc.js b/app/routes/create-rfc.js new file mode 100644 index 0000000..da4bb87 --- /dev/null +++ b/app/routes/create-rfc.js @@ -0,0 +1,3 @@ +import Route from '@ember/routing/route'; + +export default class CreateRfcRoute extends Route {} diff --git a/app/routes/rfcs-help.js b/app/routes/rfcs-help.js new file mode 100644 index 0000000..6e5c825 --- /dev/null +++ b/app/routes/rfcs-help.js @@ -0,0 +1,15 @@ +import Route from '@ember/routing/route'; + +export default class RfcsHelpRoute extends Route { + async model() { + // doing it this way makes sure we request both files at the same time + return ( + await Promise.all([ + import('rfcs-app-toc-builder:stage-accepted.json'), + import('rfcs-app-toc-builder:stage-released.json'), + ]) + ) // do we need this one? 🤔 + .map((item) => item.default) + .flat(); + } +} diff --git a/app/routes/rfcs-input.js b/app/routes/rfcs-input.js new file mode 100644 index 0000000..3364113 --- /dev/null +++ b/app/routes/rfcs-input.js @@ -0,0 +1,15 @@ +import Route from '@ember/routing/route'; + +export default class RfcsInputRoute extends Route { + async model() { + // doing it this way makes sure we request both files at the same time + return ( + await Promise.all([ + import('rfcs-app-toc-builder:stage-proposed.json'), + import('rfcs-app-toc-builder:stage-exploring.json'), + ]) + ) + .map((item) => item.default) + .flat(); + } +} diff --git a/app/routes/role-core-team.js b/app/routes/role-core-team.js new file mode 100644 index 0000000..a1d10e1 --- /dev/null +++ b/app/routes/role-core-team.js @@ -0,0 +1,3 @@ +import Route from '@ember/routing/route'; + +export default class RoleCoreTeamRoute extends Route {} diff --git a/app/routes/stages.js b/app/routes/stages.js new file mode 100644 index 0000000..4c1deac --- /dev/null +++ b/app/routes/stages.js @@ -0,0 +1,3 @@ +import Route from '@ember/routing/route'; + +export default class StagesRoute extends Route {} diff --git a/app/routes/stages/accepted.js b/app/routes/stages/accepted.js new file mode 100644 index 0000000..e1de3fd --- /dev/null +++ b/app/routes/stages/accepted.js @@ -0,0 +1,9 @@ +import Route from '@ember/routing/route'; + +export default class StagesAcceptedRoute extends Route { + async model() { + const result = (await import('rfcs-app-toc-builder:stage-accepted.json')) + .default; + return result; + } +} diff --git a/app/routes/stages/closed.js b/app/routes/stages/closed.js new file mode 100644 index 0000000..a4716d5 --- /dev/null +++ b/app/routes/stages/closed.js @@ -0,0 +1,7 @@ +import Route from '@ember/routing/route'; + +export default class StagesClosedRoute extends Route { + async model() { + return (await import('rfcs-app-toc-builder:stage-closed.json')).default; + } +} diff --git a/app/routes/stages/discontinued.js b/app/routes/stages/discontinued.js new file mode 100644 index 0000000..e1e1e1c --- /dev/null +++ b/app/routes/stages/discontinued.js @@ -0,0 +1,8 @@ +import Route from '@ember/routing/route'; + +export default class StagesDiscontinuedRoute extends Route { + async model() { + return (await import('rfcs-app-toc-builder:stage-discontinued.json')) + .default; + } +} diff --git a/app/routes/stages/exploring.js b/app/routes/stages/exploring.js new file mode 100644 index 0000000..ee08cc1 --- /dev/null +++ b/app/routes/stages/exploring.js @@ -0,0 +1,7 @@ +import Route from '@ember/routing/route'; + +export default class StagesExploringRoute extends Route { + async model() { + return (await import('rfcs-app-toc-builder:stage-exploring.json')).default; + } +} diff --git a/app/routes/stages/proposed.js b/app/routes/stages/proposed.js new file mode 100644 index 0000000..55affb6 --- /dev/null +++ b/app/routes/stages/proposed.js @@ -0,0 +1,7 @@ +import Route from '@ember/routing/route'; + +export default class StagesProposedRoute extends Route { + async model() { + return (await import('rfcs-app-toc-builder:stage-proposed.json')).default; + } +} diff --git a/app/routes/stages/ready-for-release.js b/app/routes/stages/ready-for-release.js new file mode 100644 index 0000000..e4d98bd --- /dev/null +++ b/app/routes/stages/ready-for-release.js @@ -0,0 +1,10 @@ +import Route from '@ember/routing/route'; + +export default class StagesReadyForReleaseRoute extends Route { + async model() { + const result = ( + await import('rfcs-app-toc-builder:stage-ready-for-release.json') + ).default; + return result; + } +} diff --git a/app/routes/stages/recommended.js b/app/routes/stages/recommended.js new file mode 100644 index 0000000..18a23e6 --- /dev/null +++ b/app/routes/stages/recommended.js @@ -0,0 +1,8 @@ +import Route from '@ember/routing/route'; + +export default class StagesRecommendedRoute extends Route { + async model() { + return (await import('rfcs-app-toc-builder:stage-recommended.json')) + .default; + } +} diff --git a/app/routes/stages/released.js b/app/routes/stages/released.js new file mode 100644 index 0000000..469f0ca --- /dev/null +++ b/app/routes/stages/released.js @@ -0,0 +1,7 @@ +import Route from '@ember/routing/route'; + +export default class StagesReleasedRoute extends Route { + async model() { + return (await import('rfcs-app-toc-builder:stage-released.json')).default; + } +} diff --git a/app/templates/application.gjs b/app/templates/application.gjs index 3b61d80..a7a8411 100644 --- a/app/templates/application.gjs +++ b/app/templates/application.gjs @@ -1,21 +1,76 @@ import { pageTitle } from 'ember-page-title'; import { LinkTo } from '@ember/routing'; -import GroupedToc from 'rfcs-app/components/grouped-toc'; +import EsHeader from 'ember-styleguide/components/es-header'; +import EsSidebar from 'ember-styleguide/components/es-sidebar'; diff --git a/app/templates/create-rfc.gjs b/app/templates/create-rfc.gjs new file mode 100644 index 0000000..426fa76 --- /dev/null +++ b/app/templates/create-rfc.gjs @@ -0,0 +1,118 @@ +import { pageTitle } from 'ember-page-title'; +import { LinkTo } from '@ember/routing'; +import EsNote from 'ember-styleguide/components/es-note'; + + diff --git a/app/templates/index.gjs b/app/templates/index.gjs index 3391276..dde4344 100644 --- a/app/templates/index.gjs +++ b/app/templates/index.gjs @@ -1,9 +1,24 @@ -import MarkdownToHtml from 'ember-cli-showdown/components/markdown-to-html'; +import RfcCard from '../components/rfc-card'; diff --git a/app/templates/rfc.gjs b/app/templates/rfc.gjs index 86df355..31f0bb8 100644 --- a/app/templates/rfc.gjs +++ b/app/templates/rfc.gjs @@ -1,5 +1,4 @@ import { pageTitle } from 'ember-page-title'; -import { LinkTo } from '@ember/routing'; import formatDate from 'rfcs-app/helpers/format-date'; import MarkdownToHtml from 'ember-cli-showdown/components/markdown-to-html'; import Component from '@glimmer/component'; @@ -8,28 +7,6 @@ import { inject as controller } from '@ember/controller'; export default class RFCRouteComponent extends Component { @controller application; - get previousRFC() { - let currentRFCIndex = this.application.model.links.indexOf( - this.args.model.id - ); - if (currentRFCIndex <= 0) { - return null; - } - - return this.application.model.links[currentRFCIndex - 1]; - } - - get nextRFC() { - let currentRFCIndex = this.application.model.links.indexOf( - this.args.model.id - ); - if (currentRFCIndex >= this.application.model.links.length) { - return null; - } - - return this.application.model.links[currentRFCIndex + 1]; - } - toggleSidebar() { document.body.classList.toggle('sidebar-hidden'); } @@ -93,67 +70,5 @@ export default class RFCRouteComponent extends Component { - - {{#if this.previousRFC}} - - - - {{else}} - - - - {{/if}} - - {{#if this.nextRFC}} - - - - {{/if}} } diff --git a/app/templates/rfcs-help.gjs b/app/templates/rfcs-help.gjs new file mode 100644 index 0000000..9ea89a7 --- /dev/null +++ b/app/templates/rfcs-help.gjs @@ -0,0 +1,15 @@ +import { pageTitle } from 'ember-page-title'; +import RfcCard from '../components/rfc-card'; + + diff --git a/app/templates/rfcs-input.gjs b/app/templates/rfcs-input.gjs new file mode 100644 index 0000000..9afea5e --- /dev/null +++ b/app/templates/rfcs-input.gjs @@ -0,0 +1,15 @@ +import { pageTitle } from 'ember-page-title'; +import RfcCard from '../components/rfc-card'; + + diff --git a/app/templates/role-core-team.gjs b/app/templates/role-core-team.gjs new file mode 100644 index 0000000..3487f62 --- /dev/null +++ b/app/templates/role-core-team.gjs @@ -0,0 +1,94 @@ +import { pageTitle } from 'ember-page-title'; + + diff --git a/app/templates/stages/accepted.gjs b/app/templates/stages/accepted.gjs new file mode 100644 index 0000000..1663cef --- /dev/null +++ b/app/templates/stages/accepted.gjs @@ -0,0 +1,15 @@ +import { pageTitle } from 'ember-page-title'; +import RfcCard from '../../components/rfc-card'; + diff --git a/app/templates/stages/closed.gjs b/app/templates/stages/closed.gjs new file mode 100644 index 0000000..e6ef10a --- /dev/null +++ b/app/templates/stages/closed.gjs @@ -0,0 +1,16 @@ +import { pageTitle } from 'ember-page-title'; +import RfcCard from 'rfcs-app/components/rfc-card'; + + diff --git a/app/templates/stages/discontinued.gjs b/app/templates/stages/discontinued.gjs new file mode 100644 index 0000000..a7b5d76 --- /dev/null +++ b/app/templates/stages/discontinued.gjs @@ -0,0 +1,15 @@ +import { pageTitle } from 'ember-page-title'; +import RfcCard from '../../components/rfc-card'; + diff --git a/app/templates/stages/exploring.gjs b/app/templates/stages/exploring.gjs new file mode 100644 index 0000000..8468fc9 --- /dev/null +++ b/app/templates/stages/exploring.gjs @@ -0,0 +1,17 @@ +import { pageTitle } from 'ember-page-title'; +import RfcCard from 'rfcs-app/components/rfc-card'; + + diff --git a/app/templates/stages/index.gjs b/app/templates/stages/index.gjs new file mode 100644 index 0000000..844214a --- /dev/null +++ b/app/templates/stages/index.gjs @@ -0,0 +1,236 @@ +import { pageTitle } from 'ember-page-title'; + + diff --git a/app/templates/stages/proposed.gjs b/app/templates/stages/proposed.gjs new file mode 100644 index 0000000..0aa7d74 --- /dev/null +++ b/app/templates/stages/proposed.gjs @@ -0,0 +1,17 @@ +import { pageTitle } from 'ember-page-title'; +import RfcCard from 'rfcs-app/components/rfc-card'; + + diff --git a/app/templates/stages/ready-for-release.gjs b/app/templates/stages/ready-for-release.gjs new file mode 100644 index 0000000..ed95e8f --- /dev/null +++ b/app/templates/stages/ready-for-release.gjs @@ -0,0 +1,17 @@ +import { pageTitle } from 'ember-page-title'; +import RfcCard from 'rfcs-app/components/rfc-card'; + + diff --git a/app/templates/stages/recommended.gjs b/app/templates/stages/recommended.gjs new file mode 100644 index 0000000..8b519db --- /dev/null +++ b/app/templates/stages/recommended.gjs @@ -0,0 +1,15 @@ +import { pageTitle } from 'ember-page-title'; +import RfcCard from '../../components/rfc-card'; + diff --git a/app/templates/stages/released.gjs b/app/templates/stages/released.gjs new file mode 100644 index 0000000..fc9ce5d --- /dev/null +++ b/app/templates/stages/released.gjs @@ -0,0 +1,15 @@ +import { pageTitle } from 'ember-page-title'; +import RfcCard from '../../components/rfc-card'; + diff --git a/combineData.mjs b/combineData.mjs new file mode 100755 index 0000000..ca12aa4 --- /dev/null +++ b/combineData.mjs @@ -0,0 +1,124 @@ +#!/usr/bin/env node + +import { readdir, readFile, writeFile } from 'fs/promises'; +import { join } from 'path'; + +const rfcsFiles = await readdir('./data/raw'); + +rfcsFiles.sort((a, b) => parseInt(a) - parseInt(b)); + +let rfcMap = {}; + +function getDays(date1, date2) { + if (date1) { + return Math.ceil( + (new Date(date1) - new Date(date2)) / (1000 * 60 * 60 * 24), + ); + } else { + return Math.ceil((new Date() - new Date(date2)) / (1000 * 60 * 60 * 24)); + } +} + +function findFirstStage(rfc) { + if (rfc.merged) { + return 'accepted'; + } else if (!rfc.closed) { + if ( + rfc.timelineItems.filter((item) => item.label == 'S-Exploring').length == + 1 + ) { + return 'exploring'; + } else { + return 'proposed'; + } + } else { + return 'closed'; + } +} + +function isFCP(rfc) { + if (rfc.merged) { + return false; + } else { + return rfc.timelineItems.filter( + (item) => item.label == 'Final Comment Period', + ).length % 2 == 1 + } +} + +function getFirstStagesDuration(rfc) { + if (!rfc.closed || rfc.merged) { + let exploringLabels = rfc.timelineItems.filter( + (item) => item.label == 'S-Exploring', + ); + if (exploringLabels.length > 0) { + if (rfc.merged) { + return { + proposed: getDays(exploringLabels[0].createdAt, rfc.createdAt), + exploring: getDays(rfc.mergedAt, exploringLabels[0].createdAt), + accepted: null, + release: null, + released: null, + }; + } else { + return { + proposed: getDays(exploringLabels[0].createdAt, rfc.createdAt), + exploring: getDays(new Date(), exploringLabels[0].createdAt), + accepted: null, + release: null, + released: null, + }; + } + } else { + return { + proposed: getDays(new Date(), rfc.createdAt), + exploring: null, + accepted: null, + release: null, + released: null, + }; + } + } else { + return { + closed: this.getDays(rfc.closedAt, rfc.createdAt), + }; + } +} + +for (let file of rfcsFiles) { + const rfc = JSON.parse(await readFile(join('data/raw', file), 'utf8')); + if (rfc.title.includes('Advance RFC')) { + let advanceRFC = rfc.title.match(/[0-9]+/); + let num = parseInt(advanceRFC, 10); + let stage = rfc.title.split(' ').pop().toLowerCase(); + rfcMap[num].stageDuration[`${rfcMap[num].currentStage}`] = getDays( + rfc.mergedAt, + rfc.createdAt, + ); + if (rfc.merged) { + rfcMap[num].currentStage = stage; + } + if (rfc.assignees.length > 0) { + rfcMap[num].assignees.push(...rfc.assignees); + } + rfcMap[num].fcp = isFCP(rfc); + rfcMap[num].connected.push(rfc); + } else { + rfcMap[rfc.number] = { + ...rfc, + currentStage: findFirstStage(rfc), + labels: rfc.timelineItems.filter((item) => item.label == 'S-Exploring'), + fcp: isFCP(rfc), + stageDuration: getFirstStagesDuration(rfc), + connected: [], + assignees: rfc.assignees, + }; + } +} + +for (let rfc in rfcMap) { + await writeFile( + join('data', `${rfc}.json`), + JSON.stringify(rfcMap[rfc], null, 2), + ); +} diff --git a/data/1.json b/data/1.json new file mode 100644 index 0000000..d5d73cc --- /dev/null +++ b/data/1.json @@ -0,0 +1,43 @@ +{ + "number": 1, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1", + "title": "RFC: Pass through attribute meta data to related Transform", + "createdAt": "2014-08-14T18:00:42Z", + "closedAt": "2016-01-27T18:18:58Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2014-08-22T18:30:31Z", + "label": "ember-data" + }, + { + "event": "labeled", + "createdAt": "2015-03-27T18:42:17Z", + "label": "Needs Response" + }, + { + "event": "labeled", + "createdAt": "2016-01-06T18:23:03Z", + "label": "Needs Implementer" + }, + { + "event": "unlabeled", + "createdAt": "2016-01-06T18:23:03Z", + "label": "Needs Response" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 4044, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/10.json b/data/10.json new file mode 100644 index 0000000..36e0679 --- /dev/null +++ b/data/10.json @@ -0,0 +1,33 @@ +{ + "number": 10, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/10", + "title": "RFC: Engines", + "createdAt": "2014-10-25T00:32:05Z", + "closedAt": "2016-04-11T14:40:10Z", + "merged": true, + "mergedAt": "2016-04-11T14:40:10Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2015-03-27T18:40:21Z", + "label": "Needs Champion" + }, + { + "event": "labeled", + "createdAt": "2015-03-27T18:40:21Z", + "label": "Needs Implementer" + } + ], + "currentStage": "accepted", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 3972, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/100.json b/data/100.json new file mode 100644 index 0000000..20664d3 --- /dev/null +++ b/data/100.json @@ -0,0 +1,22 @@ +{ + "number": 100, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/100", + "title": "Attribute Actions", + "createdAt": "2015-10-18T15:58:33Z", + "closedAt": "2016-01-18T05:12:41Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 3614, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1000.json b/data/1000.json new file mode 100644 index 0000000..3e6b520 --- /dev/null +++ b/data/1000.json @@ -0,0 +1,72 @@ +{ + "number": 1000, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1000", + "title": "Make array built-in in strict-mode", + "createdAt": "2023-12-22T19:04:19Z", + "closedAt": "2024-06-12T14:36:10Z", + "merged": true, + "mergedAt": "2024-06-12T14:36:10Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2023-12-22T19:04:34Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-01-19T19:59:09Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2024-02-09T20:03:47Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-05-17T18:41:01Z", + "label": "Final Comment Period" + } + ], + "currentStage": "accepted", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-01-19T19:59:09Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 29, + "exploring": 145, + "accepted": 454, + "release": null, + "released": null + }, + "connected": [ + { + "number": 1034, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1034", + "title": "Advance RFC #1000 `\"Make (array) a built in helper\"` to Stage Ready for Release", + "createdAt": "2024-06-12T14:37:25Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-06-12T14:37:27Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-06-12T14:37:27Z", + "label": "S-Ready for Release" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1001.json b/data/1001.json new file mode 100644 index 0000000..408ac89 --- /dev/null +++ b/data/1001.json @@ -0,0 +1,136 @@ +{ + "number": 1001, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1001", + "title": "Deprecate named `inject` export from `@ember/service`", + "createdAt": "2023-12-26T18:17:20Z", + "closedAt": "2024-03-08T20:06:28Z", + "merged": true, + "mergedAt": "2024-03-08T20:06:28Z", + "assignees": [ + { + "login": "NullVoxPopuli", + "avatarUrl": "https://avatars.githubusercontent.com/u/199018?v=4" + } + ], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2023-12-26T18:17:35Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-01-19T19:59:37Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2024-02-09T20:03:48Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-03-01T20:01:17Z", + "label": "Final Comment Period" + } + ], + "currentStage": "recommended", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-01-19T19:59:37Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 25, + "exploring": 50, + "accepted": 287, + "release": 91, + "released": 14 + }, + "connected": [ + { + "number": 1013, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1013", + "title": "Advance RFC #1001 `\"Deprecate named inject export from @ember/service\"` to Stage Ready for Release", + "createdAt": "2024-03-08T20:07:06Z", + "closedAt": "2024-12-20T19:10:47Z", + "merged": true, + "mergedAt": "2024-12-20T19:10:47Z", + "assignees": [ + { + "login": "NullVoxPopuli", + "avatarUrl": "https://avatars.githubusercontent.com/u/199018?v=4" + } + ], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-03-08T20:07:07Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-03-08T20:07:07Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2024-12-13T20:12:00Z", + "label": "Final Comment Period" + } + ] + }, + { + "number": 1061, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1061", + "title": "Advance RFC #1001 `\"Deprecate named inject export from @ember/service\"` to Stage Released", + "createdAt": "2024-12-20T19:11:32Z", + "closedAt": "2025-03-21T18:23:05Z", + "merged": true, + "mergedAt": "2025-03-21T18:23:05Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-12-20T19:11:32Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-12-20T19:11:32Z", + "label": "S-Released" + } + ] + }, + { + "number": 1089, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1089", + "title": "Advance RFC #1001 `\"Deprecate named inject export from @ember/service\"` to Stage Recommended", + "createdAt": "2025-03-21T18:23:54Z", + "closedAt": "2025-04-04T18:17:44Z", + "merged": true, + "mergedAt": "2025-04-04T18:17:44Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-03-21T18:23:55Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-03-21T18:23:55Z", + "label": "S-Recommended" + }, + { + "event": "labeled", + "createdAt": "2025-03-28T18:16:27Z", + "label": "Final Comment Period" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1002.json b/data/1002.json new file mode 100644 index 0000000..025d322 --- /dev/null +++ b/data/1002.json @@ -0,0 +1,22 @@ +{ + "number": 1002, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1002", + "title": "Update RFC template and deprecation RFC template and Ready for Release, Recommended PR templates", + "createdAt": "2024-01-12T16:24:48Z", + "closedAt": "2024-01-19T19:32:35Z", + "merged": true, + "mergedAt": "2024-01-19T19:32:35Z", + "assignees": [], + "timelineItems": [], + "currentStage": "accepted", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 606, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1003.json b/data/1003.json new file mode 100644 index 0000000..973d009 --- /dev/null +++ b/data/1003.json @@ -0,0 +1,131 @@ +{ + "number": 1003, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1003", + "title": "Deprecate `import Ember from 'ember'`", + "createdAt": "2024-01-22T19:56:02Z", + "closedAt": "2024-03-22T18:12:08Z", + "merged": true, + "mergedAt": "2024-03-22T18:12:08Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-01-22T19:56:18Z", + "label": "S-Proposed" + }, + { + "event": "unlabeled", + "createdAt": "2024-02-16T19:55:05Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-02-16T19:55:05Z", + "label": "S-Exploring" + }, + { + "event": "labeled", + "createdAt": "2024-03-08T19:54:36Z", + "label": "Final Comment Period" + } + ], + "currentStage": "released", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-02-16T19:55:05Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 25, + "exploring": 35, + "accepted": 330, + "release": 91, + "released": 88 + }, + "connected": [ + { + "number": 1015, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1015", + "title": "Advance RFC #1003 `\"Deprecate `import Ember from 'ember';\"` to Stage Ready for Release", + "createdAt": "2024-03-22T18:12:58Z", + "closedAt": "2025-02-14T19:27:48Z", + "merged": true, + "mergedAt": "2025-02-14T19:27:48Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-03-22T18:12:58Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-03-22T18:12:58Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2024-05-17T18:20:00Z", + "label": "Final Comment Period" + }, + { + "event": "unlabeled", + "createdAt": "2024-06-04T18:16:09Z", + "label": "Final Comment Period" + }, + { + "event": "labeled", + "createdAt": "2025-02-07T19:40:40Z", + "label": "Final Comment Period" + } + ] + }, + { + "number": 1084, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1084", + "title": "Advance RFC #1003 `\"Deprecate `import Ember from 'ember';\"` to Stage Released", + "createdAt": "2025-03-14T18:53:05Z", + "closedAt": "2025-06-13T18:19:03Z", + "merged": true, + "mergedAt": "2025-06-13T18:19:03Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-03-14T18:53:06Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-03-14T18:53:06Z", + "label": "S-Released" + } + ] + }, + { + "number": 1110, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1110", + "title": "Advance RFC #1003 `\"Deprecate `import Ember from 'ember';\"` to Stage Recommended", + "createdAt": "2025-06-13T18:19:57Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-06-13T18:19:58Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-06-13T18:19:58Z", + "label": "S-Recommended" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1006.json b/data/1006.json new file mode 100644 index 0000000..636d8a8 --- /dev/null +++ b/data/1006.json @@ -0,0 +1,126 @@ +{ + "number": 1006, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1006", + "title": "Deprecate the (action) template helper and modifier", + "createdAt": "2024-02-13T20:42:58Z", + "closedAt": "2024-03-08T20:03:07Z", + "merged": true, + "mergedAt": "2024-03-08T20:03:07Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-02-13T20:43:16Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-02-23T19:46:57Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2024-02-23T19:47:32Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-02-23T19:51:22Z", + "label": "Final Comment Period" + } + ], + "currentStage": "recommended", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-02-23T19:46:57Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 10, + "exploring": 15, + "accepted": 49, + "release": 50, + "released": 77 + }, + "connected": [ + { + "number": 1011, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1011", + "title": "Advance RFC #1006 `\"Deprecate (action) template helper and {{action}} modifier.\"` to Stage Ready for Release", + "createdAt": "2024-03-08T20:03:52Z", + "closedAt": "2024-04-26T18:18:43Z", + "merged": true, + "mergedAt": "2024-04-26T18:18:43Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-03-08T20:03:53Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-03-08T20:03:53Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2024-04-17T14:29:51Z", + "label": "Final Comment Period" + } + ] + }, + { + "number": 1022, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1022", + "title": "Advance RFC #1006 `\"Deprecate (action) template helper and {{action}} modifier.\"` to Stage Released", + "createdAt": "2024-04-26T18:19:36Z", + "closedAt": "2024-06-14T18:31:45Z", + "merged": true, + "mergedAt": "2024-06-14T18:31:45Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-04-26T18:19:37Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-04-26T18:19:37Z", + "label": "S-Released" + } + ] + }, + { + "number": 1036, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1036", + "title": "Advance RFC #1006 `\"Deprecate (action) template helper and {{action}} modifier.\"` to Stage Recommended", + "createdAt": "2024-06-14T18:32:27Z", + "closedAt": "2024-08-30T18:12:39Z", + "merged": true, + "mergedAt": "2024-08-30T18:12:38Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-06-14T18:32:27Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-06-14T18:32:27Z", + "label": "S-Recommended" + }, + { + "event": "labeled", + "createdAt": "2024-08-23T18:16:32Z", + "label": "Final Comment Period" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1007.json b/data/1007.json new file mode 100644 index 0000000..241f2dc --- /dev/null +++ b/data/1007.json @@ -0,0 +1,28 @@ +{ + "number": 1007, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1007", + "title": "maybe, maybe not better on syntax - this RFC accidentally found some decision trees around when to use {{on}} vs on*", + "createdAt": "2024-02-16T23:19:00Z", + "closedAt": "2024-02-23T19:09:35Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-02-16T23:19:17Z", + "label": "S-Proposed" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 570, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1009.json b/data/1009.json new file mode 100644 index 0000000..38918b4 --- /dev/null +++ b/data/1009.json @@ -0,0 +1,121 @@ +{ + "number": 1009, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1009", + "title": "Make deprecation workflow built in", + "createdAt": "2024-02-22T17:46:40Z", + "closedAt": "2024-10-18T18:04:40Z", + "merged": true, + "mergedAt": "2024-10-18T18:04:40Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-02-22T17:46:57Z", + "label": "S-Proposed" + }, + { + "event": "unlabeled", + "createdAt": "2024-03-01T19:12:04Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-03-01T19:12:04Z", + "label": "S-Exploring" + }, + { + "event": "labeled", + "createdAt": "2024-09-27T18:37:29Z", + "label": "Final Comment Period" + } + ], + "currentStage": "released", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-03-01T19:12:04Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 9, + "exploring": 231, + "accepted": 120, + "release": 14, + "released": 165 + }, + "connected": [ + { + "number": 1048, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1048", + "title": "Advance RFC #1009 `\"Move the deprecation workflow library to be installed in apps by default\"` to Stage Ready for Release", + "createdAt": "2024-10-18T18:05:34Z", + "closedAt": "2025-02-14T19:25:41Z", + "merged": true, + "mergedAt": "2025-02-14T19:25:41Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-10-18T18:05:35Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-10-18T18:05:35Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2025-02-07T19:29:28Z", + "label": "Final Comment Period" + } + ] + }, + { + "number": 1086, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1086", + "title": "Advance RFC #1009 `\"Move the deprecation workflow library to be installed in apps by default\"` to Stage Released", + "createdAt": "2025-03-14T18:54:21Z", + "closedAt": "2025-03-28T18:24:29Z", + "merged": true, + "mergedAt": "2025-03-28T18:24:29Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-03-14T18:54:22Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-03-14T18:54:22Z", + "label": "S-Released" + } + ] + }, + { + "number": 1093, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1093", + "title": "Advance RFC #1009 `\"Move the deprecation workflow library to be installed in apps by default\"` to Stage Recommended", + "createdAt": "2025-03-28T18:25:16Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-03-28T18:25:17Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-03-28T18:25:17Z", + "label": "S-Recommended" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/101.json b/data/101.json new file mode 100644 index 0000000..c91dfff --- /dev/null +++ b/data/101.json @@ -0,0 +1,28 @@ +{ + "number": 101, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/101", + "title": "Friendly Errors", + "createdAt": "2015-10-23T14:58:37Z", + "closedAt": "2016-01-06T00:45:21Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2015-10-23T20:17:45Z", + "label": "T-ember-data" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 3609, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1010.json b/data/1010.json new file mode 100644 index 0000000..32b65f0 --- /dev/null +++ b/data/1010.json @@ -0,0 +1,22 @@ +{ + "number": 1010, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1010", + "title": "Update 0774-implicit-record-route-loading to include optional feature", + "createdAt": "2024-02-28T15:20:31Z", + "closedAt": "2024-02-28T15:21:46Z", + "merged": true, + "mergedAt": "2024-02-28T15:21:46Z", + "assignees": [], + "timelineItems": [], + "currentStage": "accepted", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 559, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1014.json b/data/1014.json new file mode 100644 index 0000000..4ba2b7c --- /dev/null +++ b/data/1014.json @@ -0,0 +1,44 @@ +{ + "number": 1014, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1014", + "title": "Introduce \"Ember Language Tooling Roadmap\" RFC", + "createdAt": "2024-03-17T01:26:28Z", + "closedAt": "2024-12-13T19:36:06Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-03-17T01:26:43Z", + "label": "S-Proposed" + }, + { + "event": "unlabeled", + "createdAt": "2024-03-22T18:20:02Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-03-22T18:20:02Z", + "label": "S-Exploring" + } + ], + "currentStage": "exploring", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-03-22T18:20:02Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 6, + "exploring": 536, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1016.json b/data/1016.json new file mode 100644 index 0000000..f46073f --- /dev/null +++ b/data/1016.json @@ -0,0 +1,28 @@ +{ + "number": 1016, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1016", + "title": "Remove support for this.attrs", + "createdAt": "2024-03-27T21:32:56Z", + "closedAt": "2024-03-29T22:55:13Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-03-27T21:33:10Z", + "label": "S-Proposed" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 530, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1017.json b/data/1017.json new file mode 100644 index 0000000..42a3d5a --- /dev/null +++ b/data/1017.json @@ -0,0 +1,28 @@ +{ + "number": 1017, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1017", + "title": "Propose Themes for ember-qunit", + "createdAt": "2024-03-28T14:54:59Z", + "closedAt": "2024-04-10T14:51:26Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-03-28T14:55:21Z", + "label": "S-Proposed" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 530, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/102.json b/data/102.json new file mode 100644 index 0000000..c4ef2cd --- /dev/null +++ b/data/102.json @@ -0,0 +1,22 @@ +{ + "number": 102, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/102", + "title": "hasBlock.js", + "createdAt": "2015-10-27T23:06:54Z", + "closedAt": "2017-07-30T17:25:38Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 3604, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1026.json b/data/1026.json new file mode 100644 index 0000000..e22135f --- /dev/null +++ b/data/1026.json @@ -0,0 +1,141 @@ +{ + "number": 1026, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1026", + "title": "EmberData | deprecate Store extends EmberObject", + "createdAt": "2024-05-11T08:21:17Z", + "closedAt": "2024-06-14T18:30:51Z", + "merged": true, + "mergedAt": "2024-06-14T18:30:51Z", + "assignees": [ + { + "login": "runspired", + "avatarUrl": "https://avatars.githubusercontent.com/u/650309?v=4" + } + ], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-05-11T08:21:36Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-05-11T08:22:44Z", + "label": "T-ember-data" + }, + { + "event": "labeled", + "createdAt": "2024-05-11T08:22:44Z", + "label": "T-deprecation" + }, + { + "event": "unlabeled", + "createdAt": "2024-05-17T17:38:02Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-05-17T17:38:02Z", + "label": "S-Exploring" + }, + { + "event": "labeled", + "createdAt": "2024-05-17T17:38:20Z", + "label": "Final Comment Period" + } + ], + "currentStage": "recommended", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-05-17T17:38:02Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 7, + "exploring": 29, + "accepted": 112, + "release": 36, + "released": 196 + }, + "connected": [ + { + "number": 1035, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1035", + "title": "Advance RFC #1026 `\"EmberData | Deprecate Store extending EmberObject\"` to Stage Ready for Release", + "createdAt": "2024-06-14T18:31:34Z", + "closedAt": "2024-10-04T18:23:02Z", + "merged": true, + "mergedAt": "2024-10-04T18:23:02Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-06-14T18:31:35Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-06-14T18:31:35Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2024-09-27T18:33:00Z", + "label": "Final Comment Period" + } + ] + }, + { + "number": 1047, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1047", + "title": "Advance RFC #1026 `\"EmberData | Deprecate Store extending EmberObject\"` to Stage Released", + "createdAt": "2024-10-04T18:23:50Z", + "closedAt": "2024-11-08T19:09:12Z", + "merged": true, + "mergedAt": "2024-11-08T19:09:12Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-10-04T18:23:50Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-10-04T18:23:50Z", + "label": "S-Released" + } + ] + }, + { + "number": 1051, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1051", + "title": "Advance RFC #1026 `\"EmberData | Deprecate Store extending EmberObject\"` to Stage Recommended", + "createdAt": "2024-11-08T19:09:59Z", + "closedAt": "2025-05-23T18:48:18Z", + "merged": true, + "mergedAt": "2025-05-23T18:48:17Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-11-08T19:10:00Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-11-08T19:10:00Z", + "label": "S-Recommended" + }, + { + "event": "labeled", + "createdAt": "2025-05-16T18:18:24Z", + "label": "Final Comment Period" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1027.json b/data/1027.json new file mode 100644 index 0000000..a8e8d17 --- /dev/null +++ b/data/1027.json @@ -0,0 +1,165 @@ +{ + "number": 1027, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1027", + "title": "EmberData | SchemaService", + "createdAt": "2024-05-11T10:05:52Z", + "closedAt": "2024-06-07T17:09:39Z", + "merged": true, + "mergedAt": "2024-06-07T17:09:39Z", + "assignees": [ + { + "login": "runspired", + "avatarUrl": "https://avatars.githubusercontent.com/u/650309?v=4" + }, + { + "login": "runspired", + "avatarUrl": "https://avatars.githubusercontent.com/u/650309?v=4" + } + ], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-05-11T10:05:52Z", + "label": "T-ember-data" + }, + { + "event": "labeled", + "createdAt": "2024-05-11T10:05:52Z", + "label": "T-deprecation" + }, + { + "event": "labeled", + "createdAt": "2024-05-11T10:06:08Z", + "label": "S-Proposed" + }, + { + "event": "unlabeled", + "createdAt": "2024-05-17T17:39:19Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-05-17T17:39:19Z", + "label": "S-Exploring" + }, + { + "event": "labeled", + "createdAt": "2024-05-23T23:55:24Z", + "label": "Final Comment Period" + } + ], + "currentStage": "released", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-05-17T17:39:19Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 7, + "exploring": 21, + "accepted": 351, + "release": 21, + "released": 88 + }, + "connected": [ + { + "number": 1030, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1030", + "title": "Advance RFC #1027 `\"EmberData | SchemaService\"` to Stage Ready for Release", + "createdAt": "2024-06-07T17:10:19Z", + "closedAt": "2025-05-23T18:38:10Z", + "merged": true, + "mergedAt": "2025-05-23T18:38:10Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-06-07T17:10:20Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-06-07T17:10:20Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2025-03-21T18:33:01Z", + "label": "T-ember-data" + }, + { + "event": "labeled", + "createdAt": "2025-05-16T18:30:10Z", + "label": "Final Comment Period" + } + ] + }, + { + "number": 1106, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1106", + "title": "Advance RFC #1027 `\"EmberData | SchemaService\"` to Stage Released", + "createdAt": "2025-05-23T18:38:54Z", + "closedAt": "2025-06-13T18:17:50Z", + "merged": true, + "mergedAt": "2025-06-13T18:17:50Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-05-23T18:38:55Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-05-23T18:38:55Z", + "label": "S-Released" + }, + { + "event": "labeled", + "createdAt": "2025-05-23T18:38:56Z", + "label": "RFC Advancement" + } + ] + }, + { + "number": 1109, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1109", + "title": "Advance RFC #1027 `\"EmberData | SchemaService\"` to Stage Recommended", + "createdAt": "2025-06-13T18:18:36Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [ + { + "login": "runspired", + "avatarUrl": "https://avatars.githubusercontent.com/u/650309?v=4" + } + ], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-06-13T18:18:37Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-06-13T18:18:37Z", + "label": "S-Recommended" + }, + { + "event": "labeled", + "createdAt": "2025-06-13T18:18:38Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-07-02T15:52:45Z", + "label": "T-ember-data" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1029.json b/data/1029.json new file mode 100644 index 0000000..94bd679 --- /dev/null +++ b/data/1029.json @@ -0,0 +1,166 @@ +{ + "number": 1029, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1029", + "title": "Deprecate app-prefix et al", + "createdAt": "2024-05-20T13:00:41Z", + "closedAt": "2024-08-30T18:08:00Z", + "merged": true, + "mergedAt": "2024-08-30T18:08:00Z", + "assignees": [ + { + "login": "bertdeblock", + "avatarUrl": "https://avatars.githubusercontent.com/u/7403183?v=4" + } + ], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-05-20T13:00:56Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-06-28T18:54:21Z", + "label": "S-Exploring" + }, + { + "event": "labeled", + "createdAt": "2024-06-28T18:54:21Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2024-08-09T18:21:31Z", + "label": "S-Exploring" + }, + { + "event": "labeled", + "createdAt": "2024-08-23T18:46:24Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2024-08-23T18:46:43Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-08-23T18:47:24Z", + "label": "Final Comment Period" + } + ], + "currentStage": "recommended", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-06-28T18:54:21Z", + "label": "S-Exploring" + }, + { + "event": "labeled", + "createdAt": "2024-06-28T18:54:21Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2024-08-09T18:21:31Z", + "label": "S-Exploring" + }, + { + "event": "labeled", + "createdAt": "2024-08-23T18:46:24Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 40, + "exploring": 63, + "accepted": 148, + "release": 63, + "released": 29 + }, + "connected": [ + { + "number": 1044, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1044", + "title": "Advance RFC #1029 `\"Deprecate app-prefix, app-suffix, tests-prefix, and tests-suffix\"` to Stage Ready for Release", + "createdAt": "2024-08-30T18:08:47Z", + "closedAt": "2025-01-24T19:11:28Z", + "merged": true, + "mergedAt": "2025-01-24T19:11:28Z", + "assignees": [ + { + "login": "bertdeblock", + "avatarUrl": "https://avatars.githubusercontent.com/u/7403183?v=4" + } + ], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-08-30T18:08:47Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-08-30T18:08:48Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2025-01-17T19:22:34Z", + "label": "Final Comment Period" + } + ] + }, + { + "number": 1072, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1072", + "title": "Advance RFC #1029 `\"Deprecate app-prefix, app-suffix, tests-prefix, and tests-suffix\"` to Stage Released", + "createdAt": "2025-01-24T19:12:14Z", + "closedAt": "2025-03-28T18:25:23Z", + "merged": true, + "mergedAt": "2025-03-28T18:25:23Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-01-24T19:12:15Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-01-24T19:12:15Z", + "label": "S-Released" + } + ] + }, + { + "number": 1094, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1094", + "title": "Advance RFC #1029 `\"Deprecate app-prefix, app-suffix, tests-prefix, and tests-suffix\"` to Stage Recommended", + "createdAt": "2025-03-28T18:26:15Z", + "closedAt": "2025-04-25T18:48:16Z", + "merged": true, + "mergedAt": "2025-04-25T18:48:16Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-03-28T18:26:16Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-03-28T18:26:16Z", + "label": "S-Recommended" + }, + { + "event": "labeled", + "createdAt": "2025-04-04T18:23:42Z", + "label": "Final Comment Period" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1037.json b/data/1037.json new file mode 100644 index 0000000..33fde41 --- /dev/null +++ b/data/1037.json @@ -0,0 +1,64 @@ +{ + "number": 1037, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1037", + "title": "Make scoped CSS the default in 'template-tags'", + "createdAt": "2024-07-09T10:08:53Z", + "closedAt": "2025-05-10T19:22:12Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-07-09T10:09:11Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-07-12T18:58:32Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2024-08-09T18:21:21Z", + "label": "S-Exploring" + }, + { + "event": "labeled", + "createdAt": "2024-08-23T18:43:51Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2024-08-23T18:43:56Z", + "label": "S-Proposed" + } + ], + "currentStage": "proposed", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-07-12T18:58:32Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2024-08-09T18:21:21Z", + "label": "S-Exploring" + }, + { + "event": "labeled", + "createdAt": "2024-08-23T18:43:51Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 4, + "exploring": 424, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1038.json b/data/1038.json new file mode 100644 index 0000000..543a15e --- /dev/null +++ b/data/1038.json @@ -0,0 +1,28 @@ +{ + "number": 1038, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1038", + "title": "Deprecate Windows support", + "createdAt": "2024-07-09T21:59:49Z", + "closedAt": "2024-07-10T17:54:09Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-07-09T22:00:08Z", + "label": "S-Proposed" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 426, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1041.json b/data/1041.json new file mode 100644 index 0000000..40218b5 --- /dev/null +++ b/data/1041.json @@ -0,0 +1,72 @@ +{ + "number": 1041, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1041", + "title": "Deprecate target action support.", + "createdAt": "2024-08-07T18:50:49Z", + "closedAt": "2025-07-25T18:16:38Z", + "merged": true, + "mergedAt": "2025-07-25T18:16:38Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-08-07T18:51:06Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-08-09T18:21:05Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2024-08-09T18:21:11Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-07-18T19:02:06Z", + "label": "Final Comment Period" + } + ], + "currentStage": "accepted", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-08-09T18:21:05Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 2, + "exploring": 350, + "accepted": 46, + "release": null, + "released": null + }, + "connected": [ + { + "number": 1126, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1126", + "title": "Advance RFC #1041 `\"Deprecate TargetActionSupport\"` to Stage Ready for Release", + "createdAt": "2025-07-25T18:17:28Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-07-25T18:17:29Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-07-25T18:17:29Z", + "label": "S-Ready for Release" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1045.json b/data/1045.json new file mode 100644 index 0000000..24ae91c --- /dev/null +++ b/data/1045.json @@ -0,0 +1,49 @@ +{ + "number": 1045, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1045", + "title": "Recommend regular methods instead of the `@action` decorator", + "createdAt": "2024-09-23T15:51:45Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-09-23T15:52:04Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-11-08T19:29:15Z", + "label": "S-Exploring" + }, + { + "event": "labeled", + "createdAt": "2024-11-08T19:30:33Z", + "label": "Final Comment Period" + }, + { + "event": "unlabeled", + "createdAt": "2024-12-06T19:07:18Z", + "label": "Final Comment Period" + } + ], + "currentStage": "exploring", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-11-08T19:29:15Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 47, + "exploring": 304, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1046.json b/data/1046.json new file mode 100644 index 0000000..1130320 --- /dev/null +++ b/data/1046.json @@ -0,0 +1,121 @@ +{ + "number": 1046, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1046", + "title": "Template Tag In Routes", + "createdAt": "2024-10-04T16:51:20Z", + "closedAt": "2024-11-22T19:53:25Z", + "merged": true, + "mergedAt": "2024-11-22T19:53:24Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-10-04T16:51:35Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-10-04T18:05:40Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2024-10-18T18:33:18Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-11-08T19:21:35Z", + "label": "Final Comment Period" + } + ], + "currentStage": "released", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-10-04T18:05:40Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 1, + "exploring": 50, + "accepted": 56, + "release": 63, + "released": 172 + }, + "connected": [ + { + "number": 1053, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1053", + "title": "Advance RFC #1046 `\"Allow Use of Template Tag in Routes\"` to Stage Ready for Release", + "createdAt": "2024-11-22T19:55:05Z", + "closedAt": "2025-01-17T19:06:44Z", + "merged": true, + "mergedAt": "2025-01-17T19:06:44Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-11-22T19:55:06Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-11-22T19:55:06Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2025-01-10T20:04:47Z", + "label": "Final Comment Period" + } + ] + }, + { + "number": 1069, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1069", + "title": "Advance RFC #1046 `\"Use Template Tag in Routes\"` to Stage Released", + "createdAt": "2025-01-17T19:07:32Z", + "closedAt": "2025-03-21T18:24:03Z", + "merged": true, + "mergedAt": "2025-03-21T18:24:03Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-01-17T19:07:34Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-01-17T19:07:34Z", + "label": "S-Released" + } + ] + }, + { + "number": 1090, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1090", + "title": "Advance RFC #1046 `\"Use Template Tag in Routes\"` to Stage Recommended", + "createdAt": "2025-03-21T18:24:52Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-03-21T18:24:53Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-03-21T18:24:53Z", + "label": "S-Recommended" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1052.json b/data/1052.json new file mode 100644 index 0000000..8d0beae --- /dev/null +++ b/data/1052.json @@ -0,0 +1,22 @@ +{ + "number": 1052, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1052", + "title": "Update pull_request_template.md", + "createdAt": "2024-11-08T19:23:00Z", + "closedAt": "2024-11-08T19:23:11Z", + "merged": true, + "mergedAt": "2024-11-08T19:23:11Z", + "assignees": [], + "timelineItems": [], + "currentStage": "accepted", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 304, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1054.json b/data/1054.json new file mode 100644 index 0000000..922c6f6 --- /dev/null +++ b/data/1054.json @@ -0,0 +1,44 @@ +{ + "number": 1054, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1054", + "title": "External default blueprints in ember-cli", + "createdAt": "2024-12-01T04:17:06Z", + "closedAt": "2024-12-16T16:58:11Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-12-01T04:17:23Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-12-06T19:40:54Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2024-12-06T19:41:00Z", + "label": "S-Proposed" + } + ], + "currentStage": "exploring", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-12-06T19:40:54Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 6, + "exploring": 276, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1055.json b/data/1055.json new file mode 100644 index 0000000..30c3ba9 --- /dev/null +++ b/data/1055.json @@ -0,0 +1,145 @@ +{ + "number": 1055, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1055", + "title": "Vanilla Prettier Setup in Blueprints", + "createdAt": "2024-12-03T15:56:57Z", + "closedAt": "2024-12-20T19:12:57Z", + "merged": true, + "mergedAt": "2024-12-20T19:12:57Z", + "assignees": [ + { + "login": "bertdeblock", + "avatarUrl": "https://avatars.githubusercontent.com/u/7403183?v=4" + }, + { + "login": "bertdeblock", + "avatarUrl": "https://avatars.githubusercontent.com/u/7403183?v=4" + } + ], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-12-03T15:56:57Z", + "label": "T-ember-cli" + }, + { + "event": "labeled", + "createdAt": "2024-12-03T15:57:15Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-12-06T19:30:41Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2024-12-06T19:41:14Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2024-12-13T19:26:54Z", + "label": "Final Comment Period" + } + ], + "currentStage": "recommended", + "labels": [ + { + "event": "labeled", + "createdAt": "2024-12-06T19:30:41Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 4, + "exploring": 14, + "accepted": 35, + "release": 70, + "released": 49 + }, + "connected": [ + { + "number": 1063, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1063", + "title": "Advance RFC #1055 `\"Vanilla Prettier Setup in Blueprints\"` to Stage Ready for Release", + "createdAt": "2024-12-20T19:13:40Z", + "closedAt": "2025-01-24T19:12:35Z", + "merged": true, + "mergedAt": "2025-01-24T19:12:35Z", + "assignees": [ + { + "login": "bertdeblock", + "avatarUrl": "https://avatars.githubusercontent.com/u/7403183?v=4" + } + ], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-12-20T19:13:41Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2024-12-20T19:13:41Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2025-01-17T19:19:57Z", + "label": "Final Comment Period" + } + ] + }, + { + "number": 1073, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1073", + "title": "Advance RFC #1055 `\"Vanilla Prettier Setup in Blueprints\"` to Stage Released", + "createdAt": "2025-01-24T19:13:22Z", + "closedAt": "2025-04-04T18:43:34Z", + "merged": true, + "mergedAt": "2025-04-04T18:43:34Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-01-24T19:13:23Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-01-24T19:13:23Z", + "label": "S-Released" + } + ] + }, + { + "number": 1097, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1097", + "title": "Advance RFC #1055 `\"Vanilla Prettier Setup in Blueprints\"` to Stage Recommended", + "createdAt": "2025-04-04T18:44:15Z", + "closedAt": "2025-05-23T18:34:19Z", + "merged": true, + "mergedAt": "2025-05-23T18:34:19Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-04-04T18:44:15Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-04-04T18:44:15Z", + "label": "S-Recommended" + }, + { + "event": "labeled", + "createdAt": "2025-05-16T18:09:25Z", + "label": "Final Comment Period" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1060.json b/data/1060.json new file mode 100644 index 0000000..aa33588 --- /dev/null +++ b/data/1060.json @@ -0,0 +1,33 @@ +{ + "number": 1060, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1060", + "title": "Built in tracking utilities for promises", + "createdAt": "2024-12-20T04:00:50Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2024-12-20T04:01:05Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-03-21T18:33:02Z", + "label": "T-ember-data" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 263, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1064.json b/data/1064.json new file mode 100644 index 0000000..e949a20 --- /dev/null +++ b/data/1064.json @@ -0,0 +1,22 @@ +{ + "number": 1064, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1064", + "title": "typo in 1060-tracked-promise.md", + "createdAt": "2024-12-20T19:58:17Z", + "closedAt": "2024-12-20T20:03:43Z", + "merged": true, + "mergedAt": "2024-12-20T20:03:43Z", + "assignees": [], + "timelineItems": [], + "currentStage": "accepted", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 262, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1065.json b/data/1065.json new file mode 100644 index 0000000..250ba67 --- /dev/null +++ b/data/1065.json @@ -0,0 +1,142 @@ +{ + "number": 1065, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1065", + "title": "Deprecate ember-fetch", + "createdAt": "2025-01-11T01:39:34Z", + "closedAt": "2025-02-28T20:00:28Z", + "merged": true, + "mergedAt": "2025-02-28T20:00:28Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-01-11T01:39:50Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-01-17T20:01:07Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-01-24T19:28:17Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-02-21T19:19:20Z", + "label": "Final Comment Period" + } + ], + "currentStage": "released", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-01-17T20:01:07Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 7, + "exploring": 42, + "accepted": 70, + "release": 49, + "released": 60 + }, + "connected": [ + { + "number": 1081, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1081", + "title": "Advance RFC #1065 `\"Deprecate and Remove ember-fetch\"` to Stage Ready for Release", + "createdAt": "2025-03-14T18:46:08Z", + "closedAt": "2025-05-23T18:27:36Z", + "merged": true, + "mergedAt": "2025-05-23T18:27:36Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-03-14T18:46:09Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-03-14T18:46:09Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2025-05-16T18:36:51Z", + "label": "Final Comment Period" + } + ] + }, + { + "number": 1104, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1104", + "title": "Advance RFC #1065 `\"Deprecate and Remove ember-fetch\"` to Stage Released", + "createdAt": "2025-05-23T18:28:19Z", + "closedAt": "2025-07-11T18:16:35Z", + "merged": true, + "mergedAt": "2025-07-11T18:16:35Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-05-23T18:28:19Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-05-23T18:28:20Z", + "label": "S-Released" + }, + { + "event": "labeled", + "createdAt": "2025-05-23T18:28:20Z", + "label": "RFC Advancement" + } + ] + }, + { + "number": 1123, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1123", + "title": "Advance RFC #1065 `\"Deprecate and Remove ember-fetch\"` to Stage Recommended", + "createdAt": "2025-07-11T18:17:27Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-07-11T18:17:28Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-07-11T18:17:28Z", + "label": "S-Recommended" + }, + { + "event": "labeled", + "createdAt": "2025-07-11T18:17:29Z", + "label": "RFC Advancement" + } + ] + }, + { + "number": 1124, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1124", + "title": "Revert \"Advance RFC #1065 `\"Deprecate and Remove ember-fetch\"` to Stage Released\"", + "createdAt": "2025-07-11T18:18:20Z", + "closedAt": "2025-07-11T18:18:41Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [] + } + ] +} \ No newline at end of file diff --git a/data/1066.json b/data/1066.json new file mode 100644 index 0000000..b7088a8 --- /dev/null +++ b/data/1066.json @@ -0,0 +1,28 @@ +{ + "number": 1066, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1066", + "title": "Deprecate v1 addon blueprint discovery", + "createdAt": "2025-01-11T10:00:52Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-01-11T10:01:10Z", + "label": "S-Proposed" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 241, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1067.json b/data/1067.json new file mode 100644 index 0000000..e235c7f --- /dev/null +++ b/data/1067.json @@ -0,0 +1,28 @@ +{ + "number": 1067, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1067", + "title": "Propose `link` from `@ember/lifetime` to remove the boilerplate of setOwner + associateDestroyableChild", + "createdAt": "2025-01-11T16:32:37Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-01-11T16:32:53Z", + "label": "S-Proposed" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 241, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1068.json b/data/1068.json new file mode 100644 index 0000000..b2ab0c7 --- /dev/null +++ b/data/1068.json @@ -0,0 +1,82 @@ +{ + "number": 1068, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1068", + "title": "tracked-built-ins built-in", + "createdAt": "2025-01-12T16:59:29Z", + "closedAt": "2025-03-21T18:22:03Z", + "merged": true, + "mergedAt": "2025-03-21T18:22:03Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-01-12T16:59:45Z", + "label": "S-Proposed" + }, + { + "event": "unlabeled", + "createdAt": "2025-02-21T19:44:42Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-02-21T19:44:42Z", + "label": "Final Comment Period" + }, + { + "event": "labeled", + "createdAt": "2025-02-21T19:44:42Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-02-28T19:53:48Z", + "label": "Final Comment Period" + }, + { + "event": "labeled", + "createdAt": "2025-03-14T18:50:43Z", + "label": "Final Comment Period" + } + ], + "currentStage": "accepted", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-02-21T19:44:42Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 41, + "exploring": 28, + "accepted": 172, + "release": null, + "released": null + }, + "connected": [ + { + "number": 1088, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1088", + "title": "Advance RFC #1068 `\"Built in tracking utilities for common collections\"` (tracked-built-ins, built-in) to Stage Ready for Release", + "createdAt": "2025-03-21T18:22:51Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-03-21T18:22:52Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-03-21T18:22:52Z", + "label": "S-Ready for Release" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/107.json b/data/107.json new file mode 100644 index 0000000..d2ba64e --- /dev/null +++ b/data/107.json @@ -0,0 +1,22 @@ +{ + "number": 107, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/107", + "title": "fix typo", + "createdAt": "2015-12-07T14:19:37Z", + "closedAt": "2015-12-07T14:21:32Z", + "merged": true, + "mergedAt": "2015-12-07T14:21:32Z", + "assignees": [], + "timelineItems": [], + "currentStage": "accepted", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 3564, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1070.json b/data/1070.json new file mode 100644 index 0000000..9de68af --- /dev/null +++ b/data/1070.json @@ -0,0 +1,126 @@ +{ + "number": 1070, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1070", + "title": "Default globals for strict mode", + "createdAt": "2025-01-18T17:05:07Z", + "closedAt": "2025-02-28T19:57:40Z", + "merged": true, + "mergedAt": "2025-02-28T19:57:40Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-01-18T17:05:25Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-01-24T19:31:31Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-01-24T19:31:36Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-02-21T19:15:30Z", + "label": "Final Comment Period" + } + ], + "currentStage": "recommended", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-01-24T19:31:31Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 7, + "exploring": 36, + "accepted": 21, + "release": 1, + "released": 49 + }, + "connected": [ + { + "number": 1083, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1083", + "title": "Advance RFC #1070 `\"Default globals for strict mode\"` to Stage Ready for Release", + "createdAt": "2025-03-14T18:51:01Z", + "closedAt": "2025-04-04T18:09:22Z", + "merged": true, + "mergedAt": "2025-04-04T18:09:22Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-03-14T18:51:02Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-03-14T18:51:02Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2025-03-28T18:41:03Z", + "label": "Final Comment Period" + } + ] + }, + { + "number": 1095, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1095", + "title": "Advance RFC #1070 `\"Default globals for strict mode\"` to Stage Released", + "createdAt": "2025-04-04T18:10:12Z", + "closedAt": "2025-04-04T18:41:35Z", + "merged": true, + "mergedAt": "2025-04-04T18:41:35Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-04-04T18:10:13Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-04-04T18:10:13Z", + "label": "S-Released" + } + ] + }, + { + "number": 1096, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1096", + "title": "Advance RFC #1070 `\"Default globals for strict mode\"` to Stage Recommended", + "createdAt": "2025-04-04T18:42:27Z", + "closedAt": "2025-05-23T18:28:15Z", + "merged": true, + "mergedAt": "2025-05-23T18:28:15Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-04-04T18:42:28Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-04-04T18:42:28Z", + "label": "S-Recommended" + }, + { + "event": "labeled", + "createdAt": "2025-05-16T18:13:20Z", + "label": "Final Comment Period" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1071.json b/data/1071.json new file mode 100644 index 0000000..c3994b9 --- /dev/null +++ b/data/1071.json @@ -0,0 +1,44 @@ +{ + "number": 1071, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1071", + "title": "A new reactive primitive: `cell`", + "createdAt": "2025-01-19T17:39:32Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-01-19T17:39:45Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-02-21T20:11:33Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-02-21T20:11:38Z", + "label": "S-Proposed" + } + ], + "currentStage": "exploring", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-02-21T20:11:33Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 34, + "exploring": 199, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1074.json b/data/1074.json new file mode 100644 index 0000000..75d899c --- /dev/null +++ b/data/1074.json @@ -0,0 +1,44 @@ +{ + "number": 1074, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1074", + "title": "Deprecate `--yarn` support for `ember new`", + "createdAt": "2025-01-30T22:20:38Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-01-30T22:20:54Z", + "label": "S-Proposed" + }, + { + "event": "unlabeled", + "createdAt": "2025-02-07T19:57:34Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-02-07T19:57:34Z", + "label": "S-Exploring" + } + ], + "currentStage": "exploring", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-02-07T19:57:34Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 8, + "exploring": 213, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1075.json b/data/1075.json new file mode 100644 index 0000000..5a62c9f --- /dev/null +++ b/data/1075.json @@ -0,0 +1,117 @@ +{ + "number": 1075, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1075", + "title": "WarpDrive Package Unification", + "createdAt": "2025-02-13T12:02:58Z", + "closedAt": "2025-02-28T19:55:42Z", + "merged": true, + "mergedAt": "2025-02-28T19:55:41Z", + "assignees": [ + { + "login": "runspired", + "avatarUrl": "https://avatars.githubusercontent.com/u/650309?v=4" + } + ], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-02-13T12:02:59Z", + "label": "T-ember-data" + }, + { + "event": "labeled", + "createdAt": "2025-02-13T12:02:59Z", + "label": "T-deprecation" + }, + { + "event": "labeled", + "createdAt": "2025-02-13T12:02:59Z", + "label": "T-framework" + }, + { + "event": "labeled", + "createdAt": "2025-02-13T12:02:59Z", + "label": "T-learning" + }, + { + "event": "labeled", + "createdAt": "2025-02-13T12:02:59Z", + "label": "T-steering" + }, + { + "event": "labeled", + "createdAt": "2025-02-13T12:02:59Z", + "label": "T-ember-cli" + }, + { + "event": "labeled", + "createdAt": "2025-02-13T12:02:59Z", + "label": "T-TypeScript" + }, + { + "event": "labeled", + "createdAt": "2025-02-13T12:03:17Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-02-21T19:38:00Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-02-21T19:38:04Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-02-21T19:38:10Z", + "label": "Final Comment Period" + } + ], + "currentStage": "accepted", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-02-21T19:38:00Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 9, + "exploring": 8, + "accepted": 179, + "release": null, + "released": null + }, + "connected": [ + { + "number": 1082, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1082", + "title": "Advance RFC #1075 `\"WarpDrive Package Unification\"` to Stage Ready for Release", + "createdAt": "2025-03-14T18:50:23Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-03-14T18:50:24Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-03-14T18:50:24Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2025-03-21T18:33:03Z", + "label": "T-ember-data" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1076.json b/data/1076.json new file mode 100644 index 0000000..4d021f4 --- /dev/null +++ b/data/1076.json @@ -0,0 +1,22 @@ +{ + "number": 1076, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1076", + "title": "Update README to fix stages table - workaround a bug in markdown parser", + "createdAt": "2025-02-18T12:13:59Z", + "closedAt": "2025-02-18T15:34:10Z", + "merged": true, + "mergedAt": "2025-02-18T15:34:10Z", + "assignees": [], + "timelineItems": [], + "currentStage": "accepted", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 203, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1077.json b/data/1077.json new file mode 100644 index 0000000..9268be7 --- /dev/null +++ b/data/1077.json @@ -0,0 +1,22 @@ +{ + "number": 1077, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1077", + "title": "Update 1046-template-tag-in-routes.md", + "createdAt": "2025-03-03T16:43:41Z", + "closedAt": "2025-03-03T16:49:43Z", + "merged": true, + "mergedAt": "2025-03-03T16:49:43Z", + "assignees": [], + "timelineItems": [], + "currentStage": "accepted", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 190, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1078.json b/data/1078.json new file mode 100644 index 0000000..7e2d971 --- /dev/null +++ b/data/1078.json @@ -0,0 +1,28 @@ +{ + "number": 1078, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1078", + "title": "Fix title comment", + "createdAt": "2025-03-06T19:29:07Z", + "closedAt": "2025-03-07T19:11:56Z", + "merged": true, + "mergedAt": "2025-03-07T19:11:55Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-03-06T20:26:13Z", + "label": "bug" + } + ], + "currentStage": "accepted", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 186, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1079.json b/data/1079.json new file mode 100644 index 0000000..d239129 --- /dev/null +++ b/data/1079.json @@ -0,0 +1,28 @@ +{ + "number": 1079, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1079", + "title": "Propose new reactivity utility: `reactive` from `@ember/reactive`", + "createdAt": "2025-03-06T21:09:08Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-03-06T21:09:20Z", + "label": "S-Proposed" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 186, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1080.json b/data/1080.json new file mode 100644 index 0000000..9da4be1 --- /dev/null +++ b/data/1080.json @@ -0,0 +1,22 @@ +{ + "number": 1080, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1080", + "title": "Update to upload-artifact@v4", + "createdAt": "2025-03-14T18:42:06Z", + "closedAt": "2025-03-14T18:43:38Z", + "merged": true, + "mergedAt": "2025-03-14T18:43:38Z", + "assignees": [], + "timelineItems": [], + "currentStage": "accepted", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 179, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1087.json b/data/1087.json new file mode 100644 index 0000000..f662631 --- /dev/null +++ b/data/1087.json @@ -0,0 +1,22 @@ +{ + "number": 1087, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1087", + "title": "Fix some typos in the remove ember-fetch RFC", + "createdAt": "2025-03-21T03:59:27Z", + "closedAt": "2025-03-21T04:28:13Z", + "merged": true, + "mergedAt": "2025-03-21T04:28:13Z", + "assignees": [], + "timelineItems": [], + "currentStage": "accepted", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 172, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1091.json b/data/1091.json new file mode 100644 index 0000000..1bacbb9 --- /dev/null +++ b/data/1091.json @@ -0,0 +1,22 @@ +{ + "number": 1091, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1091", + "title": "Add chart of stages", + "createdAt": "2025-03-21T20:11:25Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 171, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1098.json b/data/1098.json new file mode 100644 index 0000000..72284d2 --- /dev/null +++ b/data/1098.json @@ -0,0 +1,28 @@ +{ + "number": 1098, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1098", + "title": "Existing Glimmer Details, Goals, etc", + "createdAt": "2025-04-21T04:06:20Z", + "closedAt": "2025-05-04T13:01:21Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-04-21T04:06:34Z", + "label": "S-Proposed" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 141, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1099.json b/data/1099.json new file mode 100644 index 0000000..51bf44c --- /dev/null +++ b/data/1099.json @@ -0,0 +1,77 @@ +{ + "number": 1099, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1099", + "title": " renderComponent()", + "createdAt": "2025-05-01T22:01:17Z", + "closedAt": "2025-08-08T18:14:43Z", + "merged": true, + "mergedAt": "2025-08-08T18:14:43Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-05-01T22:01:31Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-05-02T18:48:05Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-05-02T18:48:08Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-07-25T18:49:41Z", + "label": "Final Comment Period" + } + ], + "currentStage": "accepted", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-05-02T18:48:05Z", + "label": "S-Exploring" + } + ], + "fcp": true, + "stageDuration": { + "proposed": 1, + "exploring": 98, + "accepted": 32, + "release": null, + "released": null + }, + "connected": [ + { + "number": 1128, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1128", + "title": "Advance RFC #1099 `\"renderComponent\"` to Stage Ready for Release", + "createdAt": "2025-08-08T18:15:29Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-08-08T18:15:30Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-08-08T18:15:30Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2025-09-05T18:23:34Z", + "label": "Final Comment Period" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/11.json b/data/11.json new file mode 100644 index 0000000..775a6e2 --- /dev/null +++ b/data/11.json @@ -0,0 +1,22 @@ +{ + "number": 11, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/11", + "title": "RFC: Improved CP Syntax", + "createdAt": "2014-10-31T03:35:37Z", + "closedAt": "2014-11-02T17:43:59Z", + "merged": true, + "mergedAt": "2014-11-02T17:43:59Z", + "assignees": [], + "timelineItems": [], + "currentStage": "accepted", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 3966, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/110.json b/data/110.json new file mode 100644 index 0000000..e6f5792 --- /dev/null +++ b/data/110.json @@ -0,0 +1,22 @@ +{ + "number": 110, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/110", + "title": "promise-aware templates", + "createdAt": "2016-01-17T03:59:13Z", + "closedAt": "2016-02-09T02:47:58Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 3523, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1101.json b/data/1101.json new file mode 100644 index 0000000..9655349 --- /dev/null +++ b/data/1101.json @@ -0,0 +1,44 @@ +{ + "number": 1101, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1101", + "title": "Deprecate Ember Vendor Bundles", + "createdAt": "2025-05-13T18:58:19Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-05-13T18:58:34Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-05-23T18:53:57Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-05-23T18:53:57Z", + "label": "S-Proposed" + } + ], + "currentStage": "exploring", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-05-23T18:53:57Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 10, + "exploring": 109, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1102.json b/data/1102.json new file mode 100644 index 0000000..7425df5 --- /dev/null +++ b/data/1102.json @@ -0,0 +1,44 @@ +{ + "number": 1102, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1102", + "title": "Remove the global event dispatcher", + "createdAt": "2025-05-19T17:10:12Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-05-19T17:10:24Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-05-23T18:53:58Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-05-23T18:53:58Z", + "label": "S-Proposed" + } + ], + "currentStage": "exploring", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-05-23T18:53:58Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 5, + "exploring": 109, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1103.json b/data/1103.json new file mode 100644 index 0000000..845f551 --- /dev/null +++ b/data/1103.json @@ -0,0 +1,28 @@ +{ + "number": 1103, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1103", + "title": "How autotracking works", + "createdAt": "2025-05-23T16:04:04Z", + "closedAt": "2025-05-28T16:39:57Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-05-23T16:04:17Z", + "label": "S-Proposed" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 109, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1108.json b/data/1108.json new file mode 100644 index 0000000..08f992d --- /dev/null +++ b/data/1108.json @@ -0,0 +1,22 @@ +{ + "number": 1108, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1108", + "title": "fix invalid date", + "createdAt": "2025-06-10T14:20:29Z", + "closedAt": "2025-06-10T15:59:05Z", + "merged": true, + "mergedAt": "2025-06-10T15:59:05Z", + "assignees": [], + "timelineItems": [], + "currentStage": "accepted", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 91, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1111.json b/data/1111.json new file mode 100644 index 0000000..e107218 --- /dev/null +++ b/data/1111.json @@ -0,0 +1,82 @@ +{ + "number": 1111, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1111", + "title": "Deprecate Events System", + "createdAt": "2025-06-13T19:00:25Z", + "closedAt": "2025-08-22T18:13:46Z", + "merged": true, + "mergedAt": "2025-08-22T18:13:46Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-06-13T19:00:39Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-06-20T18:45:55Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-06-20T18:45:58Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-08-08T18:44:41Z", + "label": "Final Comment Period" + }, + { + "event": "unlabeled", + "createdAt": "2025-08-08T18:45:39Z", + "label": "Final Comment Period" + }, + { + "event": "labeled", + "createdAt": "2025-08-15T18:52:08Z", + "label": "Final Comment Period" + } + ], + "currentStage": "accepted", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-06-20T18:45:55Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 7, + "exploring": 63, + "accepted": 18, + "release": null, + "released": null + }, + "connected": [ + { + "number": 1139, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1139", + "title": "Advance RFC #1111 `\"Deprecating Ember.Evented and @ember/object/events\"` to Stage Ready for Release", + "createdAt": "2025-08-22T18:14:26Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-08-22T18:14:27Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-08-22T18:14:27Z", + "label": "S-Ready for Release" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1112.json b/data/1112.json new file mode 100644 index 0000000..5dcb614 --- /dev/null +++ b/data/1112.json @@ -0,0 +1,72 @@ +{ + "number": 1112, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1112", + "title": "Deprecate Ember Proxies", + "createdAt": "2025-06-13T19:45:33Z", + "closedAt": "2025-08-15T18:55:24Z", + "merged": true, + "mergedAt": "2025-08-15T18:55:24Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-06-13T19:45:46Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-06-20T18:19:05Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-06-20T18:19:16Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-08-08T18:59:56Z", + "label": "Final Comment Period" + } + ], + "currentStage": "accepted", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-06-20T18:19:05Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 7, + "exploring": 57, + "accepted": 25, + "release": null, + "released": null + }, + "connected": [ + { + "number": 1135, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1135", + "title": "Advance RFC #1112 `\"Deprecating Ember Proxies\"` to Stage Ready for Release", + "createdAt": "2025-08-15T18:56:03Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-08-15T18:56:04Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-08-15T18:56:04Z", + "label": "S-Ready for Release" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1113.json b/data/1113.json new file mode 100644 index 0000000..e31bc40 --- /dev/null +++ b/data/1113.json @@ -0,0 +1,44 @@ +{ + "number": 1113, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1113", + "title": "Deprecate Comparable", + "createdAt": "2025-06-13T19:54:42Z", + "closedAt": "2025-06-20T20:34:56Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-06-13T19:54:54Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-06-20T18:45:05Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-06-20T18:45:14Z", + "label": "S-Proposed" + } + ], + "currentStage": "exploring", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-06-20T18:45:05Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 7, + "exploring": 81, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1114.json b/data/1114.json new file mode 100644 index 0000000..83d44f3 --- /dev/null +++ b/data/1114.json @@ -0,0 +1,72 @@ +{ + "number": 1114, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1114", + "title": "Deprecate Ember Array", + "createdAt": "2025-06-13T20:09:01Z", + "closedAt": "2025-08-29T18:12:00Z", + "merged": true, + "mergedAt": "2025-08-29T18:12:00Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-06-13T20:09:18Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-06-20T18:15:51Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-06-20T18:44:16Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-08-22T18:45:56Z", + "label": "Final Comment Period" + } + ], + "currentStage": "accepted", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-06-20T18:15:51Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 7, + "exploring": 70, + "accepted": 11, + "release": null, + "released": null + }, + "connected": [ + { + "number": 1140, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1140", + "title": "Advance RFC #1114 `\"Deprecating Ember Array\"` to Stage Ready for Release", + "createdAt": "2025-08-29T18:12:38Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-08-29T18:12:39Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-08-29T18:12:39Z", + "label": "S-Ready for Release" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1115.json b/data/1115.json new file mode 100644 index 0000000..d3216ca --- /dev/null +++ b/data/1115.json @@ -0,0 +1,44 @@ +{ + "number": 1115, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1115", + "title": "Deprecate Observers", + "createdAt": "2025-06-16T17:34:17Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-06-16T17:34:31Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-06-20T18:11:29Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-06-20T18:11:32Z", + "label": "S-Proposed" + } + ], + "currentStage": "exploring", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-06-20T18:11:29Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 5, + "exploring": 81, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1116.json b/data/1116.json new file mode 100644 index 0000000..7b223d9 --- /dev/null +++ b/data/1116.json @@ -0,0 +1,77 @@ +{ + "number": 1116, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1116", + "title": "Deprecate Mixin Support", + "createdAt": "2025-06-20T13:04:24Z", + "closedAt": "2025-09-05T18:09:38Z", + "merged": true, + "mergedAt": "2025-09-05T18:09:38Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-06-20T13:04:39Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-06-20T18:17:45Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-06-20T18:17:48Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-08-29T18:28:48Z", + "label": "Final Comment Period" + } + ], + "currentStage": "accepted", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-06-20T18:17:45Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 1, + "exploring": 77, + "accepted": 4, + "release": null, + "released": null + }, + "connected": [ + { + "number": 1143, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1143", + "title": "Advance RFC #1116 `\"Deprecating Mixin Support\"` to Stage Ready for Release", + "createdAt": "2025-09-05T18:10:24Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-09-05T18:10:25Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-09-05T18:10:25Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2025-09-05T18:10:25Z", + "label": "RFC Advancement" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1117.json b/data/1117.json new file mode 100644 index 0000000..f650987 --- /dev/null +++ b/data/1117.json @@ -0,0 +1,77 @@ +{ + "number": 1117, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1117", + "title": "Deprecate Classic Classes", + "createdAt": "2025-06-20T13:12:37Z", + "closedAt": "2025-08-29T18:14:21Z", + "merged": true, + "mergedAt": "2025-08-29T18:14:21Z", + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-06-20T13:12:52Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-06-20T18:22:05Z", + "label": "S-Exploring" + }, + { + "event": "unlabeled", + "createdAt": "2025-06-20T18:22:11Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-08-22T18:50:09Z", + "label": "Final Comment Period" + } + ], + "currentStage": "accepted", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-06-20T18:22:05Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 1, + "exploring": 70, + "accepted": 11, + "release": null, + "released": null + }, + "connected": [ + { + "number": 1141, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1141", + "title": "Advance RFC #1117 `\"Deprecate Classic Classes\"` to Stage Ready for Release", + "createdAt": "2025-08-29T18:15:01Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-08-29T18:15:02Z", + "label": "RFC Advancement" + }, + { + "event": "labeled", + "createdAt": "2025-08-29T18:15:02Z", + "label": "S-Ready for Release" + }, + { + "event": "labeled", + "createdAt": "2025-08-29T18:15:03Z", + "label": "RFC Advancement" + } + ] + } + ] +} \ No newline at end of file diff --git a/data/1118.json b/data/1118.json new file mode 100644 index 0000000..d9ea5cb --- /dev/null +++ b/data/1118.json @@ -0,0 +1,44 @@ +{ + "number": 1118, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1118", + "title": "Make @service able to be used in templates", + "createdAt": "2025-06-23T19:18:29Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-06-23T19:18:44Z", + "label": "S-Proposed" + }, + { + "event": "unlabeled", + "createdAt": "2025-07-11T18:40:29Z", + "label": "S-Proposed" + }, + { + "event": "labeled", + "createdAt": "2025-07-11T18:40:29Z", + "label": "S-Exploring" + } + ], + "currentStage": "exploring", + "labels": [ + { + "event": "labeled", + "createdAt": "2025-07-11T18:40:29Z", + "label": "S-Exploring" + } + ], + "fcp": false, + "stageDuration": { + "proposed": 18, + "exploring": 60, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1119.json b/data/1119.json new file mode 100644 index 0000000..01f8719 --- /dev/null +++ b/data/1119.json @@ -0,0 +1,28 @@ +{ + "number": 1119, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1119", + "title": "Ember API to enable Vite support in Ember Inspector", + "createdAt": "2025-06-27T13:50:37Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-06-27T13:50:54Z", + "label": "S-Proposed" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 74, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/112.json b/data/112.json new file mode 100644 index 0000000..becb505 --- /dev/null +++ b/data/112.json @@ -0,0 +1,22 @@ +{ + "number": 112, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/112", + "title": "Element Modifiers", + "createdAt": "2016-01-24T22:06:17Z", + "closedAt": "2019-03-02T16:08:28Z", + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 3515, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1120.json b/data/1120.json new file mode 100644 index 0000000..85a4c64 --- /dev/null +++ b/data/1120.json @@ -0,0 +1,28 @@ +{ + "number": 1120, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1120", + "title": "Deprecate initializers and instance initializers", + "createdAt": "2025-07-03T03:52:58Z", + "closedAt": null, + "merged": false, + "mergedAt": null, + "assignees": [], + "timelineItems": [ + { + "event": "labeled", + "createdAt": "2025-07-03T03:53:13Z", + "label": "S-Proposed" + } + ], + "currentStage": "proposed", + "labels": [], + "fcp": false, + "stageDuration": { + "proposed": 68, + "exploring": null, + "accepted": null, + "release": null, + "released": null + }, + "connected": [] +} \ No newline at end of file diff --git a/data/1121.json b/data/1121.json new file mode 100644 index 0000000..9469bc2 --- /dev/null +++ b/data/1121.json @@ -0,0 +1,77 @@ +{ + "number": 1121, + "url": "https://api.github.com/repos/emberjs/rfcs/pulls/1121", + "title": "Strip