CINXE.COM
cncf-tag-env-sustainability@lists.cncf.io | Environmental Sustainability TAG Proposal
<!DOCTYPE html> <html lang="en-US"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="pinterest" content="nopin" /> <meta name="pinterest" content="nohover" /> <meta name="3778517eb4810dfb5d143ed8f1b359b3b5a82923" content="0f56257c3db4a222e91b11bc6871c4df2e263b28" /> <link rel="apple-touch-icon" sizes="57x57" href="/img/org.10/favicons/apple-icon-57x57.png"> <link rel="apple-touch-icon" sizes="60x60" href="/img/org.10/favicons/apple-icon-60x60.png"> <link rel="apple-touch-icon" sizes="72x72" href="/img/org.10/favicons/apple-icon-72x72.png"> <link rel="apple-touch-icon" sizes="76x76" href="/img/org.10/favicons/apple-icon-76x76.png"> <link rel="apple-touch-icon" sizes="114x114" href="/img/org.10/favicons/apple-icon-114x114.png"> <link rel="apple-touch-icon" sizes="120x120" href="/img/org.10/favicons/apple-icon-120x120.png"> <link rel="apple-touch-icon" sizes="144x144" href="/img/org.10/favicons/apple-icon-144x144.png"> <link rel="apple-touch-icon" sizes="152x152" href="/img/org.10/favicons/apple-icon-152x152.png"> <link rel="apple-touch-icon" sizes="180x180" href="/img/org.10/favicons/apple-icon-180x180.png"> <link rel="icon" type="image/png" sizes="192x192" href="/img/org.10/favicons/android-icon-192x192.png"> <link rel="icon" type="image/png" sizes="32x32" href="/img/org.10/favicons/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="96x96" href="/img/org.10/favicons/favicon-96x96.png"> <link rel="icon" type="image/png" sizes="16x16" href="/img/org.10/favicons/favicon-16x16.png"> <link rel="manifest" href="/img/org.10/favicons/manifest.json"> <meta name="msapplication-TileColor" content="#ffffff"> <meta name="msapplication-TileImage" content="/ms-icon-144x144.png"> <script> /* stubs */ const hapticsImpactHeavy = async () => { }; const hapticsImpactMedium = async () => { }; const hapticsImpactLight = async () => { }; const hapticsVibrate = async () => { }; const hapticsSelectionStart = async () => { }; const hapticsSelectionChanged = async () => { }; const hapticsSelectionEnd = async () => { }; </script> <script> function setPullToRefresh() {} function gotoURL(inurl) { window.location.href = inurl; return; } function contentLoaded(isHTMX, f, caller = "") { console.log("contentLoaded: " + isHTMX + " " + caller); if (isHTMX == true) { document.body.addEventListener('htmx:afterSettle', f, {once: true}); } else { if (document.readyState !== 'loading') { console.log('document is already ready, just execute code here'); f(); } else { console.log('document was not ready, place code here'); document.addEventListener('DOMContentLoaded', f, {once: true}); } } } function HideAppSidebarOnKeyboard() { console.log("In HideAppSidebarOnKeyboard"); } // stub function logError(data, url, linenumber) { console.log(data) return; } var pushSubToken; var ignoreErrors = false; var lastError = ""; window.onerror = function(errorMessage, errorUrl, errorLine, errorColumn, errorObj) { let column; let stack; if (console && console.log) { console.log("msg:", errorMessage); console.log("url:", errorUrl); console.log("line:", errorLine); if (errorColumn !== undefined && errorObj != null) { console.log("column:", errorColumn); column = errorColumn; } if (errorObj !== undefined && errorObj != null) { console.log("stack:", errorObj.stack); stack = errorObj.stack; } console.log("client_id:", "web.web09.11815273.1732400828169448697"); console.log("last_error:", lastError); console.log("stack:", stack); } if (errorUrl == "" || errorUrl === null) { errorUrl = window.location.href; } if (errorMessage.includes("SecurityError:") == true) { ignoreErrors = true; } if (ignoreErrors == true) { console.log("cookies, disabled, ignoring"); lastError = errorMessage; return; } jQuery.ajax({ type: 'POST', url: '/jsclienterror', data: { msg: errorMessage, url: errorUrl, line: errorLine, column: column, stack: stack, last_error: lastError, client_id: "web.web09.11815273.1732400828169448697" }, success: function() { if (console && console.log) { console.log('JS error report successful.'); } lastError = errorMessage; }, error: function() { if (console && console.error) { console.error('JS error report submission failed!'); } lastError = errorMessage; } }); return true; } </script> <script src="/tinymce-5.10.9/tinymce.min.js"></script> <script src="/js/browser-image-compression-2.0.2.min.js"></script> <link href="/css/application-6630163a3be19b6cee26ce35342d0d92.css" rel="stylesheet" id="groupsio-css"> <script src="/js/application-9b2c27b802a13063cf8a712fe566f004.js" id="groupsio-js"></script> <script src="/js/run_prettify.js"></script> <title> cncf-tag-env-sustainability@lists.cncf.io | Environmental Sustainability TAG Proposal </title> <link rel="canonical" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/topic/environmental_sustainability/92509129"> <meta property="og:title" content="Environmental Sustainability TAG Proposal" /> <meta property="og:description" content="" /> <meta property="og:image" content="https://lists.cncf.io/g/cncf-tag-env-sustainability/coverphoto" /> <script> htmx.config.scrollBehavior = "instant"; htmx.config.historyCacheSize = 0; htmx.config.defaultSettleDelay = 0; console.log("FULL PAGE LOAD"); </script> </head> <body id="body" class="" hx-headers='{"Accept-Version": "58f989bb651da14c2b1295c4c0447aef4773d1f9"}' hx-ext="preload" hx-boost="false"> <script> if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { document.body.classList.add('dark-mode'); } </script> <div class="navbar navbar-head navbar-fixed-top" role="navigation" id="headerbar"> <div class="container-fluid" style="padding-left:0px;"> <a href="https://lists.cncf.io" class="navbar-left" hx-boost="false" hx-disinherit="*"> <img src="https://lists.cncf.io/img/org.10/mainlogo.png?cachebust" height="50" alt="Groups.io"> </a> <ul class="nav navbar-nav pull-right visible-xs" style="margin-top:5px;margin-bottom:5px;"> <li> <a href="#" data-toggle="modal" data-target="#mobileAccount"> <i class="fa-fw fa fa-bars fa-lg"></i> </a> </li> </ul> <ul class="nav navbar-nav pull-right hidden-xs"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fa-fw fa-regular fa-globe"></i> EN <b class="caret"></b> </a> <ul class="dropdown-menu"> <li> <a href="https://lists.cncf.io/unsetlang"> EN </a> </li> <li> <a href="https://lists.cncf.io/setlang/de"> DE </a> </li> <li> <a href="https://lists.cncf.io/setlang/es"> ES </a> </li> <li> <a href="https://lists.cncf.io/setlang/fr"> FR </a> </li> <li> <a href="https://lists.cncf.io/setlang/it"> IT </a> </li> <li> <a href="https://lists.cncf.io/setlang/pt"> PT </a> </li> <li> <a href="https://lists.cncf.io/setlang/uk"> UK </a> </li> </ul> </li> <li> <a href="https://lists.cncf.io/helpcenter" target="_blank"> Help </a> </li> <li> <a href="https://lists.cncf.io/login" hx-boost="false" hx-disinherit="*"> <i class="fa fa-sign-in-alt"></i> Log In </a> </li> </ul> </div> </div> <div class="modal fade" id="mobileAccount" role="dialog"> <div class="modal-dialog" style="margin-top:50px;"> <div class="modal-content"> <div class="modal-body"> <ul class="list-group noborderlist"> <li class="noborderitem list-group-item"> <a href="https://lists.cncf.io/login" hx-boost="false" hx-disinherit="*"> <i class="fa fa-sign-in-alt"></i> Log In </a> </li> <li class="noborderitem list-group-item"> <a href="https://lists.cncf.io/helpcenter" target="_blank"> <i class="fa-fw fa fa-question-circle"></i> Help </a> </li> <li class="dropdown noborderitem list-group-item"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fa-fw fa-regular fa-globe"></i> EN <b class="caret"></b> </a> <ul class="dropdown-menu"> <li> <a href="https://lists.cncf.io/unsetlang"> EN </a> </li> <li> <a href="https://lists.cncf.io/setlang/de"> DE </a> </li> <li> <a href="https://lists.cncf.io/setlang/es"> ES </a> </li> <li> <a href="https://lists.cncf.io/setlang/fr"> FR </a> </li> <li> <a href="https://lists.cncf.io/setlang/it"> IT </a> </li> <li> <a href="https://lists.cncf.io/setlang/pt"> PT </a> </li> <li> <a href="https://lists.cncf.io/setlang/uk"> UK </a> </li> </ul> </li> </ul> </div> </div> </div> </div> <script> var groupnavigatorData = [ ]; </script> <!-- Modal Dialog for Autocomplete --> <div class="modal fade" id="groupnavigatorModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-body"> <input type="text" class="form-control" id="groupnavigatorInput" placeholder="Go to group..." style="margin-bottom:10px"> <div id="groupnavigatorContainer" class="autocompleteResults" style="max-height:250px; overflow-y: auto;"></div> <div class="text-center" style="margin-top:10px; font-size:12px;"><i class="fa-sharp fa-arrow-up-arrow-down"></i> to navigate <i class="fa-sharp fa-arrow-turn-down-left"></i> to use <strong>esc</strong> to dismiss</div> </div> </div> </div> </div> <script> // Keep track of the currently selected index var selectedIndex = -1; // Function to highlight the matched substring function highlightSubstring(str, substring) { var index = str.toLowerCase().indexOf(substring.toLowerCase()); if (index !== -1) { var before = str.substring(0, index); var middle = str.substring(index, index + substring.length); var after = str.substring(index + substring.length); return before + '<span class="autocomplete-highlight">' + middle + '</span>' + after; } return str; } // Function to highlight the selected item and ensure it is visible in the scrollable list function highlightSelectedItem(modalName) { var listContainer = document.getElementById(modalName + 'Container'); var items = document.getElementsByClassName(modalName + '-list-item'); Array.from(items).forEach(function(item, idx) { item.className = idx === selectedIndex ? modalName + '-list-item autocomplete-list-item btn-primary no-hover' : modalName + '-list-item autocomplete-list-item no-hover'; // Apply btn-primary class to the selected item }); if (items.length > 0 && selectedIndex >= 0) { var selectedItem = items[selectedIndex]; var containerTop = listContainer.scrollTop; var containerBottom = containerTop + listContainer.clientHeight; var itemTop = selectedItem.offsetTop; var itemBottom = itemTop + selectedItem.offsetHeight; const fudge = 59; if (selectedIndex > 0 && itemTop > containerBottom) { // If there are items below the selected item and the selected item is not fully visible, scroll down listContainer.scrollTop = itemTop - listContainer.clientHeight + items[selectedIndex - 1].offsetHeight; } else if (selectedIndex < items.length - 1 && (itemTop - fudge) < containerTop) { // If there are items above the selected item and the selected item is not fully visible, scroll up listContainer.scrollTop = itemTop - fudge - items[selectedIndex + 1].offsetHeight; } } } // function to populate the list based on the input function populateList(modalName, data) { var input = document.getElementById(modalName+'Input').value; var listContainer = document.getElementById(modalName+'Container'); listContainer.innerHTML = ''; data.forEach(function(item) { if (item.name.toLowerCase().includes(input.toLowerCase())) { var div = document.createElement('div'); div.innerHTML = highlightSubstring(item.name, input); div.className = modalName+'-list-item autocomplete-list-item no-hover'; // Apply no-hover class div.addEventListener('click', function() { // Navigate to the specified URL when a list item is clicked window.location.href = item.url; }); div.addEventListener('mousemove', function() { // Remove no-hover class from all items when the mouse is moved over any item console.log("mouse move"); var items = document.getElementsByClassName(modalName+'-list-item'); Array.from(items).forEach(function(item) { item.classList.remove('no-hover'); }); }); listContainer.appendChild(div); } }); highlightSelectedItem(modalName); } function InitAutocomplete(modalName, data) { // Focus the input field when the modal is shown and populate the list $('#' + modalName + 'Modal').on('shown.bs.modal', function () { $('#' + modalName + 'Input').focus().val(''); populateList(modalName, data); selectedIndex = 0; highlightSelectedItem(modalName); }); // Event listener for input field typing document.getElementById(modalName + 'Input').addEventListener('input', function() { populateList(modalName, data); selectedIndex = 0; }); // Event listener for arrow keys and enter key document.getElementById(modalName + 'Input').addEventListener('keydown', function(event) { var items = document.getElementsByClassName(modalName + '-list-item'); if (event.key === 'ArrowDown') { event.preventDefault(); if (selectedIndex < items.length - 1) selectedIndex++; highlightSelectedItem(modalName); } else if (event.key === 'ArrowUp') { event.preventDefault(); if (selectedIndex > 0) selectedIndex--; highlightSelectedItem(modalName); } else if (event.key === 'Enter' && selectedIndex >= 0 && selectedIndex < items.length) { event.preventDefault(); items[selectedIndex].click(); } }); } function showAutocompleteModal(modalName) { $('#' + modalName + 'Modal').modal('show'); selectedIndex = -1; } </script> <div id="content" class="container-fluid"> <script> InitAutocomplete("groupnavigator", groupnavigatorData); document.body.addEventListener("showReloadPageDialog", function(evt) { console.log("Forced reload"); location.reload(); }); function ShowBackButton(label) { var logoElement = document.getElementById("logo"); if (logoElement) { html = ` <span style="color:#fff;margin-top:14px;margin-left:12px;float:left !important; height:36px;"> <a onclick="goBack()" style="color:#fff"> <i class="fa-fw fa-solid fa-chevron-left fa-lg"></i> </a></span>`; if (label != "") { html += `<div style="position:absolute;left:50%;transform:translateX(-50%);text-align:center;color:#ecf0f1;margin-top:5px;"><h4>` + label + `</h4></div>`; } logoElement.innerHTML = html; } } function HideBackButton() { var logoElement = document.getElementById("logo"); if (logoElement) { logoElement.innerHTML = ` <a href="https://lists.cncf.io" class="navbar-left"> <img src="https://lists.cncf.io/img/org.10/mainlogo.png?cachebust" height="50" alt="Groups.io"> </a>`; } } function goBack() { history.back(); } // submitEvent acts like .submit(), except it is compatible with the app, by using events instead. function submitEvent(ele) { console.log("in submitEvent"); if (ele.startsWith('#')) { ele = ele.slice(1); } document.getElementById(ele).submit(); return; /* const theEvent = new CustomEvent('submit', { bubbles: true, cancelable: true }); if (typeof ele === 'string' || ele instanceof String) { if (ele.startsWith("#") == true) { ele = ele.slice(1); } if (document.getElementById(ele).dispatchEvent(theEvent) == true) { // if not cancelled, do normal submit console.log("calling submit"); document.getElementById(ele).submit(); } return; } // assume ele is the element if (ele.dispatchEvent(theEvent) == true) { // if not cancelled, do normal submit console.log("calling submit"); ele.submit(); } */ } // gioDestroy is a convenience function for destroy callbacks function gioDestroy(eventCB) { let internalGioDestroy = function(evt) { // do not activate on infinite scroll events if (evt.detail.target !== undefined && evt.detail.target.id != "maincontent-refresh") { console.log("Ignoring infinite scroll event"); return; } console.log("Calling destroy callback"); eventCB(evt); } document.body.addEventListener("htmx:beforeSwap", internalGioDestroy, {once: true}); document.body.addEventListener("htmx:historyCacheMiss", internalGioDestroy, {once: true}); } var drawerCloseFunc = function(evt) { console.log("in drawerCloseFunc"); // Find all elements with the class 'drawer' var drawers = document.querySelectorAll('.drawer'); // Iterate over each element and call closeDrawer() on each drawers.forEach(function(obj) { drawerObj.closeDrawer(obj); }); $('.modal').modal('hide'); } document.body.addEventListener('htmx:beforeSwap', drawerCloseFunc); document.body.addEventListener('htmx:historyCacheMiss', drawerCloseFunc); var keydownFunc = function(event) { var tagName = event.target.tagName.toLowerCase(); if (tagName === 'input' || tagName === 'textarea' || event.target.isContentEditable) { if (event.key === 'Escape') { event.target.blur(); } return; } // check if the viewimages viewer is up let element = document.getElementById('overlay'); if (element && element.classList.contains('visible')) { return; } console.log("HERE: " + event.key + " " + event.ctrlKey + " " + event.shiftKey + " " + event.metaKey); if (event.ctrlKey && event.shiftKey && (event.key === '?' || event.key === '/')) { event.preventDefault(); // Prevent the default action // Show the modal dialog for keyboard shortcuts $('#shortcutModal').modal('show'); return; } $('#shortcutModal').modal('hide'); if (event.key.toLowerCase() === 'g') { // For Windows and Linux if (event.ctrlKey) { event.preventDefault(); showAutocompleteModal("groupnavigator"); return; } } // Check if the pressed key is '/' if ((event.key === 'f' || event.key === 'F') && event.shiftKey) { if (navigator.platform.toUpperCase().indexOf('MAC') >= 0) { if (event.metaKey) { event.preventDefault(); // Prevent the default action // Focus on the search box let box = document.getElementById('searchbox') if (box != null) { document.getElementById('searchbox').focus(); } } } else { // For Windows and Linux if (event.ctrlKey) { event.preventDefault(); // Prevent the default action // Focus on the search box let box = document.getElementById('searchbox') if (box != null) { document.getElementById('searchbox').focus(); } } } } } document.addEventListener('keydown', keydownFunc); var removeDrawerCloseFunc = function(evt) { document.body.removeEventListener('htmx:beforeSwap', drawerCloseFunc); document.body.removeEventListener('htmx:historyCacheMiss', drawerCloseFunc); document.removeEventListener('keydown', keydownFunc); } document.body.addEventListener("htmx:historyCacheMiss", removeDrawerCloseFunc, {once: true}); </script> <!-- Modal Dialog for Keyboard Shortcuts --> <div class="modal fade" id="shortcutModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="myModalLabel">Keyboard Shortcuts</h4> </div> <div class="modal-body"> <div class="row"> <div class="col-xs-3 text-right"><strong>ctrl</strong> + <strong>shift</strong> + <strong>?</strong> :</div> <div class="col-xs-9" style="margin-left: -23px;">Show all keyboard shortcuts</div> </div> <div class="row"> <div class="col-xs-3 text-right"><strong>ctrl</strong> + <strong>g</strong> :</div> <div class="col-xs-9" style="margin-left: -23px;">Navigate to a group</div> </div> <div class="row"> <div class="col-xs-3 text-right"><strong class="ctrlmeta">ctrl</strong> + <strong>shift</strong> + <strong>f</strong> :</div> <div class="col-xs-9" style="margin-left: -23px;">Find</div> </div> <div class="row"> <div class="col-xs-3 text-right"><strong class="ctrlmeta">ctrl</strong> + <strong>/</strong> :</div> <div class="col-xs-9" style="margin-left: -23px;">Quick actions</div> </div> </div> <div class="text-center" style="margin-top:10px; margin-bottom:10px; font-size:12px;"><strong>esc</strong> to dismiss</div> </div> </div> </div> <div id="mainrow" class="row" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <div id="groupsidebar" class="scrollbar hidden-print"> <div class="scrollbar-content"> <div id="accordion" role="tablist" aria-multiselectable="true" style="margin-bottom:20px;"> <div class="list-group noborderlist" style="border:0;margin-bottom:0px"> <a title="Group Home" href="https://lists.cncf.io/g/cncf-tag-env-sustainability" class="list-group-item sidebar-item"> <i class="fa-fw fa fa-home fa-lg"></i> Home </a> <a title="Messages" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/topics?sidebar=true" id="sidebar-archives" class="noborderitem list-group-item sidebar-item sidebar-item-archives active"> <i class="fa-fw fa fa-comments fa-lg"></i> Messages <span id="sidebar-archives-badge" class="badge"></span> </a> <a title="Hashtags" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/hashtags" id="sidebar-hashtags" class="noborderitem list-group-item sidebar-item sidebar-item-hashtags"> <i class="fa-fw fa fa-hashtag fa-lg"></i> Hashtags <span id="sidebar-hashtags-badge" class="badge"></span> </a> <a title="Subgroups" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/subgroups" id="sidebar-subgroups" class="noborderitem list-group-item sidebar-item sidebar-item-subgroups"> <i class="fa-fw fa fa-chart-pie fa-lg"></i> Subgroups <span id="sidebar-subgroups-badge" class="badge"></span> </a> </div> </div> <div class="text-center" style="font-size:13px;margin-bottom:30px"> <div style="padding-bottom:10px;"> <strong>ctrl</strong> + <strong>shift</strong> + <strong>?</strong> for shortcuts </div> <div style="padding-bottom:5px;"> <a href="https://groups.io/static/about"> About </a> · <a href="https://groups.io/static/features"> Features </a> · <a href="https://groups.io/static/pricing"> Pricing </a> </div> <div style="padding-bottom:5px;"> <a rel="nofollow" href="https://groups.io/g/updates/messages?expanded=1"> Updates </a> · <a href="https://groups.io/static/tos"> Terms </a> · <a href="https://groups.io/helpcenter" target="_blank"> Help </a> </div> <div style="padding-bottom:5px;"> © 2024 Groups.io </div> </div> </div> </div> <div id="maincontent" class="groupmaincontent"> <div id="maincontent-refresh"> <div id="maincontent-column" class="col-xs-12 maincontent-column"> <div id="alertdiv"></div> <div class="noticetemplate template"> <div class="alert alert-success alert-dismissible" role="alert"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true"> × </span> </button> <span class="flashmsg"></span> </div> </div> <div class="alerttemplate template"> <div class="alert alert-danger alert-dismissible" role="alert"> <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true"> × </span> </button> <span class="flashmsg"></span> </div> </div> <div class="alertnoclosetemplate template"> <div class="alert alert-danger" role="alert"> <span class="flashmsg"></span> </div> </div> <script> function dismiss() { console.log("dismiss"); $.get( "/dismissalert"); } var $alerttemplate = $(".alerttemplate"); var $alertnoclosetemplate = $(".alertnoclosetemplate"); var $noticetemplate = $(".noticetemplate"); function createAlert(msg, isError, autoClose, noClose) { if (isError == false) { $newPanel = $noticetemplate.clone(); } else { if (noClose) { $newPanel = $alertnoclosetemplate.clone(); } else { $newPanel = $alerttemplate.clone(); } } $newPanel.find(".flashmsg").html(msg); if (autoClose == true) { $("#alertdiv").append($newPanel.fadeTo(2000, 500).slideUp(500, function(){ $newPanel.slideUp(500); $newPanel.remove(); })); } else { $("#alertdiv").append($newPanel.fadeIn()); } return $newPanel; } </script> <script> // doLike toggles a like for a person. function doLike(groupname, numlikes, msgid, like, csrf) { $.ajax({ url: groupname+"/like?msgid="+msgid+"&like="+like+"&csrf="+csrf, cache: false, }); if (like == true) { numlikes++ } else { numlikes-- } displayLikes(groupname, numlikes, msgid, like, csrf); displayLikeStats(groupname, numlikes, msgid, like); } // displayLikes displays the Like/Unlike link button. function displayLikes(groupname, numlikes, msgid, hasliked, csrf) { if (hasliked == true) { likedata = "<span id='likebutton"+msgid+"'><a href='#' onclick='doLike(\""+groupname+"\","+numlikes+","+msgid+", false, \""+csrf+"\");return false;'><i class=\"fa fa-thumbs-up\"></i> Unlike</a></span>" } else { likedata = "<span id='likebutton"+msgid+"'><a href='#' onclick='doLike(\""+groupname+"\","+numlikes+","+msgid+", true, \""+csrf+"\");return false;'><i class=\"fa fa-thumbs-up\"></i> Like</a></span>" } $("#likebutton"+msgid).html(likedata); } // displayLikeStats displays the line that shows how many people have liked this. function displayLikeStats(groupname, numlikes, msgid, hasliked) { if (hasliked == false && numlikes == 0) { $("#likestats"+msgid).html("<span id='likestats"+msgid+"'class='likestats'></span>"); return } likedata = "<span id='likestats" + msgid + "' class='likestats'><i class='fa fa-thumbs-up'></i> " if (hasliked == true) { likedata += "You" if (numlikes > 1) { likedata = likedata + " and <a href='#' onclick='showLikes(\"" + groupname + "\"," + msgid + ");return false;'>" + (numlikes-1) if (numlikes == 2) { likedata = likedata + " Other" } else { likedata = likedata + " Others" } } } else { likedata += "<a href='#' onclick='showLikes(\"" + groupname + "\"," + msgid + ");return false;'>" + numlikes if (numlikes == 1) { likedata = likedata + " Person" } else { likedata = likedata + " People" } } likedata = likedata + "</a> liked this</span>" $("#likestats"+msgid).html(likedata); } // showLikes fetches all the likes for a message and pops up the dialog box to show them. function showLikes(groupname, msgid) { console.log(groupname) $.getJSON(groupname+"/getlikes?msgid="+msgid, function( data ) { htmldata = '<ul class="list-group">' jQuery.each(data, function() { htmldata += '<li class="list-group-item" style="display: flex;align-items: center;">' + this.Icon + ' <span style="margin-left: 10px;">' + this.Profile + '</span></li>' }); htmldata += '</ul>' $("#showlikesbody").html(htmldata); $('#showlikesmodal').modal({show:true}) } ); } </script> <!-- show likes modal --> <div class="modal fade" id="showlikesmodal" tabindex="-1" role="dialog" aria-labelledby="showlikesmodalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"> × </span> <span class="sr-only"> Close </span> </button> <h4 class="modal-title" id="showlikesmodalLabel"> Likes </h4> </div> <div class="modal-body"> <div id="showlikesbody"></div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"> <i class="fa fa-times"></i> Close </button> </div> </div> </div> </div> <div class="row breadcrumb-row" style="margin-bottom: 10px"> <div class="col-xs-12 col-sm-9"> <span class="hidden-sm hidden-md hidden-lg pull-right" style="padding:8px 15px;"><a data-toggle="modal" data-target="#searchModal"><i class="fa fa-search"></i></a></span> <div class="breadcrumb-container"> <ol class="breadcrumb scroll-breadcrumb"> <li><a href="https://lists.cncf.io/g/cncf-tag-env-sustainability"><i class="fa fa-home"></i> Cncf-Tag-Env-Sustainability</a></li> <li class="active"><a href="https://lists.cncf.io/g/cncf-tag-env-sustainability/topics?index=92509129"><i class="fa fa-inbox"></i> Topics</a></li> </ol> </div> </div> <div class="col-sm-3 hidden-xs" style="padding-right:0px"> <form class="form-inline pull-right" method="get" action="https://lists.cncf.io/g/cncf-tag-env-sustainability/search"> <input type="hidden" name="p" value="Created,,,20,1,0,0"> <div class="input-group"> <input id="searchbox" type="text" class="form-control" placeholder="Search" title="Search" name="q" size="20" value="" style="height:37px"> <div class="input-group-btn"> <button class="btn btn-primary" type="submit" style="height:37px;" aria-label="Search"> <span class="fa fa-search"></span> </button> </div> </div> </form> </div> </div> <div class="modal fade" id="searchModal" tabindex="-1" role="dialog" aria-labelledby="searchModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"> × </span> <span class="sr-only"> Close </span> </button> <h4 class="modal-title" id="searchModalLabel"> Search </h4> </div> <form class="form-horizontal" method="get" action="https://lists.cncf.io/g/cncf-tag-env-sustainability/search"> <div class="modal-body"> <div class="form-group"> <div class="col-sm-12"> <input type="text" class="form-control" placeholder="Search" title="Search" name="q" value=""> </div> </div> </div> <div class="modal-footer"> <button class="btn btn-primary btn-sm" aria-label="Search"> <i class="fa fa-search"></i> Search </button> <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"> <i class="fa fa-times"></i> Cancel </button> </div> </form> </div> </div> </div> <div class="pull-right"> <form class="form-inline"> <span class="hidden-xs"> <a class="button-link" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/topic/environmental_sustainability/92509129?dir=asc"> Date <i class="fa fa-xs fa-sort-down"></i> </a> </span> <span class="hidden-sm hidden-md hidden-lg"> <a class="button-link" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/topic/environmental_sustainability/92509129?dir=asc"> Date <i class="fa fa-xs fa-sort-down"></i> </a> </span> <span class="hidden-xs"> <span class="form-group"> 1 - 4 of 4 </span> <ul class="pagination form-group" style="margin: 0px !important;"> <li class="disabled"> <a href="#"> <i class="fa fa-chevron-left"> <span class="sr-only"> previous page </span> </i> </a> </li> <li class="disabled"> <a href="#"> <i class="fa fa-chevron-right"> <span class="sr-only"> next page </span> </i> </a> </li> </ul> </span> </form> </div> <div class="form-group button-link-group"> </div> <h4 style="padding-top:10px;padding-bottom:10px;"> Environmental Sustainability TAG Proposal </h4> <table id="records" class="table table-condensed table-striped table-fixed" hx-disinherit="*"> <tr></tr> <tr class="background-color" > <td style="padding-left:0px;padding-right:0px;padding-bottom:0px;border:0px;"> <div class="table-background-color expanded-message"> <hr class="sr-only"> <a name="msg30" id="msg30"></a> <div class="row"> <div class="col-md-12"> <div class="pull-left"> <span style="display: flex;align-items: center;"> <i class="fa fa-user" style="font-size:40px; padding-right:2px; padding-left:2px;"></i> Weston, Marlow </span> </div> <div class="pull-right" style="text-align: right;"> <font size="-1" class="text-muted"> <script id="timedispmsg208218843"> $('#timedispmsg208218843').replaceWith(DisplayShortTime(1658336146271954032, false )); </script> </font> <a rel="nofollow" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/30"> <span class="hidden-xs"> #30 </span> <i class="fa fa-link fa-lg"></i> </a> </div> </div> </div> <br /> <div id="msgbody208218843" class="user-content"> <div class="forcebreak" dir="auto"><html><head><meta http-equiv="Content-Type"/> <meta name="Generator"/> </head><body lang="EN-US"> <div class="WordSection1"> <p class="MsoNormal">Hello all,</p> <p class="MsoNormal">聽</p> <p class="MsoNormal">For those needing context, the ToC has stepped in and said that the WG is being dissolved and we are to start a TAG instead.聽 With that in mind, we need a proposal for this.聽 I have taken the initiative and begun a TAG Proposal here borrowing heavily from content on the current charter and mimicking much of what TAG Security included within their own proposal:</p> <p class="MsoNormal"><a href="https://github.com/catblade/wg-env-sustainability/blob/TAG-env-sustainability-proposal/documentation/EnvironmentalSustainabilityTAGProposal.md" rel="nofollow noopener" target="_blank">https://github.com/catblade/wg-env-sustainability/blob/TAG-env-sustainability-proposal/documentation/EnvironmentalSustainabilityTAGProposal.md</a></p> <p class="MsoNormal">聽</p> <p class="MsoNormal">We also have this in the hackmd.io sustainability group, so if you would like access there, please email me and I will give you access to that.</p> <p class="MsoNormal">聽</p> <p class="MsoNormal">Feel free to contribute via either avenue.聽 I鈥檒l do my best to resolve any conflicts.</p> <p class="MsoNormal">聽</p> <p class="MsoNormal">Best wishes,</p> <p class="MsoNormal">--Marlow</p> </div> </div> </div> <p></p> <div class="table-highlight-background-color" style="margin-left:-10px;margin-right:-10px;margin-bottom:-10px;padding-left:10px;padding-right:10px;padding-top:4px;padding-bottom:2px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;"> <div class="row"> <div class="col-xs-8"></div> </div> <div class="row"> <div class="col-xs-12"> <div id="likestats208218843"></div> </div> </div> </div> </div> <script> contentLoaded(false, function() { displayLikeStats("/g/cncf-tag-env-sustainability", 0, 208218843, false) }); function replyToChange208218843(element) { var value = element.value; if (value == "1") { subj = $('#subject208218843').val(); $('#subject208218843').val('Private: ' + subj); $('#bccme208218843').show(); } else if (value == "2") { subj = $('#subject208218843').val(); $('#subject208218843').val(subj.replace('Private: ', '')); $('#bccme208218843').show(); } else { subj = $('#subject208218843').val(); $('#subject208218843').val(subj.replace('Private: ', '')); $('#bccme208218843').hide(); } if (tinyMCE.get('editor208218843') != null) { tinyMCE.get('editor208218843').focus(); } } function setFocus208218843() { tinyMCE.activeEditor.focus(); } </script> </td> </tr> <tr class="background-color" > <td style="padding-left:0px;padding-right:0px;padding-bottom:0px;border:0px;"> <div class="table-background-color expanded-message"> <hr class="sr-only"> <a name="msg51" id="msg51"></a> <div class="row"> <div class="col-md-12"> <div class="pull-left"> <div class="dropdown"> <a class="dropdown-toggle" href="#" role="button" id="dropdownMenu208631168" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span style="display: flex;align-items: center;"> <i class="fa fa-user" style="font-size:40px; padding-right:2px; padding-left:2px;"></i> <u>Huamin Chen</u> <span class="caret"></span> </span> </a> <ul class="dropdown-menu" aria-labelledby="dropdownMenu208631168"> <li> <a rel="nofollow" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/search?q=posterid:4381791"> <i class="fa-fw fa fa-comments"></i> All Messages By This Member </a> </li> </ul> </div> </div> <div class="pull-right" style="text-align: right;"> <font size="-1" class="text-muted"> <script id="timedispmsg208631168"> $('#timedispmsg208631168').replaceWith(DisplayShortTime(1659105426313200751, false )); </script> </font> <a rel="nofollow" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/51"> <span class="hidden-xs"> #51 </span> <i class="fa fa-link fa-lg"></i> </a> </div> </div> </div> <br /> <div id="msgbody208631168" class="user-content"> <div class="forcebreak" dir="auto">Hi,<br/><br/>The proposal has received many contributions and feedbacks. The passion is appreciated. It'd be great to sync.<br/><br/>I understand this is a short notice and participants are from diverse time zones. Here are the two slots for meetings: 12PM GMT/8AM ET on Aug 1st (Monday) and Aug 2nd (Tuesday). Both meetings will be recorded.<br/><br/>The meeting is going to be through Google meet, the invite is attached. If you cannot open the invite, please feel free to send me an email and I'll add you to the meetings.<br/><br/>Cheers!</div> </div> <p></p> <div class="row"> <a href="https://lists.cncf.io/g/cncf-tag-env-sustainability/attachment/51/0/hchen@redhat.com.ical.zip" target="_blank"> <div class="col-xs-2 attachment-box"> <i class="fas fa-file attachment-icon"></i> <div class="attachment-name">hchen@redhat.com.ical.zip</div> <div class="attachment-name-hover"> hchen@redhat.com.ical.zip </div> </div> </a> </div> <p></p> <div class="table-highlight-background-color" style="margin-left:-10px;margin-right:-10px;margin-bottom:-10px;padding-left:10px;padding-right:10px;padding-top:4px;padding-bottom:2px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;"> <div class="row"> <div class="col-xs-8"></div> </div> <div class="row"> <div class="col-xs-12"> <div id="likestats208631168"></div> </div> </div> </div> </div> <script> contentLoaded(false, function() { displayLikeStats("/g/cncf-tag-env-sustainability", 0, 208631168, false) }); function replyToChange208631168(element) { var value = element.value; if (value == "1") { subj = $('#subject208631168').val(); $('#subject208631168').val('Private: ' + subj); $('#bccme208631168').show(); } else if (value == "2") { subj = $('#subject208631168').val(); $('#subject208631168').val(subj.replace('Private: ', '')); $('#bccme208631168').show(); } else { subj = $('#subject208631168').val(); $('#subject208631168').val(subj.replace('Private: ', '')); $('#bccme208631168').hide(); } if (tinyMCE.get('editor208631168') != null) { tinyMCE.get('editor208631168').focus(); } } function setFocus208631168() { tinyMCE.activeEditor.focus(); } </script> </td> </tr> <tr class="background-color" > <td style="padding-left:0px;padding-right:0px;padding-bottom:0px;border:0px;"> <div class="table-background-color expanded-message"> <hr class="sr-only"> <a name="msg54" id="msg54"></a> <div class="row"> <div class="col-md-12"> <div class="pull-left"> <div class="dropdown"> <a class="dropdown-toggle" href="#" role="button" id="dropdownMenu208647743" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span style="display: flex;align-items: center;"> <i class="fa fa-user" style="font-size:40px; padding-right:2px; padding-left:2px;"></i> <u>Marlow Weston</u> <span class="caret"></span> </span> </a> <ul class="dropdown-menu" aria-labelledby="dropdownMenu208647743"> <li> <a rel="nofollow" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/search?q=posterid:5949148"> <i class="fa-fw fa fa-comments"></i> All Messages By This Member </a> </li> </ul> </div> </div> <div class="pull-right" style="text-align: right;"> <font size="-1" class="text-muted"> <script id="timedispmsg208647743"> $('#timedispmsg208647743').replaceWith(DisplayShortTime(1659125647509478929, false )); </script> </font> <a rel="nofollow" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/54"> <span class="hidden-xs"> #54 </span> <i class="fa fa-link fa-lg"></i> </a> </div> </div> </div> <br /> <div id="msgbody208647743" class="user-content"> <div class="forcebreak" dir="auto"><div><div>Hi All,</div><div><div><br/></div><div>This link <a href="https://hackmd.io/join/ByapKybo5" rel="nofollow noopener" target="_blank">https://hackmd.io/join/ByapKybo5</a> should work for everyone to get write access to the sustainability space on hackmd.聽 If you don't have an account, it should make you create one.聽 I recommend using your GitHub and not your email to create it.聽 The sustainability group in hackmd should include both the landscape doc and the TAG proposal.</div><div><br/></div><div>As always, I have been attempting to keep the proposal current with the branch here:</div><div><a href="https://github.com/catblade/wg-env-sustainability/tree/TAG-env-sustainability-proposal" rel="nofollow noopener" target="_blank">https://github.com/catblade/wg-env-sustainability/tree/TAG-env-sustainability-proposal</a></div><div><br/></div><div>I will ask to please do any large edits of the proposal in the comments in the hackmd or through a PR and we can run through those as a group in the meetings next week to merge accordingly.聽 Small edits are fine.聽 Adding in comments in markdown are also fine (we have some notes in there currently asking for community input on specific topics, though all constructive input is welcome.</div><div><br/></div><div>Happy weekend!</div><div>--Marlow</div><div><br/></div><div><br/></div><br/></div></div></div> <a class="label hashtag-label-sage" id="qlabel-208647743" role="button" data-toggle="collapse" href="#quoted-208647743" aria-expanded="false" aria-controls="quoted-208647743"> <span class="sr-only"> toggle quoted message </span> Show quoted text </a> <p></p> <div id="quoted-208647743" class="collapse forcebreak"> <div dir="auto"><br/><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jul 29, 2022, 9:37 AM Huamin Chen <<a href="mailto:hchen@..." rel="nofollow noopener" target="_blank">hchen@...</a>> wrote:<br/></div><blockquote class="gmail_quote">Hi,<br/><br/>The proposal has received many contributions and feedbacks. The passion is appreciated. It'd be great to sync.<br/><br/>I understand this is a short notice and participants are from diverse time zones. Here are the two slots for meetings: 12PM GMT/8AM ET on Aug 1st (Monday) and Aug 2nd (Tuesday). Both meetings will be recorded.<br/><br/>The meeting is going to be through Google meet, the invite is attached. If you cannot open the invite, please feel free to send me an email and I'll add you to the meetings.<br/><br/>Cheers! <p></p><p></p></blockquote></div></div> </div> <script> contentLoaded(false, function() { $('#quoted-208647743').on('show.bs.collapse', function() { $('#qlabel-208647743').text("Hide quoted text"); }) $('#quoted-208647743').on('hide.bs.collapse', function() { $('#qlabel-208647743').text("Show quoted text"); }) }); </script> </div> <p></p> <div class="table-highlight-background-color" style="margin-left:-10px;margin-right:-10px;margin-bottom:-10px;padding-left:10px;padding-right:10px;padding-top:4px;padding-bottom:2px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;"> <div class="row"> <div class="col-xs-8"></div> </div> <div class="row"> <div class="col-xs-12"> <div id="likestats208647743"></div> </div> </div> </div> </div> <script> contentLoaded(false, function() { displayLikeStats("/g/cncf-tag-env-sustainability", 0, 208647743, false) }); function replyToChange208647743(element) { var value = element.value; if (value == "1") { subj = $('#subject208647743').val(); $('#subject208647743').val('Private: ' + subj); $('#bccme208647743').show(); } else if (value == "2") { subj = $('#subject208647743').val(); $('#subject208647743').val(subj.replace('Private: ', '')); $('#bccme208647743').show(); } else { subj = $('#subject208647743').val(); $('#subject208647743').val(subj.replace('Private: ', '')); $('#bccme208647743').hide(); } if (tinyMCE.get('editor208647743') != null) { tinyMCE.get('editor208647743').focus(); } } function setFocus208647743() { tinyMCE.activeEditor.focus(); } </script> </td> </tr> <tr class="background-color" > <td style="padding-left:0px;padding-right:0px;padding-bottom:0px;border:0px;"> <div class="table-background-color expanded-message"> <hr class="sr-only"> <a name="msg55" id="msg55"></a> <div class="row"> <div class="col-md-12"> <div class="pull-left"> <div class="dropdown"> <a class="dropdown-toggle" href="#" role="button" id="dropdownMenu208857295" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span style="display: flex;align-items: center;"> <i class="fa fa-user" style="font-size:40px; padding-right:2px; padding-left:2px;"></i> <u>Marlow Weston</u> <span class="caret"></span> </span> </a> <ul class="dropdown-menu" aria-labelledby="dropdownMenu208857295"> <li> <a rel="nofollow" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/search?q=posterid:5949148"> <i class="fa-fw fa fa-comments"></i> All Messages By This Member </a> </li> </ul> </div> </div> <div class="pull-right" style="text-align: right;"> <font size="-1" class="text-muted"> <script id="timedispmsg208857295"> $('#timedispmsg208857295').replaceWith(DisplayShortTime(1659537477156913620, false )); </script> </font> <a rel="nofollow" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/message/55"> <span class="hidden-xs"> #55 </span> <i class="fa fa-link fa-lg"></i> </a> </div> </div> </div> <br /> <div id="msgbody208857295" class="user-content"> <div class="forcebreak" dir="auto"><div dir="ltr">Hello all,<div><br/></div><div>I have (and sorry for the delay, had issues uploading and getting youtube to take my videos) uploaded videos taken on working on the proposal to a channel here.<div><a href="https://www.youtube.com/channel/UCAP7aqUNV-4RzrUhKF5ohUg/videos" rel="nofollow noopener" target="_blank">https://www.youtube.com/channel/UCAP7aqUNV-4RzrUhKF5ohUg/videos</a></div><div><br/></div><div>As we don't have an official channel yet, I used my personal account.聽 Hoping after the TAG is formed we can have an official location.<br/><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="text-align: left"><span style="font-family: garamond, serif"><br/></span></div><div style="text-align: left"><div>Also, in my last email, I stated:</div></div></div></div></div></div></div><blockquote><div><div><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="text-align: left"><div>I will ask to please do any large edits of the proposal in the comments in the聽<span class="gmail-il">hackmd</span>聽or through a PR and we can run through those as a group in the meetings next week to merge accordingly.聽 Small edits are fine.聽 Adding in comments in markdown are also fine (we have some notes in there currently asking for community input on specific topics, though all constructive input is welcome.</div><div><br/></div></div></div></div></div></div></div></blockquote><div><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="text-align: left"><div>I see a large edit that was made outside of these meetings that substantially changes the feel of the document, so I've temporarily commented it out until we can review it again in another session.</div><div><br/></div><div>Best wishes,</div><div>--Marlow</div><div><br/></div></div><div style="text-align: left"><span style="font-family: garamond, serif">"Inspiration exists but it has to find you working."<br/>--Pablo Picasso</span><br/></div></div></div></div><br/></div></div><br/><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jul 29, 2022 at 3:14 PM Marlow Weston via <a href="http://lists.cncf.io" rel="nofollow noopener" target="_blank">lists.cncf.io</a> <catblade=<a href="mailto:gmail.com@..." rel="nofollow noopener" target="_blank">gmail.com@...</a>> wrote:<br/></div><blockquote class="gmail_quote"><div><div>Hi All,</div><div><div><br/></div><div>This link <a href="https://hackmd.io/join/ByapKybo5" target="_blank" rel="nofollow noopener">https://hackmd.io/join/ByapKybo5</a> should work for everyone to get write access to the sustainability space on hackmd.聽 If you don't have an account, it should make you create one.聽 I recommend using your GitHub and not your email to create it.聽 The sustainability group in hackmd should include both the landscape doc and the TAG proposal.</div><div><br/></div><div>As always, I have been attempting to keep the proposal current with the branch here:</div><div><a href="https://github.com/catblade/wg-env-sustainability/tree/TAG-env-sustainability-proposal" target="_blank" rel="nofollow noopener">https://github.com/catblade/wg-env-sustainability/tree/TAG-env-sustainability-proposal</a></div><div><br/></div><div>I will ask to please do any large edits of the proposal in the comments in the hackmd or through a PR and we can run through those as a group in the meetings next week to merge accordingly.聽 Small edits are fine.聽 Adding in comments in markdown are also fine (we have some notes in there currently asking for community input on specific topics, though all constructive input is welcome.</div><div><br/></div><div>Happy weekend!</div><div>--Marlow</div><div><br/></div><div><br/></div><br/><br/><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jul 29, 2022, 9:37 AM Huamin Chen <<a href="mailto:hchen@..." target="_blank" rel="nofollow noopener">hchen@...</a>> wrote:<br/></div><blockquote class="gmail_quote">Hi,<br/><br/>The proposal has received many contributions and feedbacks. The passion is appreciated. It'd be great to sync.<br/><br/>I understand this is a short notice and participants are from diverse time zones. Here are the two slots for meetings: 12PM GMT/8AM ET on Aug 1st (Monday) and Aug 2nd (Tuesday). Both meetings will be recorded.<br/><br/>The meeting is going to be through Google meet, the invite is attached. If you cannot open the invite, please feel free to send me an email and I'll add you to the meetings.<br/><br/>Cheers! <p></p><p></p></blockquote></div></div></div> <p></p><p></p></blockquote></div></div> </div> <p></p> <div class="table-highlight-background-color" style="margin-left:-10px;margin-right:-10px;margin-bottom:-10px;padding-left:10px;padding-right:10px;padding-top:4px;padding-bottom:2px;border-bottom-left-radius:4px;border-bottom-right-radius:4px;"> <div class="row"> <div class="col-xs-8"></div> </div> <div class="row"> <div class="col-xs-12"> <div id="likestats208857295"></div> </div> </div> </div> </div> <script> contentLoaded(false, function() { displayLikeStats("/g/cncf-tag-env-sustainability", 0, 208857295, false) }); function replyToChange208857295(element) { var value = element.value; if (value == "1") { subj = $('#subject208857295').val(); $('#subject208857295').val('Private: ' + subj); $('#bccme208857295').show(); } else if (value == "2") { subj = $('#subject208857295').val(); $('#subject208857295').val(subj.replace('Private: ', '')); $('#bccme208857295').show(); } else { subj = $('#subject208857295').val(); $('#subject208857295').val(subj.replace('Private: ', '')); $('#bccme208857295').hide(); } if (tinyMCE.get('editor208857295') != null) { tinyMCE.get('editor208857295').focus(); } } function setFocus208857295() { tinyMCE.activeEditor.focus(); } </script> </td> </tr> </table> <!-- Modal --> <div class="modal fade" id="videoModal" tabindex="-1" role="dialog" aria-labelledby="videoModalLabel"> <div class="modal-dialog" role="document" style="width:80vw; height:80vh;margin-left:auto;margin-right:auto;"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> </div> <div class="modal-body" id="videoModalBody"> </div> </div> </div> </div> <script> videojs.registerPlugin('orientationHandler', function() { this.on('loadedmetadata', function() { player = this; const video = this.tech().el(); console.log("In loadedmetadata"); // Get video orientation from metadata if available const transform = video.style.transform || ''; console.log("transform:"+transform); const rotation = transform.match(/rotate\((\d+)deg\)/); console.log("rotation:"+rotation); const currentRotation = rotation ? parseInt(rotation[1]) : 0; console.log("currentRotation:"+currentRotation); // Check if video dimensions suggest it needs rotation const videoRatio = video.videoWidth / video.videoHeight; console.log("videoRatio:"+videoRatio); if (videoRatio < 1 && currentRotation === 0) { console.log("rotating"); video.style.transform = 'rotate(180deg)'; //player.posterImage.el().style.transform = 'rotate(180deg)'; const posterEl = player.el().querySelector('.vjs-poster'); if (posterEl) { console.log("rotating poster"); posterEl.style.transform = 'rotate(180deg)'; } } }); }); contentLoaded(false, function() { let player; let videoLinks = document.getElementsByClassName('video-link'); for (var i = 0; i < videoLinks.length; i++) { videoLinks[i].addEventListener('click', function(event) { let videoSrc = event.currentTarget.getAttribute('data-video-src'); let videoName = event.currentTarget.getAttribute('data-video-name'); console.log("videoSrc: ", videoSrc); // Create a new video tag let videoTag = document.createElement('video'); videoTag.setAttribute('class', 'video-js vjs-fill center-block vjs-default-skin'); videoTag.setAttribute('controls', ''); videoTag.setAttribute('preload', 'auto'); videoTag.setAttribute('data-setup', '{}'); // Create a new source tag let sourceTag = document.createElement('source'); sourceTag.setAttribute('src', videoSrc); sourceTag.setAttribute('type', 'video/mp4'); // Append the source tag to the video tag videoTag.appendChild(sourceTag); // Get the modal body and clear its contents let modalBody = document.getElementById('videoModalBody'); modalBody.setAttribute('style', 'height:80vh;width:80vw'); modalBody.innerHTML = ''; // Append the video tag to the modal body modalBody.appendChild(videoTag); // Initialize the video player player = videojs(videoTag); player.orientationHandler(); // Create a new button component let Button = videojs.getComponent('Button'); class DownloadButton extends Button { constructor(player, options) { super(player, options); this.el().innerHTML = '<span class="sr-only">Download</span><i class="fas fa-download"></i>'; } handleClick() { window.open(videoSrc, '_blank'); } } // Register the custom Button class videojs.registerComponent('DownloadButton', DownloadButton); // Add the custom button to the control bar player.getChild('controlBar').addChild('DownloadButton', {}); }); } $('#videoModal').on('hide.bs.modal', function (e) { if (player) { player.pause(); } }); var checkboxes = document.querySelectorAll('.delete-checkbox'); // The forEach method will not execute if the NodeList is empty, // so there's no need for an explicit check for the existence of checkboxes. checkboxes.forEach(function(checkbox) { checkbox.addEventListener('click', function(event) { // Stop the event from bubbling up to the parent elements event.stopPropagation(); }); }); }, "attachment.qtpl"); </script> <form class="form" method="POST" action="https://lists.cncf.io/g/cncf-tag-env-sustainability/editmessage"> <input type="hidden" name="mid" id="mid" value="0"> <input type="hidden" name="action_type" id="action_type" value="delete"> <!-- Verify Remove Modal --> <div class="modal fade" id="deleteMessageModal" tabindex="-1" role="dialog" aria-labelledby="deleteMessageModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"> × </span> <span class="sr-only"> Close </span> </button> <h4 class="modal-title" id="deleteMessageModalLabel"> Verify Delete </h4> </div> <div class="modal-body"> Are you sure you wish to delete this message from the message archives of cncf-tag-env-sustainability@lists.cncf.io? <strong>This cannot be undone.</strong> </div> <div class="modal-footer"> <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"> <i class="fa fa-times"></i> Cancel </button> <button class="btn btn-danger btn-sm" name="delmessage" value="1"> <i class="fa fa-trash-alt"></i> Yes </button> </div> </div> </div> </div> </form> <form class="form" method="POST" action="https://lists.cncf.io/g/cncf-tag-env-sustainability/repostmessage"> <input type="hidden" name="mid" id="repostmid" value="0"> <input type="hidden" name="r" value="https://lists.cncf.io/g/cncf-tag-env-sustainability/messages"> <!-- Verify Repost Modal --> <div class="modal fade" id="repostMessageModal" tabindex="-1" role="dialog" aria-labelledby="repostMessageModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"> × </span> <span class="sr-only"> Close </span> </button> <h4 class="modal-title" id="repostMessageModalLabel"> Verify Repost </h4> </div> <div class="modal-body"> Are you sure you wish to repost this message? </div> <div class="modal-footer"> <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"> <i class="fa fa-times"></i> Cancel </button> <button class="btn btn-danger btn-sm" name="delmessage" value="1"> <i class="fa fa-retweet"></i> Yes </button> </div> </div> </div> </div> </form> <form class="form" id="reportform" hx-boost="false"> <input type="hidden" name="mid" id="reportmid" value="0"> <!-- Report Message Modal --> <div class="modal fade" id="reportMessageModal" tabindex="-1" role="dialog" aria-labelledby="reportMessageModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"> × </span> <span class="sr-only"> Close </span> </button> <h4 class="modal-title" id="reportMessageModalLabel"> Report Message </h4> </div> <div class="modal-body"> <label for="reason"> Reason </label> <textarea id="reason" name="reason" class="form-control" rows="5"></textarea> <div class="radio"> <label> <input type="radio" name="reportto" value="mods" checked> Report to Moderators </label> <span class="help-block"> I think this message isn't appropriate for our group. The Group moderators are responsible for maintaining their community and can address these issues. </span> <label> <input type="radio" name="reportto" value="support"> Report to CNCF Support </label> <span class="help-block"> I think this violates the Terms of Service. This includes: harm to minors, violence or threats, harassment or privacy invasion, impersonation or misrepresentation, fraud or phishing. </span> </div> <p> <center> <strong> Note: </strong> Your email address is included with the abuse report. </center> </p> </div> <div class="modal-footer"> <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"> <i class="fa fa-times"></i> Cancel </button> <button class="btn btn-danger btn-sm" name="report" value="1"> <i class="fa fa-flag"></i> Report </button> </div> </div> </div> </div> </form> <script> $('#reportMessageModal').on('show.bs.modal', function(e) { var msgId = $(e.relatedTarget).data('message-id'); $('#reportmid').val(msgId); }); contentLoaded( false , function() { $('#reportform').on('submit', function(event) { event.preventDefault(); $('#reportMessageModal').modal('hide'); $.ajax({ url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/report", type: "POST", data: $(this).serialize(), success: function(html) { createAlert("Your report has been sent.", true); } }); return false; }); }); </script> <form class="form" method="POST" action="https://lists.cncf.io/g/cncf-tag-env-sustainability/editmessage"> <input type="hidden" name="mid" id="splitmid" value="0"> <input type="hidden" name="action_type" id="action_type" value="split"> <input type="hidden" name="r" value="https://lists.cncf.io/g/cncf-tag-env-sustainability/topic/92509129"> <!-- Verify Split Modal --> <div class="modal fade" id="splitMessageModal" tabindex="-1" role="dialog" aria-labelledby="splitMessageModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true"> × </span> <span class="sr-only"> Close </span> </button> <h4 class="modal-title" id="splitMessageModalLabel"> Split Topic </h4> </div> <div class="modal-body"> <p> The new topic will begin with this message. Subject of the new topic: </p> <input name="subject" class="form-control" size=20 type="text" spellcheck="true"> </div> <div class="modal-footer"> <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"> <i class="fa fa-times"></i> Cancel </button> <button class="btn btn-danger btn-sm" name="delmessage" value="1"> <i class="fa fa-trash-alt"></i> Split Topic </button> </div> </div> </div> </div> </form> <p></p> <div class="row"> <div class="col-xs-12"> <div class="pull-right"> <form class="form-inline"> <div class="pull-right form-inline"> <span class="form-group"> 1 - 4 of 4 </span> <ul class="pagination form-group" style="margin: 0px !important;vertical-align:middle;"> <li class="disabled"> <a href="#"> <i class="fa fa-chevron-left"> <span class="sr-only"> previous page </span> </i> </a> </li> <li class="hidden-xs disabled"> <a class="currentpage" href="#"> 1 </a> </li> <li class="disabled"> <a href="#"> <i class="fa fa-chevron-right"> <span class="sr-only"> next page </span> </i> </a> </li> </ul> </div> </form> </div> <div class="button-link-group form-group"> <a href="https://lists.cncf.io/g/cncf-tag-env-sustainability/topic/92658201" class="btn btn-default btn-sm"> <i class="fa fa-arrow-left"></i> <span class="hidden-xs"> Previous Topic </span> </a> <a href="https://lists.cncf.io/g/cncf-tag-env-sustainability/topic/92797596" class="btn btn-default btn-sm"> <span class="hidden-xs"> Next Topic </span> <i class="fa fa-arrow-right"></i> </a> </div> </div> </div> <script> var editor; contentLoaded(false, function() { $('#deleteMessageModal').on('show.bs.modal', function(e) { var msgId = $(e.relatedTarget).data('message-id'); $('#mid').val(msgId); }); $('#splitMessageModal').on('show.bs.modal', function(e) { var msgId = $(e.relatedTarget).data('message-id'); $('#splitmid').val(msgId); }); $('#repostMessageModal').on('show.bs.modal', function(e) { var msgId = $(e.relatedTarget).data('message-id'); $('#repostmid').val(msgId); }); $('[id^=cancel]').on('click', function() { msg_num = $(this).attr('id').split("-")[1] $("#window-"+msg_num).collapse('hide') }); if (location.hash) { console.log("Setting location.hash"); location.href = location.hash; } $(".modal").on('shown.bs.modal', function () { $(this).find("input:visible:first").focus(); }); $("[data-toggle='tooltip']").tooltip(); UpdateSidebar("archives"); if (document.documentElement.clientWidth <= 992) { ShowBackButton(""); gioDestroy(function(event) { console.log("destructor called"); HideBackButton(); }); } }); </script> </div> </div> </div> </div> <div class="row hidden-print" id="mobileSidebar" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <div id="mobileSidebarSub" class="col-xs-12 hidden-md hidden-lg"> <div class="navbar navbar-default navbar-fixed-bottom"> <div class="container" style="display: flex; justify-content: space-around;"> <div id="mobilesidebar-archives" class="mobilesidebar-item" style="margin-top:10px; padding-bottom:20px; flex: 1; text-align: center;" hx-get="https://lists.cncf.io/g/cncf-tag-env-sustainability/topics?sidebar=true" hx-boost="true" hx-target="#maincontent-refresh" hx-push-url="true" hx-history="false" hx-on::after-request="document.getElementById('maincontent').scrollTo({top: 0, behavior: 'instant'})" > <div style="display: inline-block; position: relative;"> <div style="position: relative;display: inline-block;"> <i class="fa-fw fa-solid fa-comments fa-2x"></i> </div><br> <span style="font-size:12px;">Messages</span> </div> </div> <div style="flex: 1; text-align: center;margin-top:10px" data-drawer-trigger aria-controls="drawer-name" aria-expanded="false"> <i class="fa-fw fa-light fa-bars fa-2x"></i><br> <span style="font-size:12px;">More</span> </div> </div> </div> <section class="drawer drawer-left" id="drawer-name" data-drawer-target> <div class="drawer-overlay" data-drawer-close tabindex="-1"></div> <div class="drawer-wrapper drawer-wrapper-top"> <div class="drawer-header"> <div class="drawer-title"> <i class="fa-fw fa-regular fa-bars fa-3x"></i> <span class="sr-only"> More Options </span> More </div> <button class="drawer-close" data-drawer-close aria-label="Close Drawer"></button> </div> <div class="drawer-content"> <div class="list-group noborderlist"> <a title="Group Home" href="https://lists.cncf.io/g/cncf-tag-env-sustainability" class="list-group-item sidebar-item"> <i class="fa-fw fa fa-home fa-lg"></i> Home </a> <a title="Messages" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/topics?sidebar=true" id="sidebar-archives-mobile" class="noborderitem list-group-item sidebar-item sidebar-item-archives active"> <i class="fa-fw fa fa-comments fa-lg"></i> Messages <span id="sidebar-archives-mobile-badge" class="badge"></span> </a> <a title="Hashtags" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/hashtags" id="sidebar-hashtags-mobile" class="noborderitem list-group-item sidebar-item sidebar-item-hashtags"> <i class="fa-fw fa fa-hashtag fa-lg"></i> Hashtags <span id="sidebar-hashtags-mobile-badge" class="badge"></span> </a> <a title="Subgroups" href="https://lists.cncf.io/g/cncf-tag-env-sustainability/subgroups" id="sidebar-subgroups-mobile" class="noborderitem list-group-item sidebar-item sidebar-item-subgroups"> <i class="fa-fw fa fa-chart-pie fa-lg"></i> Subgroups <span id="sidebar-subgroups-mobile-badge" class="badge"></span> </a> <a class="noborderitem list-group-item sidebar-item" href="https://groups.io/static/tos" target="_blank"> <i class="fa-fw fal fa-newspaper fa-lg"></i> Terms </a> </div> </div> </div> </section> </div> </div> <!-- Modal Dialog for Autocomplete --> <div class="modal fade" id="quickActionsModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-body"> <input type="text" class="form-control" id="quickActionsInput" placeholder="Go to page..." style="margin-bottom:10px"> <div id="quickActionsContainer" class="autocompleteResults" style="max-height:250px; overflow-y: auto;"></div> <div class="text-center" style="margin-top:10px; font-size:12px;"><i class="fa-sharp fa-arrow-up-arrow-down"></i> to navigate <i class="fa-sharp fa-arrow-turn-down-left"></i> to use <strong>esc</strong> to dismiss</div> </div> </div> </div> </div> <script> var quickActionsData = [ {name: "Group Home", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability"}, {name: "Topics", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/topics"}, {name: "Messages", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/messages"}, {name: "Expanded Messages", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/messages?expanded=1"}, {name: "Polls", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/polls"}, {name: "Hashtags", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/hashtags"}, {name: "Subgroups", url: "https://lists.cncf.io/g/cncf-tag-env-sustainability/subgroups"}, /* other pages */ {name: "Help", url: "/helpcenter"}, {name: "Feed", url: "/feed"}, {name: "Your Groups", url: "/groups"}, {name: "Your Calendar", url: "/calendar"}, {name: "Your Activity", url: "/activity"}, {name: "Your Pending Messages", url: "/pendingmsgs"}, {name: "Account Login", url: "/account"}, {name: "Account Preferences", url: "/account?page=prefs"}, {name: "Account Security", url: "/account?page=security"}, {name: "Account Identity", url: "/account?page=profile&member_info_id=0"}, {name: "Account Notifications", url: "/account?page=notifications"}, {name: "Account Other Services", url: "/account?page=oauth"}, {name: "Account Bounces", url: "/account?page=bounces"}, {name: "Account Billing", url: "/account?page=billing"}, {name: "Find a Group", url: "/search?p=SubsCount,,,20,2,0,0"}, ]; InitAutocomplete("quickActions", quickActionsData); document.addEventListener('keydown', function(event) { var tagName = event.target.tagName.toLowerCase(); if (tagName === 'input' || tagName === 'textarea' || event.target.isContentEditable) { return; } // check if the viewimages viewer is up let element = document.getElementById('overlay'); if (element && element.classList.contains('visible')) { return; } if (event.key.toLowerCase() === '/') { if (navigator.platform.toUpperCase().indexOf('MAC') >= 0) { // For Mac // Check if Command (event.metaKey) is pressed, and either Option (event.altKey) is pressed or not if (event.metaKey) { event.preventDefault(); showAutocompleteModal("quickActions"); return; } } else { // For Windows and Linux if (event.ctrlKey) { event.preventDefault(); showAutocompleteModal("quickActions"); return; } } } }); function UpdateSidebar(id) { console.log(id + " was clicked"); var sidebarItems = document.querySelectorAll('.mobilesidebar-item'); sidebarItems.forEach(function(item) { var iElement = item.getElementsByTagName('div')[0].getElementsByTagName('i')[0]; if (item.id == "mobilesidebar-" + id) { console.log("making solid " + id) iElement.classList.add('fa-solid'); iElement.classList.remove('fa-light'); } else { iElement.classList.remove('fa-solid'); iElement.classList.add('fa-light'); } }); var sidebarItems = document.querySelectorAll('.sidebar-item'); // remove 'active' class from all 'sidebar-item' elements sidebarItems.forEach(function(item) { if (item.id == "sidebar-" + id) { console.log("making active " + id) item.classList.add('active'); } else { item.classList.remove('active'); } }); } </script> </div> <div id="scroll-top-outer"> <div id="scroll-top" class="scroll-top-wrapper hidden-xs"> <span class="scroll-top-inner"> <i class="fa fa-arrow-circle-up fa-fw fa-2x"></i> </span> </div> </div> <script> $(function() { $(document).on('scroll', function() { if ($(window).scrollTop() > 100) { $('.scroll-top-wrapper').addClass('show'); } else { $('.scroll-top-wrapper').removeClass('show'); } }); $('.scroll-top-wrapper').on('click', scrollToTop); }); function scrollToTop() { verticalOffset = typeof(verticalOffset) != 'undefined' ? verticalOffset : 0; element = $('body'); offset = element.offset(); offsetTop = offset.top; $('html, body').animate({ scrollTop: offsetTop }, 100, 'linear'); } if (navigator.platform.toUpperCase().indexOf('MAC') >= 0) { let elements = document.querySelectorAll('strong.ctrlmeta'); elements.forEach((element) => { // Check if the innerText is "ctrl" if (element.innerText === 'ctrl') { // Create a new "i" element let newElement = document.createElement('i'); newElement.classList.add('fa-solid', 'fa-command'); // Replace the old "strong" element with the new "i" element element.parentNode.replaceChild(newElement, element); } }); } </script> </body> </html>