diff --git a/404.html b/404.html index f9b94d181db..8cb726815f5 100644 --- a/404.html +++ b/404.html @@ -13,7 +13,7 @@ - + diff --git a/assets/js/006e489c.0820074d.js b/assets/js/006e489c.0820074d.js new file mode 100644 index 00000000000..0c5f9c94d81 --- /dev/null +++ b/assets/js/006e489c.0820074d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8145],{11956:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>r,default:()=>m,frontMatter:()=>l,metadata:()=>d,toc:()=>c});var t=s(24246),o=s(71670),i=s(92975),a=s.n(i);const l={title:"Release Notes - Podman Desktop 0.13",description:"Podman Desktop 0.13 has been released!",slug:"podman-desktop-release-0.13",authors:["deboer"],tags:["podman-desktop","release","kubernetes","compose"],hide_table_of_contents:!1},r=void 0,d={permalink:"/blog/podman-desktop-release-0.13",source:"@site/blog/2023-03-29-release-0.13.md",title:"Release Notes - Podman Desktop 0.13",description:"Podman Desktop 0.13 has been released!",date:"2023-03-29T00:00:00.000Z",formattedDate:"March 29, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"compose",permalink:"/blog/tags/compose"}],readingTime:3.155,hasTruncateMarker:!0,authors:[{name:"Tim deBoer",title:"Architect",url:"https://github.com/deboer-tim",imageURL:"https://github.com/deboer-tim.png",key:"deboer"}],frontMatter:{title:"Release Notes - Podman Desktop 0.13",description:"Podman Desktop 0.13 has been released!",slug:"podman-desktop-release-0.13",authors:["deboer"],tags:["podman-desktop","release","kubernetes","compose"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 0.14",permalink:"/blog/podman-desktop-release-0.14"},nextItem:{title:"5 things to know about Podman Desktop for a Docker user",permalink:"/blog/5-things-to-know-for-a-docker-user"}},h={authorsImageUrls:[void 0]},c=[{value:"Release details",id:"release-details",level:2},{value:"Update to Podman v4.4.4",id:"update-to-podman-v444",level:3},{value:"Compose support",id:"compose-support",level:3},{value:"Extensions",id:"extensions",level:3},{value:"UI and UX improvements",id:"ui-and-ux-improvements",level:3},{value:"Welcome page #1726",id:"welcome-page-1726",level:4},{value:"New Task Manager #1724",id:"new-task-manager-1724",level:4},{value:"Updated Resources Settings #1582",id:"updated-resources-settings-1582",level:4},{value:"Update Alerts #1827",id:"update-alerts-1827",level:4},{value:"Prune buttons #1481, #1482, #1484",id:"prune-buttons-1481-1482-1484",level:4},{value:"Other notable enhancements",id:"other-notable-enhancements",level:2},{value:"Documentation",id:"documentation",level:2},{value:"Notable bug fixes",id:"notable-bug-fixes",level:2},{value:"Community thank you",id:"community-thank-you",level:2},{value:"Final notes",id:"final-notes",level:2}];function p(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components},{Icon:i}=n;return i||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Icon",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"This release note covers Podman Desktop 0.13 release changes."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Podman Version"}),": Podman 4.4.4 now included in Windows and Mac installers."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Compose"}),": Support for installing Docker Compose."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Extensions"}),": Improved extension support for Podman Desktop with additional capabilities."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"UX and UI Improvements"}),": Welcome page, task manager, resources, and update alerts."]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 0.13 is now available. ",(0,t.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Podman-desktop-0-13-hero",src:s(75771).Z+"",width:"1852",height:"1323"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"release-details",children:"Release details"}),"\n",(0,t.jsx)(n.h3,{id:"update-to-podman-v444",children:"Update to Podman v4.4.4"}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 0.13 embeds ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman/releases/tag/v4.4.4",children:"Podman 4.4.4"})," in\nWindows and macOS installers ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1456",children:"#1456"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"compose-support",children:"Compose support"}),"\n",(0,t.jsxs)(n.p,{children:["You can install Docker Compose from the Podman Desktop UI ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1578",children:"#1578"}),". This will allow you use Compose workflows using Podman."]}),"\n",(0,t.jsx)(n.h3,{id:"extensions",children:"Extensions"}),"\n",(0,t.jsx)(n.p,{children:"To make it easier to extend Podman Desktop we have:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Published the ",(0,t.jsx)(n.a,{href:"https://www.npmjs.com/package/@podman-desktop/api",children:"Podman Desktop Extension API"})," to npmjs ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1727",children:"#1727"})]}),"\n",(0,t.jsxs)(n.li,{children:["Documented ",(0,t.jsx)(n.a,{href:"https://podman-desktop.io/docs/extensions",children:"how to create, publish, and install your own extensions"})]}),"\n",(0,t.jsxs)(n.li,{children:["Expanded the API for ",(0,t.jsx)(n.code,{children:"QuickPickInput"})," ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1839",children:"#1839"})]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"ui-and-ux-improvements",children:"UI and UX improvements"}),"\n",(0,t.jsxs)(n.h4,{id:"welcome-page-1726",children:["Welcome page ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1726",children:"#1726"})]}),"\n",(0,t.jsx)(n.p,{children:"The first time every user starts Podman Desktop, they will see a welcome page:"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/225682776-e016ba31-5bb9-41d5-87ed-f93caeb3fb84.png",alt:"welcome-page"})}),"\n",(0,t.jsx)(n.p,{children:"Note that the Welcome page will only appear the first time you run Podman Desktop 0.13.0, and none of your settings or assets in Podman Desktop will be affected by it.\nOver time, this page will be expanded to help with initial setup and configuration."}),"\n",(0,t.jsxs)(n.h4,{id:"new-task-manager-1724",children:["New Task Manager ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1724",children:"#1724"})]}),"\n",(0,t.jsxs)(n.p,{children:["A new Task Manager has been added to the status bar to see the progress (or return to) long running tasks. To start with, building images ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1725",children:"#1725"})," and Podman machine ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1742",children:"#1742"})," are using the task manager."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"task-manager",src:s(9184).Z+"",width:"2082",height:"1198"})}),"\n",(0,t.jsxs)(n.h4,{id:"updated-resources-settings-1582",children:["Updated Resources Settings ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1582",children:"#1582"})]}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(i,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Resources"]})," page has been updated with a new design, making it easier to see and control your providers from a single place."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/221908815-595715fe-4c95-4087-89e0-45e5544ed5c9.gif",alt:"resources"})}),"\n",(0,t.jsx)(n.p,{children:"The other settings pages have been updated for consistency with this new design."}),"\n",(0,t.jsxs)(n.h4,{id:"update-alerts-1827",children:["Update Alerts ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1827",children:"#1827"})]}),"\n",(0,t.jsx)(n.p,{children:"A new alert button will appear in the status bar when future updates are available."}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/227596136-c6123d5c-d9ae-4fb3-a569-0cfaaeebf09c.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsxs)(n.h4,{id:"prune-buttons-1481-1482-1484",children:["Prune buttons ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1481",children:"#1481"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1482",children:"#1482"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1484",children:"#1484"})]}),"\n",(0,t.jsxs)(n.p,{children:["We've added buttons to prune unused volumes ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1481",children:"#1481"}),", images ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1482",children:"#1482"})," and pods ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1484",children:"#1484"}),"."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"prune-image",src:s(66557).Z+"",width:"2074",height:"570"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other notable enhancements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Kubernetes pods are now shown in the Pods view ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1312",children:"#1312"})]}),"\n",(0,t.jsxs)(n.li,{children:["Easy button to fix Docker compatibility mode on macOS ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1697",children:"#1697"})]}),"\n",(0,t.jsxs)(n.li,{children:["Display extension icons ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1058",children:"#1058"})]}),"\n",(0,t.jsxs)(n.li,{children:["API to cancel long running tasks ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1777",children:"#1777"})]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,t.jsx)(n.p,{children:"The documentation has new content:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://podman-desktop.io/docs/extensions",children:"How to create, publish, and install your own Podman Desktop extensions"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://podman-desktop.io/docs/compose/podman-compose",children:"Using Compose"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://podman-desktop.io/docs/kind",children:"Restarting Kind"})}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable bug fixes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Periodically check and refresh Podman connection on Windows and Mac ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1662",children:"#1662"})]}),"\n",(0,t.jsxs)(n.li,{children:["Fix inconsistent Log view behaviour ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1710",children:"#1710"})]}),"\n",(0,t.jsxs)(n.li,{children:["Don't create route for regular Kubernetes clusters ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1707",children:"#1707"})]}),"\n",(0,t.jsxs)(n.li,{children:["Fix copy button on empty screen ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1804",children:"#1804"})]}),"\n",(0,t.jsxs)(n.li,{children:["Register extension tray items correctly ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1778",children:"#1778"})," and handle updates ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1800",children:"#1800"})]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"community-thank-you",children:"Community thank you"}),"\n",(0,t.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop 0.13 even better:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/Tony-Sol",children:(0,t.jsx)(n.code,{children:"Tony Soloveyv"})})," in ",(0,t.jsxs)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1605",children:["#1605 - Fix directories inconsistency in ",(0,t.jsx)(n.code,{children:"~/.local/share/"})]})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/RobotSail",children:(0,t.jsx)(n.code,{children:"Oleg"})})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1567",children:"#1567 - Check for Flatpak when calling command from exec"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/cblecker",children:(0,t.jsx)(n.code,{children:"Christoph Blecker"})})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1556",children:"#1556 - Fix: Hide dock icon on macOS if starting minimized"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/pwright",children:(0,t.jsx)(n.code,{children:"Paul Wright"})})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1604",children:"#1604 - Docs: correct syntax of kind doc"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/dgolovin",children:(0,t.jsx)(n.code,{children:"Denis Golovin"})})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1790",children:"#1790 - Feat: add EventEmitter class to extension API"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/cfergeau",children:(0,t.jsx)(n.code,{children:"Christophe Fergeau"})})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1642",children:'#1642 - Fix: Pod list "an pod" typing error'})]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,t.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.13.0",children:"here"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Get the latest release from the ",(0,t.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function m(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},75771:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/podman-desktop-release-0.13-a15251500e13ad05b8a7b404ab301f34.png"},66557:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/prune-image-96f9366ae264c822b47bfc350d987451.png"},9184:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/task-manager-2c9725a8db209c3607e83a24d9ea1582.png"}}]); \ No newline at end of file diff --git a/assets/js/006e489c.aa213bf5.js b/assets/js/006e489c.aa213bf5.js deleted file mode 100644 index da59ba83977..00000000000 --- a/assets/js/006e489c.aa213bf5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8145],{11956:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>r,toc:()=>h});var t=s(24246),o=s(71670),i=s(92975);const a={title:"Release Notes - Podman Desktop 0.13",description:"Podman Desktop 0.13 has been released!",slug:"podman-desktop-release-0.13",authors:["deboer"],tags:["podman-desktop","release","kubernetes","compose"],hide_table_of_contents:!1},l=void 0,r={permalink:"/blog/podman-desktop-release-0.13",source:"@site/blog/2023-03-29-release-0.13.md",title:"Release Notes - Podman Desktop 0.13",description:"Podman Desktop 0.13 has been released!",date:"2023-03-29T00:00:00.000Z",formattedDate:"March 29, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"compose",permalink:"/blog/tags/compose"}],readingTime:3.155,hasTruncateMarker:!0,authors:[{name:"Tim deBoer",title:"Architect",url:"https://github.com/deboer-tim",imageURL:"https://github.com/deboer-tim.png",key:"deboer"}],frontMatter:{title:"Release Notes - Podman Desktop 0.13",description:"Podman Desktop 0.13 has been released!",slug:"podman-desktop-release-0.13",authors:["deboer"],tags:["podman-desktop","release","kubernetes","compose"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 0.14",permalink:"/blog/podman-desktop-release-0.14"},nextItem:{title:"5 things to know about Podman Desktop for a Docker user",permalink:"/blog/5-things-to-know-for-a-docker-user"}},d={authorsImageUrls:[void 0]},h=[{value:"Release details",id:"release-details",level:2},{value:"Update to Podman v4.4.4",id:"update-to-podman-v444",level:3},{value:"Compose support",id:"compose-support",level:3},{value:"Extensions",id:"extensions",level:3},{value:"UI and UX improvements",id:"ui-and-ux-improvements",level:3},{value:"Welcome page #1726",id:"welcome-page-1726",level:4},{value:"New Task Manager #1724",id:"new-task-manager-1724",level:4},{value:"Updated Resources Settings #1582",id:"updated-resources-settings-1582",level:4},{value:"Update Alerts #1827",id:"update-alerts-1827",level:4},{value:"Prune buttons #1481, #1482, #1484",id:"prune-buttons-1481-1482-1484",level:4},{value:"Other notable enhancements",id:"other-notable-enhancements",level:2},{value:"Documentation",id:"documentation",level:2},{value:"Notable bug fixes",id:"notable-bug-fixes",level:2},{value:"Community thank you",id:"community-thank-you",level:2},{value:"Final notes",id:"final-notes",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components},{Icon:a}=n;return a||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Icon",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"This release note covers Podman Desktop 0.13 release changes."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Podman Version"}),": Podman 4.4.4 now included in Windows and Mac installers."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Compose"}),": Support for installing Docker Compose."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Extensions"}),": Improved extension support for Podman Desktop with additional capabilities."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"UX and UI Improvements"}),": Welcome page, task manager, resources, and update alerts."]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 0.13 is now available. ",(0,t.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Podman-desktop-0-13-hero",src:s(75771).Z+"",width:"1852",height:"1323"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"release-details",children:"Release details"}),"\n",(0,t.jsx)(n.h3,{id:"update-to-podman-v444",children:"Update to Podman v4.4.4"}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 0.13 embeds ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman/releases/tag/v4.4.4",children:"Podman 4.4.4"})," in\nWindows and macOS installers ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1456",children:"#1456"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"compose-support",children:"Compose support"}),"\n",(0,t.jsxs)(n.p,{children:["You can install Docker Compose from the Podman Desktop UI ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1578",children:"#1578"}),". This will allow you use Compose workflows using Podman."]}),"\n",(0,t.jsx)(n.h3,{id:"extensions",children:"Extensions"}),"\n",(0,t.jsx)(n.p,{children:"To make it easier to extend Podman Desktop we have:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Published the ",(0,t.jsx)(n.a,{href:"https://www.npmjs.com/package/@podman-desktop/api",children:"Podman Desktop Extension API"})," to npmjs ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1727",children:"#1727"})]}),"\n",(0,t.jsxs)(n.li,{children:["Documented ",(0,t.jsx)(n.a,{href:"https://podman-desktop.io/docs/extensions",children:"how to create, publish, and install your own extensions"})]}),"\n",(0,t.jsxs)(n.li,{children:["Expanded the API for ",(0,t.jsx)(n.code,{children:"QuickPickInput"})," ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1839",children:"#1839"})]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"ui-and-ux-improvements",children:"UI and UX improvements"}),"\n",(0,t.jsxs)(n.h4,{id:"welcome-page-1726",children:["Welcome page ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1726",children:"#1726"})]}),"\n",(0,t.jsx)(n.p,{children:"The first time every user starts Podman Desktop, they will see a welcome page:"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/225682776-e016ba31-5bb9-41d5-87ed-f93caeb3fb84.png",alt:"welcome-page"})}),"\n",(0,t.jsx)(n.p,{children:"Note that the Welcome page will only appear the first time you run Podman Desktop 0.13.0, and none of your settings or assets in Podman Desktop will be affected by it.\nOver time, this page will be expanded to help with initial setup and configuration."}),"\n",(0,t.jsxs)(n.h4,{id:"new-task-manager-1724",children:["New Task Manager ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1724",children:"#1724"})]}),"\n",(0,t.jsxs)(n.p,{children:["A new Task Manager has been added to the status bar to see the progress (or return to) long running tasks. To start with, building images ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1725",children:"#1725"})," and Podman machine ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1742",children:"#1742"})," are using the task manager."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"task-manager",src:s(9184).Z+"",width:"2082",height:"1198"})}),"\n",(0,t.jsxs)(n.h4,{id:"updated-resources-settings-1582",children:["Updated Resources Settings ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1582",children:"#1582"})]}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Resources"]})," page has been updated with a new design, making it easier to see and control your providers from a single place."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/221908815-595715fe-4c95-4087-89e0-45e5544ed5c9.gif",alt:"resources"})}),"\n",(0,t.jsx)(n.p,{children:"The other settings pages have been updated for consistency with this new design."}),"\n",(0,t.jsxs)(n.h4,{id:"update-alerts-1827",children:["Update Alerts ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1827",children:"#1827"})]}),"\n",(0,t.jsx)(n.p,{children:"A new alert button will appear in the status bar when future updates are available."}),"\n",(0,t.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/227596136-c6123d5c-d9ae-4fb3-a569-0cfaaeebf09c.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsxs)(n.h4,{id:"prune-buttons-1481-1482-1484",children:["Prune buttons ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1481",children:"#1481"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1482",children:"#1482"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1484",children:"#1484"})]}),"\n",(0,t.jsxs)(n.p,{children:["We've added buttons to prune unused volumes ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1481",children:"#1481"}),", images ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1482",children:"#1482"})," and pods ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1484",children:"#1484"}),"."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"prune-image",src:s(66557).Z+"",width:"2074",height:"570"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other notable enhancements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Kubernetes pods are now shown in the Pods view ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1312",children:"#1312"})]}),"\n",(0,t.jsxs)(n.li,{children:["Easy button to fix Docker compatibility mode on macOS ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1697",children:"#1697"})]}),"\n",(0,t.jsxs)(n.li,{children:["Display extension icons ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1058",children:"#1058"})]}),"\n",(0,t.jsxs)(n.li,{children:["API to cancel long running tasks ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1777",children:"#1777"})]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,t.jsx)(n.p,{children:"The documentation has new content:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://podman-desktop.io/docs/extensions",children:"How to create, publish, and install your own Podman Desktop extensions"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://podman-desktop.io/docs/compose/podman-compose",children:"Using Compose"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://podman-desktop.io/docs/kind",children:"Restarting Kind"})}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable bug fixes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Periodically check and refresh Podman connection on Windows and Mac ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1662",children:"#1662"})]}),"\n",(0,t.jsxs)(n.li,{children:["Fix inconsistent Log view behaviour ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1710",children:"#1710"})]}),"\n",(0,t.jsxs)(n.li,{children:["Don't create route for regular Kubernetes clusters ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1707",children:"#1707"})]}),"\n",(0,t.jsxs)(n.li,{children:["Fix copy button on empty screen ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1804",children:"#1804"})]}),"\n",(0,t.jsxs)(n.li,{children:["Register extension tray items correctly ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1778",children:"#1778"})," and handle updates ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1800",children:"#1800"})]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"community-thank-you",children:"Community thank you"}),"\n",(0,t.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop 0.13 even better:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/Tony-Sol",children:(0,t.jsx)(n.code,{children:"Tony Soloveyv"})})," in ",(0,t.jsxs)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1605",children:["#1605 - Fix directories inconsistency in ",(0,t.jsx)(n.code,{children:"~/.local/share/"})]})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/RobotSail",children:(0,t.jsx)(n.code,{children:"Oleg"})})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1567",children:"#1567 - Check for Flatpak when calling command from exec"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/cblecker",children:(0,t.jsx)(n.code,{children:"Christoph Blecker"})})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1556",children:"#1556 - Fix: Hide dock icon on macOS if starting minimized"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/pwright",children:(0,t.jsx)(n.code,{children:"Paul Wright"})})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1604",children:"#1604 - Docs: correct syntax of kind doc"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/dgolovin",children:(0,t.jsx)(n.code,{children:"Denis Golovin"})})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1790",children:"#1790 - Feat: add EventEmitter class to extension API"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/cfergeau",children:(0,t.jsx)(n.code,{children:"Christophe Fergeau"})})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1642",children:'#1642 - Fix: Pod list "an pod" typing error'})]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,t.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.13.0",children:"here"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Get the latest release from the ",(0,t.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function p(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},75771:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/podman-desktop-release-0.13-a15251500e13ad05b8a7b404ab301f34.png"},66557:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/prune-image-96f9366ae264c822b47bfc350d987451.png"},9184:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/task-manager-2c9725a8db209c3607e83a24d9ea1582.png"}}]); \ No newline at end of file diff --git a/assets/js/021eaa84.0ad319ce.js b/assets/js/021eaa84.0ad319ce.js new file mode 100644 index 00000000000..b5ab7c72472 --- /dev/null +++ b/assets/js/021eaa84.0ad319ce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7875],{61708:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>l,default:()=>m,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var t=s(24246),i=s(71670),o=s(92975),a=s.n(o);const r={title:"Release Notes - Podman Desktop 1.5",description:"Podman Desktop 1.5 has been released!",slug:"podman-desktop-release-1.5",authors:"duffy",tags:["podman-desktop","release","kubernetes","openshift","onboarding","compose","extensions","settings"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.5/onboarding-selkies.png"},l=void 0,d={permalink:"/blog/podman-desktop-release-1.5",source:"@site/blog/2023-11-03-release-1.5.md",title:"Release Notes - Podman Desktop 1.5",description:"Podman Desktop 1.5 has been released!",date:"2023-11-03T00:00:00.000Z",formattedDate:"November 3, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"},{label:"onboarding",permalink:"/blog/tags/onboarding"},{label:"compose",permalink:"/blog/tags/compose"},{label:"extensions",permalink:"/blog/tags/extensions"},{label:"settings",permalink:"/blog/tags/settings"}],readingTime:8.14,hasTruncateMarker:!1,authors:[{name:"M\xe1ir\xedn Duffy",title:"User Experience Designer",url:"https://github.com/mairin",imageURL:"https://github.com/mairin.png",key:"duffy"}],frontMatter:{title:"Release Notes - Podman Desktop 1.5",description:"Podman Desktop 1.5 has been released!",slug:"podman-desktop-release-1.5",authors:"duffy",tags:["podman-desktop","release","kubernetes","openshift","onboarding","compose","extensions","settings"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.5/onboarding-selkies.png"},unlisted:!1,prevItem:{title:"Share your local podman images with the Kubernetes cluster",permalink:"/blog/sharing-podman-images-with-kubernetes-cluster"},nextItem:{title:"Release Notes - Podman Desktop 1.4",permalink:"/blog/podman-desktop-release-1.4"}},h={authorsImageUrls:[void 0]},c=[{value:"Release Details",id:"release-details",level:2},{value:"Onboarding",id:"onboarding",level:3},{value:"Command Palette",id:"command-palette",level:3},{value:"Expanded "Summary" tab for Kubernetes pods",id:"expanded-summary-tab-for-kubernetes-pods",level:3},{value:"Environment file support",id:"environment-file-support",level:3},{value:"Enhancements to the Settings area",id:"enhancements-to-the-settings-area",level:3},{value:"Improved user experience for state changes",id:"improved-user-experience-for-state-changes",level:3},{value:"Extension API improvements",id:"extension-api-improvements",level:3},{value:"Other Notable Enhancements",id:"other-notable-enhancements",level:2},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:2},{value:"Community Thank You",id:"community-thank-you",level:2},{value:"Final notes",id:"final-notes",level:2},{value:"Known Issues",id:"known-issues",level:3},{value:"Known Issues: Podman Desktop 1.5.2",id:"known-issues-podman-desktop-152",level:4},{value:"Fixed Issues",id:"fixed-issues",level:3},{value:"Where to Download",id:"where-to-download",level:3}];function p(e){const n={a:"a",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components},{Icon:o}=n;return o||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Icon",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Podman Desktop 1.5 Release! \ud83c\udf89"}),"\n",(0,t.jsxs)(n.p,{children:["With this release of Podman Desktop, we're introducing ",(0,t.jsx)(n.strong,{children:"a new onboarding feature"})," that we hope will earn your \ud83e\uddad seal of approval! But wait... there's so much more!"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Onboarding"}),": Guided setup and configuration of ",(0,t.jsx)(n.strong,{children:"Podman"})," and ",(0,t.jsx)(n.strong,{children:"Compose"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Podman 4.7.2"}),": ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman/releases",children:"Podman 4.7.2"})," is now included in Windows and Mac installers"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Command Palette"}),": Gain easy access to various commands via a new keyboard-driven command palette"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:'Expanded "Summary" tab for Kubernetes pods'}),': Go deep with extended details on Kubernetes pods in the pod "Summary" tab']}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Environment file support"}),": Chart out environment variables for new containers to access on creation"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Enhancements to the Settings area"}),": Get your bearings with improved Docker compatibility mode controls"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Improved user experience for state changes"}),": No more dead reckoning on container state with improved visual indication of status"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Extension API improvements"}),": A boatload of improvements to the extension API enabling more goodness from \ud83e\uddad Podman Desktop's extensions"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 1.5 is now available. ",(0,t.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Podman-desktop-1-5-hero",src:s(90973).Z+"",width:"1920",height:"1080"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,t.jsx)(n.h3,{id:"onboarding",children:"Onboarding"}),"\n",(0,t.jsx)(n.p,{children:"We are introducing a new feature providing guided flows for the initial setup of specific \ud83e\uddad Podman Desktop extensions. Release 1.5 features two new onboarding flows: Podman and Compose."}),"\n",(0,t.jsxs)(n.p,{children:['To start the Podman onboarding flow, you can start from the dashboard notification by clicking the "Set up" button:\n',(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280362279-598cc052-5ea4-4c31-849c-da9bbbcc3e42.png",alt:"podman-onboarding-start"}),"\n",(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280363859-f35b85f8-1dd4-4b7f-a995-25fe5d1ccced.png",alt:"podman-onboarding"})]}),"\n",(0,t.jsxs)(n.p,{children:["Visit ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(o,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Resources"]}),' screen and click the Compose "Setup ..." button in order to start Compose onboarding:\n',(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280276847-ca0558ab-70ad-48cc-8dd5-67e3eb465a62.png",alt:"compose-onboarding-start"}),"\n",(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280277936-77ba0fb2-5cb0-41de-a7cf-1a3d6400fd89.png",alt:"compose-onboarding"})]}),"\n",(0,t.jsx)(n.h3,{id:"command-palette",children:"Command Palette"}),"\n",(0,t.jsxs)(n.p,{children:["A new, search-driven command palette is now available to enable quick access to various commands available across \ud83e\uddad Podman Desktop. You can try this new tool out by hitting the F1 key. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4081",children:"#4081"})," && ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3979",children:"#3979"})]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/270362431-5aaa6a1b-6df5-4b66-a811-cdd148d02ad6.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"expanded-summary-tab-for-kubernetes-pods",children:'Expanded "Summary" tab for Kubernetes pods'}),"\n",(0,t.jsx)(n.p,{children:'Kubernetes pods now offer a more comprehensive set of information under the "Summary" tab, including networking, volumes, environment variables, and other key metadata.'}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/272972815-bed96f3a-6b13-45d3-a13b-74eacb27a4cd.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"environment-file-support",children:"Environment file support"}),"\n",(0,t.jsxs)(n.p,{children:["When creating a container from the Images list, there's now an option to provide an environment file to set env variables for the new container. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4026",children:"#4026"})," && ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4025",children:"#4025"})]}),"\n",(0,t.jsx)(n.h3,{id:"enhancements-to-the-settings-area",children:"Enhancements to the Settings area"}),"\n",(0,t.jsxs)(n.p,{children:["The user experience for enabling or disabling Docker compatibility is improved, with a new entry in the ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(o,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Preferences"]})," screen that includes contextual guidance. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4093",children:"#4093"})]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/270497318-902b2566-62ad-4ee6-87af-6a9a2705de99.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"improved-user-experience-for-state-changes",children:"Improved user experience for state changes"}),"\n",(0,t.jsxs)(n.p,{children:["The user experience around state changes for containers, pods, and other objects in the UI is improved, with clear status messages and improved animated visual indicator of state changes. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4056",children:"#4056"})]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/270027524-f5176cf9-462f-4024-920a-b4a906c7d30d.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/270027533-70e152ec-5bbf-45ad-9f1d-563752464655.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"extension-api-improvements",children:"Extension API improvements"}),"\n",(0,t.jsx)(n.p,{children:"The \ud83e\uddad Podman Desktop extension API received many improvements, including:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["In addition to pushing and listing image from an extension, it's now possible to pull images from a \ud83e\uddad Podman Desktop extension ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4155",children:"#4155"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The \ud83e\uddad Podman Desktop extension API has been enhanced with both the ability to list images & networks and the ability to create containers & networks. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4172",children:"#4172"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["\ud83e\uddad Podman Desktop extensions now have a consistent way to run administrative tasks. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4049",children:"#4049"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Extensions now have the ability to register a custom Kubernetes config generator. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3970",children:"#3970"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The ability of extensions to add commands to UI menus has been extended; previously for action menus it was only available in the Image list screen. It is now possible for extensions to add commands to the action menus of items listed on the Containers list screen as well. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3947",children:"#3947"})," & ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3963",children:"#3963"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Extensions have gained the ability to contribute menu items in the UI based on specific conditions. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3959",children:"#3959"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Enhanced logic for displaying or hiding properties listed under the ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(o,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Preferences"]})," screens is now available. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4159",children:"#4159"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/271650937-3991565c-12a4-4e6c-a315-9343bfa25f65.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other Notable Enhancements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The progress of loading an image into Kind is now visible as a task in the task manager. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4061",children:"#4061"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/42176370/270154775-eb7007b4-fd0e-4287-be9e-40ffc412de35.png",alt:"kind-progress-task"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["It's now possible to start a new Podman machine right after creation, or you can create it and wait to start it later. It's up to you! ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4046",children:"#4046"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/269941187-f4768833-ecfc-4d0b-8acf-d4afedb428d9.png",alt:"podman-start-now-or-later"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The Podman machine and Kubernetes provider creation forms have an updated look & feel consisted with other forms in the user interface, along with minor bug fixes. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4317",children:"#4317"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/274694157-fe89f3bc-e5b8-4735-96e9-669fe52c7a41.png",alt:"Updated provider creation forms"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The empty screen message shown when a search filter results in no matches now provides a message specific to filter matching, including the specific filter terms and an explicit button for clearing the filter. Previously, the screen displayed a generic message about how to create new objects of the type displayed on the screen, which led to some confusion about the status of the system. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3988",children:"#3988"})]}),"\n"]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/269291090-13e724f7-252f-4915-bb04-00665001d21d.mov",width:"100%",height:"100%"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["New support for adding spin animations to icons is now available. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4188",children:"#4188"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["There is a new indeterminate progress bar type available for the task manager; this is meant for providing limited status for actions whose APIs do not provide detailed status information. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4016",children:"#4016"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["For authenticating as admin to perform administrative tasks, \ud83e\uddad Podman Desktop now provides touchID support for macOS. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4050",children:"#4050"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/436777/248588015-f08115bd-d211-43ad-bddd-286d7b3a7056.png",alt:"touchID-support"})}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/269859758-47581e2b-8469-4e9c-822c-f4fddf46684d.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Support for connecting to interactive terminals for containers via tty was added. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3900",children:"#3900"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["It's now more clear which container/pod providers will autostart when \ud83e\uddad Podman Desktop starts. Previously autostart had both a global and a per-provider setting. It has been simplified by removing the global setting. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3840",children:"#3840"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The "Working with containers" section of the documentation has been reworked and improved. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3951",children:"#3951"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The disable registry command was not blocking subsequent pulls from disabled registries. This has been corrected. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4183",children:"#4183"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Some users behind network proxies were unable to complete workflow involving the download of online resources. The mechanism for fetching these resources has been fixed to be proxy compatible to address this issue. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3994",children:"#3994"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The status of pods running in Kubernetes that are undergoing the deletion process is now accurately reflected in the \ud83e\uddad Podman Desktop UI. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3877",children:"#3877"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The image details page always listed the image as being "not used" even when it was. This has been corrected. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3985",children:"#3985"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Previously, deleting a specific image tag would cause all tags with the same Image ID to be deleted. This has been fixed so only the selected image tag will be deleted. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3837",children:"#3837"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Could not view the pod details for some remote Kubernetes cluster pods due to an encoding error. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4371",children:"#4371"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Error logs were being tracked separately from the actions they applied to. This has been addressed for kind cluster creation failure ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4427",children:"#4427"})," and Compose installation failure ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4407",children:"#4407"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['For Linux users, \ud83e\uddad Podman Desktop previously did not appear under the "Development" menu when installed via Flatpak; it appeared under "Utilities." \ud83e\uddad Podman Desktop now appears under the "Development" menu. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3911",children:"#3911"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['Podman Machine names are no longer prefixed with the "Podman Machine" string. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3878",children:"#3878"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/267378447-aafdfbd7-f005-4b94-8626-9e11eec61b95.png",alt:"touchID-support"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The initial action state of pods and containers was being displayed as "STARTING" regardless of actual state; this has been corrected. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3889",children:"#3889"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Resizing the application window no longer makes the last lines of a container's terminal invisible. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3993",children:"#3993"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["An issue with incorrect terminal behavior in response to long lines in the terminal attached to a container has been resolved. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3955",children:"#3955"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["A spacing issue on the run image form has been corrected. [#4089]",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4089",children:"https://github.com/containers/podman-desktop/pull/4089"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The "podify" icon & button on the Containers list was unusually large in release 1.4. That regression has been corrected in this release. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4122",children:"#4122"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["An error in the instructions for Windows users on migrating from Docker has been corrected. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4157",children:"#4157"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,t.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make \ud83e\uddad Podman Desktop even better. In this\nrelease we received pull requests from the following people:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/afbjorklund",children:"afbjorklund"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4373",children:"#4373 - docs: fix broken links and add lima onboarding"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4372",children:"#4372 - docs: clear up lima column on containers page"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4091",children:"#4091 - fix: avoid errors with unexpected JSON input"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4098",children:"#4098 - docs: Lima onboarding details"}),", and ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3854",children:"#3854 - fix: check if machine init rootful flag supported"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/axel7083",children:"axel7083"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4061",children:"#4061 - feat: adding task progress for kind"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3970",children:"#3970 - feat: extension can register custom kube generator"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3959",children:"#3959 - feat: add when property to extensions menus"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4016",children:"#4016 - feat: indeterminate progress bar"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3963",children:"#3963 - fix: ContainerList propagating containers in ComposeActions and PodActions"}),", and ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3947",children:"#3947 - feat: extend menus capabilities"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/ayushrakesh",children:"ayushrakesh"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4415#",children:"#4415 - Update README.md"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/eltociear",children:"eltociear"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4194",children:"#4194 - Update README.md"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/foxydevloper",children:"foxydeveloper"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4157",children:"#4157 - docs: Correct windows instructions for migrating from docker"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/harsh-solanki21",children:"harsh-solanki21"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4162",children:"#4162 - fix: Removed fullstop from summary"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/rahul0x00",children:"rahul0x00"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4240",children:"#4240 - fix typos in README.md"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/shelar1423",children:"shelar1423"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4221",children:"#4221 - chore: document property setting in EXTENSIONS.md"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,t.jsx)(n.h3,{id:"known-issues",children:"Known Issues"}),"\n",(0,t.jsx)(n.p,{children:"We have a discussion board topic where we have posted known issues with this release. If you run into problems, please check this list before filing a bug - if we already have an issue open for it, it saves you the time and trouble of filing, and there may be a workaround posted in the issue."}),"\n",(0,t.jsx)(n.h4,{id:"known-issues-podman-desktop-152",children:(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/discussions/4635",children:"Known Issues: Podman Desktop 1.5.2"})}),"\n",(0,t.jsx)(n.h3,{id:"fixed-issues",children:"Fixed Issues"}),"\n",(0,t.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.5.0",children:"here"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"where-to-download",children:"Where to Download"}),"\n",(0,t.jsxs)(n.p,{children:["Get the latest release from the ",(0,t.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function m(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},90973:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/onboarding-selkies-3ddb7cb6ee2cf9abed002b01f63b1822.png"}}]); \ No newline at end of file diff --git a/assets/js/021eaa84.eeb10f58.js b/assets/js/021eaa84.eeb10f58.js deleted file mode 100644 index 91b355e66f1..00000000000 --- a/assets/js/021eaa84.eeb10f58.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7875],{61708:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>h});var t=s(24246),i=s(71670),o=s(92975);const a={title:"Release Notes - Podman Desktop 1.5",description:"Podman Desktop 1.5 has been released!",slug:"podman-desktop-release-1.5",authors:"duffy",tags:["podman-desktop","release","kubernetes","openshift","onboarding","compose","extensions","settings"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.5/onboarding-selkies.png"},r=void 0,l={permalink:"/blog/podman-desktop-release-1.5",source:"@site/blog/2023-11-03-release-1.5.md",title:"Release Notes - Podman Desktop 1.5",description:"Podman Desktop 1.5 has been released!",date:"2023-11-03T00:00:00.000Z",formattedDate:"November 3, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"},{label:"onboarding",permalink:"/blog/tags/onboarding"},{label:"compose",permalink:"/blog/tags/compose"},{label:"extensions",permalink:"/blog/tags/extensions"},{label:"settings",permalink:"/blog/tags/settings"}],readingTime:8.14,hasTruncateMarker:!1,authors:[{name:"M\xe1ir\xedn Duffy",title:"User Experience Designer",url:"https://github.com/mairin",imageURL:"https://github.com/mairin.png",key:"duffy"}],frontMatter:{title:"Release Notes - Podman Desktop 1.5",description:"Podman Desktop 1.5 has been released!",slug:"podman-desktop-release-1.5",authors:"duffy",tags:["podman-desktop","release","kubernetes","openshift","onboarding","compose","extensions","settings"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.5/onboarding-selkies.png"},unlisted:!1,prevItem:{title:"Share your local podman images with the Kubernetes cluster",permalink:"/blog/sharing-podman-images-with-kubernetes-cluster"},nextItem:{title:"Release Notes - Podman Desktop 1.4",permalink:"/blog/podman-desktop-release-1.4"}},d={authorsImageUrls:[void 0]},h=[{value:"Release Details",id:"release-details",level:2},{value:"Onboarding",id:"onboarding",level:3},{value:"Command Palette",id:"command-palette",level:3},{value:"Expanded "Summary" tab for Kubernetes pods",id:"expanded-summary-tab-for-kubernetes-pods",level:3},{value:"Environment file support",id:"environment-file-support",level:3},{value:"Enhancements to the Settings area",id:"enhancements-to-the-settings-area",level:3},{value:"Improved user experience for state changes",id:"improved-user-experience-for-state-changes",level:3},{value:"Extension API improvements",id:"extension-api-improvements",level:3},{value:"Other Notable Enhancements",id:"other-notable-enhancements",level:2},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:2},{value:"Community Thank You",id:"community-thank-you",level:2},{value:"Final notes",id:"final-notes",level:2},{value:"Known Issues",id:"known-issues",level:3},{value:"Known Issues: Podman Desktop 1.5.2",id:"known-issues-podman-desktop-152",level:4},{value:"Fixed Issues",id:"fixed-issues",level:3},{value:"Where to Download",id:"where-to-download",level:3}];function c(e){const n={a:"a",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components},{Icon:a}=n;return a||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Icon",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Podman Desktop 1.5 Release! \ud83c\udf89"}),"\n",(0,t.jsxs)(n.p,{children:["With this release of Podman Desktop, we're introducing ",(0,t.jsx)(n.strong,{children:"a new onboarding feature"})," that we hope will earn your \ud83e\uddad seal of approval! But wait... there's so much more!"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Onboarding"}),": Guided setup and configuration of ",(0,t.jsx)(n.strong,{children:"Podman"})," and ",(0,t.jsx)(n.strong,{children:"Compose"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Podman 4.7.2"}),": ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman/releases",children:"Podman 4.7.2"})," is now included in Windows and Mac installers"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Command Palette"}),": Gain easy access to various commands via a new keyboard-driven command palette"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:'Expanded "Summary" tab for Kubernetes pods'}),': Go deep with extended details on Kubernetes pods in the pod "Summary" tab']}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Environment file support"}),": Chart out environment variables for new containers to access on creation"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Enhancements to the Settings area"}),": Get your bearings with improved Docker compatibility mode controls"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Improved user experience for state changes"}),": No more dead reckoning on container state with improved visual indication of status"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Extension API improvements"}),": A boatload of improvements to the extension API enabling more goodness from \ud83e\uddad Podman Desktop's extensions"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 1.5 is now available. ",(0,t.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Podman-desktop-1-5-hero",src:s(90973).Z+"",width:"1920",height:"1080"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,t.jsx)(n.h3,{id:"onboarding",children:"Onboarding"}),"\n",(0,t.jsx)(n.p,{children:"We are introducing a new feature providing guided flows for the initial setup of specific \ud83e\uddad Podman Desktop extensions. Release 1.5 features two new onboarding flows: Podman and Compose."}),"\n",(0,t.jsxs)(n.p,{children:['To start the Podman onboarding flow, you can start from the dashboard notification by clicking the "Set up" button:\n',(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280362279-598cc052-5ea4-4c31-849c-da9bbbcc3e42.png",alt:"podman-onboarding-start"}),"\n",(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280363859-f35b85f8-1dd4-4b7f-a995-25fe5d1ccced.png",alt:"podman-onboarding"})]}),"\n",(0,t.jsxs)(n.p,{children:["Visit ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Resources"]}),' screen and click the Compose "Setup ..." button in order to start Compose onboarding:\n',(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280276847-ca0558ab-70ad-48cc-8dd5-67e3eb465a62.png",alt:"compose-onboarding-start"}),"\n",(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280277936-77ba0fb2-5cb0-41de-a7cf-1a3d6400fd89.png",alt:"compose-onboarding"})]}),"\n",(0,t.jsx)(n.h3,{id:"command-palette",children:"Command Palette"}),"\n",(0,t.jsxs)(n.p,{children:["A new, search-driven command palette is now available to enable quick access to various commands available across \ud83e\uddad Podman Desktop. You can try this new tool out by hitting the F1 key. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4081",children:"#4081"})," && ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3979",children:"#3979"})]}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/270362431-5aaa6a1b-6df5-4b66-a811-cdd148d02ad6.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"expanded-summary-tab-for-kubernetes-pods",children:'Expanded "Summary" tab for Kubernetes pods'}),"\n",(0,t.jsx)(n.p,{children:'Kubernetes pods now offer a more comprehensive set of information under the "Summary" tab, including networking, volumes, environment variables, and other key metadata.'}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/272972815-bed96f3a-6b13-45d3-a13b-74eacb27a4cd.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"environment-file-support",children:"Environment file support"}),"\n",(0,t.jsxs)(n.p,{children:["When creating a container from the Images list, there's now an option to provide an environment file to set env variables for the new container. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4026",children:"#4026"})," && ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4025",children:"#4025"})]}),"\n",(0,t.jsx)(n.h3,{id:"enhancements-to-the-settings-area",children:"Enhancements to the Settings area"}),"\n",(0,t.jsxs)(n.p,{children:["The user experience for enabling or disabling Docker compatibility is improved, with a new entry in the ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Preferences"]})," screen that includes contextual guidance. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4093",children:"#4093"})]}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/270497318-902b2566-62ad-4ee6-87af-6a9a2705de99.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"improved-user-experience-for-state-changes",children:"Improved user experience for state changes"}),"\n",(0,t.jsxs)(n.p,{children:["The user experience around state changes for containers, pods, and other objects in the UI is improved, with clear status messages and improved animated visual indicator of state changes. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4056",children:"#4056"})]}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/270027524-f5176cf9-462f-4024-920a-b4a906c7d30d.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/270027533-70e152ec-5bbf-45ad-9f1d-563752464655.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"extension-api-improvements",children:"Extension API improvements"}),"\n",(0,t.jsx)(n.p,{children:"The \ud83e\uddad Podman Desktop extension API received many improvements, including:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["In addition to pushing and listing image from an extension, it's now possible to pull images from a \ud83e\uddad Podman Desktop extension ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4155",children:"#4155"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The \ud83e\uddad Podman Desktop extension API has been enhanced with both the ability to list images & networks and the ability to create containers & networks. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4172",children:"#4172"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["\ud83e\uddad Podman Desktop extensions now have a consistent way to run administrative tasks. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4049",children:"#4049"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Extensions now have the ability to register a custom Kubernetes config generator. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3970",children:"#3970"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The ability of extensions to add commands to UI menus has been extended; previously for action menus it was only available in the Image list screen. It is now possible for extensions to add commands to the action menus of items listed on the Containers list screen as well. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3947",children:"#3947"})," & ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3963",children:"#3963"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Extensions have gained the ability to contribute menu items in the UI based on specific conditions. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3959",children:"#3959"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Enhanced logic for displaying or hiding properties listed under the ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Preferences"]})," screens is now available. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4159",children:"#4159"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/271650937-3991565c-12a4-4e6c-a315-9343bfa25f65.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other Notable Enhancements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The progress of loading an image into Kind is now visible as a task in the task manager. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4061",children:"#4061"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/42176370/270154775-eb7007b4-fd0e-4287-be9e-40ffc412de35.png",alt:"kind-progress-task"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["It's now possible to start a new Podman machine right after creation, or you can create it and wait to start it later. It's up to you! ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4046",children:"#4046"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/269941187-f4768833-ecfc-4d0b-8acf-d4afedb428d9.png",alt:"podman-start-now-or-later"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The Podman machine and Kubernetes provider creation forms have an updated look & feel consisted with other forms in the user interface, along with minor bug fixes. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4317",children:"#4317"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/274694157-fe89f3bc-e5b8-4735-96e9-669fe52c7a41.png",alt:"Updated provider creation forms"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The empty screen message shown when a search filter results in no matches now provides a message specific to filter matching, including the specific filter terms and an explicit button for clearing the filter. Previously, the screen displayed a generic message about how to create new objects of the type displayed on the screen, which led to some confusion about the status of the system. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3988",children:"#3988"})]}),"\n"]}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/269291090-13e724f7-252f-4915-bb04-00665001d21d.mov",width:"100%",height:"100%"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["New support for adding spin animations to icons is now available. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4188",children:"#4188"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["There is a new indeterminate progress bar type available for the task manager; this is meant for providing limited status for actions whose APIs do not provide detailed status information. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4016",children:"#4016"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["For authenticating as admin to perform administrative tasks, \ud83e\uddad Podman Desktop now provides touchID support for macOS. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4050",children:"#4050"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/436777/248588015-f08115bd-d211-43ad-bddd-286d7b3a7056.png",alt:"touchID-support"})}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/269859758-47581e2b-8469-4e9c-822c-f4fddf46684d.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Support for connecting to interactive terminals for containers via tty was added. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3900",children:"#3900"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["It's now more clear which container/pod providers will autostart when \ud83e\uddad Podman Desktop starts. Previously autostart had both a global and a per-provider setting. It has been simplified by removing the global setting. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3840",children:"#3840"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The "Working with containers" section of the documentation has been reworked and improved. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3951",children:"#3951"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The disable registry command was not blocking subsequent pulls from disabled registries. This has been corrected. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4183",children:"#4183"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Some users behind network proxies were unable to complete workflow involving the download of online resources. The mechanism for fetching these resources has been fixed to be proxy compatible to address this issue. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3994",children:"#3994"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The status of pods running in Kubernetes that are undergoing the deletion process is now accurately reflected in the \ud83e\uddad Podman Desktop UI. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3877",children:"#3877"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The image details page always listed the image as being "not used" even when it was. This has been corrected. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3985",children:"#3985"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Previously, deleting a specific image tag would cause all tags with the same Image ID to be deleted. This has been fixed so only the selected image tag will be deleted. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3837",children:"#3837"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Could not view the pod details for some remote Kubernetes cluster pods due to an encoding error. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4371",children:"#4371"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Error logs were being tracked separately from the actions they applied to. This has been addressed for kind cluster creation failure ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4427",children:"#4427"})," and Compose installation failure ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4407",children:"#4407"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['For Linux users, \ud83e\uddad Podman Desktop previously did not appear under the "Development" menu when installed via Flatpak; it appeared under "Utilities." \ud83e\uddad Podman Desktop now appears under the "Development" menu. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3911",children:"#3911"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['Podman Machine names are no longer prefixed with the "Podman Machine" string. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3878",children:"#3878"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/267378447-aafdfbd7-f005-4b94-8626-9e11eec61b95.png",alt:"touchID-support"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The initial action state of pods and containers was being displayed as "STARTING" regardless of actual state; this has been corrected. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3889",children:"#3889"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Resizing the application window no longer makes the last lines of a container's terminal invisible. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3993",children:"#3993"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["An issue with incorrect terminal behavior in response to long lines in the terminal attached to a container has been resolved. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3955",children:"#3955"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["A spacing issue on the run image form has been corrected. [#4089]",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4089",children:"https://github.com/containers/podman-desktop/pull/4089"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The "podify" icon & button on the Containers list was unusually large in release 1.4. That regression has been corrected in this release. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4122",children:"#4122"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["An error in the instructions for Windows users on migrating from Docker has been corrected. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4157",children:"#4157"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,t.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make \ud83e\uddad Podman Desktop even better. In this\nrelease we received pull requests from the following people:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/afbjorklund",children:"afbjorklund"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4373",children:"#4373 - docs: fix broken links and add lima onboarding"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4372",children:"#4372 - docs: clear up lima column on containers page"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4091",children:"#4091 - fix: avoid errors with unexpected JSON input"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4098",children:"#4098 - docs: Lima onboarding details"}),", and ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3854",children:"#3854 - fix: check if machine init rootful flag supported"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/axel7083",children:"axel7083"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4061",children:"#4061 - feat: adding task progress for kind"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3970",children:"#3970 - feat: extension can register custom kube generator"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3959",children:"#3959 - feat: add when property to extensions menus"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4016",children:"#4016 - feat: indeterminate progress bar"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3963",children:"#3963 - fix: ContainerList propagating containers in ComposeActions and PodActions"}),", and ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3947",children:"#3947 - feat: extend menus capabilities"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/ayushrakesh",children:"ayushrakesh"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4415#",children:"#4415 - Update README.md"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/eltociear",children:"eltociear"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4194",children:"#4194 - Update README.md"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/foxydevloper",children:"foxydeveloper"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4157",children:"#4157 - docs: Correct windows instructions for migrating from docker"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/harsh-solanki21",children:"harsh-solanki21"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4162",children:"#4162 - fix: Removed fullstop from summary"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/rahul0x00",children:"rahul0x00"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4240",children:"#4240 - fix typos in README.md"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/shelar1423",children:"shelar1423"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4221",children:"#4221 - chore: document property setting in EXTENSIONS.md"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,t.jsx)(n.h3,{id:"known-issues",children:"Known Issues"}),"\n",(0,t.jsx)(n.p,{children:"We have a discussion board topic where we have posted known issues with this release. If you run into problems, please check this list before filing a bug - if we already have an issue open for it, it saves you the time and trouble of filing, and there may be a workaround posted in the issue."}),"\n",(0,t.jsx)(n.h4,{id:"known-issues-podman-desktop-152",children:(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/discussions/4635",children:"Known Issues: Podman Desktop 1.5.2"})}),"\n",(0,t.jsx)(n.h3,{id:"fixed-issues",children:"Fixed Issues"}),"\n",(0,t.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.5.0",children:"here"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"where-to-download",children:"Where to Download"}),"\n",(0,t.jsxs)(n.p,{children:["Get the latest release from the ",(0,t.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function p(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},90973:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/onboarding-selkies-3ddb7cb6ee2cf9abed002b01f63b1822.png"}}]); \ No newline at end of file diff --git a/assets/js/1a16e8bf.87efea1b.js b/assets/js/1a16e8bf.87efea1b.js deleted file mode 100644 index e12ca3222c0..00000000000 --- a/assets/js/1a16e8bf.87efea1b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2079],{7792:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>c,frontMatter:()=>a,metadata:()=>r,toc:()=>h});var t=s(24246),o=s(71670),i=s(92975);const a={title:"Release Notes - Podman Desktop 1.1",description:"Podman Desktop 1.1 has been released!",slug:"podman-desktop-release-1.1",authors:["deboer"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.1.webp"},l=void 0,r={permalink:"/blog/podman-desktop-release-1.1",source:"@site/blog/2023-06-08-release-1.1.md",title:"Release Notes - Podman Desktop 1.1",description:"Podman Desktop 1.1 has been released!",date:"2023-06-08T00:00:00.000Z",formattedDate:"June 8, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:2.465,hasTruncateMarker:!0,authors:[{name:"Tim deBoer",title:"Architect",url:"https://github.com/deboer-tim",imageURL:"https://github.com/deboer-tim.png",key:"deboer"}],frontMatter:{title:"Release Notes - Podman Desktop 1.1",description:"Podman Desktop 1.1 has been released!",slug:"podman-desktop-release-1.1",authors:["deboer"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.1.webp"},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 1.2",permalink:"/blog/podman-desktop-release-1.2"},nextItem:{title:"Release Notes - Podman Desktop 1.0",permalink:"/blog/podman-desktop-release-1.0"}},d={authorsImageUrls:[void 0]},h=[{value:"Release Details",id:"release-details",level:2},{value:"Podman v4.5.1",id:"podman-v451",level:3},{value:"Extensions",id:"extensions",level:3},{value:"Lima Support",id:"lima-support",level:3},{value:"Other UI and UX Improvements",id:"other-ui-and-ux-improvements",level:3},{value:"New Loading Screen",id:"new-loading-screen",level:4},{value:"Other Notable Enhancements",id:"other-notable-enhancements",level:2},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:2},{value:"Community Thank You",id:"community-thank-you",level:2},{value:"Final notes",id:"final-notes",level:2}];function p(e){const n={a:"a",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components},{Icon:a}=n;return a||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Icon",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Podman Desktop 1.1 Release! \ud83c\udf89"}),"\n",(0,t.jsx)(n.p,{children:"This is primarily a bug-fix release to fix a few important issues, but we've managed to squeeze in a few enhancements\nalong the way."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Podman 4.5.1"}),": Podman 4.5.1 now included in Windows and Mac installers."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Extensions"}),": Update extensions from within Podman Desktop."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Lima Support"}),": Choose engine type and override its name from the settings."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"UX and UI Improvements"}),": New loading screen."]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 1.1 is now available. ",(0,t.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Podman-desktop-1-1-hero",src:s(24825).Z+"",width:"3958",height:"2308"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,t.jsx)(n.h3,{id:"podman-v451",children:"Podman v4.5.1"}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 1.1 moves up to ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman/releases/tag/v4.5.1",children:"Podman 4.5.1"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"extensions",children:"Extensions"}),"\n",(0,t.jsxs)(n.p,{children:["Optional extensions will follow their own lifecycle and update independently from Podman Desktop. As of\nthis release you'll be able to see when there is an update available and install from within\nPodman Desktop ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2655",children:"#2655"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["We've also added options in ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Preferences"]})," to\nautomatically check for and install extension updates."]}),"\n",(0,t.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/241246481-305d215f-2a5c-46e8-9cc3-ecd90a6bd2bc.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Update extensions",src:s(78687).Z+"",width:"1324",height:"364"})}),"\n",(0,t.jsx)(n.h3,{id:"lima-support",children:"Lima Support"}),"\n",(0,t.jsxs)(n.p,{children:["Thanks to contributor ",(0,t.jsx)(n.a,{href:"https://github.com/afbjorklund",children:"Anders Bj\xf6rklund"}),", we have some improvements to the\nLima extension! In ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Preferences"]})," you can select which\nengine type Lima runs on and override the instance name ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2674",children:"#2674"}),"."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/10364051/241755966-0a6a293b-b18e-4222-9c40-abd6c114d464.png",alt:"Lima preferences"})}),"\n",(0,t.jsx)(n.h3,{id:"other-ui-and-ux-improvements",children:"Other UI and UX Improvements"}),"\n",(0,t.jsx)(n.h4,{id:"new-loading-screen",children:"New Loading Screen"}),"\n",(0,t.jsxs)(n.p,{children:["We have a new loading screen, Podman Desktop style! ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2743",children:"#2743"}),"."]}),"\n",(0,t.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/243706137-324b5870-f6a0-4bc1-ac91-e8b45c374c90.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other Notable Enhancements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Docker-compose can be installed system-wide ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2718",children:"#2718"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Show warning when creating a pod with two containers that use the same port ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2671",children:"#2671"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Display Kubernetes context name in pod label ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2634",children:"#2634"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Add Docker compatibility button using flatpak-spawn ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1925",children:"#1925"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Improve UI consistency of Pull Image page ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2604",children:"#2604"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Could not install extensions on Windows 10 ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2762",children:"#2762"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Could not use locally built images on Kubernetes ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2710",children:"#2710"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Dashboard still suggests update after installation ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2648",children:"#2648"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Could not Play Kubernetes YAML to Podman on Windows ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2594",children:"#2594"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Pod label wasn't always shown in list ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2614",children:"#2614"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Dashboard button state was resetting ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2584",children:"#2584"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Change checkbox style so they don't look like stop buttons ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2723",children:"#2723"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,t.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better. In this\nsprint we received pull requests from the following people:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/fatelei",children:"wangxiaolei"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2602",children:"#2602 - Add meaningful tooltips to build, pull, prune buttons"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/AsciiWolf",children:"AsciiWolf"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2607",children:"#2607 - fix typing error in Flathub name"})," and ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2609",children:"#2609 - fix Flatpak install instructions"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/afbjorklund",children:"Anders Bj\xf6rklund"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2674",children:"#2674 - Select engine for Lima provider"})]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,t.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.1.0",children:"here"})," and ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.1.0",children:"here"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Get the latest release from the ",(0,t.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function c(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},24825:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/podman-desktop-release-1.1-44e0feeaa28730210c0fbecda0193b95.png"},78687:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/update-extensions-6b1ea25170c2f1b7608d8f5a887d902a.png"}}]); \ No newline at end of file diff --git a/assets/js/1a16e8bf.a6bac1ac.js b/assets/js/1a16e8bf.a6bac1ac.js new file mode 100644 index 00000000000..3ca23710052 --- /dev/null +++ b/assets/js/1a16e8bf.a6bac1ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2079],{7792:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>r,default:()=>m,frontMatter:()=>l,metadata:()=>d,toc:()=>p});var t=s(24246),o=s(71670),i=s(92975),a=s.n(i);const l={title:"Release Notes - Podman Desktop 1.1",description:"Podman Desktop 1.1 has been released!",slug:"podman-desktop-release-1.1",authors:["deboer"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.1.webp"},r=void 0,d={permalink:"/blog/podman-desktop-release-1.1",source:"@site/blog/2023-06-08-release-1.1.md",title:"Release Notes - Podman Desktop 1.1",description:"Podman Desktop 1.1 has been released!",date:"2023-06-08T00:00:00.000Z",formattedDate:"June 8, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:2.465,hasTruncateMarker:!0,authors:[{name:"Tim deBoer",title:"Architect",url:"https://github.com/deboer-tim",imageURL:"https://github.com/deboer-tim.png",key:"deboer"}],frontMatter:{title:"Release Notes - Podman Desktop 1.1",description:"Podman Desktop 1.1 has been released!",slug:"podman-desktop-release-1.1",authors:["deboer"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.1.webp"},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 1.2",permalink:"/blog/podman-desktop-release-1.2"},nextItem:{title:"Release Notes - Podman Desktop 1.0",permalink:"/blog/podman-desktop-release-1.0"}},h={authorsImageUrls:[void 0]},p=[{value:"Release Details",id:"release-details",level:2},{value:"Podman v4.5.1",id:"podman-v451",level:3},{value:"Extensions",id:"extensions",level:3},{value:"Lima Support",id:"lima-support",level:3},{value:"Other UI and UX Improvements",id:"other-ui-and-ux-improvements",level:3},{value:"New Loading Screen",id:"new-loading-screen",level:4},{value:"Other Notable Enhancements",id:"other-notable-enhancements",level:2},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:2},{value:"Community Thank You",id:"community-thank-you",level:2},{value:"Final notes",id:"final-notes",level:2}];function c(e){const n={a:"a",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components},{Icon:i}=n;return i||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Icon",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Podman Desktop 1.1 Release! \ud83c\udf89"}),"\n",(0,t.jsx)(n.p,{children:"This is primarily a bug-fix release to fix a few important issues, but we've managed to squeeze in a few enhancements\nalong the way."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Podman 4.5.1"}),": Podman 4.5.1 now included in Windows and Mac installers."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Extensions"}),": Update extensions from within Podman Desktop."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Lima Support"}),": Choose engine type and override its name from the settings."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"UX and UI Improvements"}),": New loading screen."]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 1.1 is now available. ",(0,t.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Podman-desktop-1-1-hero",src:s(24825).Z+"",width:"3958",height:"2308"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,t.jsx)(n.h3,{id:"podman-v451",children:"Podman v4.5.1"}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 1.1 moves up to ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman/releases/tag/v4.5.1",children:"Podman 4.5.1"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"extensions",children:"Extensions"}),"\n",(0,t.jsxs)(n.p,{children:["Optional extensions will follow their own lifecycle and update independently from Podman Desktop. As of\nthis release you'll be able to see when there is an update available and install from within\nPodman Desktop ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2655",children:"#2655"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["We've also added options in ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(i,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Preferences"]})," to\nautomatically check for and install extension updates."]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/241246481-305d215f-2a5c-46e8-9cc3-ecd90a6bd2bc.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Update extensions",src:s(78687).Z+"",width:"1324",height:"364"})}),"\n",(0,t.jsx)(n.h3,{id:"lima-support",children:"Lima Support"}),"\n",(0,t.jsxs)(n.p,{children:["Thanks to contributor ",(0,t.jsx)(n.a,{href:"https://github.com/afbjorklund",children:"Anders Bj\xf6rklund"}),", we have some improvements to the\nLima extension! In ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(i,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Preferences"]})," you can select which\nengine type Lima runs on and override the instance name ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2674",children:"#2674"}),"."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/10364051/241755966-0a6a293b-b18e-4222-9c40-abd6c114d464.png",alt:"Lima preferences"})}),"\n",(0,t.jsx)(n.h3,{id:"other-ui-and-ux-improvements",children:"Other UI and UX Improvements"}),"\n",(0,t.jsx)(n.h4,{id:"new-loading-screen",children:"New Loading Screen"}),"\n",(0,t.jsxs)(n.p,{children:["We have a new loading screen, Podman Desktop style! ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2743",children:"#2743"}),"."]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/243706137-324b5870-f6a0-4bc1-ac91-e8b45c374c90.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other Notable Enhancements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Docker-compose can be installed system-wide ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2718",children:"#2718"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Show warning when creating a pod with two containers that use the same port ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2671",children:"#2671"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Display Kubernetes context name in pod label ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2634",children:"#2634"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Add Docker compatibility button using flatpak-spawn ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1925",children:"#1925"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Improve UI consistency of Pull Image page ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2604",children:"#2604"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Could not install extensions on Windows 10 ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2762",children:"#2762"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Could not use locally built images on Kubernetes ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2710",children:"#2710"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Dashboard still suggests update after installation ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2648",children:"#2648"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Could not Play Kubernetes YAML to Podman on Windows ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2594",children:"#2594"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Pod label wasn't always shown in list ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2614",children:"#2614"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Dashboard button state was resetting ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2584",children:"#2584"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Change checkbox style so they don't look like stop buttons ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2723",children:"#2723"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,t.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better. In this\nsprint we received pull requests from the following people:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/fatelei",children:"wangxiaolei"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2602",children:"#2602 - Add meaningful tooltips to build, pull, prune buttons"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/AsciiWolf",children:"AsciiWolf"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2607",children:"#2607 - fix typing error in Flathub name"})," and ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2609",children:"#2609 - fix Flatpak install instructions"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://github.com/afbjorklund",children:"Anders Bj\xf6rklund"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2674",children:"#2674 - Select engine for Lima provider"})]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,t.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.1.0",children:"here"})," and ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.1.0",children:"here"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Get the latest release from the ",(0,t.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function m(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},24825:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/podman-desktop-release-1.1-44e0feeaa28730210c0fbecda0193b95.png"},78687:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/update-extensions-6b1ea25170c2f1b7608d8f5a887d902a.png"}}]); \ No newline at end of file diff --git a/assets/js/1cfced13.094662f6.js b/assets/js/1cfced13.094662f6.js deleted file mode 100644 index 783763bae66..00000000000 --- a/assets/js/1cfced13.094662f6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8215],{36277:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>h});var s=t(24246),o=t(71670),i=t(92975);const r={title:"Release Notes - Podman Desktop 1.2",description:"Podman Desktop 1.2 has been released!",slug:"podman-desktop-release-1.2",authors:["cdrage"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.2.webp"},a=void 0,l={permalink:"/blog/podman-desktop-release-1.2",source:"@site/blog/2023-07-12-release-1.2.md",title:"Release Notes - Podman Desktop 1.2",description:"Podman Desktop 1.2 has been released!",date:"2023-07-12T00:00:00.000Z",formattedDate:"July 12, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:6.05,hasTruncateMarker:!1,authors:[{name:"Charlie Drage",title:"Software Engineer",url:"https://github.com/cdrage",imageURL:"https://github.com/cdrage.png",key:"cdrage"}],frontMatter:{title:"Release Notes - Podman Desktop 1.2",description:"Podman Desktop 1.2 has been released!",slug:"podman-desktop-release-1.2",authors:["cdrage"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.2.webp"},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 1.3",permalink:"/blog/podman-desktop-release-1.3"},nextItem:{title:"Release Notes - Podman Desktop 1.1",permalink:"/blog/podman-desktop-release-1.1"}},d={authorsImageUrls:[void 0]},h=[{value:"Release Details",id:"release-details",level:2},{value:"Added start/stop/delete/restart buttons for Compose",id:"added-startstopdeleterestart-buttons-for-compose",level:3},{value:"Kubernetes context on the status bar",id:"kubernetes-context-on-the-status-bar",level:3},{value:"Rename images",id:"rename-images",level:3},{value:"Troubleshooting page",id:"troubleshooting-page",level:3},{value:"Protocol handler support",id:"protocol-handler-support",level:3},{value:"Other Notable Features",id:"other-notable-features",level:2},{value:"Documentation Updates",id:"documentation-updates",level:2},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:2},{value:"Community Thank You",id:"community-thank-you",level:2},{value:"Final notes",id:"final-notes",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Podman Desktop 1.2 Release! \ud83c\udf89"}),"\n",(0,s.jsx)(n.p,{children:"We're excited to announce the release of Podman Desktop version 1.2.0! This release includes many new features (Kubernetes, Compose and extension support!), bug fixes, and improvements to enhance your container management experience. Here's a summary of the key changes in this release:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Added start/stop/delete/restart buttons for Compose"}),": You can now make changes to an entire Compose group of containers"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Kubernetes context on the status bar"}),": Choose from multiple Kubernetes contexts more easily all from the status bar"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Rename images"}),": Rename an image with a click of a button"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Protocol handler support"}),": Added support for protocol handlers such as ",(0,s.jsx)(n.code,{children:"open podman-desktop:extension/redhat.openshift-local"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Troubleshooting page"}),": A troubleshooting page for helping diagnose Podman Desktop related development issues"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Podman Desktop 1.2 is now available. ",(0,s.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Podman-desktop-1-2-hero",src:t(31965).Z+"",width:"1920",height:"1080"})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,s.jsx)(n.h3,{id:"added-startstopdeleterestart-buttons-for-compose",children:"Added start/stop/delete/restart buttons for Compose"}),"\n",(0,s.jsxs)(n.p,{children:["In the last month we've been addind support for more Compose features. Before you were only able to control a group of containers if they were in a Pod. Now we have added the ability to control a group of Compose containers. You can now start, stop, delete and restart a group of containers launched by either ",(0,s.jsx)(n.code,{children:"docker-compose"})," or ",(0,s.jsx)(n.code,{children:"podman-compose"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Stay tuned as we add even more features to Compose! If you have any feedback or feature requests, feel free to open an issue or start a discussion on GitHub."}),"\n",(0,s.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/253331226-d80e7637-c223-4bb8-8675-1dcb8d48818f.mov",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"kubernetes-context-on-the-status-bar",children:"Kubernetes context on the status bar"}),"\n",(0,s.jsx)(n.p,{children:"With Kubernetes context on the status bar, you can switch from one context to another in just a couple of clicks. Easily switch to a different cluster all together. If there are multiple contexts available, you can now click and pick which one to use."}),"\n",(0,s.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/243804525-242b02b4-fc3c-415b-be08-24eb1933adc5.mov",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"rename-images",children:"Rename images"}),"\n",(0,s.jsxs)(n.p,{children:["Deployed an image but now you need to rename it / add a new tag? Podman Desktop allows you to edit an image now. Thanks to an awesome contributor ",(0,s.jsx)(n.a,{href:"https://github.com/tuckerrc",children:"@tuckerrc"})," who added the new feature."]}),"\n",(0,s.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/251759557-bd15a631-93ee-4383-a81c-8ef3934dfb59.mp4",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"troubleshooting-page",children:"Troubleshooting page"}),"\n",(0,s.jsx)(n.p,{children:"Developing an extension for Podman Desktop? Want to view the logs of Podman Desktop as well as ping your container connection? We now have a troubleshooting page!"}),"\n",(0,s.jsx)(n.p,{children:"Click on the lightbulb button on the bottom right to access the page."}),"\n",(0,s.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/248210601-e0a5deb0-44ad-4eea-9b24-134754fede80.mp4",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"protocol-handler-support",children:"Protocol handler support"}),"\n",(0,s.jsxs)(n.p,{children:["Podman Desktop now supports protocol handling when using the terminal! Want to access your favourite extension directly from a script or the terminal? If you type in ",(0,s.jsx)(n.code,{children:"open podman-desktop:extension/redhat.openshift-local"})," in the terminal, Podman Desktop will automatically load up to the correct extension."]}),"\n",(0,s.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/243304511-b11ad1e4-4c2f-455c-957a-01653d2a93c8.mp4",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"other-notable-features",children:"Other Notable Features"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Background colors and FormPage (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2977",children:"PR #2977"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add ability to add insecure registry / skipping cert verify (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2896",children:"PR #2896"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add support for icon contribution (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2984",children:"PR #2984"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add warning dialog message that virtual machine has low memory limit (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2822",children:"PR #2822"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Propose indexed name for new pod (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3028",children:"PR #3028"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add restart button after enabling / disabling mac os compatibility (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2841",children:"PR #2841"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add environment related helper constants (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3079",children:"PR #3079"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Allow entrypoint and cmd when starting container (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3031",children:"PR #3031"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add a way to debug stores in troubleshooting page (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3121",children:"PR #3121"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add custompick component (#2855) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3012",children:"PR #3012"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Dynamic breadcrumbs (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3119",children:"PR #3119"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Icons on form pages (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3155",children:"PR #3155"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Switch more pages to formpage (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3162",children:"PR #3162"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add rename image button (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2588",children:"PR #2588"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Fixed headers, improved scrollbars (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2863",children:"PR #2863"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Reports warnings on failed kube deploy, fixes error out (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3050",children:"PR #3050"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Kube context on statusbar (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2755",children:"PR #2755"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Install provider if not installed when clicking on create new button (#2706) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2817",children:"PR #2817"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add tag and authenticated push capacity to the extension API (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2876",children:"PR #2876"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add navigation bar e2e tests (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2950",children:"PR #2950"}),")"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"documentation-updates",children:"Documentation Updates"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Fix documentation for building image of extensions (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2873",children:"PR #2873"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add Minikube install docs (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2824",children:"PR #2824"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add Minikube documentation (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2694",children:"PR #2694"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Updated Building an image procedure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2964",children:"PR #2964"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Starting a container (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2958",children:"PR #2958"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Pulling an image (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2956",children:"PR #2956"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Updated selecting containers to run in a pod (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2970",children:"PR #2970"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Pushing an image to a registry (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2969",children:"PR #2969"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["How to add an insecure registry (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2953",children:"PR #2953"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add documentation for lima (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2995",children:"PR #2995"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Replace broken link to podman.io (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2994",children:"PR #2994"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Authenticating to a pre-configured registry (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2965",children:"PR #2965"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Lima is not a container engine (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3051",children:"PR #3051"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Using the Troubleshooting page (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3083",children:"PR #3083"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["View and select your current Kubernetes context in the status bar (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3090",children:"PR #3090"}),")"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Deleting a running pod generates an error (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2827",children:"PR #2827"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["If kubeconfig is empty, does not try to do things, cancel (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2874",children:"PR #2874"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Async telemetry startup (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2885",children:"PR #2885"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Do not block startup while waiting for kube resource refresh (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2884",children:"PR #2884"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Images list too wide (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2918",children:"PR #2918"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Compose deactivate function never called (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2922",children:"PR #2922"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Auto-scrolling on form pages, layout issues (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2927",children:"PR #2927"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Show current context in quick pick (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2920",children:"PR #2920"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Remove sticky position of loader in dashboard UI (#2535) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2959",children:"PR #2959"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Undo change that broke the website (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2992",children:"PR #2992"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Detailspage, resizing & consistency (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2987",children:"PR #2987"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Quick pick click to close and over nav bar (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2758",children:"PR #2758"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Only show empty screen when no pods (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2929",children:"PR #2929"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Do not redirect to /pods when deleting pod in containerlist (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2963",children:"PR #2963"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Bulk delete on pods should call the pod deletion (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2979",children:"PR #2979"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Update nodejs version to 18 in .nvmrc to fix yarn install failure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2989",children:"PR #2989"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Website check targets (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2996",children:"PR #2996"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Don't show exception to user (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3034",children:"PR #3034"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Interpret arguments given to info command for example (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3015",children:"PR #3015"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Change defaults for Podman machine (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3061",children:"PR #3061"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Normalize development/production folders path (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3113",children:"PR #3113"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Calculate machine socket path for linux (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3070",children:"PR #3070"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Replace backslash with slash so to support rendering on Windows (#3120) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3122",children:"PR #3122"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Keep stdout and stderr in the error object for Docker Desktop extensions (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3014",children:"PR #3014"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Mark task completed if there's a failure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3016",children:"PR #3016"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Handle invalid kubeconfig file (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3129",children:"PR #3129"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Do not remove registries when podman extension is stopping (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3136",children:"PR #3136"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Warning should be amber (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3153",children:"PR #3153"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Load user extensions from plugins as removable (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3152",children:"PR #3152"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Images with spaces in entrypoints or commands fail to start (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3161",children:"PR #3161"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Scrolling offscreen when clicking checkbox (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3178",children:"PR #3178"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Avoid messagebox expanding offscreen (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2778",children:"PR #2778"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Release-notes-generator run failure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2752",children:"PR #2752"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Unable to do a new build if the previous one failed (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2721",children:"PR #2721"}),")"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,s.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better."}),"\n",(0,s.jsxs)(n.p,{children:["A big shoutout to ",(0,s.jsx)(n.a,{href:"https://github.com/afbjorklund",children:"@afbjorklund"}),", ",(0,s.jsx)(n.a,{href:"https://github.com/tuckerrc",children:"@tuckerrc"})," and ",(0,s.jsx)(n.a,{href:"https://github.com/evanshortiss",children:"@evanshortiss"})," who contributed to this release!"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,s.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.2.0",children:"here"})," and ",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.2.0",children:"here"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Get the latest release from the ",(0,s.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function p(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},31965:(e,n,t)=>{t.d(n,{Z:()=>s});const s=t.p+"assets/images/podman-desktop-release-1.2-3a022da0788ed1fd7e6c1820879dd235.png"}}]); \ No newline at end of file diff --git a/assets/js/1cfced13.778f5e2d.js b/assets/js/1cfced13.778f5e2d.js new file mode 100644 index 00000000000..e8721a063d6 --- /dev/null +++ b/assets/js/1cfced13.778f5e2d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8215],{36277:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>d,toc:()=>c});var s=t(24246),o=t(71670),i=t(92975),r=t.n(i);const a={title:"Release Notes - Podman Desktop 1.2",description:"Podman Desktop 1.2 has been released!",slug:"podman-desktop-release-1.2",authors:["cdrage"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.2.webp"},l=void 0,d={permalink:"/blog/podman-desktop-release-1.2",source:"@site/blog/2023-07-12-release-1.2.md",title:"Release Notes - Podman Desktop 1.2",description:"Podman Desktop 1.2 has been released!",date:"2023-07-12T00:00:00.000Z",formattedDate:"July 12, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:6.05,hasTruncateMarker:!1,authors:[{name:"Charlie Drage",title:"Software Engineer",url:"https://github.com/cdrage",imageURL:"https://github.com/cdrage.png",key:"cdrage"}],frontMatter:{title:"Release Notes - Podman Desktop 1.2",description:"Podman Desktop 1.2 has been released!",slug:"podman-desktop-release-1.2",authors:["cdrage"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.2.webp"},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 1.3",permalink:"/blog/podman-desktop-release-1.3"},nextItem:{title:"Release Notes - Podman Desktop 1.1",permalink:"/blog/podman-desktop-release-1.1"}},h={authorsImageUrls:[void 0]},c=[{value:"Release Details",id:"release-details",level:2},{value:"Added start/stop/delete/restart buttons for Compose",id:"added-startstopdeleterestart-buttons-for-compose",level:3},{value:"Kubernetes context on the status bar",id:"kubernetes-context-on-the-status-bar",level:3},{value:"Rename images",id:"rename-images",level:3},{value:"Troubleshooting page",id:"troubleshooting-page",level:3},{value:"Protocol handler support",id:"protocol-handler-support",level:3},{value:"Other Notable Features",id:"other-notable-features",level:2},{value:"Documentation Updates",id:"documentation-updates",level:2},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:2},{value:"Community Thank You",id:"community-thank-you",level:2},{value:"Final notes",id:"final-notes",level:2}];function p(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Podman Desktop 1.2 Release! \ud83c\udf89"}),"\n",(0,s.jsx)(n.p,{children:"We're excited to announce the release of Podman Desktop version 1.2.0! This release includes many new features (Kubernetes, Compose and extension support!), bug fixes, and improvements to enhance your container management experience. Here's a summary of the key changes in this release:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Added start/stop/delete/restart buttons for Compose"}),": You can now make changes to an entire Compose group of containers"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Kubernetes context on the status bar"}),": Choose from multiple Kubernetes contexts more easily all from the status bar"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Rename images"}),": Rename an image with a click of a button"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Protocol handler support"}),": Added support for protocol handlers such as ",(0,s.jsx)(n.code,{children:"open podman-desktop:extension/redhat.openshift-local"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Troubleshooting page"}),": A troubleshooting page for helping diagnose Podman Desktop related development issues"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Podman Desktop 1.2 is now available. ",(0,s.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Podman-desktop-1-2-hero",src:t(31965).Z+"",width:"1920",height:"1080"})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,s.jsx)(n.h3,{id:"added-startstopdeleterestart-buttons-for-compose",children:"Added start/stop/delete/restart buttons for Compose"}),"\n",(0,s.jsxs)(n.p,{children:["In the last month we've been addind support for more Compose features. Before you were only able to control a group of containers if they were in a Pod. Now we have added the ability to control a group of Compose containers. You can now start, stop, delete and restart a group of containers launched by either ",(0,s.jsx)(n.code,{children:"docker-compose"})," or ",(0,s.jsx)(n.code,{children:"podman-compose"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Stay tuned as we add even more features to Compose! If you have any feedback or feature requests, feel free to open an issue or start a discussion on GitHub."}),"\n",(0,s.jsx)(r(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/253331226-d80e7637-c223-4bb8-8675-1dcb8d48818f.mov",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"kubernetes-context-on-the-status-bar",children:"Kubernetes context on the status bar"}),"\n",(0,s.jsx)(n.p,{children:"With Kubernetes context on the status bar, you can switch from one context to another in just a couple of clicks. Easily switch to a different cluster all together. If there are multiple contexts available, you can now click and pick which one to use."}),"\n",(0,s.jsx)(r(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/243804525-242b02b4-fc3c-415b-be08-24eb1933adc5.mov",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"rename-images",children:"Rename images"}),"\n",(0,s.jsxs)(n.p,{children:["Deployed an image but now you need to rename it / add a new tag? Podman Desktop allows you to edit an image now. Thanks to an awesome contributor ",(0,s.jsx)(n.a,{href:"https://github.com/tuckerrc",children:"@tuckerrc"})," who added the new feature."]}),"\n",(0,s.jsx)(r(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/251759557-bd15a631-93ee-4383-a81c-8ef3934dfb59.mp4",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"troubleshooting-page",children:"Troubleshooting page"}),"\n",(0,s.jsx)(n.p,{children:"Developing an extension for Podman Desktop? Want to view the logs of Podman Desktop as well as ping your container connection? We now have a troubleshooting page!"}),"\n",(0,s.jsx)(n.p,{children:"Click on the lightbulb button on the bottom right to access the page."}),"\n",(0,s.jsx)(r(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/248210601-e0a5deb0-44ad-4eea-9b24-134754fede80.mp4",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"protocol-handler-support",children:"Protocol handler support"}),"\n",(0,s.jsxs)(n.p,{children:["Podman Desktop now supports protocol handling when using the terminal! Want to access your favourite extension directly from a script or the terminal? If you type in ",(0,s.jsx)(n.code,{children:"open podman-desktop:extension/redhat.openshift-local"})," in the terminal, Podman Desktop will automatically load up to the correct extension."]}),"\n",(0,s.jsx)(r(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/243304511-b11ad1e4-4c2f-455c-957a-01653d2a93c8.mp4",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"other-notable-features",children:"Other Notable Features"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Background colors and FormPage (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2977",children:"PR #2977"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add ability to add insecure registry / skipping cert verify (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2896",children:"PR #2896"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add support for icon contribution (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2984",children:"PR #2984"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add warning dialog message that virtual machine has low memory limit (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2822",children:"PR #2822"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Propose indexed name for new pod (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3028",children:"PR #3028"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add restart button after enabling / disabling mac os compatibility (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2841",children:"PR #2841"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add environment related helper constants (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3079",children:"PR #3079"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Allow entrypoint and cmd when starting container (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3031",children:"PR #3031"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add a way to debug stores in troubleshooting page (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3121",children:"PR #3121"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add custompick component (#2855) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3012",children:"PR #3012"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Dynamic breadcrumbs (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3119",children:"PR #3119"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Icons on form pages (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3155",children:"PR #3155"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Switch more pages to formpage (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3162",children:"PR #3162"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add rename image button (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2588",children:"PR #2588"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Fixed headers, improved scrollbars (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2863",children:"PR #2863"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Reports warnings on failed kube deploy, fixes error out (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3050",children:"PR #3050"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Kube context on statusbar (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2755",children:"PR #2755"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Install provider if not installed when clicking on create new button (#2706) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2817",children:"PR #2817"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add tag and authenticated push capacity to the extension API (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2876",children:"PR #2876"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add navigation bar e2e tests (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2950",children:"PR #2950"}),")"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"documentation-updates",children:"Documentation Updates"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Fix documentation for building image of extensions (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2873",children:"PR #2873"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add Minikube install docs (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2824",children:"PR #2824"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add Minikube documentation (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2694",children:"PR #2694"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Updated Building an image procedure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2964",children:"PR #2964"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Starting a container (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2958",children:"PR #2958"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Pulling an image (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2956",children:"PR #2956"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Updated selecting containers to run in a pod (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2970",children:"PR #2970"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Pushing an image to a registry (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2969",children:"PR #2969"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["How to add an insecure registry (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2953",children:"PR #2953"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add documentation for lima (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2995",children:"PR #2995"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Replace broken link to podman.io (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2994",children:"PR #2994"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Authenticating to a pre-configured registry (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2965",children:"PR #2965"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Lima is not a container engine (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3051",children:"PR #3051"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Using the Troubleshooting page (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3083",children:"PR #3083"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["View and select your current Kubernetes context in the status bar (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3090",children:"PR #3090"}),")"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Deleting a running pod generates an error (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2827",children:"PR #2827"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["If kubeconfig is empty, does not try to do things, cancel (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2874",children:"PR #2874"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Async telemetry startup (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2885",children:"PR #2885"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Do not block startup while waiting for kube resource refresh (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2884",children:"PR #2884"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Images list too wide (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2918",children:"PR #2918"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Compose deactivate function never called (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2922",children:"PR #2922"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Auto-scrolling on form pages, layout issues (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2927",children:"PR #2927"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Show current context in quick pick (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2920",children:"PR #2920"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Remove sticky position of loader in dashboard UI (#2535) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2959",children:"PR #2959"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Undo change that broke the website (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2992",children:"PR #2992"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Detailspage, resizing & consistency (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2987",children:"PR #2987"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Quick pick click to close and over nav bar (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2758",children:"PR #2758"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Only show empty screen when no pods (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2929",children:"PR #2929"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Do not redirect to /pods when deleting pod in containerlist (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2963",children:"PR #2963"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Bulk delete on pods should call the pod deletion (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2979",children:"PR #2979"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Update nodejs version to 18 in .nvmrc to fix yarn install failure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2989",children:"PR #2989"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Website check targets (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2996",children:"PR #2996"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Don't show exception to user (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3034",children:"PR #3034"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Interpret arguments given to info command for example (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3015",children:"PR #3015"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Change defaults for Podman machine (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3061",children:"PR #3061"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Normalize development/production folders path (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3113",children:"PR #3113"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Calculate machine socket path for linux (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3070",children:"PR #3070"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Replace backslash with slash so to support rendering on Windows (#3120) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3122",children:"PR #3122"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Keep stdout and stderr in the error object for Docker Desktop extensions (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3014",children:"PR #3014"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Mark task completed if there's a failure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3016",children:"PR #3016"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Handle invalid kubeconfig file (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3129",children:"PR #3129"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Do not remove registries when podman extension is stopping (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3136",children:"PR #3136"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Warning should be amber (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3153",children:"PR #3153"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Load user extensions from plugins as removable (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3152",children:"PR #3152"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Images with spaces in entrypoints or commands fail to start (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3161",children:"PR #3161"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Scrolling offscreen when clicking checkbox (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3178",children:"PR #3178"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Avoid messagebox expanding offscreen (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2778",children:"PR #2778"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Release-notes-generator run failure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2752",children:"PR #2752"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Unable to do a new build if the previous one failed (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2721",children:"PR #2721"}),")"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,s.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better."}),"\n",(0,s.jsxs)(n.p,{children:["A big shoutout to ",(0,s.jsx)(n.a,{href:"https://github.com/afbjorklund",children:"@afbjorklund"}),", ",(0,s.jsx)(n.a,{href:"https://github.com/tuckerrc",children:"@tuckerrc"})," and ",(0,s.jsx)(n.a,{href:"https://github.com/evanshortiss",children:"@evanshortiss"})," who contributed to this release!"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,s.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.2.0",children:"here"})," and ",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.2.0",children:"here"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Get the latest release from the ",(0,s.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},31965:(e,n,t)=>{t.d(n,{Z:()=>s});const s=t.p+"assets/images/podman-desktop-release-1.2-3a022da0788ed1fd7e6c1820879dd235.png"}}]); \ No newline at end of file diff --git a/assets/js/4816649b.95e2cb49.js b/assets/js/4816649b.95e2cb49.js deleted file mode 100644 index e41da4c6e64..00000000000 --- a/assets/js/4816649b.95e2cb49.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6690],{47883:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>h});var t=s(24246),i=s(71670),o=s(92975);const a={title:"Release Notes - Podman Desktop 0.14",description:"Podman Desktop 0.14 has been released!",slug:"podman-desktop-release-0.14",authors:["deboer"],tags:["podman-desktop","release","kubernetes","kind"],hide_table_of_contents:!1},r=void 0,l={permalink:"/blog/podman-desktop-release-0.14",source:"@site/blog/2023-04-14-release-0.14.md",title:"Release Notes - Podman Desktop 0.14",description:"Podman Desktop 0.14 has been released!",date:"2023-04-14T00:00:00.000Z",formattedDate:"April 14, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"kind",permalink:"/blog/tags/kind"}],readingTime:4.025,hasTruncateMarker:!0,authors:[{name:"Tim deBoer",title:"Architect",url:"https://github.com/deboer-tim",imageURL:"https://github.com/deboer-tim.png",key:"deboer"}],frontMatter:{title:"Release Notes - Podman Desktop 0.14",description:"Podman Desktop 0.14 has been released!",slug:"podman-desktop-release-0.14",authors:["deboer"],tags:["podman-desktop","release","kubernetes","kind"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"Setting up and running a Kubernetes cluster locally with Podman Desktop",permalink:"/blog/running-a-local-kubernetes-cluster-with-podman-desktop"},nextItem:{title:"Release Notes - Podman Desktop 0.13",permalink:"/blog/podman-desktop-release-0.13"}},d={authorsImageUrls:[void 0]},h=[{value:"Release details",id:"release-details",level:2},{value:"Kind Installation",id:"kind-installation",level:3},{value:"Manage Kind Clusters",id:"manage-kind-clusters",level:3},{value:"Using Kind",id:"using-kind",level:3},{value:"Kind Ingress",id:"kind-ingress",level:3},{value:"UI and UX improvements",id:"ui-and-ux-improvements",level:3},{value:"Updated Preferences",id:"updated-preferences",level:4},{value:"Telemetry Prompt",id:"telemetry-prompt",level:4},{value:"Other notable enhancements",id:"other-notable-enhancements",level:2},{value:"Documentation",id:"documentation",level:2},{value:"Notable bug fixes",id:"notable-bug-fixes",level:2},{value:"Final notes",id:"final-notes",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components},{Icon:a}=n;return a||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Icon",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Podman Desktop 0.14 - Our Kind-est release yet!"}),"\n",(0,t.jsx)(n.p,{children:"We have been working on a Kind extension for a while now, and decided it is time to promote it\ninto a release just in time for KubeCon and CloudNativeCon Europe!"}),"\n",(0,t.jsx)(n.p,{children:"We're especially excited about releasing Kind because it finally shows the full purpose\nof Podman Desktop: not just local container engines, but Kubernetes too. More importantly,\nproviding tools that allow you to manage both environments and seamlessly move between them."}),"\n",(0,t.jsx)(n.p,{children:"Some of these features were available in development mode over the last few releases,\nbut since they are now in the release build, we will do a full roundup and talk about\nall the Kind features."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Kind Installation"}),": Install Kind from the status bar"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Manage Kind Clusters"}),": Create and manage Kind clusters from ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Resources"]})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Using Kind"}),": Deploying YAML and sharing images to a cluster"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Kind Ingress"}),": Install a Contour ingress controller"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"UX and UI Improvements"}),": Updated preferences and telemetry prompt"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 0.14 is now available. ",(0,t.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Podman-desktop-0-14-hero",src:s(41767).Z+"",width:"1140",height:"1097"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"release-details",children:"Release details"}),"\n",(0,t.jsx)(n.h3,{id:"kind-installation",children:"Kind Installation"}),"\n",(0,t.jsxs)(n.p,{children:["Get Kind up and running in seconds! The Kind extension is now bundled as part of Podman Desktop\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1421",children:"1421"}),"\nand allows you to easily ",(0,t.jsx)(n.a,{href:"/docs/kind/installing",children:"install Kind directly from the status bar"}),"\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1257",children:"1257"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["The installed ",(0,t.jsx)(n.code,{children:"kind"})," CLI is available from the system shell ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1516",children:"1516"}),",\nallowing you to open a terminal window to ",(0,t.jsx)(n.code,{children:"kind get clusters"})," or work with other tools."]}),"\n",(0,t.jsx)(n.h3,{id:"manage-kind-clusters",children:"Manage Kind Clusters"}),"\n",(0,t.jsxs)(n.p,{children:["Once Kind is installed (or if you already had it), you can manage your clusters in ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Resources"]}),".\nFrom here you can ",(0,t.jsx)(n.a,{href:"/docs/kind/creating-a-kind-cluster",children:"create Kind clusters"}),",\nstart/stop ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1953",children:"1953"}),"\nor delete ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1977",children:"1977"})," them."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"kind-clusters",src:s(45988).Z+"",width:"1484",height:"364"})}),"\n",(0,t.jsxs)(n.p,{children:["The Kind control plane runs as a container. You will see this container\nin the ",(0,t.jsx)(n.strong,{children:"Container"})," list and can also start or stop it from there."]}),"\n",(0,t.jsx)(n.h3,{id:"using-kind",children:"Using Kind"}),"\n",(0,t.jsxs)(n.p,{children:["Now that you have Kind installed and running, what can you do with it?\nIf you like terminals, you can always open one up and use the Kind CLI to\n",(0,t.jsx)(n.a,{href:"https://kind.sigs.k8s.io/docs/user/quick-start/#interacting-with-your-cluster",children:"interact with your cluster"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Within Podman Desktop we have started with two ways to interact with the cluster.\nThe first is the ability to play local YAML files on your Kind (or any other Kubernetes!) cluster ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1261",children:"1261"}),". This allows you to take existing Kubernetes YAML definitions -\nyour deployments, services, or other objects - and deploy it to the cluster."]}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/231812563-ece0a56a-b347-48f8-a3a7-400eb9449037.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsxs)(n.p,{children:["As you deploy pods, they will automatically appear in the list of ",(0,t.jsx)(n.strong,{children:"Pods"})," ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1263",children:"1263"}),", allowing you to start, stop, and interact them just like pods running on Podman."]}),"\n",(0,t.jsxs)(n.p,{children:["One of the most common uses is to deploy a container that you have been running on Podman, and this will fail\nif the image is not available in Kind. To solve this we have made it easy to push images from\nPodman to Kind ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1448",children:"1448"}),"."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"push-image-kind",src:s(75281).Z+"",width:"1054",height:"152"})}),"\n",(0,t.jsx)(n.h3,{id:"kind-ingress",children:"Kind Ingress"}),"\n",(0,t.jsxs)(n.p,{children:["If you deploy a pod to Kind, you are also going to want to reach it! To do this you will need to install a load balancer or\ningress controller so that the pod is accessible from outside the cluster. We made it easy to install the Contour ingress\ncontroller while creating a Kind cluster ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1675",children:"1675"}),",\nso if you created your cluster with Podman Desktop it is already there!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"kind-ingress",src:s(61958).Z+"",width:"1328",height:"1238"})}),"\n",(0,t.jsx)(n.p,{children:"We have several other Kind and Kubernetes features planned to expand the supported scenarios, but hopefully this\nmakes it easy to get started with Kind and shows where we're headed. As always, feedback is appreciated!"}),"\n",(0,t.jsx)(n.h3,{id:"ui-and-ux-improvements",children:"UI and UX improvements"}),"\n",(0,t.jsx)(n.h4,{id:"updated-preferences",children:"Updated Preferences"}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Preferences"]})," page has been updated with a new design ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1913",children:"1913"}),",\nmaking it easier to see and change preferences. Changes are live, no more Update button."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/229498507-e754b55c-dcbd-486d-9ee3-a1fe3bed7271.gif",alt:"preferences"})}),"\n",(0,t.jsx)(n.h4,{id:"telemetry-prompt",children:"Telemetry Prompt"}),"\n",(0,t.jsxs)(n.p,{children:["The prompt to enable or disable telemetry has been moved from its own dialog into the ",(0,t.jsx)(n.strong,{children:"Welcome"})," screen.\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1927",children:"1927"}),"\nThis is more usable, one less prompt, and solves a window-layering issue for some users!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/229577331-365a9a01-0426-4482-a95d-f5dfe39af90a.png",alt:"telemetry prompt"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other notable enhancements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Extension support for opening an external URL ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2028",children:"2028"})," and\naccessing the clipboard ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2023",children:"2023"})]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,t.jsxs)(n.p,{children:["Naturally, we have a section in the documentation just for ",(0,t.jsx)(n.a,{href:"https://podman-desktop.io/docs/kind",children:"Kind"}),"."]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable bug fixes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Avoid a dialog box if unable to check for updates ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2062",children:"2062"})]}),"\n",(0,t.jsxs)(n.li,{children:["Unable to get to the Dashboard if Kind (or Kubernetes) cluster was not running ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2052",children:"2052"})]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,t.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.14.0",children:"here"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Get the latest release from the ",(0,t.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function p(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},45988:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/kind-clusters-580828529dfdd23680262d7ee586823d.png"},61958:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/kind-ingress-ab2dd4054a7ce838c758ddc0d98cc5cb.png"},41767:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/podman-desktop-release-0.14-5d7adb6814b7191ab2623cdd431642f3.png"},75281:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/push-image-kind-ea3f19b80ab3ce13cdfadbbb63762780.png"}}]); \ No newline at end of file diff --git a/assets/js/4816649b.99fd0ff4.js b/assets/js/4816649b.99fd0ff4.js new file mode 100644 index 00000000000..310066de8b4 --- /dev/null +++ b/assets/js/4816649b.99fd0ff4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6690],{47883:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var t=s(24246),i=s(71670),o=s(92975),a=s.n(o);const r={title:"Release Notes - Podman Desktop 0.14",description:"Podman Desktop 0.14 has been released!",slug:"podman-desktop-release-0.14",authors:["deboer"],tags:["podman-desktop","release","kubernetes","kind"],hide_table_of_contents:!1},l=void 0,d={permalink:"/blog/podman-desktop-release-0.14",source:"@site/blog/2023-04-14-release-0.14.md",title:"Release Notes - Podman Desktop 0.14",description:"Podman Desktop 0.14 has been released!",date:"2023-04-14T00:00:00.000Z",formattedDate:"April 14, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"kind",permalink:"/blog/tags/kind"}],readingTime:4.025,hasTruncateMarker:!0,authors:[{name:"Tim deBoer",title:"Architect",url:"https://github.com/deboer-tim",imageURL:"https://github.com/deboer-tim.png",key:"deboer"}],frontMatter:{title:"Release Notes - Podman Desktop 0.14",description:"Podman Desktop 0.14 has been released!",slug:"podman-desktop-release-0.14",authors:["deboer"],tags:["podman-desktop","release","kubernetes","kind"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"Setting up and running a Kubernetes cluster locally with Podman Desktop",permalink:"/blog/running-a-local-kubernetes-cluster-with-podman-desktop"},nextItem:{title:"Release Notes - Podman Desktop 0.13",permalink:"/blog/podman-desktop-release-0.13"}},h={authorsImageUrls:[void 0]},c=[{value:"Release details",id:"release-details",level:2},{value:"Kind Installation",id:"kind-installation",level:3},{value:"Manage Kind Clusters",id:"manage-kind-clusters",level:3},{value:"Using Kind",id:"using-kind",level:3},{value:"Kind Ingress",id:"kind-ingress",level:3},{value:"UI and UX improvements",id:"ui-and-ux-improvements",level:3},{value:"Updated Preferences",id:"updated-preferences",level:4},{value:"Telemetry Prompt",id:"telemetry-prompt",level:4},{value:"Other notable enhancements",id:"other-notable-enhancements",level:2},{value:"Documentation",id:"documentation",level:2},{value:"Notable bug fixes",id:"notable-bug-fixes",level:2},{value:"Final notes",id:"final-notes",level:2}];function p(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components},{Icon:o}=n;return o||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Icon",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Podman Desktop 0.14 - Our Kind-est release yet!"}),"\n",(0,t.jsx)(n.p,{children:"We have been working on a Kind extension for a while now, and decided it is time to promote it\ninto a release just in time for KubeCon and CloudNativeCon Europe!"}),"\n",(0,t.jsx)(n.p,{children:"We're especially excited about releasing Kind because it finally shows the full purpose\nof Podman Desktop: not just local container engines, but Kubernetes too. More importantly,\nproviding tools that allow you to manage both environments and seamlessly move between them."}),"\n",(0,t.jsx)(n.p,{children:"Some of these features were available in development mode over the last few releases,\nbut since they are now in the release build, we will do a full roundup and talk about\nall the Kind features."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Kind Installation"}),": Install Kind from the status bar"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Manage Kind Clusters"}),": Create and manage Kind clusters from ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(o,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Resources"]})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Using Kind"}),": Deploying YAML and sharing images to a cluster"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Kind Ingress"}),": Install a Contour ingress controller"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"UX and UI Improvements"}),": Updated preferences and telemetry prompt"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 0.14 is now available. ",(0,t.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Podman-desktop-0-14-hero",src:s(41767).Z+"",width:"1140",height:"1097"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"release-details",children:"Release details"}),"\n",(0,t.jsx)(n.h3,{id:"kind-installation",children:"Kind Installation"}),"\n",(0,t.jsxs)(n.p,{children:["Get Kind up and running in seconds! The Kind extension is now bundled as part of Podman Desktop\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1421",children:"1421"}),"\nand allows you to easily ",(0,t.jsx)(n.a,{href:"/docs/kind/installing",children:"install Kind directly from the status bar"}),"\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1257",children:"1257"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["The installed ",(0,t.jsx)(n.code,{children:"kind"})," CLI is available from the system shell ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1516",children:"1516"}),",\nallowing you to open a terminal window to ",(0,t.jsx)(n.code,{children:"kind get clusters"})," or work with other tools."]}),"\n",(0,t.jsx)(n.h3,{id:"manage-kind-clusters",children:"Manage Kind Clusters"}),"\n",(0,t.jsxs)(n.p,{children:["Once Kind is installed (or if you already had it), you can manage your clusters in ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(o,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Resources"]}),".\nFrom here you can ",(0,t.jsx)(n.a,{href:"/docs/kind/creating-a-kind-cluster",children:"create Kind clusters"}),",\nstart/stop ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1953",children:"1953"}),"\nor delete ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1977",children:"1977"})," them."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"kind-clusters",src:s(45988).Z+"",width:"1484",height:"364"})}),"\n",(0,t.jsxs)(n.p,{children:["The Kind control plane runs as a container. You will see this container\nin the ",(0,t.jsx)(n.strong,{children:"Container"})," list and can also start or stop it from there."]}),"\n",(0,t.jsx)(n.h3,{id:"using-kind",children:"Using Kind"}),"\n",(0,t.jsxs)(n.p,{children:["Now that you have Kind installed and running, what can you do with it?\nIf you like terminals, you can always open one up and use the Kind CLI to\n",(0,t.jsx)(n.a,{href:"https://kind.sigs.k8s.io/docs/user/quick-start/#interacting-with-your-cluster",children:"interact with your cluster"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Within Podman Desktop we have started with two ways to interact with the cluster.\nThe first is the ability to play local YAML files on your Kind (or any other Kubernetes!) cluster ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1261",children:"1261"}),". This allows you to take existing Kubernetes YAML definitions -\nyour deployments, services, or other objects - and deploy it to the cluster."]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/231812563-ece0a56a-b347-48f8-a3a7-400eb9449037.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsxs)(n.p,{children:["As you deploy pods, they will automatically appear in the list of ",(0,t.jsx)(n.strong,{children:"Pods"})," ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1263",children:"1263"}),", allowing you to start, stop, and interact them just like pods running on Podman."]}),"\n",(0,t.jsxs)(n.p,{children:["One of the most common uses is to deploy a container that you have been running on Podman, and this will fail\nif the image is not available in Kind. To solve this we have made it easy to push images from\nPodman to Kind ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1448",children:"1448"}),"."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"push-image-kind",src:s(75281).Z+"",width:"1054",height:"152"})}),"\n",(0,t.jsx)(n.h3,{id:"kind-ingress",children:"Kind Ingress"}),"\n",(0,t.jsxs)(n.p,{children:["If you deploy a pod to Kind, you are also going to want to reach it! To do this you will need to install a load balancer or\ningress controller so that the pod is accessible from outside the cluster. We made it easy to install the Contour ingress\ncontroller while creating a Kind cluster ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1675",children:"1675"}),",\nso if you created your cluster with Podman Desktop it is already there!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"kind-ingress",src:s(61958).Z+"",width:"1328",height:"1238"})}),"\n",(0,t.jsx)(n.p,{children:"We have several other Kind and Kubernetes features planned to expand the supported scenarios, but hopefully this\nmakes it easy to get started with Kind and shows where we're headed. As always, feedback is appreciated!"}),"\n",(0,t.jsx)(n.h3,{id:"ui-and-ux-improvements",children:"UI and UX improvements"}),"\n",(0,t.jsx)(n.h4,{id:"updated-preferences",children:"Updated Preferences"}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(o,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Preferences"]})," page has been updated with a new design ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1913",children:"1913"}),",\nmaking it easier to see and change preferences. Changes are live, no more Update button."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/229498507-e754b55c-dcbd-486d-9ee3-a1fe3bed7271.gif",alt:"preferences"})}),"\n",(0,t.jsx)(n.h4,{id:"telemetry-prompt",children:"Telemetry Prompt"}),"\n",(0,t.jsxs)(n.p,{children:["The prompt to enable or disable telemetry has been moved from its own dialog into the ",(0,t.jsx)(n.strong,{children:"Welcome"})," screen.\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1927",children:"1927"}),"\nThis is more usable, one less prompt, and solves a window-layering issue for some users!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/229577331-365a9a01-0426-4482-a95d-f5dfe39af90a.png",alt:"telemetry prompt"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other notable enhancements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Extension support for opening an external URL ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2028",children:"2028"})," and\naccessing the clipboard ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2023",children:"2023"})]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,t.jsxs)(n.p,{children:["Naturally, we have a section in the documentation just for ",(0,t.jsx)(n.a,{href:"https://podman-desktop.io/docs/kind",children:"Kind"}),"."]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable bug fixes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Avoid a dialog box if unable to check for updates ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2062",children:"2062"})]}),"\n",(0,t.jsxs)(n.li,{children:["Unable to get to the Dashboard if Kind (or Kubernetes) cluster was not running ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2052",children:"2052"})]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,t.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.14.0",children:"here"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Get the latest release from the ",(0,t.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function u(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},45988:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/kind-clusters-580828529dfdd23680262d7ee586823d.png"},61958:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/kind-ingress-ab2dd4054a7ce838c758ddc0d98cc5cb.png"},41767:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/podman-desktop-release-0.14-5d7adb6814b7191ab2623cdd431642f3.png"},75281:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/push-image-kind-ea3f19b80ab3ce13cdfadbbb63762780.png"}}]); \ No newline at end of file diff --git a/assets/js/5628.4d1e89d2.js b/assets/js/5628.4d1e89d2.js new file mode 100644 index 00000000000..eef9f6d45b8 --- /dev/null +++ b/assets/js/5628.4d1e89d2.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5628],{21857:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)};var r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(e,t){return!1!==t.clone&&t.isMergeableObject(e)?s((r=e,Array.isArray(r)?[]:{}),e,t):e;var r}function a(e,t,r){return e.concat(t).map((function(e){return n(e,r)}))}function o(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function i(e,t){try{return t in e}catch(r){return!1}}function l(e,t,r){var a={};return r.isMergeableObject(e)&&o(e).forEach((function(t){a[t]=n(e[t],r)})),o(t).forEach((function(o){(function(e,t){return i(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,o)||(i(e,o)&&r.isMergeableObject(t[o])?a[o]=function(e,t){if(!t.customMerge)return s;var r=t.customMerge(e);return"function"==typeof r?r:s}(o,r)(e[o],t[o],r):a[o]=n(t[o],r))})),a}function s(e,r,o){(o=o||{}).arrayMerge=o.arrayMerge||a,o.isMergeableObject=o.isMergeableObject||t,o.cloneUnlessOtherwiseSpecified=n;var i=Array.isArray(r);return i===Array.isArray(e)?i?o.arrayMerge(e,r,o):l(e,r,o):n(r,o)}s.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,r){return s(e,r,t)}),{})};var u=s;e.exports=u},1204:e=>{function t(e,t){e.onload=function(){this.onerror=this.onload=null,t(null,e)},e.onerror=function(){this.onerror=this.onload=null,t(new Error("Failed to load "+this.src),e)}}function r(e,t){e.onreadystatechange=function(){"complete"!=this.readyState&&"loaded"!=this.readyState||(this.onreadystatechange=null,t(null,e))}}e.exports=function(e,n,a){var o=document.head||document.getElementsByTagName("head")[0],i=document.createElement("script");"function"==typeof n&&(a=n,n={}),n=n||{},a=a||function(){},i.type=n.type||"text/javascript",i.charset=n.charset||"utf8",i.async=!("async"in n)||!!n.async,i.src=e,n.attrs&&function(e,t){for(var r in t)e.setAttribute(r,t[r])}(i,n.attrs),n.text&&(i.text=""+n.text),("onload"in i?t:r)(i,a),i.onload||t(i,a),o.appendChild(i)}},56583:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var n=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function a(e,t){if(e.length!==t.length)return!1;for(var r=0;r{var n,a=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,s=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,c=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of l(t))u.call(e,a)||a===r||o(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},d=(e,t,r)=>(r=null!=e?a(s(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)),p=(e,t,r)=>(((e,t,r)=>{t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r),y={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(y,{default:()=>P}),e.exports=(n=y,c(o({},"__esModule",{value:!0}),n));var h=d(r(27378)),f=d(r(54335)),m=r(48416),b=r(43887);class P extends h.Component{constructor(){super(...arguments),p(this,"mounted",!1),p(this,"isReady",!1),p(this,"isPlaying",!1),p(this,"isLoading",!0),p(this,"loadOnReady",null),p(this,"startOnPlay",!0),p(this,"seekOnPlay",null),p(this,"onDurationCalled",!1),p(this,"handlePlayerMount",(e=>{this.player||(this.player=e,this.player.load(this.props.url)),this.progress()})),p(this,"getInternalPlayer",(e=>this.player?this.player[e]:null)),p(this,"progress",(()=>{if(this.props.url&&this.player&&this.isReady){const e=this.getCurrentTime()||0,t=this.getSecondsLoaded(),r=this.getDuration();if(r){const n={playedSeconds:e,played:e/r};null!==t&&(n.loadedSeconds=t,n.loaded=t/r),n.playedSeconds===this.prevPlayed&&n.loadedSeconds===this.prevLoaded||this.props.onProgress(n),this.prevPlayed=n.playedSeconds,this.prevLoaded=n.loadedSeconds}}this.progressTimeout=setTimeout(this.progress,this.props.progressFrequency||this.props.progressInterval)})),p(this,"handleReady",(()=>{if(!this.mounted)return;this.isReady=!0,this.isLoading=!1;const{onReady:e,playing:t,volume:r,muted:n}=this.props;e(),n||null===r||this.player.setVolume(r),this.loadOnReady?(this.player.load(this.loadOnReady,!0),this.loadOnReady=null):t&&this.player.play(),this.handleDurationCheck()})),p(this,"handlePlay",(()=>{this.isPlaying=!0,this.isLoading=!1;const{onStart:e,onPlay:t,playbackRate:r}=this.props;this.startOnPlay&&(this.player.setPlaybackRate&&1!==r&&this.player.setPlaybackRate(r),e(),this.startOnPlay=!1),t(),this.seekOnPlay&&(this.seekTo(this.seekOnPlay),this.seekOnPlay=null),this.handleDurationCheck()})),p(this,"handlePause",(e=>{this.isPlaying=!1,this.isLoading||this.props.onPause(e)})),p(this,"handleEnded",(()=>{const{activePlayer:e,loop:t,onEnded:r}=this.props;e.loopOnEnded&&t&&this.seekTo(0),t||(this.isPlaying=!1,r())})),p(this,"handleError",((...e)=>{this.isLoading=!1,this.props.onError(...e)})),p(this,"handleDurationCheck",(()=>{clearTimeout(this.durationCheckTimeout);const e=this.getDuration();e?this.onDurationCalled||(this.props.onDuration(e),this.onDurationCalled=!0):this.durationCheckTimeout=setTimeout(this.handleDurationCheck,100)})),p(this,"handleLoaded",(()=>{this.isLoading=!1}))}componentDidMount(){this.mounted=!0}componentWillUnmount(){clearTimeout(this.progressTimeout),clearTimeout(this.durationCheckTimeout),this.isReady&&this.props.stopOnUnmount&&(this.player.stop(),this.player.disablePIP&&this.player.disablePIP()),this.mounted=!1}componentDidUpdate(e){if(!this.player)return;const{url:t,playing:r,volume:n,muted:a,playbackRate:o,pip:i,loop:l,activePlayer:s,disableDeferredLoading:u}=this.props;if(!(0,f.default)(e.url,t)){if(this.isLoading&&!s.forceLoad&&!u&&!(0,b.isMediaStream)(t))return console.warn(`ReactPlayer: the attempt to load ${t} is being deferred until the player has loaded`),void(this.loadOnReady=t);this.isLoading=!0,this.startOnPlay=!0,this.onDurationCalled=!1,this.player.load(t,this.isReady)}e.playing||!r||this.isPlaying||this.player.play(),e.playing&&!r&&this.isPlaying&&this.player.pause(),!e.pip&&i&&this.player.enablePIP&&this.player.enablePIP(),e.pip&&!i&&this.player.disablePIP&&this.player.disablePIP(),e.volume!==n&&null!==n&&this.player.setVolume(n),e.muted!==a&&(a?this.player.mute():(this.player.unmute(),null!==n&&setTimeout((()=>this.player.setVolume(n))))),e.playbackRate!==o&&this.player.setPlaybackRate&&this.player.setPlaybackRate(o),e.loop!==l&&this.player.setLoop&&this.player.setLoop(l)}getDuration(){return this.isReady?this.player.getDuration():null}getCurrentTime(){return this.isReady?this.player.getCurrentTime():null}getSecondsLoaded(){return this.isReady?this.player.getSecondsLoaded():null}seekTo(e,t,r){if(!this.isReady)return void(0!==e&&(this.seekOnPlay=e,setTimeout((()=>{this.seekOnPlay=null}),5e3)));if(t?"fraction"===t:e>0&&e<1){const t=this.player.getDuration();return t?void this.player.seekTo(t*e,r):void console.warn("ReactPlayer: could not seek using fraction \u2013\xa0duration not yet available")}this.player.seekTo(e,r)}render(){const e=this.props.activePlayer;return e?h.default.createElement(e,{...this.props,onMount:this.handlePlayerMount,onReady:this.handleReady,onPlay:this.handlePlay,onPause:this.handlePause,onEnded:this.handleEnded,onLoaded:this.handleLoaded,onError:this.handleError}):null}}p(P,"displayName","Player"),p(P,"propTypes",m.propTypes),p(P,"defaultProps",m.defaultProps)},52452:(e,t,r)=>{var n,a=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,s=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,c=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of l(t))u.call(e,a)||a===r||o(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},d=(e,t,r)=>(r=null!=e?a(s(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)),p=(e,t,r)=>(((e,t,r)=>{t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r),y={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(y,{createReactPlayer:()=>S}),e.exports=(n=y,c(o({},"__esModule",{value:!0}),n));var h=d(r(27378)),f=d(r(21857)),m=d(r(56583)),b=d(r(54335)),P=r(48416),g=r(43887),w=d(r(29448));const v=(0,h.lazy)((()=>r.e(7664).then(r.t.bind(r,76148,23)))),O="undefined"!=typeof window&&window.document,k=void 0!==r.g&&r.g.window&&r.g.window.document,_=Object.keys(P.propTypes),j=O||k?h.Suspense:()=>null,T=[],S=(e,t)=>{var r;return r=class extends h.Component{constructor(){super(...arguments),p(this,"state",{showPreview:!!this.props.light}),p(this,"references",{wrapper:e=>{this.wrapper=e},player:e=>{this.player=e}}),p(this,"handleClickPreview",(e=>{this.setState({showPreview:!1}),this.props.onClickPreview(e)})),p(this,"showPreview",(()=>{this.setState({showPreview:!0})})),p(this,"getDuration",(()=>this.player?this.player.getDuration():null)),p(this,"getCurrentTime",(()=>this.player?this.player.getCurrentTime():null)),p(this,"getSecondsLoaded",(()=>this.player?this.player.getSecondsLoaded():null)),p(this,"getInternalPlayer",((e="player")=>this.player?this.player.getInternalPlayer(e):null)),p(this,"seekTo",((e,t,r)=>{if(!this.player)return null;this.player.seekTo(e,t,r)})),p(this,"handleReady",(()=>{this.props.onReady(this)})),p(this,"getActivePlayer",(0,m.default)((r=>{for(const t of[...T,...e])if(t.canPlay(r))return t;return t||null}))),p(this,"getConfig",(0,m.default)(((e,t)=>{const{config:r}=this.props;return f.default.all([P.defaultProps.config,P.defaultProps.config[t]||{},r,r[t]||{}])}))),p(this,"getAttributes",(0,m.default)((e=>(0,g.omit)(this.props,_)))),p(this,"renderActivePlayer",(e=>{if(!e)return null;const t=this.getActivePlayer(e);if(!t)return null;const r=this.getConfig(e,t.key);return h.default.createElement(w.default,{...this.props,key:t.key,ref:this.references.player,config:r,activePlayer:t.lazyPlayer||t,onReady:this.handleReady})}))}shouldComponentUpdate(e,t){return!(0,b.default)(this.props,e)||!(0,b.default)(this.state,t)}componentDidUpdate(e){const{light:t}=this.props;!e.light&&t&&this.setState({showPreview:!0}),e.light&&!t&&this.setState({showPreview:!1})}renderPreview(e){if(!e)return null;const{light:t,playIcon:r,previewTabIndex:n,oEmbedUrl:a}=this.props;return h.default.createElement(v,{url:e,light:t,playIcon:r,previewTabIndex:n,oEmbedUrl:a,onClick:this.handleClickPreview})}render(){const{url:e,style:t,width:r,height:n,fallback:a,wrapper:o}=this.props,{showPreview:i}=this.state,l=this.getAttributes(e),s="string"==typeof o?this.references.wrapper:void 0;return h.default.createElement(o,{ref:s,style:{...t,width:r,height:n},...l},h.default.createElement(j,{fallback:a},i?this.renderPreview(e):this.renderActivePlayer(e)))}},p(r,"displayName","ReactPlayer"),p(r,"propTypes",P.propTypes),p(r,"defaultProps",P.defaultProps),p(r,"addCustomPlayer",(e=>{T.push(e)})),p(r,"removeCustomPlayers",(()=>{T.length=0})),p(r,"canPlay",(t=>{for(const r of[...T,...e])if(r.canPlay(t))return!0;return!1})),p(r,"canEnablePIP",(t=>{for(const r of[...T,...e])if(r.canEnablePIP&&r.canEnablePIP(t))return!0;return!1})),r}},92975:(e,t,r)=>{var n,a=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,s=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,c=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of l(t))u.call(e,a)||a===r||o(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},d={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(d,{default:()=>f}),e.exports=(n=d,c(o({},"__esModule",{value:!0}),n));var p=((e,t,r)=>(r=null!=e?a(s(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)))(r(74985)),y=r(52452);const h=p.default[p.default.length-1];var f=(0,y.createReactPlayer)(p.default,h)},62773:(e,t,r)=>{var n,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,l=Object.prototype.hasOwnProperty,s={};((e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})})(s,{AUDIO_EXTENSIONS:()=>k,DASH_EXTENSIONS:()=>T,FLV_EXTENSIONS:()=>S,HLS_EXTENSIONS:()=>j,MATCH_URL_DAILYMOTION:()=>g,MATCH_URL_FACEBOOK:()=>y,MATCH_URL_FACEBOOK_WATCH:()=>h,MATCH_URL_KALTURA:()=>O,MATCH_URL_MIXCLOUD:()=>w,MATCH_URL_SOUNDCLOUD:()=>d,MATCH_URL_STREAMABLE:()=>f,MATCH_URL_TWITCH_CHANNEL:()=>P,MATCH_URL_TWITCH_VIDEO:()=>b,MATCH_URL_VIDYARD:()=>v,MATCH_URL_VIMEO:()=>p,MATCH_URL_WISTIA:()=>m,MATCH_URL_YOUTUBE:()=>c,VIDEO_EXTENSIONS:()=>_,canPlay:()=>C}),e.exports=(n=s,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))l.call(e,s)||s===r||a(e,s,{get:()=>t[s],enumerable:!(n=o(t,s))||n.enumerable});return e})(a({},"__esModule",{value:!0}),n));var u=r(43887);const c=/(?:youtu\.be\/|youtube(?:-nocookie|education)?\.com\/(?:embed\/|v\/|watch\/|watch\?v=|watch\?.+&v=|shorts\/|live\/))((\w|-){11})|youtube\.com\/playlist\?list=|youtube\.com\/user\//,d=/(?:soundcloud\.com|snd\.sc)\/[^.]+$/,p=/vimeo\.com\/(?!progressive_redirect).+/,y=/^https?:\/\/(www\.)?facebook\.com.*\/(video(s)?|watch|story)(\.php?|\/).+$/,h=/^https?:\/\/fb\.watch\/.+$/,f=/streamable\.com\/([a-z0-9]+)$/,m=/(?:wistia\.(?:com|net)|wi\.st)\/(?:medias|embed)\/(?:iframe\/)?([^?]+)/,b=/(?:www\.|go\.)?twitch\.tv\/videos\/(\d+)($|\?)/,P=/(?:www\.|go\.)?twitch\.tv\/([a-zA-Z0-9_]+)($|\?)/,g=/^(?:(?:https?):)?(?:\/\/)?(?:www\.)?(?:(?:dailymotion\.com(?:\/embed)?\/video)|dai\.ly)\/([a-zA-Z0-9]+)(?:_[\w_-]+)?(?:[\w.#_-]+)?/,w=/mixcloud\.com\/([^/]+\/[^/]+)/,v=/vidyard.com\/(?:watch\/)?([a-zA-Z0-9-_]+)/,O=/^https?:\/\/[a-zA-Z]+\.kaltura.(com|org)\/p\/([0-9]+)\/sp\/([0-9]+)00\/embedIframeJs\/uiconf_id\/([0-9]+)\/partner_id\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_].*)$/,k=/\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\?)/i,_=/\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\d+]+)?($|\?)/i,j=/\.(m3u8)($|\?)/i,T=/\.(mpd)($|\?)/i,S=/\.(flv)($|\?)/i,E=e=>{if(e instanceof Array){for(const t of e){if("string"==typeof t&&E(t))return!0;if(E(t.src))return!0}return!1}return!(!(0,u.isMediaStream)(e)&&!(0,u.isBlobUrl)(e))||(k.test(e)||_.test(e)||j.test(e)||T.test(e)||S.test(e))},C={youtube:e=>e instanceof Array?e.every((e=>c.test(e))):c.test(e),soundcloud:e=>d.test(e)&&!k.test(e),vimeo:e=>p.test(e)&&!_.test(e)&&!j.test(e),facebook:e=>y.test(e)||h.test(e),streamable:e=>f.test(e),wistia:e=>m.test(e),twitch:e=>b.test(e)||P.test(e),dailymotion:e=>g.test(e),mixcloud:e=>w.test(e),vidyard:e=>v.test(e),kaltura:e=>O.test(e),file:E}},74985:(e,t,r)=>{Object.create;var n,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,l=(Object.getPrototypeOf,Object.prototype.hasOwnProperty),s=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))l.call(e,s)||s===r||a(e,s,{get:()=>t[s],enumerable:!(n=o(t,s))||n.enumerable});return e},u={};((e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})})(u,{default:()=>y}),e.exports=(n=u,s(a({},"__esModule",{value:!0}),n));var c=r(27378),d=r(43887),p=r(62773),y=[{key:"youtube",name:"YouTube",canPlay:p.canPlay.youtube,lazyPlayer:(0,c.lazy)((()=>r.e(4439).then(r.t.bind(r,38144,23))))},{key:"soundcloud",name:"SoundCloud",canPlay:p.canPlay.soundcloud,lazyPlayer:(0,c.lazy)((()=>r.e(6125).then(r.t.bind(r,54992,23))))},{key:"vimeo",name:"Vimeo",canPlay:p.canPlay.vimeo,lazyPlayer:(0,c.lazy)((()=>r.e(3743).then(r.t.bind(r,81251,23))))},{key:"facebook",name:"Facebook",canPlay:p.canPlay.facebook,lazyPlayer:(0,c.lazy)((()=>r.e(2121).then(r.t.bind(r,76765,23))))},{key:"streamable",name:"Streamable",canPlay:p.canPlay.streamable,lazyPlayer:(0,c.lazy)((()=>r.e(2546).then(r.t.bind(r,5876,23))))},{key:"wistia",name:"Wistia",canPlay:p.canPlay.wistia,lazyPlayer:(0,c.lazy)((()=>r.e(8055).then(r.t.bind(r,2521,23))))},{key:"twitch",name:"Twitch",canPlay:p.canPlay.twitch,lazyPlayer:(0,c.lazy)((()=>r.e(6216).then(r.t.bind(r,67964,23))))},{key:"dailymotion",name:"DailyMotion",canPlay:p.canPlay.dailymotion,lazyPlayer:(0,c.lazy)((()=>r.e(7596).then(r.t.bind(r,4922,23))))},{key:"mixcloud",name:"Mixcloud",canPlay:p.canPlay.mixcloud,lazyPlayer:(0,c.lazy)((()=>r.e(4667).then(r.t.bind(r,31241,23))))},{key:"vidyard",name:"Vidyard",canPlay:p.canPlay.vidyard,lazyPlayer:(0,c.lazy)((()=>r.e(8888).then(r.t.bind(r,57473,23))))},{key:"kaltura",name:"Kaltura",canPlay:p.canPlay.kaltura,lazyPlayer:(0,c.lazy)((()=>r.e(261).then(r.t.bind(r,7248,23))))},{key:"file",name:"FilePlayer",canPlay:p.canPlay.file,canEnablePIP:e=>p.canPlay.file(e)&&(document.pictureInPictureEnabled||(0,d.supportsWebKitPresentationMode)())&&!p.AUDIO_EXTENSIONS.test(e),lazyPlayer:(0,c.lazy)((()=>r.e(6011).then(r.t.bind(r,98450,23))))}]},48416:(e,t,r)=>{var n,a=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,s=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,c=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of l(t))u.call(e,a)||a===r||o(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},d={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(d,{defaultProps:()=>_,propTypes:()=>O}),e.exports=(n=d,c(o({},"__esModule",{value:!0}),n));var p=((e,t,r)=>(r=null!=e?a(s(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)))(r(23615));const{string:y,bool:h,number:f,array:m,oneOfType:b,shape:P,object:g,func:w,node:v}=p.default,O={url:b([y,m,g]),playing:h,loop:h,controls:h,volume:f,muted:h,playbackRate:f,width:b([y,f]),height:b([y,f]),style:g,progressInterval:f,playsinline:h,pip:h,stopOnUnmount:h,light:b([h,y,g]),playIcon:v,previewTabIndex:f,fallback:v,oEmbedUrl:y,wrapper:b([y,w,P({render:w.isRequired})]),config:P({soundcloud:P({options:g}),youtube:P({playerVars:g,embedOptions:g,onUnstarted:w}),facebook:P({appId:y,version:y,playerId:y,attributes:g}),dailymotion:P({params:g}),vimeo:P({playerOptions:g,title:y}),file:P({attributes:g,tracks:m,forceVideo:h,forceAudio:h,forceHLS:h,forceSafariHLS:h,forceDisableHls:h,forceDASH:h,forceFLV:h,hlsOptions:g,hlsVersion:y,dashVersion:y,flvVersion:y}),wistia:P({options:g,playerId:y,customControls:m}),mixcloud:P({options:g}),twitch:P({options:g,playerId:y}),vidyard:P({options:g})}),onReady:w,onStart:w,onPlay:w,onPause:w,onBuffer:w,onBufferEnd:w,onEnded:w,onError:w,onDuration:w,onSeek:w,onPlaybackRateChange:w,onPlaybackQualityChange:w,onProgress:w,onClickPreview:w,onEnablePIP:w,onDisablePIP:w},k=()=>{},_={playing:!1,loop:!1,controls:!1,volume:null,muted:!1,playbackRate:1,width:"640px",height:"360px",style:{},progressInterval:1e3,playsinline:!1,pip:!1,stopOnUnmount:!0,light:!1,fallback:null,wrapper:"div",previewTabIndex:0,oEmbedUrl:"https://noembed.com/embed?url={url}",config:{soundcloud:{options:{visual:!0,buying:!1,liking:!1,download:!1,sharing:!1,show_comments:!1,show_playcount:!1}},youtube:{playerVars:{playsinline:1,showinfo:0,rel:0,iv_load_policy:3,modestbranding:1},embedOptions:{},onUnstarted:k},facebook:{appId:"1309697205772819",version:"v3.3",playerId:null,attributes:{}},dailymotion:{params:{api:1,"endscreen-enable":!1}},vimeo:{playerOptions:{autopause:!1,byline:!1,portrait:!1,title:!1},title:null},file:{attributes:{},tracks:[],forceVideo:!1,forceAudio:!1,forceHLS:!1,forceDASH:!1,forceFLV:!1,hlsOptions:{},hlsVersion:"1.1.4",dashVersion:"3.1.3",flvVersion:"1.5.0",forceDisableHls:!1},wistia:{options:{},playerId:null,customControls:null},mixcloud:{options:{hide_cover:1}},twitch:{options:{},playerId:null},vidyard:{options:{}}},onReady:k,onStart:k,onPlay:k,onPause:k,onBuffer:k,onBufferEnd:k,onEnded:k,onError:k,onDuration:k,onSeek:k,onPlaybackRateChange:k,onPlaybackQualityChange:k,onProgress:k,onClickPreview:k,onEnablePIP:k,onDisablePIP:k}},43887:(e,t,r)=>{var n,a=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,s=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,c=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of l(t))u.call(e,a)||a===r||o(e,a,{get:()=>t[a],enumerable:!(n=i(t,a))||n.enumerable});return e},d=(e,t,r)=>(r=null!=e?a(s(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)),p={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(p,{callPlayer:()=>C,getConfig:()=>S,getSDK:()=>T,isBlobUrl:()=>R,isMediaStream:()=>I,omit:()=>E,parseEndTime:()=>v,parseStartTime:()=>w,queryString:()=>k,randomString:()=>O,supportsWebKitPresentationMode:()=>M}),e.exports=(n=p,c(o({},"__esModule",{value:!0}),n));var y=d(r(1204)),h=d(r(21857));const f=/[?&#](?:start|t)=([0-9hms]+)/,m=/[?&#]end=([0-9hms]+)/,b=/(\d+)(h|m|s)/g,P=/^\d+$/;function g(e,t){if(e instanceof Array)return;const r=e.match(t);if(r){const e=r[1];if(e.match(b))return function(e){let t=0,r=b.exec(e);for(;null!==r;){const[,n,a]=r;"h"===a&&(t+=60*parseInt(n,10)*60),"m"===a&&(t+=60*parseInt(n,10)),"s"===a&&(t+=parseInt(n,10)),r=b.exec(e)}return t}(e);if(P.test(e))return parseInt(e)}}function w(e){return g(e,f)}function v(e){return g(e,m)}function O(){return Math.random().toString(36).substr(2,5)}function k(e){return Object.keys(e).map((t=>`${t}=${e[t]}`)).join("&")}function _(e){return window[e]?window[e]:window.exports&&window.exports[e]?window.exports[e]:window.module&&window.module.exports&&window.module.exports[e]?window.module.exports[e]:null}const j={},T=function(e){0;return e}((function(e,t,r=null,n=(()=>!0),a=y.default){const o=_(t);return o&&n(o)?Promise.resolve(o):new Promise(((n,o)=>{if(j[e])return void j[e].push({resolve:n,reject:o});j[e]=[{resolve:n,reject:o}];const i=t=>{j[e].forEach((e=>e.resolve(t)))};if(r){const e=window[r];window[r]=function(){e&&e(),i(_(t))}}a(e,(n=>{n?(j[e].forEach((e=>e.reject(n))),j[e]=null):r||i(_(t))}))}))}));function S(e,t){return(0,h.default)(t.config,e.config)}function E(e,...t){const r=[].concat(...t),n={},a=Object.keys(e);for(const o of a)-1===r.indexOf(o)&&(n[o]=e[o]);return n}function C(e,...t){if(!this.player||!this.player[e]){let t=`ReactPlayer: ${this.constructor.displayName} player could not call %c${e}%c \u2013 `;return this.player?this.player[e]||(t+="The method was not available"):t+="The player was not available",console.warn(t,"font-weight: bold",""),null}return this.player[e](...t)}function I(e){return"undefined"!=typeof window&&void 0!==window.MediaStream&&e instanceof window.MediaStream}function R(e){return/^blob:/.test(e)}function M(e=document.createElement("video")){const t=!1===/iPhone|iPod/.test(navigator.userAgent);return e.webkitSupportsPresentationMode&&"function"==typeof e.webkitSetPresentationMode&&t}},71670:(e,t,r)=>{"use strict";r.d(t,{Z:()=>l,a:()=>i});var n=r(27378);const a={},o=n.createContext(a);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5628.bd9d7a73.js b/assets/js/5628.bd9d7a73.js deleted file mode 100644 index 9cd59b35a52..00000000000 --- a/assets/js/5628.bd9d7a73.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5628],{21857:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)};var r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(e,t){return!1!==t.clone&&t.isMergeableObject(e)?l((r=e,Array.isArray(r)?[]:{}),e,t):e;var r}function o(e,t,r){return e.concat(t).map((function(e){return n(e,r)}))}function a(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function i(e,t){try{return t in e}catch(r){return!1}}function u(e,t,r){var o={};return r.isMergeableObject(e)&&a(e).forEach((function(t){o[t]=n(e[t],r)})),a(t).forEach((function(a){(function(e,t){return i(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,a)||(i(e,a)&&r.isMergeableObject(t[a])?o[a]=function(e,t){if(!t.customMerge)return l;var r=t.customMerge(e);return"function"==typeof r?r:l}(a,r)(e[a],t[a],r):o[a]=n(t[a],r))})),o}function l(e,r,a){(a=a||{}).arrayMerge=a.arrayMerge||o,a.isMergeableObject=a.isMergeableObject||t,a.cloneUnlessOtherwiseSpecified=n;var i=Array.isArray(r);return i===Array.isArray(e)?i?a.arrayMerge(e,r,a):u(e,r,a):n(r,a)}l.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,r){return l(e,r,t)}),{})};var c=l;e.exports=c},1204:e=>{function t(e,t){e.onload=function(){this.onerror=this.onload=null,t(null,e)},e.onerror=function(){this.onerror=this.onload=null,t(new Error("Failed to load "+this.src),e)}}function r(e,t){e.onreadystatechange=function(){"complete"!=this.readyState&&"loaded"!=this.readyState||(this.onreadystatechange=null,t(null,e))}}e.exports=function(e,n,o){var a=document.head||document.getElementsByTagName("head")[0],i=document.createElement("script");"function"==typeof n&&(o=n,n={}),n=n||{},o=o||function(){},i.type=n.type||"text/javascript",i.charset=n.charset||"utf8",i.async=!("async"in n)||!!n.async,i.src=e,n.attrs&&function(e,t){for(var r in t)e.setAttribute(r,t[r])}(i,n.attrs),n.text&&(i.text=""+n.text),("onload"in i?t:r)(i,o),i.onload||t(i,o),a.appendChild(i)}},56583:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});var n=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function o(e,t){if(e.length!==t.length)return!1;for(var r=0;r{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o,a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(27378)),i=(o=r(54335))&&o.__esModule?o:{default:o},u=r(48416),l=r(43887);function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function s(){return s=Object.assign||function(e){for(var t=1;t0&&e<1){var o=this.player.getDuration();return o?void this.player.seekTo(o*e,r):void console.warn("ReactPlayer: could not seek using fraction \u2013\xa0duration not yet available")}this.player.seekTo(e,r)}else 0!==e&&(this.seekOnPlay=e,setTimeout((function(){n.seekOnPlay=null}),5e3))}},{key:"render",value:function(){var e=this.props.activePlayer;return e?a.default.createElement(e,s({},this.props,{onMount:this.handlePlayerMount,onReady:this.handleReady,onPlay:this.handlePlay,onPause:this.handlePause,onEnded:this.handleEnded,onLoaded:this.handleLoaded,onError:this.handleError})):null}}],r&&f(t.prototype,r),n&&f(t,n),u}(a.Component);t.default=v,b(v,"displayName","Player"),b(v,"propTypes",u.propTypes),b(v,"defaultProps",u.defaultProps)},76148:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=a();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var u=o?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(r,i,u):r[i]=e[i]}r.default=e,t&&t.set(e,r);return r}(r(27378));function a(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return a=function(){return e},e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createReactPlayer=void 0;var n=k(r(27378)),o=s(r(21857)),a=s(r(56583)),i=s(r(54335)),u=r(48416),l=r(43887),c=s(r(29448));function s(e){return e&&e.__esModule?e:{default:e}}function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function y(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&void 0!==arguments[0]?arguments[0]:"player";return r.player?r.player.getInternalPlayer(e):null})),w(g(r),"seekTo",(function(e,t,n){if(!r.player)return null;r.player.seekTo(e,t,n)})),w(g(r),"handleReady",(function(){r.props.onReady(g(r))})),w(g(r),"getActivePlayer",(0,a.default)((function(r){for(var n=0,o=[].concat(T,h(e));n{"use strict";t.Z=void 0;var n,o=(n=r(74985))&&n.__esModule?n:{default:n},a=r(52452);var i=o.default[o.default.length-1],u=(0,a.createReactPlayer)(o.default,i);t.Z=u},62773:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.canPlay=t.FLV_EXTENSIONS=t.DASH_EXTENSIONS=t.HLS_EXTENSIONS=t.VIDEO_EXTENSIONS=t.AUDIO_EXTENSIONS=t.MATCH_URL_KALTURA=t.MATCH_URL_VIDYARD=t.MATCH_URL_MIXCLOUD=t.MATCH_URL_DAILYMOTION=t.MATCH_URL_TWITCH_CHANNEL=t.MATCH_URL_TWITCH_VIDEO=t.MATCH_URL_WISTIA=t.MATCH_URL_STREAMABLE=t.MATCH_URL_FACEBOOK_WATCH=t.MATCH_URL_FACEBOOK=t.MATCH_URL_VIMEO=t.MATCH_URL_SOUNDCLOUD=t.MATCH_URL_YOUTUBE=void 0;var n=r(43887);function o(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,l=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return u=e.done,e},e:function(e){l=!0,i=e},f:function(){try{u||null==r.return||r.return()}finally{if(l)throw i}}}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(27378)),a=r(43887),i=r(62773);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&void 0!==arguments[1])||arguments[1];this.callPlayer("seek",e),t||this.pause()}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",e)}},{key:"getDuration",value:function(){return this.player.duration||null}},{key:"getCurrentTime",value:function(){return this.player.currentTime}},{key:"getSecondsLoaded",value:function(){return this.player.bufferedTime}},{key:"render",value:function(){var e={width:"100%",height:"100%",display:this.props.display};return o.default.createElement("div",{style:e},o.default.createElement("div",{ref:this.ref}))}}],r&&p(t.prototype,r),n&&p(t,n),l}(o.Component);t.default=m,v(m,"displayName","DailyMotion"),v(m,"canPlay",i.canPlay.dailymotion),v(m,"loopOnEnded",!0)},76765:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(27378)),a=r(43887),i=r(62773);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(){return l=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1])||arguments[1];this.callPlayer("seek",e),t||this.pause()}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",e)}},{key:"getDuration",value:function(){return this.callPlayer("getDuration")}},{key:"getCurrentTime",value:function(){return this.callPlayer("getCurrentPosition")}},{key:"getSecondsLoaded",value:function(){return null}},{key:"render",value:function(){var e=this.props.config.attributes;return o.default.createElement("div",l({style:{width:"100%",height:"100%"},id:this.playerID,className:"fb-video","data-href":this.props.url,"data-autoplay":this.props.playing?"true":"false","data-allowfullscreen":"true","data-controls":this.props.controls?"true":"false"},e))}}],r&&c(t.prototype,r),n&&c(t,n),u}(o.Component);t.default=v,d(v,"displayName","Facebook"),d(v,"canPlay",i.canPlay.facebook),d(v,"loopOnEnded",!0)},98450:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(27378)),a=r(43887),i=r(62773);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(){return l=Object.assign||function(e){for(var t=1;t1,v=h&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||b)&&!window.MSStream,m=h&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent)&&!window.MSStream,P=/www\.dropbox\.com\/.+/,g=/https:\/\/watch\.cloudflarestream\.com\/([a-z0-9]+)/,O=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(y,e);var t,r,n,u=f(y);function y(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,y);for(var t=arguments.length,r=new Array(t),n=0;n1&&void 0!==arguments[1])||arguments[1];this.player.currentTime=e,t||this.pause()}},{key:"setVolume",value:function(e){this.player.volume=e}},{key:"enablePIP",value:function(){this.player.requestPictureInPicture&&document.pictureInPictureElement!==this.player?this.player.requestPictureInPicture():(0,a.supportsWebKitPresentationMode)(this.player)&&"picture-in-picture"!==this.player.webkitPresentationMode&&this.player.webkitSetPresentationMode("picture-in-picture")}},{key:"disablePIP",value:function(){document.exitPictureInPicture&&document.pictureInPictureElement===this.player?document.exitPictureInPicture():(0,a.supportsWebKitPresentationMode)(this.player)&&"inline"!==this.player.webkitPresentationMode&&this.player.webkitSetPresentationMode("inline")}},{key:"setPlaybackRate",value:function(e){try{this.player.playbackRate=e}catch(t){this.props.onError(t)}}},{key:"getDuration",value:function(){if(!this.player)return null;var e=this.player,t=e.duration,r=e.seekable;return t===1/0&&r.length>0?r.end(r.length-1):t}},{key:"getCurrentTime",value:function(){return this.player?this.player.currentTime:null}},{key:"getSecondsLoaded",value:function(){if(!this.player)return null;var e=this.player.buffered;if(0===e.length)return 0;var t=e.end(e.length-1),r=this.getDuration();return t>r?r:t}},{key:"getSource",value:function(e){var t=this.shouldUseHLS(e),r=this.shouldUseDASH(e),n=this.shouldUseFLV(e);if(!(e instanceof Array||(0,a.isMediaStream)(e)||t||r||n))return P.test(e)?e.replace("www.dropbox.com","dl.dropboxusercontent.com"):e}},{key:"render",value:function(){var e=this.props,t=e.url,r=e.playing,n=e.loop,a=e.controls,i=e.muted,u=e.config,c=e.width,s=e.height,f=this.shouldUseAudio(this.props)?"audio":"video",p={width:"auto"===c?c:"100%",height:"auto"===s?s:"100%"};return o.default.createElement(f,l({ref:this.ref,src:this.getSource(t),style:p,preload:"auto",autoPlay:r||void 0,controls:a,muted:i,loop:n},u.attributes),t instanceof Array&&t.map(this.renderSourceElement),u.tracks.map(this.renderTrack))}}],r&&c(t.prototype,r),n&&c(t,n),y}(o.Component);t.default=O,d(O,"displayName","FilePlayer"),d(O,"canPlay",i.canPlay.file)},7248:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(27378)),a=r(43887),i=r(62773);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){for(var r=0;r1&&void 0!==arguments[1])||arguments[1];this.callPlayer("setCurrentTime",e),t||this.pause()}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",e)}},{key:"setLoop",value:function(e){this.callPlayer("setLoop",e)}},{key:"getDuration",value:function(){return this.duration}},{key:"getCurrentTime",value:function(){return this.currentTime}},{key:"getSecondsLoaded",value:function(){return this.secondsLoaded}},{key:"render",value:function(){return o.default.createElement("iframe",{ref:this.ref,src:this.props.url,frameBorder:"0",scrolling:"no",style:{width:"100%",height:"100%"},allow:"encrypted-media; autoplay; fullscreen;",referrerPolicy:"no-referrer-when-downgrade"})}}],r&&l(t.prototype,r),n&&l(t,n),u}(o.Component);t.default=d,y(d,"displayName","Kaltura"),y(d,"canPlay",i.canPlay.kaltura)},31241:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(27378)),a=r(43887),i=r(62773);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t1&&void 0!==arguments[1])||arguments[1];this.callPlayer("seek",e),t||this.pause()}},{key:"setVolume",value:function(e){}},{key:"getDuration",value:function(){return this.duration}},{key:"getCurrentTime",value:function(){return this.currentTime}},{key:"getSecondsLoaded",value:function(){return null}},{key:"render",value:function(){var e=this.props,t=e.url,r=e.config,n=t.match(i.MATCH_URL_MIXCLOUD)[1],u=(0,a.queryString)(c(c({},r.options),{},{feed:"/".concat(n,"/")}));return o.default.createElement("iframe",{key:n,ref:this.ref,style:{width:"100%",height:"100%"},src:"https://www.mixcloud.com/widget/iframe/?".concat(u),frameBorder:"0",allow:"autoplay"})}}],r&&s(t.prototype,r),n&&s(t,n),l}(o.Component);t.default=b,h(b,"displayName","Mixcloud"),h(b,"canPlay",i.canPlay.mixcloud),h(b,"loopOnEnded",!0)},54992:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(27378)),a=r(43887),i=r(62773);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t1&&void 0!==arguments[1])||arguments[1];this.callPlayer("seekTo",1e3*e),t||this.pause()}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",100*e)}},{key:"getDuration",value:function(){return this.duration}},{key:"getCurrentTime",value:function(){return this.currentTime}},{key:"getSecondsLoaded",value:function(){return this.fractionLoaded*this.duration}},{key:"render",value:function(){var e={width:"100%",height:"100%",display:this.props.display};return o.default.createElement("iframe",{ref:this.ref,src:"https://w.soundcloud.com/player/?url=".concat(encodeURIComponent(this.props.url)),style:e,frameBorder:0,allow:"autoplay"})}}],r&&s(t.prototype,r),n&&s(t,n),u}(o.Component);t.default=b,h(b,"displayName","SoundCloud"),h(b,"canPlay",i.canPlay.soundcloud),h(b,"loopOnEnded",!0)},5876:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(27378)),a=r(43887),i=r(62773);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){for(var r=0;r1&&void 0!==arguments[1])||arguments[1];this.callPlayer("setCurrentTime",e),t||this.pause()}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",100*e)}},{key:"setLoop",value:function(e){this.callPlayer("setLoop",e)}},{key:"getDuration",value:function(){return this.duration}},{key:"getCurrentTime",value:function(){return this.currentTime}},{key:"getSecondsLoaded",value:function(){return this.secondsLoaded}},{key:"render",value:function(){var e=this.props.url.match(i.MATCH_URL_STREAMABLE)[1];return o.default.createElement("iframe",{ref:this.ref,src:"https://streamable.com/o/".concat(e),frameBorder:"0",scrolling:"no",style:{width:"100%",height:"100%"},allow:"encrypted-media; autoplay; fullscreen;"})}}],r&&l(t.prototype,r),n&&l(t,n),p}(o.Component);t.default=d,y(d,"displayName","Streamable"),y(d,"canPlay",i.canPlay.streamable)},67964:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(27378)),a=r(43887),i=r(62773);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e,t){for(var r=0;r1&&void 0!==arguments[1])||arguments[1];this.callPlayer("seek",e),t||this.pause()}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",e)}},{key:"getDuration",value:function(){return this.callPlayer("getDuration")}},{key:"getCurrentTime",value:function(){return this.callPlayer("getCurrentTime")}},{key:"getSecondsLoaded",value:function(){return null}},{key:"render",value:function(){return o.default.createElement("div",{style:{width:"100%",height:"100%"},id:this.playerID})}}],r&&c(t.prototype,r),n&&c(t,n),y}(o.Component);t.default=h,d(h,"displayName","Twitch"),d(h,"canPlay",i.canPlay.twitch),d(h,"loopOnEnded",!0)},57473:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(27378)),a=r(43887),i=r(62773);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e,t){for(var r=0;r1&&void 0!==arguments[1])||arguments[1];this.callPlayer("seek",e),t||this.pause()}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",e)}},{key:"setPlaybackRate",value:function(e){this.callPlayer("setPlaybackSpeed",e)}},{key:"getDuration",value:function(){return this.duration}},{key:"getCurrentTime",value:function(){return this.callPlayer("currentTime")}},{key:"getSecondsLoaded",value:function(){return null}},{key:"render",value:function(){var e={width:"100%",height:"100%",display:this.props.display};return o.default.createElement("div",{style:e},o.default.createElement("div",{ref:this.ref}))}}],r&&c(t.prototype,r),n&&c(t,n),y}(o.Component);t.default=h,d(h,"displayName","Vidyard"),d(h,"canPlay",i.canPlay.vidyard)},81251:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(27378)),a=r(43887),i=r(62773);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e,t){for(var r=0;r1&&void 0!==arguments[1])||arguments[1];this.callPlayer("setCurrentTime",e),t||this.pause()}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",e)}},{key:"setMuted",value:function(e){this.callPlayer("setMuted",e)}},{key:"setLoop",value:function(e){this.callPlayer("setLoop",e)}},{key:"setPlaybackRate",value:function(e){this.callPlayer("setPlaybackRate",e)}},{key:"getDuration",value:function(){return this.duration}},{key:"getCurrentTime",value:function(){return this.currentTime}},{key:"getSecondsLoaded",value:function(){return this.secondsLoaded}},{key:"render",value:function(){var e={width:"100%",height:"100%",overflow:"hidden",display:this.props.display};return o.default.createElement("div",{key:this.props.url,ref:this.ref,style:e})}}],r&&c(t.prototype,r),n&&c(t,n),u}(o.Component);t.default=b,d(b,"displayName","Vimeo"),d(b,"canPlay",i.canPlay.vimeo),d(b,"forceLoad",!0)},2521:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(27378)),a=r(43887),i=r(62773);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t1&&void 0!==arguments[1])||arguments[1];this.callPlayer("time",e),t||this.pause()}},{key:"setVolume",value:function(e){this.callPlayer("volume",e)}},{key:"setPlaybackRate",value:function(e){this.callPlayer("playbackRate",e)}},{key:"getDuration",value:function(){return this.callPlayer("duration")}},{key:"getCurrentTime",value:function(){return this.callPlayer("time")}},{key:"getSecondsLoaded",value:function(){return null}},{key:"render",value:function(){var e=this.props.url,t=e&&e.match(i.MATCH_URL_WISTIA)[1],r="wistia_embed wistia_async_".concat(t);return o.default.createElement("div",{id:this.playerID,key:t,className:r,style:{width:"100%",height:"100%"}})}}],r&&s(t.prototype,r),n&&s(t,n),l}(o.Component);t.default=b,h(b,"displayName","Wistia"),h(b,"canPlay",i.canPlay.wistia),h(b,"loopOnEnded",!0)},38144:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,t&&t.set(e,r);return r}(r(27378)),a=r(43887),i=r(62773);function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&void 0!==arguments[1]&&arguments[1];this.callPlayer("seekTo",e),t||this.props.playing||this.pause()}},{key:"setVolume",value:function(e){this.callPlayer("setVolume",100*e)}},{key:"setPlaybackRate",value:function(e){this.callPlayer("setPlaybackRate",e)}},{key:"setLoop",value:function(e){this.callPlayer("setLoop",e)}},{key:"getDuration",value:function(){return this.callPlayer("getDuration")}},{key:"getCurrentTime",value:function(){return this.callPlayer("getCurrentTime")}},{key:"getSecondsLoaded",value:function(){return this.callPlayer("getVideoLoadedFraction")*this.getDuration()}},{key:"render",value:function(){var e={width:"100%",height:"100%",display:this.props.display};return o.default.createElement("div",{style:e},o.default.createElement("div",{ref:this.ref}))}}],r&&p(t.prototype,r),n&&p(t,n),l}(o.Component);t.default=O,v(O,"displayName","YouTube"),v(O,"canPlay",i.canPlay.youtube)},74985:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(27378),o=r(43887),a=r(62773);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function l(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}var c=[{key:"youtube",name:"YouTube",canPlay:a.canPlay.youtube,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(38144))}))}))},{key:"soundcloud",name:"SoundCloud",canPlay:a.canPlay.soundcloud,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(54992))}))}))},{key:"vimeo",name:"Vimeo",canPlay:a.canPlay.vimeo,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(81251))}))}))},{key:"facebook",name:"Facebook",canPlay:a.canPlay.facebook,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(76765))}))}))},{key:"streamable",name:"Streamable",canPlay:a.canPlay.streamable,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(5876))}))}))},{key:"wistia",name:"Wistia",canPlay:a.canPlay.wistia,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(2521))}))}))},{key:"twitch",name:"Twitch",canPlay:a.canPlay.twitch,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(67964))}))}))},{key:"dailymotion",name:"DailyMotion",canPlay:a.canPlay.dailymotion,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(4922))}))}))},{key:"mixcloud",name:"Mixcloud",canPlay:a.canPlay.mixcloud,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(31241))}))}))},{key:"vidyard",name:"Vidyard",canPlay:a.canPlay.vidyard,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(57473))}))}))},{key:"kaltura",name:"Kaltura",canPlay:a.canPlay.kaltura,lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(7248))}))}))},{key:"file",name:"FilePlayer",canPlay:a.canPlay.file,canEnablePIP:function(e){return a.canPlay.file(e)&&(document.pictureInPictureEnabled||(0,o.supportsWebKitPresentationMode)())&&!a.AUDIO_EXTENSIONS.test(e)},lazyPlayer:(0,n.lazy)((function(){return Promise.resolve().then((function(){return l(r(98450))}))}))}];t.default=c},48416:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultProps=t.propTypes=void 0;var n,o=(n=r(23615))&&n.__esModule?n:{default:n};var a=o.default.string,i=o.default.bool,u=o.default.number,l=o.default.array,c=o.default.oneOfType,s=o.default.shape,f=o.default.object,p=o.default.func,y=o.default.node,d={url:c([a,l,f]),playing:i,loop:i,controls:i,volume:u,muted:i,playbackRate:u,width:c([a,u]),height:c([a,u]),style:f,progressInterval:u,playsinline:i,pip:i,stopOnUnmount:i,light:c([i,a,f]),playIcon:y,previewTabIndex:u,fallback:y,oEmbedUrl:a,wrapper:c([a,p,s({render:p.isRequired})]),config:s({soundcloud:s({options:f}),youtube:s({playerVars:f,embedOptions:f,onUnstarted:p}),facebook:s({appId:a,version:a,playerId:a,attributes:f}),dailymotion:s({params:f}),vimeo:s({playerOptions:f,title:a}),file:s({attributes:f,tracks:l,forceVideo:i,forceAudio:i,forceHLS:i,forceSafariHLS:i,forceDisableHls:i,forceDASH:i,forceFLV:i,hlsOptions:f,hlsVersion:a,dashVersion:a,flvVersion:a}),wistia:s({options:f,playerId:a,customControls:l}),mixcloud:s({options:f}),twitch:s({options:f,playerId:a}),vidyard:s({options:f})}),onReady:p,onStart:p,onPlay:p,onPause:p,onBuffer:p,onBufferEnd:p,onEnded:p,onError:p,onDuration:p,onSeek:p,onPlaybackRateChange:p,onPlaybackQualityChange:p,onProgress:p,onClickPreview:p,onEnablePIP:p,onDisablePIP:p};t.propTypes=d;var h=function(){},b={playing:!1,loop:!1,controls:!1,volume:null,muted:!1,playbackRate:1,width:"640px",height:"360px",style:{},progressInterval:1e3,playsinline:!1,pip:!1,stopOnUnmount:!0,light:!1,fallback:null,wrapper:"div",previewTabIndex:0,oEmbedUrl:"https://noembed.com/embed?url={url}",config:{soundcloud:{options:{visual:!0,buying:!1,liking:!1,download:!1,sharing:!1,show_comments:!1,show_playcount:!1}},youtube:{playerVars:{playsinline:1,showinfo:0,rel:0,iv_load_policy:3,modestbranding:1},embedOptions:{},onUnstarted:h},facebook:{appId:"1309697205772819",version:"v3.3",playerId:null,attributes:{}},dailymotion:{params:{api:1,"endscreen-enable":!1}},vimeo:{playerOptions:{autopause:!1,byline:!1,portrait:!1,title:!1},title:null},file:{attributes:{},tracks:[],forceVideo:!1,forceAudio:!1,forceHLS:!1,forceDASH:!1,forceFLV:!1,hlsOptions:{},hlsVersion:"1.1.4",dashVersion:"3.1.3",flvVersion:"1.5.0",forceDisableHls:!1},wistia:{options:{},playerId:null,customControls:null},mixcloud:{options:{hide_cover:1}},twitch:{options:{},playerId:null},vidyard:{options:{}}},onReady:h,onStart:h,onPlay:h,onPause:h,onBuffer:h,onBufferEnd:h,onEnded:h,onError:h,onDuration:h,onSeek:h,onPlaybackRateChange:h,onPlaybackQualityChange:h,onProgress:h,onClickPreview:h,onEnablePIP:h,onDisablePIP:h};t.defaultProps=b},43887:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseStartTime=function(e){return p(e,l)},t.parseEndTime=function(e){return p(e,c)},t.randomString=function(){return Math.random().toString(36).substr(2,5)},t.queryString=function(e){return Object.keys(e).map((function(t){return"".concat(t,"=").concat(e[t])})).join("&")},t.getSDK=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){return!0},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:n.default,i=y(t);if(i&&o(i))return Promise.resolve(i);return new Promise((function(n,o){if(d[e])d[e].push({resolve:n,reject:o});else{d[e]=[{resolve:n,reject:o}];var i=function(t){d[e].forEach((function(e){return e.resolve(t)}))};if(r){var u=window[r];window[r]=function(){u&&u(),i(y(t))}}a(e,(function(n){n?(d[e].forEach((function(e){return e.reject(n)})),d[e]=null):r||i(y(t))}))}}))},t.getConfig=function(e,t){return(0,o.default)(t.config,e.config)},t.omit=function(e){for(var t,r=arguments.length,n=new Array(r>1?r-1:0),o=1;o1?n-1:0),a=1;a0&&void 0!==arguments[0]?arguments[0]:document.createElement("video"),t=!1===/iPhone|iPod/.test(navigator.userAgent);return e.webkitSupportsPresentationMode&&"function"==typeof e.webkitSetPresentationMode&&t};var n=a(r(1204)),o=a(r(21857));function a(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,a=void 0;try{for(var i,u=e[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(l){o=!0,a=l}finally{try{n||null==u.return||u.return()}finally{if(o)throw a}}return r}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return u(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{"use strict";r.d(t,{Z:()=>u,a:()=>i});var n=r(27378);const o={},a=n.createContext(o);function i(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function u(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5df556a2.2b7e8a28.js b/assets/js/5df556a2.2b7e8a28.js deleted file mode 100644 index 38b1ecbe043..00000000000 --- a/assets/js/5df556a2.2b7e8a28.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3870],{86489:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>d,default:()=>p,frontMatter:()=>a,metadata:()=>r,toc:()=>h});var t=s(24246),o=s(71670),i=s(92975);const a={title:"Release Notes - Podman Desktop 0.15",description:"Podman Desktop 0.15 has been released!",slug:"podman-desktop-release-0.15",authors:["deboer"],tags:["podman-desktop","release","kubernetes","kind"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-0.15.webp"},d=void 0,r={permalink:"/blog/podman-desktop-release-0.15",source:"@site/blog/2023-05-02-release-0.15.md",title:"Release Notes - Podman Desktop 0.15",description:"Podman Desktop 0.15 has been released!",date:"2023-05-02T00:00:00.000Z",formattedDate:"May 2, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"kind",permalink:"/blog/tags/kind"}],readingTime:3.685,hasTruncateMarker:!0,authors:[{name:"Tim deBoer",title:"Architect",url:"https://github.com/deboer-tim",imageURL:"https://github.com/deboer-tim.png",key:"deboer"}],frontMatter:{title:"Release Notes - Podman Desktop 0.15",description:"Podman Desktop 0.15 has been released!",slug:"podman-desktop-release-0.15",authors:["deboer"],tags:["podman-desktop","release","kubernetes","kind"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-0.15.webp"},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 1.0",permalink:"/blog/podman-desktop-release-1.0"},nextItem:{title:"Setting up and running a Kubernetes cluster locally with Podman Desktop",permalink:"/blog/running-a-local-kubernetes-cluster-with-podman-desktop"}},l={authorsImageUrls:[void 0]},h=[{value:"Release Details",id:"release-details",level:2},{value:"Update to Podman v4.5.O",id:"update-to-podman-v45o",level:3},{value:"Kind Ingress",id:"kind-ingress",level:3},{value:"Podliness: Ability to Choose External Ports when Podifying Containers",id:"podliness-ability-to-choose-external-ports-when-podifying-containers",level:3},{value:"Cleanliness: New Navigation Bar, Dialogs, and Palette",id:"cleanliness-new-navigation-bar-dialogs-and-palette",level:3},{value:"New Navgation Bar",id:"new-navgation-bar",level:4},{value:"Updated Dialogs",id:"updated-dialogs",level:4},{value:"Colors",id:"colors",level:4},{value:"Other UI and UX Improvements",id:"other-ui-and-ux-improvements",level:3},{value:"Markdown Support for Extensions",id:"markdown-support-for-extensions",level:4},{value:"Other Notable Enhancements",id:"other-notable-enhancements",level:2},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:2},{value:"Final notes",id:"final-notes",level:2}];function c(e){const n={a:"a",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components},{Icon:a}=n;return a||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Icon",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Podman Desktop 0.15 - Cleanliness is next to Podliness!"}),"\n",(0,t.jsx)(n.p,{children:"It has only been two weeks since our last release, but we really wanted to complete a few scenarios,\nfix a few bugs, and show off several design updates and UI improvements that we have been working on."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Podman Version"}),": Podman 4.5 now included in Windows and Mac installers."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Kind Ingress"}),": Creating an ingress to expose services outside the Kind cluster."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Podliness"}),": Ability to choose external ports when podifying containers."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Cleanliness"}),": New navigation bar, dialog, and palette update."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"UX and UI Improvements"}),": Markdown support for extensions."]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 0.15 is now available. ",(0,t.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Podman-desktop-0-15-hero",src:s(61827).Z+"",width:"1920",height:"1432"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,t.jsx)(n.h3,{id:"update-to-podman-v45o",children:"Update to Podman v4.5.O"}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 0.15 embeds ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman/releases/tag/v4.5.0",children:"Podman 4.5.0"})," in\nWindows and macOS installers ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2115",children:"#2115"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"kind-ingress",children:"Kind Ingress"}),"\n",(0,t.jsxs)(n.p,{children:["Wait a minute, didn't we enable this last release? Well yes, last time we did add support for installing\nthe Contour ingress controller on Kind ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1675",children:"#1675"}),",\nbut you still couldn't access your containers without the corresponding ingress."]}),"\n",(0,t.jsxs)(n.p,{children:["This release adds a simple checkbox you can use when deploying to Kind to create an ingress and\nmake your service accessible ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1322",children:"#1322"}),"."]}),"\n",(0,t.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/232894496-cbaea036-a14c-46c6-bfa3-bacca629a161.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"podliness-ability-to-choose-external-ports-when-podifying-containers",children:"Podliness: Ability to Choose External Ports when Podifying Containers"}),"\n",(0,t.jsxs)(n.p,{children:["When you create a pod from of a set of containers (Podifying!), you probably don't want to expose every\nsingle port from every container to the world. With an updated panel you can now see which ports each container\nexposes, pick which should remain visible outside the pod, and which are for internal use\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2232",children:"#2232"}),"."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/234527674-ed14f52c-8f66-445f-8038-c8135bb61136.gif",alt:"Podify page"})}),"\n",(0,t.jsx)(n.h3,{id:"cleanliness-new-navigation-bar-dialogs-and-palette",children:"Cleanliness: New Navigation Bar, Dialogs, and Palette"}),"\n",(0,t.jsx)(n.p,{children:"It was time to catch up on some design ideas and do some UI cleanup!"}),"\n",(0,t.jsx)(n.h4,{id:"new-navgation-bar",children:"New Navgation Bar"}),"\n",(0,t.jsxs)(n.p,{children:["The navigation bar is now always fixed on the left size, without labels. This opens up more space\nfor the content on each page, and is easier to jump in and out of ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"})," Settings"]}),".\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2167",children:"#2167"})]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Navigation bar",src:s(39245).Z+"",width:"252",height:"606"})}),"\n",(0,t.jsx)(n.h4,{id:"updated-dialogs",children:"Updated Dialogs"}),"\n",(0,t.jsxs)(n.p,{children:["We wanted messages and dialog boxes to feel a bit more integrated, so we have a new message box\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1808",children:"#1808"})," and use it for all dialogs opened by\nextensions, pruning containers/pods/images/volumes ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2138",children:"#2138"}),",\nand updating Podman Desktop itself ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2249",children:"#2249"}),"."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Dialog",src:s(11507).Z+"",width:"1114",height:"454"})}),"\n",(0,t.jsx)(n.h4,{id:"colors",children:"Colors"}),"\n",(0,t.jsxs)(n.p,{children:["We spent some time tweaking colors and closing on our final palette\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2199",children:"#2199"}),", updating the colors in the terminal & detail page\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2222",children:"#2222"}),", tweaking the navigation and main page colors\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2223",children:"#2223"}),",\nand improving the look of forms ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2156",children:"#2156"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"We're not done yet, but hopefully you will notice a more polished, consistent, good-looking application!"}),"\n",(0,t.jsx)(n.h3,{id:"other-ui-and-ux-improvements",children:"Other UI and UX Improvements"}),"\n",(0,t.jsx)(n.h4,{id:"markdown-support-for-extensions",children:"Markdown Support for Extensions"}),"\n",(0,t.jsxs)(n.p,{children:["We added a new component to display markdown ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2219",children:"#2219"})," and\nenabled it in preferences ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2253",children:"#2253"}),", and\nprovider properties/creation pages ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2152",children:"#2152"}),".\nWe can now embed links and other formatting in preferences, and extensions can use them in many places, for example:"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Markdown",src:s(81313).Z+"",width:"1620",height:"264"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other Notable Enhancements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["We know which ",(0,t.jsx)(n.strong,{children:"Settings"})," page is used the most often, so now it's the default: ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Resources"]})," ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2105",children:"#2105"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Extensions can now use the Tasks API to let long running tasks continue in the background ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2019",children:"#2019"})," and the existing withProgress API also uses the task manager now\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2187",children:"#2187"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/695993/233560830-85cfa685-5dcd-4efa-9fae-730a8a9eef3b.gif",alt:"Task API"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Images are now sorted by age ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2311",children:"#2311"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["When you start/stop a container or pod, the button is now animated instead of having an separate spinner\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2101",children:"#2101"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Preferences"]})," page now has a search bar ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2128",children:"#2128"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Search preferences",src:s(26657).Z+"",width:"1162",height:"394"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The Help page has been updated ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/431",children:"#431"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Updated Help",src:s(11227).Z+"",width:"1386",height:"1222"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["There was no way to see log or outcome if you leave the Kind cluster creation page ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2079",children:"#2079"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Kind image load doesn't show a notification ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2225",children:"#2225"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Fix odd selection in ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Extensions"]})," ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2130",children:"#2130"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Menus are now cleaned up properly when extensions are stopped ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2188",children:"#2188"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Kind clusters are now cleaned up when Podman machine is stopped ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2306",children:"#2306"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,t.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.15.0",children:"here"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Get the latest release from the ",(0,t.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function p(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},11507:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/dialog-a7641617566984fb155ab6060378c0e7.png"},11227:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/help-61063667146d82cf967c0905ee7fc9b3.png"},81313:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/markdown-62e7791bc0cf89938d344d6bdacfb3a0.png"},39245:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/navigation-a8912eb003f2c50ed0436cc5cb07be77.png"},61827:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/podman-desktop-release-0.15-89cd5f136ad85c15bc5b4d16a919140a.webp"},26657:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/prefs-8b7886c5b18178c010e3d4033f25fe5c.png"}}]); \ No newline at end of file diff --git a/assets/js/5df556a2.d35f976a.js b/assets/js/5df556a2.d35f976a.js new file mode 100644 index 00000000000..ab7eda76fa9 --- /dev/null +++ b/assets/js/5df556a2.d35f976a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3870],{86489:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>r,default:()=>g,frontMatter:()=>d,metadata:()=>l,toc:()=>c});var t=s(24246),o=s(71670),i=s(92975),a=s.n(i);const d={title:"Release Notes - Podman Desktop 0.15",description:"Podman Desktop 0.15 has been released!",slug:"podman-desktop-release-0.15",authors:["deboer"],tags:["podman-desktop","release","kubernetes","kind"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-0.15.webp"},r=void 0,l={permalink:"/blog/podman-desktop-release-0.15",source:"@site/blog/2023-05-02-release-0.15.md",title:"Release Notes - Podman Desktop 0.15",description:"Podman Desktop 0.15 has been released!",date:"2023-05-02T00:00:00.000Z",formattedDate:"May 2, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"kind",permalink:"/blog/tags/kind"}],readingTime:3.685,hasTruncateMarker:!0,authors:[{name:"Tim deBoer",title:"Architect",url:"https://github.com/deboer-tim",imageURL:"https://github.com/deboer-tim.png",key:"deboer"}],frontMatter:{title:"Release Notes - Podman Desktop 0.15",description:"Podman Desktop 0.15 has been released!",slug:"podman-desktop-release-0.15",authors:["deboer"],tags:["podman-desktop","release","kubernetes","kind"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-0.15.webp"},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 1.0",permalink:"/blog/podman-desktop-release-1.0"},nextItem:{title:"Setting up and running a Kubernetes cluster locally with Podman Desktop",permalink:"/blog/running-a-local-kubernetes-cluster-with-podman-desktop"}},h={authorsImageUrls:[void 0]},c=[{value:"Release Details",id:"release-details",level:2},{value:"Update to Podman v4.5.O",id:"update-to-podman-v45o",level:3},{value:"Kind Ingress",id:"kind-ingress",level:3},{value:"Podliness: Ability to Choose External Ports when Podifying Containers",id:"podliness-ability-to-choose-external-ports-when-podifying-containers",level:3},{value:"Cleanliness: New Navigation Bar, Dialogs, and Palette",id:"cleanliness-new-navigation-bar-dialogs-and-palette",level:3},{value:"New Navgation Bar",id:"new-navgation-bar",level:4},{value:"Updated Dialogs",id:"updated-dialogs",level:4},{value:"Colors",id:"colors",level:4},{value:"Other UI and UX Improvements",id:"other-ui-and-ux-improvements",level:3},{value:"Markdown Support for Extensions",id:"markdown-support-for-extensions",level:4},{value:"Other Notable Enhancements",id:"other-notable-enhancements",level:2},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:2},{value:"Final notes",id:"final-notes",level:2}];function p(e){const n={a:"a",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components},{Icon:i}=n;return i||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Icon",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Podman Desktop 0.15 - Cleanliness is next to Podliness!"}),"\n",(0,t.jsx)(n.p,{children:"It has only been two weeks since our last release, but we really wanted to complete a few scenarios,\nfix a few bugs, and show off several design updates and UI improvements that we have been working on."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Podman Version"}),": Podman 4.5 now included in Windows and Mac installers."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Kind Ingress"}),": Creating an ingress to expose services outside the Kind cluster."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Podliness"}),": Ability to choose external ports when podifying containers."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Cleanliness"}),": New navigation bar, dialog, and palette update."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"UX and UI Improvements"}),": Markdown support for extensions."]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 0.15 is now available. ",(0,t.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Podman-desktop-0-15-hero",src:s(61827).Z+"",width:"1920",height:"1432"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,t.jsx)(n.h3,{id:"update-to-podman-v45o",children:"Update to Podman v4.5.O"}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 0.15 embeds ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman/releases/tag/v4.5.0",children:"Podman 4.5.0"})," in\nWindows and macOS installers ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2115",children:"#2115"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"kind-ingress",children:"Kind Ingress"}),"\n",(0,t.jsxs)(n.p,{children:["Wait a minute, didn't we enable this last release? Well yes, last time we did add support for installing\nthe Contour ingress controller on Kind ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1675",children:"#1675"}),",\nbut you still couldn't access your containers without the corresponding ingress."]}),"\n",(0,t.jsxs)(n.p,{children:["This release adds a simple checkbox you can use when deploying to Kind to create an ingress and\nmake your service accessible ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/1322",children:"#1322"}),"."]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/232894496-cbaea036-a14c-46c6-bfa3-bacca629a161.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"podliness-ability-to-choose-external-ports-when-podifying-containers",children:"Podliness: Ability to Choose External Ports when Podifying Containers"}),"\n",(0,t.jsxs)(n.p,{children:["When you create a pod from of a set of containers (Podifying!), you probably don't want to expose every\nsingle port from every container to the world. With an updated panel you can now see which ports each container\nexposes, pick which should remain visible outside the pod, and which are for internal use\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2232",children:"#2232"}),"."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/234527674-ed14f52c-8f66-445f-8038-c8135bb61136.gif",alt:"Podify page"})}),"\n",(0,t.jsx)(n.h3,{id:"cleanliness-new-navigation-bar-dialogs-and-palette",children:"Cleanliness: New Navigation Bar, Dialogs, and Palette"}),"\n",(0,t.jsx)(n.p,{children:"It was time to catch up on some design ideas and do some UI cleanup!"}),"\n",(0,t.jsx)(n.h4,{id:"new-navgation-bar",children:"New Navgation Bar"}),"\n",(0,t.jsxs)(n.p,{children:["The navigation bar is now always fixed on the left size, without labels. This opens up more space\nfor the content on each page, and is easier to jump in and out of ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(i,{icon:"fa-solid fa-cog",size:"lg"})," Settings"]}),".\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2167",children:"#2167"})]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Navigation bar",src:s(39245).Z+"",width:"252",height:"606"})}),"\n",(0,t.jsx)(n.h4,{id:"updated-dialogs",children:"Updated Dialogs"}),"\n",(0,t.jsxs)(n.p,{children:["We wanted messages and dialog boxes to feel a bit more integrated, so we have a new message box\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1808",children:"#1808"})," and use it for all dialogs opened by\nextensions, pruning containers/pods/images/volumes ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2138",children:"#2138"}),",\nand updating Podman Desktop itself ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2249",children:"#2249"}),"."]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Dialog",src:s(11507).Z+"",width:"1114",height:"454"})}),"\n",(0,t.jsx)(n.h4,{id:"colors",children:"Colors"}),"\n",(0,t.jsxs)(n.p,{children:["We spent some time tweaking colors and closing on our final palette\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2199",children:"#2199"}),", updating the colors in the terminal & detail page\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2222",children:"#2222"}),", tweaking the navigation and main page colors\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2223",children:"#2223"}),",\nand improving the look of forms ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2156",children:"#2156"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"We're not done yet, but hopefully you will notice a more polished, consistent, good-looking application!"}),"\n",(0,t.jsx)(n.h3,{id:"other-ui-and-ux-improvements",children:"Other UI and UX Improvements"}),"\n",(0,t.jsx)(n.h4,{id:"markdown-support-for-extensions",children:"Markdown Support for Extensions"}),"\n",(0,t.jsxs)(n.p,{children:["We added a new component to display markdown ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2219",children:"#2219"})," and\nenabled it in preferences ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2253",children:"#2253"}),", and\nprovider properties/creation pages ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2152",children:"#2152"}),".\nWe can now embed links and other formatting in preferences, and extensions can use them in many places, for example:"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Markdown",src:s(81313).Z+"",width:"1620",height:"264"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other Notable Enhancements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["We know which ",(0,t.jsx)(n.strong,{children:"Settings"})," page is used the most often, so now it's the default: ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(i,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Resources"]})," ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2105",children:"#2105"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Extensions can now use the Tasks API to let long running tasks continue in the background ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2019",children:"#2019"})," and the existing withProgress API also uses the task manager now\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2187",children:"#2187"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/695993/233560830-85cfa685-5dcd-4efa-9fae-730a8a9eef3b.gif",alt:"Task API"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Images are now sorted by age ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2311",children:"#2311"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["When you start/stop a container or pod, the button is now animated instead of having an separate spinner\n",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2101",children:"#2101"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(i,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Preferences"]})," page now has a search bar ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2128",children:"#2128"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Search preferences",src:s(26657).Z+"",width:"1162",height:"394"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The Help page has been updated ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/431",children:"#431"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Updated Help",src:s(11227).Z+"",width:"1386",height:"1222"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["There was no way to see log or outcome if you leave the Kind cluster creation page ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2079",children:"#2079"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Kind image load doesn't show a notification ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2225",children:"#2225"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Fix odd selection in ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(i,{icon:"fa-solid fa-cog",size:"lg"})," Settings > Extensions"]})," ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues/2130",children:"#2130"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Menus are now cleaned up properly when extensions are stopped ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2188",children:"#2188"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Kind clusters are now cleaned up when Podman machine is stopped ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2306",children:"#2306"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,t.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.15.0",children:"here"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Get the latest release from the ",(0,t.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function g(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},11507:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/dialog-a7641617566984fb155ab6060378c0e7.png"},11227:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/help-61063667146d82cf967c0905ee7fc9b3.png"},81313:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/markdown-62e7791bc0cf89938d344d6bdacfb3a0.png"},39245:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/navigation-a8912eb003f2c50ed0436cc5cb07be77.png"},61827:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/podman-desktop-release-0.15-89cd5f136ad85c15bc5b4d16a919140a.webp"},26657:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/prefs-8b7886c5b18178c010e3d4033f25fe5c.png"}}]); \ No newline at end of file diff --git a/assets/js/83245ae6.2268355e.js b/assets/js/83245ae6.2268355e.js new file mode 100644 index 00000000000..492b54b326d --- /dev/null +++ b/assets/js/83245ae6.2268355e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7679],{24900:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>l,default:()=>m,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var i=t(24246),o=t(71670),s=t(92975),a=t.n(s);const r={title:"Release Notes - Podman Desktop 0.11",description:"Podman Desktop 0.11 has been released!",slug:"podman-desktop-release-0.11",authors:["slemeur"],tags:["podman-desktop","release","kubernetes"],hide_table_of_contents:!1},l=void 0,d={permalink:"/blog/podman-desktop-release-0.11",source:"@site/blog/2023-01-18-release-0.11.md",title:"Release Notes - Podman Desktop 0.11",description:"Podman Desktop 0.11 has been released!",date:"2023-01-18T00:00:00.000Z",formattedDate:"January 18, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"}],readingTime:9.43,hasTruncateMarker:!0,authors:[{name:"Stevan Le Meur",title:"Product Manager",url:"https://github.com/slemeur",imageURL:"https://github.com/slemeur.png",key:"slemeur"}],frontMatter:{title:"Release Notes - Podman Desktop 0.11",description:"Podman Desktop 0.11 has been released!",slug:"podman-desktop-release-0.11",authors:["slemeur"],tags:["podman-desktop","release","kubernetes"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 0.12",permalink:"/blog/podman-desktop-release-0.12"},nextItem:{title:"Release Notes - Podman Desktop 0.10",permalink:"/blog/podman-desktop-release-0.10"}},h={authorsImageUrls:[void 0]},c=[{value:"Release Details",id:"release-details",level:2},{value:"Air-Gapped installation #1104 #1120",id:"air-gapped-installation-1104-1120",level:3},{value:"Feedback within Podman Desktop #1078",id:"feedback-within-podman-desktop-1078",level:3},{value:"Docker compatibility mode #1047",id:"docker-compatibility-mode-1047",level:3},{value:"Allow to toggle on/off the proxy setting #983",id:"allow-to-toggle-onoff-the-proxy-setting-983",level:3},{value:"Namespace selection for deploy to Kubernetes #1008",id:"namespace-selection-for-deploy-to-kubernetes-1008",level:3},{value:"Configure Podman binary path #941",id:"configure-podman-binary-path-941",level:3},{value:"Provide pre-defined registries #1201",id:"provide-pre-defined-registries-1201",level:3},{value:"UI/UX Improvements",id:"uiux-improvements",level:3},{value:"View Pods logs #1122",id:"view-pods-logs-1122",level:4},{value:"Improved feedback when clicking on container list action icons #1150 #1161",id:"improved-feedback-when-clicking-on-container-list-action-icons-1150-1161",level:4},{value:"Allows to change the default font size for the editor #1160",id:"allows-to-change-the-default-font-size-for-the-editor-1160",level:4},{value:"Keep expanded state of pods when refreshing containers #1042",id:"keep-expanded-state-of-pods-when-refreshing-containers-1042",level:4},{value:"Click on the Pod name redirects to the Pod details page #1159",id:"click-on-the-pod-name-redirects-to-the-pod-details-page-1159",level:4},{value:"Improved styles of buttons for actions #984",id:"improved-styles-of-buttons-for-actions-984",level:4},{value:"Improved alignments in pages with lists #1182",id:"improved-alignments-in-pages-with-lists-1182",level:4},{value:"Other Notable Enhancements",id:"other-notable-enhancements",level:2},{value:"Documentation",id:"documentation",level:2},{value:"Notable bug fixes",id:"notable-bug-fixes",level:2},{value:"Community Thank You",id:"community-thank-you",level:2},{value:"Final Notes",id:"final-notes",level:2}];function p(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"This release note covers Podman Desktop 0.11 release changes."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Air-Gapped Installation"}),": New all-in-one binaries for air-gapped installation."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Feedback"}),": Submit feedback directly from Podman Desktop."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Docker Compatibility Mode"}),": Information about the Docker compatibility mode."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Proxy Setting"}),": Toggle on/off the proxy setting."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Deploy to Kubernetes"}),": Select the namespace to deploy to Kubernetes."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Registry Configuration"}),": Simplified registry configuration for well known registries."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"UX/UI Improvements"}),": View pod's container logs, better visual feedback, configurable editor font size, and more."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Podman Desktop 0.11 is now available. ",(0,i.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,i.jsxs)(n.h3,{id:"air-gapped-installation-1104-1120",children:["Air-Gapped installation ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1104",children:"#1104"})," ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1120",children:"#1120"})]}),"\n",(0,i.jsx)(n.p,{children:"For users who are not able to connect to the internet, a new all-in-one (airgap) binary that includes the Podman Desktop application and the Podman binaries is now available for both Mac and Windows. When initializing a new Podman machine using all-in-one binaries, it'll use the embedded files and not grab them from internet:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"on Mac, it embeds the qemu FCOS binaries."}),"\n",(0,i.jsx)(n.li,{children:"on Windows, it embeds the WSL binary."}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"To differentiate the air-gapped binaries from the regular ones, you can check the artifactname, they're containing 'airgap' and are bigger.\nPlease note, that those binaries are available only on releases and not the pre-releases."}),"\n",(0,i.jsx)(n.p,{children:"There is also an optional way to provide a custom Podman machine image in the create machine form. By providing the path to the image you want, Podman Desktop will create a machine with that image. Leaving the field empty will use the default image (the one included in the binary)."}),"\n",(0,i.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/210508524-45005536-ac74-4074-92c1-2b3ca51d0073.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsxs)(n.h3,{id:"feedback-within-podman-desktop-1078",children:["Feedback within Podman Desktop ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1078",children:"#1078"})]}),"\n",(0,i.jsx)(n.p,{children:"Submitting feedback on Podman Desktop is getting easier as it is possible directly within the tool. This will help to get more information about the issues you are facing and will help us to improve the tool."}),"\n",(0,i.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/208938878-948a2764-d73b-4584-a80d-497c052482c1.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsx)(n.p,{children:"Please feel free to submit any feedback you have, we are looking forward to hearing from you!"}),"\n",(0,i.jsxs)(n.h3,{id:"docker-compatibility-mode-1047",children:["Docker compatibility mode ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1047",children:"#1047"})]}),"\n",(0,i.jsxs)(n.p,{children:["The Docker compatibility mode is a feature that allows to use Podman as a drop-in replacement for Docker. It relies on the Docker socket helper provided with Podman and automatically handle the local setup of Podman path to the Docker socket. Tools like ",(0,i.jsx)(n.a,{href:"https://www.testcontainers.org/",children:"Testcontainers"})," or others are relying on this to communicate to the container engine."]}),"\n",(0,i.jsx)(n.p,{children:"In this new version of Podman Desktop, we are now providing information to the user about the status of this compatibility mode directly on the dashboard page. The way it works is the following:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"When Docker is running: the socket is pointing to Docker."}),"\n",(0,i.jsx)(n.li,{children:"When Podman is starting and Docker is not running: the docker API socket will use Podman."}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["In case the compatibility mode is not activated, new documentation on how to activate it and how to easily switch between Docker and Podman is available here: ",(0,i.jsx)(n.a,{href:"https://podman-desktop.io/docs/migrating-from-docker",children:"https://podman-desktop.io/docs/migrating-from-docker"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["This is a warning displayed for Windows users:\n",(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/436777/209305744-9056addd-f122-4f75-9e03-ad27a0109375.png",alt:"windows-docker-compatibility"})]}),"\n",(0,i.jsxs)(n.p,{children:["This is the warning for Mac users:\n",(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/6422176/207964861-a9c1f72c-89d6-4816-beab-397af4125620.png",alt:"mac-docker-compatibility"})]}),"\n",(0,i.jsxs)(n.h3,{id:"allow-to-toggle-onoff-the-proxy-setting-983",children:["Allow to toggle on/off the proxy setting ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/983",children:"#983"})]}),"\n",(0,i.jsx)(n.p,{children:"In some context, users need the ability to disable and re-enable the proxy configuration very quickly, without having to entirely reconfigure it. This is now possible from the Podman Desktop settings page, where a toggle to enable/disable the proxy configuration has been added."}),"\n",(0,i.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/205955418-670bc37c-a74f-40ef-bc60-8d9d013aa0dc.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsx)(n.p,{children:"Note: extensions can read this information and then update the proxy configuration."}),"\n",(0,i.jsxs)(n.h3,{id:"namespace-selection-for-deploy-to-kubernetes-1008",children:["Namespace selection for deploy to Kubernetes ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1008",children:"#1008"})]}),"\n",(0,i.jsx)(n.p,{children:"A new dropdown menu has been added to the deploy to Kubernetes screen to allow selecting the namespace to deploy to. Defaults to defaultnamespace, if unable to get any from kube_client module."}),"\n",(0,i.jsxs)(n.p,{children:["If the user have set ",(0,i.jsx)(n.code,{children:"kubectl config set-context --current --namespace=NAMESPACE"})," it honors that as the chosen value."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/7339809/206688886-095e4f15-42ae-4a0a-b1c6-ae4b547fcdfb.gif",alt:"deploy-kubernetes-namespace"})}),"\n",(0,i.jsxs)(n.h3,{id:"configure-podman-binary-path-941",children:["Configure Podman binary path ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/941",children:"#941"})]}),"\n",(0,i.jsxs)(n.p,{children:["Users might use a custom path to the podman binary. An option within settings (Settings -> Preferences) to allow providing an additional path to Podman binary has been added.\nThis is useful for users who have installed Podman using a package manager and want to use the binary provided by the package manager.\nSee: ",(0,i.jsx)(n.a,{href:"/docs/troubleshooting/troubleshooting-podman-on-macos#unable-to-set-custom-binary-path-for-podman-on-macos",children:"Unable to set custom binary path for Podman on macOS"}),"\n",(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/6422176/204832063-5858065a-2fc3-49de-8d23-3b99b7d10dbf.png",alt:"custom-path"})]}),"\n",(0,i.jsxs)(n.h3,{id:"provide-pre-defined-registries-1201",children:["Provide pre-defined registries ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1201",children:"#1201"})]}),"\n",(0,i.jsx)(n.p,{children:"The experience of configuring a registry is getting simplified for the most popular ones. The user will be able to select a registry from a pre-defined list and will only have to provide the username and password. The following registries will be pre-defined:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Dockerhub"}),"\n",(0,i.jsx)(n.li,{children:"Red Hat Quay"}),"\n",(0,i.jsx)(n.li,{children:"GitHub"}),"\n",(0,i.jsx)(n.li,{children:"IBM Container Registry"}),"\n",(0,i.jsx)(n.li,{children:"Google Container Registry"}),"\n"]}),"\n",(0,i.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/214332937-eb1d9050-0d32-4bc4-8393-49b4583b1390.mov",width:"100%",height:"100%"}),"\n",(0,i.jsx)(n.h3,{id:"uiux-improvements",children:"UI/UX Improvements"}),"\n",(0,i.jsxs)(n.h4,{id:"view-pods-logs-1122",children:["View Pods logs ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1122",children:"#1122"})]}),"\n",(0,i.jsx)(n.p,{children:"The pods details view provides the ability to view the logs of each containers that might be running in a pod. Moreover, as it can also be hard to scan and identify which container is producing which output, we appended the container name at the beginning of each output and differentiate each container with a different color."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/6422176/211024673-eee9bad8-1b0c-4446-b8d1-97a226282c4d.png",alt:"pods-logs"})}),"\n",(0,i.jsxs)(n.h4,{id:"improved-feedback-when-clicking-on-container-list-action-icons-1150-1161",children:["Improved feedback when clicking on container list action icons ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1150",children:"#1150"})," ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1161",children:"#1161"})]}),"\n",(0,i.jsx)(n.p,{children:"When starting/stopping or deleting a container, a spinner is now displayed. In case of error, a message indicating that the action failed will also be better indicated."}),"\n",(0,i.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/211531610-2347d302-4918-46ae-a5a2-c80fac0314f5.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsxs)(n.p,{children:["For containers that exit immediately or short-lived containers, the feedback is also improved and include report of error now provide a better feedback to the user ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1161",children:"#1161"}),"."]}),"\n",(0,i.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/211831905-ebf596d5-efc8-4f55-8cb8-3f31655388b9.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsxs)(n.h4,{id:"allows-to-change-the-default-font-size-for-the-editor-1160",children:["Allows to change the default font size for the editor ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1160",children:"#1160"})]}),"\n",(0,i.jsx)(n.p,{children:"An editor is used in several screens of Podman Desktop, from the inspect screen to container's outputs and Kubernetes YAML. The default font size is 10 pixels. It's now possible to adjust the font size to the one the one you prefer. This setting is persisted and will be used for all the editors of Podman Desktop and available from the preferences page (Settings -> Preferences)."}),"\n",(0,i.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/211778161-130ff733-b2ca-4306-bea3-d031196c3b29.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsxs)(n.h4,{id:"keep-expanded-state-of-pods-when-refreshing-containers-1042",children:["Keep expanded state of pods when refreshing containers ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1042",children:"#1042"})]}),"\n",(0,i.jsx)(n.p,{children:"When switching from different screens of the application or simply refreshing the list of containers, the expanded state of each item in the list is now persisted and will be properly restored."}),"\n",(0,i.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/207864147-b68ea9bd-0ca9-42dc-882e-b8a705233749.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsxs)(n.h4,{id:"click-on-the-pod-name-redirects-to-the-pod-details-page-1159",children:["Click on the Pod name redirects to the Pod details page ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1159",children:"#1159"})]}),"\n",(0,i.jsx)(n.p,{children:"The list of containers also displays pods, now clicking on the pod name directly redirects to the Pod details page."}),"\n",(0,i.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/211770946-2255f39f-7e2e-48ad-9ead-bcbfe6a115a7.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsxs)(n.h4,{id:"improved-styles-of-buttons-for-actions-984",children:["Improved styles of buttons for actions ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/984",children:"#984"})]}),"\n",(0,i.jsx)(n.p,{children:'The style of the buttons for actions on item in the list of in details pages have been improved. The background has been removed, but to make the hover state more visible, the "hover" circle is visible and the icon\'s color is also changing.'}),"\n",(0,i.jsxs)(n.p,{children:["On lists:\n",(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/6422176/205979121-b49a0ddf-03bb-4a4d-8d12-bc8d0bd52387.png",alt:"list-actions"})]}),"\n",(0,i.jsxs)(n.p,{children:["On details pages:\n",(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/6422176/205979123-ea420b17-e834-4029-82eb-22949889eee9.png",alt:"details-actions"})]}),"\n",(0,i.jsxs)(n.h4,{id:"improved-alignments-in-pages-with-lists-1182",children:["Improved alignments in pages with lists ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1182",children:"#1182"})]}),"\n",(0,i.jsx)(n.p,{children:"The alignment of the items in the list of containers and pods have been improved. The header of each columns are now aligned with the text. and the actions icons are now aligned with the top of the text."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/212712580-096fd090-0beb-40a4-8dc6-b3fdc5e81e35.png",alt:"list-actions"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other Notable Enhancements"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Statistics area in container details are always shown. (",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1131",children:"#1131"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Add more descriptive wording and more information to extensions. (",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/985",children:"#985"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Allow to install on-the fly Podman Desktop extensions using an OCI image. (",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1187",children:"#1187"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Display correctly non-multiplexed stream in logs (when using non interactive mode). (",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1197",children:"#1197"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Font changed from white to gray for non-name sections (creation date, size). (",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1206",children:"#1206"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Add Help/about menu for macOS/Windows/Linux. (",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1207",children:"#1207"}),")"]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,i.jsx)(n.p,{children:"Coming with this new version of Podman Desktop, the documentation has been getting attention (with number of editorial reviews) and new content have been added."}),"\n",(0,i.jsx)(n.p,{children:"Content for helping users to migrate from Docker to Podman has been added:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsxs)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1088",children:["Using the ",(0,i.jsx)(n.code,{children:"podman-mac-helper"})," tool to migrate from Docker to Podman on macOS"]})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1129",children:"better identify podman-mac-helper verification steps"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1143",children:"Emulating Docker CLI using Podman to migrate from Docker to Podman"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1146",children:"Migrating from Docker section"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1152",children:"Verifying that your tools are using Podman"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1144",children:"Importing saved containers"})}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Several of other improvements have been made to the documentation and the website:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/962",children:"Troubleshooting for Apple Silicon and brew x86_64 installs"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/972",children:"Change text of custom binary location, add docs"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/974",children:"Silent install option for windows"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1079",children:"Upgrade to vite v4 and rollup v3"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1118",children:"Refreshing documentation on installing on Linux"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1130",children:"Identify the shell sessions in Installing on Linux"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1133",children:"Website: the linux binary is not a source, it should be promoted as a binary"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1162",children:"Introducing tabs for operatings systems and container engines"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1165",children:"website: In the landing page, update plugins and container engines lists"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1163",children:"Document where code is located within Podman Desktop"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1172",children:"(extension-api): Documentation on how to write an extension and use the api"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable bug fixes"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Update to v0.3.2 Docker Desktop API for extensions - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1070",children:"#1070"})]}),"\n",(0,i.jsxs)(n.li,{children:["Updated link to the Matrix room - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1076",children:"#1076"})]}),"\n",(0,i.jsxs)(n.li,{children:["Report error when container name already exists - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1142",children:"#1142"})]}),"\n",(0,i.jsxs)(n.li,{children:["Fixed connectivity to the Podman machine when the generated socket length is greater than 104 characters in MacOS - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1145",children:"#1145"})]}),"\n",(0,i.jsxs)(n.li,{children:["Do not use long calls for external clients - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1151",children:"#1151"})]}),"\n",(0,i.jsxs)(n.li,{children:["Invalid name/tag for images with registries using a different port - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1127",children:"#1127"})]}),"\n",(0,i.jsxs)(n.li,{children:["Invalid badge count for images when two images have the same tag - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1124",children:"#1124"})]}),"\n",(0,i.jsxs)(n.li,{children:["Fixed detection of WSL2 - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/981",children:"#981"})]}),"\n",(0,i.jsxs)(n.li,{children:["Handle invalid kubeconfig files instead of crashing - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/953",children:"#953"})]}),"\n",(0,i.jsxs)(n.li,{children:["Removed redundant actions from details pages - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1200",children:"#1200"})]}),"\n",(0,i.jsxs)(n.li,{children:["Fixed registry URL not aligned with header - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1205",children:"#1205"})]}),"\n",(0,i.jsxs)(n.li,{children:["Moved SVGs to reusable components - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1211",children:"#1211"})]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Extensions API has also been improved in this new release:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["(extension-api): Allows to register a factory for kubernetes connection objects (like for container connections) - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1040",children:"#1040"})]}),"\n",(0,i.jsxs)(n.li,{children:["(extension-api): List or inspect containers, be notified on events - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1041",children:"#1041"})]}),"\n",(0,i.jsxs)(n.li,{children:["(extension-api): Allows to get provider notification - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1045",children:"#1045"})]}),"\n",(0,i.jsxs)(n.li,{children:["(dd-extension-api): Implement toast API - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1154",children:"#1154"})]}),"\n",(0,i.jsxs)(n.li,{children:["(extension-api): Moved extension properties to preferences - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/948",children:"#948"})]}),"\n",(0,i.jsxs)(n.li,{children:["(dd-extension-api): Added open dev console on dd webview in development mode - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1071",children:"#1071"})]}),"\n",(0,i.jsxs)(n.li,{children:["(extension-api): Added notes on extension and frameworks/tooling of Podman Desktop - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1166",children:"#1166"})]}),"\n",(0,i.jsxs)(n.li,{children:["(extension-api): Documentation on how to write an extension and use the api - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1172",children:"#1172"})]}),"\n",(0,i.jsxs)(n.li,{children:["(dd-extension-api): DD extensions should see only minimal information on containers - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1191",children:"#1191"})]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,i.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop 0.11 even better:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/emmanuelbernard",children:"Emmanuel Bernard"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/962",children:"#962 - Troubleshooting for Apple Silicon"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/eidottermihi",children:"Michael Prankl"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/974",children:"#974 - Silent install option for windows"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/elervik",children:"Endre Lervik"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1008",children:"#1008 - Namespace selection for deploy to kubernetes"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/evanfpearson",children:"Evan FP"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1145",children:"#1145 - fixed socket path length error"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/lsm5",children:"Lokesh Mandvekar"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/956",children:"#956 - add repository key to package.json"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/jeffmaury",children:"Jean Fran\xe7ois Maury"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1194",children:"#1194 - Cannot create Kind cluster on Windows"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"final-notes",children:"Final Notes"}),"\n",(0,i.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.11.0",children:"here"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Get the latest release from the ",(0,i.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function m(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}}}]); \ No newline at end of file diff --git a/assets/js/83245ae6.710bfde3.js b/assets/js/83245ae6.710bfde3.js deleted file mode 100644 index cb00f25b6c9..00000000000 --- a/assets/js/83245ae6.710bfde3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7679],{24900:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>h});var i=t(24246),o=t(71670),s=t(92975);const a={title:"Release Notes - Podman Desktop 0.11",description:"Podman Desktop 0.11 has been released!",slug:"podman-desktop-release-0.11",authors:["slemeur"],tags:["podman-desktop","release","kubernetes"],hide_table_of_contents:!1},r=void 0,l={permalink:"/blog/podman-desktop-release-0.11",source:"@site/blog/2023-01-18-release-0.11.md",title:"Release Notes - Podman Desktop 0.11",description:"Podman Desktop 0.11 has been released!",date:"2023-01-18T00:00:00.000Z",formattedDate:"January 18, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"}],readingTime:9.43,hasTruncateMarker:!0,authors:[{name:"Stevan Le Meur",title:"Product Manager",url:"https://github.com/slemeur",imageURL:"https://github.com/slemeur.png",key:"slemeur"}],frontMatter:{title:"Release Notes - Podman Desktop 0.11",description:"Podman Desktop 0.11 has been released!",slug:"podman-desktop-release-0.11",authors:["slemeur"],tags:["podman-desktop","release","kubernetes"],hide_table_of_contents:!1},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 0.12",permalink:"/blog/podman-desktop-release-0.12"},nextItem:{title:"Release Notes - Podman Desktop 0.10",permalink:"/blog/podman-desktop-release-0.10"}},d={authorsImageUrls:[void 0]},h=[{value:"Release Details",id:"release-details",level:2},{value:"Air-Gapped installation #1104 #1120",id:"air-gapped-installation-1104-1120",level:3},{value:"Feedback within Podman Desktop #1078",id:"feedback-within-podman-desktop-1078",level:3},{value:"Docker compatibility mode #1047",id:"docker-compatibility-mode-1047",level:3},{value:"Allow to toggle on/off the proxy setting #983",id:"allow-to-toggle-onoff-the-proxy-setting-983",level:3},{value:"Namespace selection for deploy to Kubernetes #1008",id:"namespace-selection-for-deploy-to-kubernetes-1008",level:3},{value:"Configure Podman binary path #941",id:"configure-podman-binary-path-941",level:3},{value:"Provide pre-defined registries #1201",id:"provide-pre-defined-registries-1201",level:3},{value:"UI/UX Improvements",id:"uiux-improvements",level:3},{value:"View Pods logs #1122",id:"view-pods-logs-1122",level:4},{value:"Improved feedback when clicking on container list action icons #1150 #1161",id:"improved-feedback-when-clicking-on-container-list-action-icons-1150-1161",level:4},{value:"Allows to change the default font size for the editor #1160",id:"allows-to-change-the-default-font-size-for-the-editor-1160",level:4},{value:"Keep expanded state of pods when refreshing containers #1042",id:"keep-expanded-state-of-pods-when-refreshing-containers-1042",level:4},{value:"Click on the Pod name redirects to the Pod details page #1159",id:"click-on-the-pod-name-redirects-to-the-pod-details-page-1159",level:4},{value:"Improved styles of buttons for actions #984",id:"improved-styles-of-buttons-for-actions-984",level:4},{value:"Improved alignments in pages with lists #1182",id:"improved-alignments-in-pages-with-lists-1182",level:4},{value:"Other Notable Enhancements",id:"other-notable-enhancements",level:2},{value:"Documentation",id:"documentation",level:2},{value:"Notable bug fixes",id:"notable-bug-fixes",level:2},{value:"Community Thank You",id:"community-thank-you",level:2},{value:"Final Notes",id:"final-notes",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.p,{children:"This release note covers Podman Desktop 0.11 release changes."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Air-Gapped Installation"}),": New all-in-one binaries for air-gapped installation."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Feedback"}),": Submit feedback directly from Podman Desktop."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Docker Compatibility Mode"}),": Information about the Docker compatibility mode."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Proxy Setting"}),": Toggle on/off the proxy setting."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Deploy to Kubernetes"}),": Select the namespace to deploy to Kubernetes."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Registry Configuration"}),": Simplified registry configuration for well known registries."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"UX/UI Improvements"}),": View pod's container logs, better visual feedback, configurable editor font size, and more."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Podman Desktop 0.11 is now available. ",(0,i.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,i.jsxs)(n.h3,{id:"air-gapped-installation-1104-1120",children:["Air-Gapped installation ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1104",children:"#1104"})," ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1120",children:"#1120"})]}),"\n",(0,i.jsx)(n.p,{children:"For users who are not able to connect to the internet, a new all-in-one (airgap) binary that includes the Podman Desktop application and the Podman binaries is now available for both Mac and Windows. When initializing a new Podman machine using all-in-one binaries, it'll use the embedded files and not grab them from internet:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"on Mac, it embeds the qemu FCOS binaries."}),"\n",(0,i.jsx)(n.li,{children:"on Windows, it embeds the WSL binary."}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"To differentiate the air-gapped binaries from the regular ones, you can check the artifactname, they're containing 'airgap' and are bigger.\nPlease note, that those binaries are available only on releases and not the pre-releases."}),"\n",(0,i.jsx)(n.p,{children:"There is also an optional way to provide a custom Podman machine image in the create machine form. By providing the path to the image you want, Podman Desktop will create a machine with that image. Leaving the field empty will use the default image (the one included in the binary)."}),"\n",(0,i.jsx)(s.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/210508524-45005536-ac74-4074-92c1-2b3ca51d0073.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsxs)(n.h3,{id:"feedback-within-podman-desktop-1078",children:["Feedback within Podman Desktop ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1078",children:"#1078"})]}),"\n",(0,i.jsx)(n.p,{children:"Submitting feedback on Podman Desktop is getting easier as it is possible directly within the tool. This will help to get more information about the issues you are facing and will help us to improve the tool."}),"\n",(0,i.jsx)(s.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/208938878-948a2764-d73b-4584-a80d-497c052482c1.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsx)(n.p,{children:"Please feel free to submit any feedback you have, we are looking forward to hearing from you!"}),"\n",(0,i.jsxs)(n.h3,{id:"docker-compatibility-mode-1047",children:["Docker compatibility mode ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1047",children:"#1047"})]}),"\n",(0,i.jsxs)(n.p,{children:["The Docker compatibility mode is a feature that allows to use Podman as a drop-in replacement for Docker. It relies on the Docker socket helper provided with Podman and automatically handle the local setup of Podman path to the Docker socket. Tools like ",(0,i.jsx)(n.a,{href:"https://www.testcontainers.org/",children:"Testcontainers"})," or others are relying on this to communicate to the container engine."]}),"\n",(0,i.jsx)(n.p,{children:"In this new version of Podman Desktop, we are now providing information to the user about the status of this compatibility mode directly on the dashboard page. The way it works is the following:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"When Docker is running: the socket is pointing to Docker."}),"\n",(0,i.jsx)(n.li,{children:"When Podman is starting and Docker is not running: the docker API socket will use Podman."}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["In case the compatibility mode is not activated, new documentation on how to activate it and how to easily switch between Docker and Podman is available here: ",(0,i.jsx)(n.a,{href:"https://podman-desktop.io/docs/migrating-from-docker",children:"https://podman-desktop.io/docs/migrating-from-docker"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["This is a warning displayed for Windows users:\n",(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/436777/209305744-9056addd-f122-4f75-9e03-ad27a0109375.png",alt:"windows-docker-compatibility"})]}),"\n",(0,i.jsxs)(n.p,{children:["This is the warning for Mac users:\n",(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/6422176/207964861-a9c1f72c-89d6-4816-beab-397af4125620.png",alt:"mac-docker-compatibility"})]}),"\n",(0,i.jsxs)(n.h3,{id:"allow-to-toggle-onoff-the-proxy-setting-983",children:["Allow to toggle on/off the proxy setting ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/983",children:"#983"})]}),"\n",(0,i.jsx)(n.p,{children:"In some context, users need the ability to disable and re-enable the proxy configuration very quickly, without having to entirely reconfigure it. This is now possible from the Podman Desktop settings page, where a toggle to enable/disable the proxy configuration has been added."}),"\n",(0,i.jsx)(s.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/205955418-670bc37c-a74f-40ef-bc60-8d9d013aa0dc.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsx)(n.p,{children:"Note: extensions can read this information and then update the proxy configuration."}),"\n",(0,i.jsxs)(n.h3,{id:"namespace-selection-for-deploy-to-kubernetes-1008",children:["Namespace selection for deploy to Kubernetes ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1008",children:"#1008"})]}),"\n",(0,i.jsx)(n.p,{children:"A new dropdown menu has been added to the deploy to Kubernetes screen to allow selecting the namespace to deploy to. Defaults to defaultnamespace, if unable to get any from kube_client module."}),"\n",(0,i.jsxs)(n.p,{children:["If the user have set ",(0,i.jsx)(n.code,{children:"kubectl config set-context --current --namespace=NAMESPACE"})," it honors that as the chosen value."]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/7339809/206688886-095e4f15-42ae-4a0a-b1c6-ae4b547fcdfb.gif",alt:"deploy-kubernetes-namespace"})}),"\n",(0,i.jsxs)(n.h3,{id:"configure-podman-binary-path-941",children:["Configure Podman binary path ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/941",children:"#941"})]}),"\n",(0,i.jsxs)(n.p,{children:["Users might use a custom path to the podman binary. An option within settings (Settings -> Preferences) to allow providing an additional path to Podman binary has been added.\nThis is useful for users who have installed Podman using a package manager and want to use the binary provided by the package manager.\nSee: ",(0,i.jsx)(n.a,{href:"/docs/troubleshooting/troubleshooting-podman-on-macos#unable-to-set-custom-binary-path-for-podman-on-macos",children:"Unable to set custom binary path for Podman on macOS"}),"\n",(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/6422176/204832063-5858065a-2fc3-49de-8d23-3b99b7d10dbf.png",alt:"custom-path"})]}),"\n",(0,i.jsxs)(n.h3,{id:"provide-pre-defined-registries-1201",children:["Provide pre-defined registries ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1201",children:"#1201"})]}),"\n",(0,i.jsx)(n.p,{children:"The experience of configuring a registry is getting simplified for the most popular ones. The user will be able to select a registry from a pre-defined list and will only have to provide the username and password. The following registries will be pre-defined:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Dockerhub"}),"\n",(0,i.jsx)(n.li,{children:"Red Hat Quay"}),"\n",(0,i.jsx)(n.li,{children:"GitHub"}),"\n",(0,i.jsx)(n.li,{children:"IBM Container Registry"}),"\n",(0,i.jsx)(n.li,{children:"Google Container Registry"}),"\n"]}),"\n",(0,i.jsx)(s.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/214332937-eb1d9050-0d32-4bc4-8393-49b4583b1390.mov",width:"100%",height:"100%"}),"\n",(0,i.jsx)(n.h3,{id:"uiux-improvements",children:"UI/UX Improvements"}),"\n",(0,i.jsxs)(n.h4,{id:"view-pods-logs-1122",children:["View Pods logs ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1122",children:"#1122"})]}),"\n",(0,i.jsx)(n.p,{children:"The pods details view provides the ability to view the logs of each containers that might be running in a pod. Moreover, as it can also be hard to scan and identify which container is producing which output, we appended the container name at the beginning of each output and differentiate each container with a different color."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/6422176/211024673-eee9bad8-1b0c-4446-b8d1-97a226282c4d.png",alt:"pods-logs"})}),"\n",(0,i.jsxs)(n.h4,{id:"improved-feedback-when-clicking-on-container-list-action-icons-1150-1161",children:["Improved feedback when clicking on container list action icons ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1150",children:"#1150"})," ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1161",children:"#1161"})]}),"\n",(0,i.jsx)(n.p,{children:"When starting/stopping or deleting a container, a spinner is now displayed. In case of error, a message indicating that the action failed will also be better indicated."}),"\n",(0,i.jsx)(s.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/211531610-2347d302-4918-46ae-a5a2-c80fac0314f5.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsxs)(n.p,{children:["For containers that exit immediately or short-lived containers, the feedback is also improved and include report of error now provide a better feedback to the user ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1161",children:"#1161"}),"."]}),"\n",(0,i.jsx)(s.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/211831905-ebf596d5-efc8-4f55-8cb8-3f31655388b9.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsxs)(n.h4,{id:"allows-to-change-the-default-font-size-for-the-editor-1160",children:["Allows to change the default font size for the editor ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1160",children:"#1160"})]}),"\n",(0,i.jsx)(n.p,{children:"An editor is used in several screens of Podman Desktop, from the inspect screen to container's outputs and Kubernetes YAML. The default font size is 10 pixels. It's now possible to adjust the font size to the one the one you prefer. This setting is persisted and will be used for all the editors of Podman Desktop and available from the preferences page (Settings -> Preferences)."}),"\n",(0,i.jsx)(s.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/211778161-130ff733-b2ca-4306-bea3-d031196c3b29.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsxs)(n.h4,{id:"keep-expanded-state-of-pods-when-refreshing-containers-1042",children:["Keep expanded state of pods when refreshing containers ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1042",children:"#1042"})]}),"\n",(0,i.jsx)(n.p,{children:"When switching from different screens of the application or simply refreshing the list of containers, the expanded state of each item in the list is now persisted and will be properly restored."}),"\n",(0,i.jsx)(s.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/207864147-b68ea9bd-0ca9-42dc-882e-b8a705233749.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsxs)(n.h4,{id:"click-on-the-pod-name-redirects-to-the-pod-details-page-1159",children:["Click on the Pod name redirects to the Pod details page ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1159",children:"#1159"})]}),"\n",(0,i.jsx)(n.p,{children:"The list of containers also displays pods, now clicking on the pod name directly redirects to the Pod details page."}),"\n",(0,i.jsx)(s.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/211770946-2255f39f-7e2e-48ad-9ead-bcbfe6a115a7.mp4",width:"100%",height:"100%"}),"\n",(0,i.jsxs)(n.h4,{id:"improved-styles-of-buttons-for-actions-984",children:["Improved styles of buttons for actions ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/984",children:"#984"})]}),"\n",(0,i.jsx)(n.p,{children:'The style of the buttons for actions on item in the list of in details pages have been improved. The background has been removed, but to make the hover state more visible, the "hover" circle is visible and the icon\'s color is also changing.'}),"\n",(0,i.jsxs)(n.p,{children:["On lists:\n",(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/6422176/205979121-b49a0ddf-03bb-4a4d-8d12-bc8d0bd52387.png",alt:"list-actions"})]}),"\n",(0,i.jsxs)(n.p,{children:["On details pages:\n",(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/6422176/205979123-ea420b17-e834-4029-82eb-22949889eee9.png",alt:"details-actions"})]}),"\n",(0,i.jsxs)(n.h4,{id:"improved-alignments-in-pages-with-lists-1182",children:["Improved alignments in pages with lists ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1182",children:"#1182"})]}),"\n",(0,i.jsx)(n.p,{children:"The alignment of the items in the list of containers and pods have been improved. The header of each columns are now aligned with the text. and the actions icons are now aligned with the top of the text."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/212712580-096fd090-0beb-40a4-8dc6-b3fdc5e81e35.png",alt:"list-actions"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other Notable Enhancements"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Statistics area in container details are always shown. (",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1131",children:"#1131"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Add more descriptive wording and more information to extensions. (",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/985",children:"#985"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Allow to install on-the fly Podman Desktop extensions using an OCI image. (",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1187",children:"#1187"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Display correctly non-multiplexed stream in logs (when using non interactive mode). (",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1197",children:"#1197"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Font changed from white to gray for non-name sections (creation date, size). (",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1206",children:"#1206"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Add Help/about menu for macOS/Windows/Linux. (",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1207",children:"#1207"}),")"]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,i.jsx)(n.p,{children:"Coming with this new version of Podman Desktop, the documentation has been getting attention (with number of editorial reviews) and new content have been added."}),"\n",(0,i.jsx)(n.p,{children:"Content for helping users to migrate from Docker to Podman has been added:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsxs)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1088",children:["Using the ",(0,i.jsx)(n.code,{children:"podman-mac-helper"})," tool to migrate from Docker to Podman on macOS"]})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1129",children:"better identify podman-mac-helper verification steps"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1143",children:"Emulating Docker CLI using Podman to migrate from Docker to Podman"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1146",children:"Migrating from Docker section"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1152",children:"Verifying that your tools are using Podman"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1144",children:"Importing saved containers"})}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Several of other improvements have been made to the documentation and the website:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/962",children:"Troubleshooting for Apple Silicon and brew x86_64 installs"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/972",children:"Change text of custom binary location, add docs"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/974",children:"Silent install option for windows"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1079",children:"Upgrade to vite v4 and rollup v3"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1118",children:"Refreshing documentation on installing on Linux"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1130",children:"Identify the shell sessions in Installing on Linux"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1133",children:"Website: the linux binary is not a source, it should be promoted as a binary"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1162",children:"Introducing tabs for operatings systems and container engines"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1165",children:"website: In the landing page, update plugins and container engines lists"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1163",children:"Document where code is located within Podman Desktop"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1172",children:"(extension-api): Documentation on how to write an extension and use the api"})}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable bug fixes"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Update to v0.3.2 Docker Desktop API for extensions - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1070",children:"#1070"})]}),"\n",(0,i.jsxs)(n.li,{children:["Updated link to the Matrix room - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1076",children:"#1076"})]}),"\n",(0,i.jsxs)(n.li,{children:["Report error when container name already exists - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1142",children:"#1142"})]}),"\n",(0,i.jsxs)(n.li,{children:["Fixed connectivity to the Podman machine when the generated socket length is greater than 104 characters in MacOS - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1145",children:"#1145"})]}),"\n",(0,i.jsxs)(n.li,{children:["Do not use long calls for external clients - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1151",children:"#1151"})]}),"\n",(0,i.jsxs)(n.li,{children:["Invalid name/tag for images with registries using a different port - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1127",children:"#1127"})]}),"\n",(0,i.jsxs)(n.li,{children:["Invalid badge count for images when two images have the same tag - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1124",children:"#1124"})]}),"\n",(0,i.jsxs)(n.li,{children:["Fixed detection of WSL2 - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/981",children:"#981"})]}),"\n",(0,i.jsxs)(n.li,{children:["Handle invalid kubeconfig files instead of crashing - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/953",children:"#953"})]}),"\n",(0,i.jsxs)(n.li,{children:["Removed redundant actions from details pages - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1200",children:"#1200"})]}),"\n",(0,i.jsxs)(n.li,{children:["Fixed registry URL not aligned with header - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1205",children:"#1205"})]}),"\n",(0,i.jsxs)(n.li,{children:["Moved SVGs to reusable components - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1211",children:"#1211"})]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Extensions API has also been improved in this new release:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["(extension-api): Allows to register a factory for kubernetes connection objects (like for container connections) - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1040",children:"#1040"})]}),"\n",(0,i.jsxs)(n.li,{children:["(extension-api): List or inspect containers, be notified on events - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1041",children:"#1041"})]}),"\n",(0,i.jsxs)(n.li,{children:["(extension-api): Allows to get provider notification - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1045",children:"#1045"})]}),"\n",(0,i.jsxs)(n.li,{children:["(dd-extension-api): Implement toast API - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1154",children:"#1154"})]}),"\n",(0,i.jsxs)(n.li,{children:["(extension-api): Moved extension properties to preferences - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/948",children:"#948"})]}),"\n",(0,i.jsxs)(n.li,{children:["(dd-extension-api): Added open dev console on dd webview in development mode - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1071",children:"#1071"})]}),"\n",(0,i.jsxs)(n.li,{children:["(extension-api): Added notes on extension and frameworks/tooling of Podman Desktop - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1166",children:"#1166"})]}),"\n",(0,i.jsxs)(n.li,{children:["(extension-api): Documentation on how to write an extension and use the api - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1172",children:"#1172"})]}),"\n",(0,i.jsxs)(n.li,{children:["(dd-extension-api): DD extensions should see only minimal information on containers - ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1191",children:"#1191"})]}),"\n"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,i.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop 0.11 even better:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/emmanuelbernard",children:"Emmanuel Bernard"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/962",children:"#962 - Troubleshooting for Apple Silicon"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/eidottermihi",children:"Michael Prankl"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/974",children:"#974 - Silent install option for windows"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/elervik",children:"Endre Lervik"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1008",children:"#1008 - Namespace selection for deploy to kubernetes"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/evanfpearson",children:"Evan FP"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1145",children:"#1145 - fixed socket path length error"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/lsm5",children:"Lokesh Mandvekar"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/956",children:"#956 - add repository key to package.json"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"https://github.com/jeffmaury",children:"Jean Fran\xe7ois Maury"})," in ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1194",children:"#1194 - Cannot create Kind cluster on Windows"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"final-notes",children:"Final Notes"}),"\n",(0,i.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A0.11.0",children:"here"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Get the latest release from the ",(0,i.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,i.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function p(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}}}]); \ No newline at end of file diff --git a/assets/js/97615df2.15020999.js b/assets/js/97615df2.15020999.js deleted file mode 100644 index 4a14f0a2c4a..00000000000 --- a/assets/js/97615df2.15020999.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5375],{61980:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>h});var s=t(24246),o=t(71670),i=t(92975);const r={title:"Release Notes - Podman Desktop 1.2",description:"Podman Desktop 1.2 has been released!",slug:"podman-desktop-release-1.2",authors:["cdrage"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.2.webp"},a=void 0,l={permalink:"/blog/podman-desktop-release-1.2",source:"@site/blog/2023-07-12-release-1.2.md",title:"Release Notes - Podman Desktop 1.2",description:"Podman Desktop 1.2 has been released!",date:"2023-07-12T00:00:00.000Z",formattedDate:"July 12, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:6.05,hasTruncateMarker:!1,authors:[{name:"Charlie Drage",title:"Software Engineer",url:"https://github.com/cdrage",imageURL:"https://github.com/cdrage.png",key:"cdrage"}],frontMatter:{title:"Release Notes - Podman Desktop 1.2",description:"Podman Desktop 1.2 has been released!",slug:"podman-desktop-release-1.2",authors:["cdrage"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.2.webp"},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 1.3",permalink:"/blog/podman-desktop-release-1.3"},nextItem:{title:"Release Notes - Podman Desktop 1.1",permalink:"/blog/podman-desktop-release-1.1"}},d={authorsImageUrls:[void 0]},h=[{value:"Release Details",id:"release-details",level:2},{value:"Added start/stop/delete/restart buttons for Compose",id:"added-startstopdeleterestart-buttons-for-compose",level:3},{value:"Kubernetes context on the status bar",id:"kubernetes-context-on-the-status-bar",level:3},{value:"Rename images",id:"rename-images",level:3},{value:"Troubleshooting page",id:"troubleshooting-page",level:3},{value:"Protocol handler support",id:"protocol-handler-support",level:3},{value:"Other Notable Features",id:"other-notable-features",level:2},{value:"Documentation Updates",id:"documentation-updates",level:2},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:2},{value:"Community Thank You",id:"community-thank-you",level:2},{value:"Final notes",id:"final-notes",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Podman Desktop 1.2 Release! \ud83c\udf89"}),"\n",(0,s.jsx)(n.p,{children:"We're excited to announce the release of Podman Desktop version 1.2.0! This release includes many new features (Kubernetes, Compose and extension support!), bug fixes, and improvements to enhance your container management experience. Here's a summary of the key changes in this release:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Added start/stop/delete/restart buttons for Compose"}),": You can now make changes to an entire Compose group of containers"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Kubernetes context on the status bar"}),": Choose from multiple Kubernetes contexts more easily all from the status bar"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Rename images"}),": Rename an image with a click of a button"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Protocol handler support"}),": Added support for protocol handlers such as ",(0,s.jsx)(n.code,{children:"open podman-desktop:extension/redhat.openshift-local"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Troubleshooting page"}),": A troubleshooting page for helping diagnose Podman Desktop related development issues"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Podman Desktop 1.2 is now available. ",(0,s.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Podman-desktop-1-2-hero",src:t(31965).Z+"",width:"1920",height:"1080"})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,s.jsx)(n.h3,{id:"added-startstopdeleterestart-buttons-for-compose",children:"Added start/stop/delete/restart buttons for Compose"}),"\n",(0,s.jsxs)(n.p,{children:["In the last month we've been addind support for more Compose features. Before you were only able to control a group of containers if they were in a Pod. Now we have added the ability to control a group of Compose containers. You can now start, stop, delete and restart a group of containers launched by either ",(0,s.jsx)(n.code,{children:"docker-compose"})," or ",(0,s.jsx)(n.code,{children:"podman-compose"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Stay tuned as we add even more features to Compose! If you have any feedback or feature requests, feel free to open an issue or start a discussion on GitHub."}),"\n",(0,s.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/253331226-d80e7637-c223-4bb8-8675-1dcb8d48818f.mov",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"kubernetes-context-on-the-status-bar",children:"Kubernetes context on the status bar"}),"\n",(0,s.jsx)(n.p,{children:"With Kubernetes context on the status bar, you can switch from one context to another in just a couple of clicks. Easily switch to a different cluster all together. If there are multiple contexts available, you can now click and pick which one to use."}),"\n",(0,s.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/243804525-242b02b4-fc3c-415b-be08-24eb1933adc5.mov",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"rename-images",children:"Rename images"}),"\n",(0,s.jsxs)(n.p,{children:["Deployed an image but now you need to rename it / add a new tag? Podman Desktop allows you to edit an image now. Thanks to an awesome contributor ",(0,s.jsx)(n.a,{href:"https://github.com/tuckerrc",children:"@tuckerrc"})," who added the new feature."]}),"\n",(0,s.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/251759557-bd15a631-93ee-4383-a81c-8ef3934dfb59.mp4",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"troubleshooting-page",children:"Troubleshooting page"}),"\n",(0,s.jsx)(n.p,{children:"Developing an extension for Podman Desktop? Want to view the logs of Podman Desktop as well as ping your container connection? We now have a troubleshooting page!"}),"\n",(0,s.jsx)(n.p,{children:"Click on the lightbulb button on the bottom right to access the page."}),"\n",(0,s.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/248210601-e0a5deb0-44ad-4eea-9b24-134754fede80.mp4",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"protocol-handler-support",children:"Protocol handler support"}),"\n",(0,s.jsxs)(n.p,{children:["Podman Desktop now supports protocol handling when using the terminal! Want to access your favourite extension directly from a script or the terminal? If you type in ",(0,s.jsx)(n.code,{children:"open podman-desktop:extension/redhat.openshift-local"})," in the terminal, Podman Desktop will automatically load up to the correct extension."]}),"\n",(0,s.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/243304511-b11ad1e4-4c2f-455c-957a-01653d2a93c8.mp4",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"other-notable-features",children:"Other Notable Features"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Background colors and FormPage (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2977",children:"PR #2977"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add ability to add insecure registry / skipping cert verify (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2896",children:"PR #2896"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add support for icon contribution (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2984",children:"PR #2984"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add warning dialog message that virtual machine has low memory limit (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2822",children:"PR #2822"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Propose indexed name for new pod (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3028",children:"PR #3028"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add restart button after enabling / disabling mac os compatibility (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2841",children:"PR #2841"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add environment related helper constants (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3079",children:"PR #3079"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Allow entrypoint and cmd when starting container (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3031",children:"PR #3031"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add a way to debug stores in troubleshooting page (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3121",children:"PR #3121"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add custompick component (#2855) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3012",children:"PR #3012"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Dynamic breadcrumbs (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3119",children:"PR #3119"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Icons on form pages (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3155",children:"PR #3155"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Switch more pages to formpage (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3162",children:"PR #3162"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add rename image button (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2588",children:"PR #2588"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Fixed headers, improved scrollbars (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2863",children:"PR #2863"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Reports warnings on failed kube deploy, fixes error out (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3050",children:"PR #3050"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Kube context on statusbar (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2755",children:"PR #2755"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Install provider if not installed when clicking on create new button (#2706) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2817",children:"PR #2817"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add tag and authenticated push capacity to the extension API (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2876",children:"PR #2876"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add navigation bar e2e tests (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2950",children:"PR #2950"}),")"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"documentation-updates",children:"Documentation Updates"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Fix documentation for building image of extensions (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2873",children:"PR #2873"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add Minikube install docs (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2824",children:"PR #2824"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add Minikube documentation (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2694",children:"PR #2694"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Updated Building an image procedure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2964",children:"PR #2964"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Starting a container (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2958",children:"PR #2958"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Pulling an image (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2956",children:"PR #2956"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Updated selecting containers to run in a pod (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2970",children:"PR #2970"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Pushing an image to a registry (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2969",children:"PR #2969"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["How to add an insecure registry (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2953",children:"PR #2953"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add documentation for lima (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2995",children:"PR #2995"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Replace broken link to podman.io (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2994",children:"PR #2994"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Authenticating to a pre-configured registry (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2965",children:"PR #2965"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Lima is not a container engine (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3051",children:"PR #3051"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Using the Troubleshooting page (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3083",children:"PR #3083"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["View and select your current Kubernetes context in the status bar (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3090",children:"PR #3090"}),")"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Deleting a running pod generates an error (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2827",children:"PR #2827"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["If kubeconfig is empty, does not try to do things, cancel (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2874",children:"PR #2874"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Async telemetry startup (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2885",children:"PR #2885"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Do not block startup while waiting for kube resource refresh (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2884",children:"PR #2884"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Images list too wide (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2918",children:"PR #2918"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Compose deactivate function never called (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2922",children:"PR #2922"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Auto-scrolling on form pages, layout issues (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2927",children:"PR #2927"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Show current context in quick pick (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2920",children:"PR #2920"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Remove sticky position of loader in dashboard UI (#2535) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2959",children:"PR #2959"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Undo change that broke the website (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2992",children:"PR #2992"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Detailspage, resizing & consistency (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2987",children:"PR #2987"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Quick pick click to close and over nav bar (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2758",children:"PR #2758"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Only show empty screen when no pods (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2929",children:"PR #2929"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Do not redirect to /pods when deleting pod in containerlist (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2963",children:"PR #2963"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Bulk delete on pods should call the pod deletion (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2979",children:"PR #2979"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Update nodejs version to 18 in .nvmrc to fix yarn install failure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2989",children:"PR #2989"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Website check targets (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2996",children:"PR #2996"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Don't show exception to user (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3034",children:"PR #3034"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Interpret arguments given to info command for example (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3015",children:"PR #3015"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Change defaults for Podman machine (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3061",children:"PR #3061"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Normalize development/production folders path (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3113",children:"PR #3113"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Calculate machine socket path for linux (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3070",children:"PR #3070"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Replace backslash with slash so to support rendering on Windows (#3120) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3122",children:"PR #3122"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Keep stdout and stderr in the error object for Docker Desktop extensions (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3014",children:"PR #3014"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Mark task completed if there's a failure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3016",children:"PR #3016"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Handle invalid kubeconfig file (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3129",children:"PR #3129"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Do not remove registries when podman extension is stopping (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3136",children:"PR #3136"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Warning should be amber (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3153",children:"PR #3153"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Load user extensions from plugins as removable (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3152",children:"PR #3152"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Images with spaces in entrypoints or commands fail to start (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3161",children:"PR #3161"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Scrolling offscreen when clicking checkbox (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3178",children:"PR #3178"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Avoid messagebox expanding offscreen (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2778",children:"PR #2778"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Release-notes-generator run failure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2752",children:"PR #2752"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Unable to do a new build if the previous one failed (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2721",children:"PR #2721"}),")"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,s.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better."}),"\n",(0,s.jsxs)(n.p,{children:["A big shoutout to ",(0,s.jsx)(n.a,{href:"https://github.com/afbjorklund",children:"@afbjorklund"}),", ",(0,s.jsx)(n.a,{href:"https://github.com/tuckerrc",children:"@tuckerrc"})," and ",(0,s.jsx)(n.a,{href:"https://github.com/evanshortiss",children:"@evanshortiss"})," who contributed to this release!"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,s.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.2.0",children:"here"})," and ",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.2.0",children:"here"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Get the latest release from the ",(0,s.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function p(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},31965:(e,n,t)=>{t.d(n,{Z:()=>s});const s=t.p+"assets/images/podman-desktop-release-1.2-3a022da0788ed1fd7e6c1820879dd235.png"}}]); \ No newline at end of file diff --git a/assets/js/97615df2.1f13aea9.js b/assets/js/97615df2.1f13aea9.js new file mode 100644 index 00000000000..abfc2202428 --- /dev/null +++ b/assets/js/97615df2.1f13aea9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5375],{61980:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>d,toc:()=>c});var s=t(24246),o=t(71670),i=t(92975),r=t.n(i);const a={title:"Release Notes - Podman Desktop 1.2",description:"Podman Desktop 1.2 has been released!",slug:"podman-desktop-release-1.2",authors:["cdrage"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.2.webp"},l=void 0,d={permalink:"/blog/podman-desktop-release-1.2",source:"@site/blog/2023-07-12-release-1.2.md",title:"Release Notes - Podman Desktop 1.2",description:"Podman Desktop 1.2 has been released!",date:"2023-07-12T00:00:00.000Z",formattedDate:"July 12, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:6.05,hasTruncateMarker:!1,authors:[{name:"Charlie Drage",title:"Software Engineer",url:"https://github.com/cdrage",imageURL:"https://github.com/cdrage.png",key:"cdrage"}],frontMatter:{title:"Release Notes - Podman Desktop 1.2",description:"Podman Desktop 1.2 has been released!",slug:"podman-desktop-release-1.2",authors:["cdrage"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.2.webp"},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 1.3",permalink:"/blog/podman-desktop-release-1.3"},nextItem:{title:"Release Notes - Podman Desktop 1.1",permalink:"/blog/podman-desktop-release-1.1"}},h={authorsImageUrls:[void 0]},c=[{value:"Release Details",id:"release-details",level:2},{value:"Added start/stop/delete/restart buttons for Compose",id:"added-startstopdeleterestart-buttons-for-compose",level:3},{value:"Kubernetes context on the status bar",id:"kubernetes-context-on-the-status-bar",level:3},{value:"Rename images",id:"rename-images",level:3},{value:"Troubleshooting page",id:"troubleshooting-page",level:3},{value:"Protocol handler support",id:"protocol-handler-support",level:3},{value:"Other Notable Features",id:"other-notable-features",level:2},{value:"Documentation Updates",id:"documentation-updates",level:2},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:2},{value:"Community Thank You",id:"community-thank-you",level:2},{value:"Final notes",id:"final-notes",level:2}];function p(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.p,{children:"Podman Desktop 1.2 Release! \ud83c\udf89"}),"\n",(0,s.jsx)(n.p,{children:"We're excited to announce the release of Podman Desktop version 1.2.0! This release includes many new features (Kubernetes, Compose and extension support!), bug fixes, and improvements to enhance your container management experience. Here's a summary of the key changes in this release:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Added start/stop/delete/restart buttons for Compose"}),": You can now make changes to an entire Compose group of containers"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Kubernetes context on the status bar"}),": Choose from multiple Kubernetes contexts more easily all from the status bar"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Rename images"}),": Rename an image with a click of a button"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Protocol handler support"}),": Added support for protocol handlers such as ",(0,s.jsx)(n.code,{children:"open podman-desktop:extension/redhat.openshift-local"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Troubleshooting page"}),": A troubleshooting page for helping diagnose Podman Desktop related development issues"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Podman Desktop 1.2 is now available. ",(0,s.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Podman-desktop-1-2-hero",src:t(31965).Z+"",width:"1920",height:"1080"})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,s.jsx)(n.h3,{id:"added-startstopdeleterestart-buttons-for-compose",children:"Added start/stop/delete/restart buttons for Compose"}),"\n",(0,s.jsxs)(n.p,{children:["In the last month we've been addind support for more Compose features. Before you were only able to control a group of containers if they were in a Pod. Now we have added the ability to control a group of Compose containers. You can now start, stop, delete and restart a group of containers launched by either ",(0,s.jsx)(n.code,{children:"docker-compose"})," or ",(0,s.jsx)(n.code,{children:"podman-compose"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Stay tuned as we add even more features to Compose! If you have any feedback or feature requests, feel free to open an issue or start a discussion on GitHub."}),"\n",(0,s.jsx)(r(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/253331226-d80e7637-c223-4bb8-8675-1dcb8d48818f.mov",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"kubernetes-context-on-the-status-bar",children:"Kubernetes context on the status bar"}),"\n",(0,s.jsx)(n.p,{children:"With Kubernetes context on the status bar, you can switch from one context to another in just a couple of clicks. Easily switch to a different cluster all together. If there are multiple contexts available, you can now click and pick which one to use."}),"\n",(0,s.jsx)(r(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/243804525-242b02b4-fc3c-415b-be08-24eb1933adc5.mov",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"rename-images",children:"Rename images"}),"\n",(0,s.jsxs)(n.p,{children:["Deployed an image but now you need to rename it / add a new tag? Podman Desktop allows you to edit an image now. Thanks to an awesome contributor ",(0,s.jsx)(n.a,{href:"https://github.com/tuckerrc",children:"@tuckerrc"})," who added the new feature."]}),"\n",(0,s.jsx)(r(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/251759557-bd15a631-93ee-4383-a81c-8ef3934dfb59.mp4",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"troubleshooting-page",children:"Troubleshooting page"}),"\n",(0,s.jsx)(n.p,{children:"Developing an extension for Podman Desktop? Want to view the logs of Podman Desktop as well as ping your container connection? We now have a troubleshooting page!"}),"\n",(0,s.jsx)(n.p,{children:"Click on the lightbulb button on the bottom right to access the page."}),"\n",(0,s.jsx)(r(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/248210601-e0a5deb0-44ad-4eea-9b24-134754fede80.mp4",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.h3,{id:"protocol-handler-support",children:"Protocol handler support"}),"\n",(0,s.jsxs)(n.p,{children:["Podman Desktop now supports protocol handling when using the terminal! Want to access your favourite extension directly from a script or the terminal? If you type in ",(0,s.jsx)(n.code,{children:"open podman-desktop:extension/redhat.openshift-local"})," in the terminal, Podman Desktop will automatically load up to the correct extension."]}),"\n",(0,s.jsx)(r(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/243304511-b11ad1e4-4c2f-455c-957a-01653d2a93c8.mp4",width:"100%",height:"100%"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"other-notable-features",children:"Other Notable Features"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Background colors and FormPage (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2977",children:"PR #2977"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add ability to add insecure registry / skipping cert verify (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2896",children:"PR #2896"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add support for icon contribution (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2984",children:"PR #2984"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add warning dialog message that virtual machine has low memory limit (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2822",children:"PR #2822"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Propose indexed name for new pod (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3028",children:"PR #3028"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add restart button after enabling / disabling mac os compatibility (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2841",children:"PR #2841"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add environment related helper constants (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3079",children:"PR #3079"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Allow entrypoint and cmd when starting container (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3031",children:"PR #3031"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add a way to debug stores in troubleshooting page (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3121",children:"PR #3121"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add custompick component (#2855) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3012",children:"PR #3012"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Dynamic breadcrumbs (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3119",children:"PR #3119"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Icons on form pages (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3155",children:"PR #3155"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Switch more pages to formpage (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3162",children:"PR #3162"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add rename image button (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2588",children:"PR #2588"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Fixed headers, improved scrollbars (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2863",children:"PR #2863"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Reports warnings on failed kube deploy, fixes error out (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3050",children:"PR #3050"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Kube context on statusbar (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2755",children:"PR #2755"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Install provider if not installed when clicking on create new button (#2706) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2817",children:"PR #2817"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add tag and authenticated push capacity to the extension API (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2876",children:"PR #2876"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add navigation bar e2e tests (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2950",children:"PR #2950"}),")"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"documentation-updates",children:"Documentation Updates"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Fix documentation for building image of extensions (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2873",children:"PR #2873"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add Minikube install docs (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2824",children:"PR #2824"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add Minikube documentation (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2694",children:"PR #2694"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Updated Building an image procedure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2964",children:"PR #2964"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Starting a container (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2958",children:"PR #2958"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Pulling an image (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2956",children:"PR #2956"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Updated selecting containers to run in a pod (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2970",children:"PR #2970"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Pushing an image to a registry (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2969",children:"PR #2969"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["How to add an insecure registry (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2953",children:"PR #2953"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Add documentation for lima (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2995",children:"PR #2995"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Replace broken link to podman.io (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2994",children:"PR #2994"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Authenticating to a pre-configured registry (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2965",children:"PR #2965"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Lima is not a container engine (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3051",children:"PR #3051"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Using the Troubleshooting page (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3083",children:"PR #3083"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["View and select your current Kubernetes context in the status bar (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3090",children:"PR #3090"}),")"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Deleting a running pod generates an error (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2827",children:"PR #2827"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["If kubeconfig is empty, does not try to do things, cancel (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2874",children:"PR #2874"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Async telemetry startup (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2885",children:"PR #2885"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Do not block startup while waiting for kube resource refresh (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2884",children:"PR #2884"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Images list too wide (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2918",children:"PR #2918"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Compose deactivate function never called (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2922",children:"PR #2922"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Auto-scrolling on form pages, layout issues (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2927",children:"PR #2927"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Show current context in quick pick (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2920",children:"PR #2920"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Remove sticky position of loader in dashboard UI (#2535) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2959",children:"PR #2959"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Undo change that broke the website (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2992",children:"PR #2992"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Detailspage, resizing & consistency (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2987",children:"PR #2987"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Quick pick click to close and over nav bar (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2758",children:"PR #2758"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Only show empty screen when no pods (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2929",children:"PR #2929"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Do not redirect to /pods when deleting pod in containerlist (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2963",children:"PR #2963"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Bulk delete on pods should call the pod deletion (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2979",children:"PR #2979"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Update nodejs version to 18 in .nvmrc to fix yarn install failure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2989",children:"PR #2989"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Website check targets (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2996",children:"PR #2996"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Don't show exception to user (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3034",children:"PR #3034"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Interpret arguments given to info command for example (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3015",children:"PR #3015"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Change defaults for Podman machine (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3061",children:"PR #3061"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Normalize development/production folders path (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3113",children:"PR #3113"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Calculate machine socket path for linux (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3070",children:"PR #3070"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Replace backslash with slash so to support rendering on Windows (#3120) (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3122",children:"PR #3122"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Keep stdout and stderr in the error object for Docker Desktop extensions (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3014",children:"PR #3014"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Mark task completed if there's a failure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3016",children:"PR #3016"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Handle invalid kubeconfig file (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3129",children:"PR #3129"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Do not remove registries when podman extension is stopping (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3136",children:"PR #3136"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Warning should be amber (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3153",children:"PR #3153"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Load user extensions from plugins as removable (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3152",children:"PR #3152"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Images with spaces in entrypoints or commands fail to start (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3161",children:"PR #3161"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Scrolling offscreen when clicking checkbox (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3178",children:"PR #3178"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Avoid messagebox expanding offscreen (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2778",children:"PR #2778"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Release-notes-generator run failure (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2752",children:"PR #2752"}),")"]}),"\n",(0,s.jsxs)(n.li,{children:["Unable to do a new build if the previous one failed (",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2721",children:"PR #2721"}),")"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,s.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better."}),"\n",(0,s.jsxs)(n.p,{children:["A big shoutout to ",(0,s.jsx)(n.a,{href:"https://github.com/afbjorklund",children:"@afbjorklund"}),", ",(0,s.jsx)(n.a,{href:"https://github.com/tuckerrc",children:"@tuckerrc"})," and ",(0,s.jsx)(n.a,{href:"https://github.com/evanshortiss",children:"@evanshortiss"})," who contributed to this release!"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,s.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.2.0",children:"here"})," and ",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.2.0",children:"here"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Get the latest release from the ",(0,s.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,s.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},31965:(e,n,t)=>{t.d(n,{Z:()=>s});const s=t.p+"assets/images/podman-desktop-release-1.2-3a022da0788ed1fd7e6c1820879dd235.png"}}]); \ No newline at end of file diff --git a/assets/js/9f97f9d1.6f54242f.js b/assets/js/9f97f9d1.6f54242f.js new file mode 100644 index 00000000000..abe30033f8e --- /dev/null +++ b/assets/js/9f97f9d1.6f54242f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6843],{31482:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>m,frontMatter:()=>l,metadata:()=>d,toc:()=>p});var o=s(24246),t=s(71670),i=s(92975),a=s.n(i);const l={title:"Release Notes - Podman Desktop 1.3",description:"Podman Desktop 1.3 has been released!",slug:"podman-desktop-release-1.3",authors:["dgolovin"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.3.webp"},r=void 0,d={permalink:"/blog/podman-desktop-release-1.3",source:"@site/blog/2023-08-16-release-1.3.md",title:"Release Notes - Podman Desktop 1.3",description:"Podman Desktop 1.3 has been released!",date:"2023-08-16T00:00:00.000Z",formattedDate:"August 16, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:5.195,hasTruncateMarker:!1,authors:[{name:"Denis Golovin",title:"Principal Software Engineer",url:"https://github.com/cdrage",imageURL:"https://github.com/dgolovin.png",key:"dgolovin"}],frontMatter:{title:"Release Notes - Podman Desktop 1.3",description:"Podman Desktop 1.3 has been released!",slug:"podman-desktop-release-1.3",authors:["dgolovin"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.3.webp"},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 1.4",permalink:"/blog/podman-desktop-release-1.4"},nextItem:{title:"Release Notes - Podman Desktop 1.2",permalink:"/blog/podman-desktop-release-1.2"}},c={authorsImageUrls:[void 0]},p=[{value:"Release Details",id:"release-details",level:2},{value:"Compose group Logs tab #3176",id:"compose-group-logs-tab-3176",level:3},{value:"Podman user-mode networking support to Windows/WSL #3251",id:"podman-user-mode-networking-support-to-windowswsl-3251",level:3},{value:"Compose group Summary tab #3317,",id:"compose-group-summary-tab-3317",level:3},{value:"Compose group Inspect tab #3316",id:"compose-group-inspect-tab-3316",level:3},{value:"Deploy to kubernetes in compose actions #3299",id:"deploy-to-kubernetes-in-compose-actions-3299",level:3},{value:"Generate Kube in Compose actions and Kube tab in compose details #3253",id:"generate-kube-in-compose-actions-and-kube-tab-in-compose-details-3253",level:3},{value:"Install multiple extensions using extension pack #3150",id:"install-multiple-extensions-using-extension-pack-3150",level:3},{value:"Customize icons from extension #3131",id:"customize-icons-from-extension-3131",level:3},{value:"Resource details page update #1923",id:"resource-details-page-update-1923",level:3},{value:"Node's container image field added to Create a Kind cluster form #3508",id:"nodes-container-image-field-added-to-create-a-kind-cluster-form-3508",level:3},{value:"Support Docker Desktop extensions using a backend #3435",id:"support-docker-desktop-extensions-using-a-backend-3435",level:3},{value:"Initial onboarding implementation for podman (experimental) #3308",id:"initial-onboarding-implementation-for-podman-experimental-3308",level:3},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:3},{value:"Community Thank You",id:"community-thank-you",level:3},{value:"Final Notes",id:"final-notes",level:3}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:"Podman Desktop 1.3 Release! \ud83c\udf89"}),"\n",(0,o.jsx)(n.p,{children:"This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features."}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Podman 4.6.1"}),": Podman 4.6.1 included in Windows and Mac installers"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Podman user-mode networking support to Windows/WSL"}),": A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Compose group new UI elements"}),": You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Extension packs and extension dependencies"}),": Install group of extensions in one click"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Resource details page update"}),": See summary and log for resource"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Create Kind cluster form update"}),": A new ",(0,o.jsx)(n.code,{children:"Node's container image"})," field can be used to specify the Kubernetes version used for the control-planed"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Support Docker Desktop extensions using a backend"}),": When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Podman Initial Onboarding (preview)"}),": Install and configure podman using included installer"]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["Podman Desktop 1.3 is now available. ",(0,o.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Podman-desktop-1-3-bug-swatting",src:s(46714).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,o.jsxs)(n.h3,{id:"compose-group-logs-tab-3176",children:["Compose group Logs tab ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3176",children:"#3176"})]}),"\n",(0,o.jsx)(n.p,{children:"When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open\nlog for every component individually."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/6422176/743a4ffc-e291-4697-8ac5-8052cc921946",alt:"Screenshot 2023-07-11 at 12 48 47 PM"})}),"\n",(0,o.jsxs)(n.h3,{id:"podman-user-mode-networking-support-to-windowswsl-3251",children:["Podman user-mode networking support to Windows/WSL ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3251",children:"#3251"})]}),"\n",(0,o.jsx)(n.p,{children:"Certain VPN setups or other specialized networking configs will block traffic from the virtual WSL networking device, resulting in the podman WSL backend from being unable to contact systems on the VPN, and potentially losing internet access altogether. The new switch allows you to create a podman VM machine configured to work correctly in mentioned above networking environments."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/620330/2f521576-b6a6-42b5-b24d-08df5b432608",alt:"user"})}),"\n",(0,o.jsxs)(n.h3,{id:"compose-group-summary-tab-3317",children:["Compose group Summary tab ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3317",children:"#3317"}),","]}),"\n",(0,o.jsx)(n.p,{children:"Compose group Summary tab shows all containers in the group and let you navigate to Details page for specific container."}),"\n",(0,o.jsx)(a(),{playing:!0,controls:!0,url:"https://github.com/containers/podman-desktop/assets/620330/6dd6dacd-a0d8-478d-b11e-2b414108bd20",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"compose-group-inspect-tab-3316",children:["Compose group Inspect tab ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3316",children:"#3316"})]}),"\n",(0,o.jsx)(n.p,{children:'Compose group Inspect tab shows an array of "container inspect" from docker / podman.'}),"\n",(0,o.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/255658081-4a2ce4ce-bdc7-435d-9114-1071ab1ec3c5.mov",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"deploy-to-kubernetes-in-compose-actions-3299",children:[(0,o.jsx)(n.code,{children:"Deploy to kubernetes"})," in compose actions ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3295",children:"#3299"})]}),"\n",(0,o.jsx)(n.p,{children:"A button to deploy to kubernetes added to Compose group."}),"\n",(0,o.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/254973806-1ce57225-3422-4d36-8d09-b70a2825869f.mov",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"generate-kube-in-compose-actions-and-kube-tab-in-compose-details-3253",children:[(0,o.jsx)(n.code,{children:"Generate Kube"})," in Compose actions and ",(0,o.jsx)(n.code,{children:"Kube"})," tab in compose details ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3253",children:"#3253"})]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"Generate Kube"}),' item added to Compose actions and "Kube" tab is now available in Compose details view.']}),"\n",(0,o.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/254337805-98268722-4dde-4c0e-afdf-4873fa4f43fe.mov",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"install-multiple-extensions-using-extension-pack-3150",children:["Install multiple extensions using extension pack ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3150",children:"#3150"})]}),"\n",(0,o.jsx)(n.p,{children:"An Extension pack introduced in Extension engine is a way to declare set of extensions to install them all at once."}),"\n",(0,o.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/251741571-0cd4a199-06f4-4890-8414-4e93ca9178bc.mp4",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"customize-icons-from-extension-3131",children:["Customize icons from extension ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3131",children:"#3131"})]}),"\n",(0,o.jsxs)(n.p,{children:["Extensions now can customize icons for list elements using ",(0,o.jsx)(n.code,{children:"when"})," clause."]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/49404737/7aae5347-4f07-4854-ba11-1f629b5ccf22",alt:"image"})}),"\n",(0,o.jsxs)(n.h3,{id:"resource-details-page-update-1923",children:["Resource details page update ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1923",children:"#1923"})]}),"\n",(0,o.jsx)(n.p,{children:"If you click on the arrow icon next to a resource name it will open up a details page (similarly to how clicking on a container in the container list opens up a details page)."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/229542404-bae44f89-5cd3-4baf-8b08-e934e4462697.gif",alt:"image"})}),"\n",(0,o.jsxs)(n.h3,{id:"nodes-container-image-field-added-to-create-a-kind-cluster-form-3508",children:[(0,o.jsx)(n.code,{children:"Node's container image"})," field added to ",(0,o.jsx)(n.code,{children:"Create a Kind cluster"})," form ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3508",children:"#3508"})]}),"\n",(0,o.jsxs)(n.p,{children:["The new ",(0,o.jsx)(n.code,{children:"Node's container image"})," field can be used to specify the Kubernetes version used for the control-planed."]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/42176370/b2a63faf-629f-436d-8496-7c0cd8158679",alt:"image"})}),"\n",(0,o.jsxs)(n.h3,{id:"support-docker-desktop-extensions-using-a-backend-3435",children:["Support Docker Desktop extensions using a backend ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3435",children:"#3435"})]}),"\n",(0,o.jsx)(n.p,{children:"Podman Desktop now loads the containers in the backend as described in the vm section of extension descriptor the same way as Docker Desktop does."}),"\n",(0,o.jsxs)(n.h3,{id:"initial-onboarding-implementation-for-podman-experimental-3308",children:["Initial onboarding implementation for podman (experimental) ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3308",children:"#3308"})]}),"\n",(0,o.jsx)(n.p,{children:"This is the initial implementation for the onboarding feature. It only covers a simple onboarding for podman. Check system requirements -> install podman -> yay! Done!"}),"\n",(0,o.jsx)(n.h3,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Updating videos to be adaptive for mobile by @mairin ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3229",children:"#3229"})]}),"\n",(0,o.jsxs)(n.li,{children:["Consistent max width and padding in settings by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3232",children:"#3232"})]}),"\n",(0,o.jsxs)(n.li,{children:["Settings navigation bar resizing by @deboer-tim in ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3231",children:"#3231"})]}),"\n",(0,o.jsxs)(n.li,{children:["Move new registry button to header by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3245",children:"#3245"})]}),"\n",(0,o.jsxs)(n.li,{children:["Bigger lima logo by @afbjorklund ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3248",children:"#3248"})]}),"\n",(0,o.jsxs)(n.li,{children:["Horizontal docker logo by @afbjorklund ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3236",children:"#3236"})]}),"\n",(0,o.jsxs)(n.li,{children:["Respect LIMA_HOME environment variable by @afbjorklund ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3254",children:"#3254"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add check before writing to terminal by @lstocchi ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3263",children:"#3263"})]}),"\n",(0,o.jsxs)(n.li,{children:["Wait until remote side has fully initialized the extensions by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3257",children:"#3257"})]}),"\n",(0,o.jsxs)(n.li,{children:["Fix loader not centered horizontally by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3270",children:"#3270"})]}),"\n",(0,o.jsxs)(n.li,{children:["Troubleshooting still waiting after failure by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3354",children:"#3354"})]}),"\n",(0,o.jsxs)(n.li,{children:["Store error for build by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3365",children:"#3365"})]}),"\n",(0,o.jsxs)(n.li,{children:["Missing checkbox tooltips by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3380",children:"#3380"})]}),"\n",(0,o.jsxs)(n.li,{children:["Load compose logs async not await by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3377",children:"#3377"})]}),"\n",(0,o.jsxs)(n.li,{children:["Set rootful connection when starting rootful machine by @lstocchi ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3364",children:"#3364"})]}),"\n",(0,o.jsxs)(n.li,{children:["Default last page by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3388",children:"#3388"})]}),"\n",(0,o.jsxs)(n.li,{children:["Avoid dashboard displaying providers starting while they don't by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3451",children:"#3451"})]}),"\n",(0,o.jsxs)(n.li,{children:["Do not use extensionInfo until it is defined by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3450",children:"#V"})]}),"\n",(0,o.jsxs)(n.li,{children:["Allow BASIC authentication (all caps) by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3471",children:"#3471"})]}),"\n",(0,o.jsxs)(n.li,{children:["Allow single domain registry such as localhost:5000 by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3468",children:"#3468"})]}),"\n",(0,o.jsxs)(n.li,{children:["Create /usr/local/bin directory if it does not exist on binary install by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3425",children:"#3425"})]}),"\n",(0,o.jsxs)(n.li,{children:["Only delete selected pods by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3378",children:"#"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add back 'Done' text on the button by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3487",children:"#3487"})]}),"\n",(0,o.jsxs)(n.li,{children:["Do not wait for more than 5s when checking for podman ping by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3497",children:"#3497"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add proxy support for extension using patching get and request approach by @dgolovin ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2825",children:"#2825"})]}),"\n",(0,o.jsxs)(n.li,{children:["Refresh component when field is updated by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3525",children:"#3525"})]}),"\n",(0,o.jsxs)(n.li,{children:["Higher-res icons for featured extensions list by @mairin ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3511",children:"#3511"})]}),"\n",(0,o.jsxs)(n.li,{children:["Main nav selection by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3510",children:"#3510"})]}),"\n",(0,o.jsxs)(n.li,{children:["kube event error when switching context by @jeffmaury ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3494",children:"#3494"})]}),"\n",(0,o.jsxs)(n.li,{children:["Reset error message each time we pull image by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3550",children:"#3550"})]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,o.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better."}),"\n",(0,o.jsxs)(n.p,{children:["A warm welcome to ",(0,o.jsx)(n.a,{href:"https://github.com/rostalan",children:"@rostalan"})," and ",(0,o.jsx)(n.a,{href:"https://github.com/axel7083",children:"@axel7083"})," who made their first contribution to the project in this release."]}),"\n",(0,o.jsx)(n.h3,{id:"final-notes",children:"Final Notes"}),"\n",(0,o.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.3.0",children:"here"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["Get the latest release from the ",(0,o.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function m(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},46714:(e,n,s)=>{s.d(n,{Z:()=>o});const o=s.p+"assets/images/title-bug-swatting-8a5058958e05e545e61c1e5e689335d3.png"}}]); \ No newline at end of file diff --git a/assets/js/9f97f9d1.a2b38731.js b/assets/js/9f97f9d1.a2b38731.js deleted file mode 100644 index e9b702472a1..00000000000 --- a/assets/js/9f97f9d1.a2b38731.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6843],{31482:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var o=s(24246),t=s(71670),i=s(92975);const a={title:"Release Notes - Podman Desktop 1.3",description:"Podman Desktop 1.3 has been released!",slug:"podman-desktop-release-1.3",authors:["dgolovin"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.3.webp"},l=void 0,r={permalink:"/blog/podman-desktop-release-1.3",source:"@site/blog/2023-08-16-release-1.3.md",title:"Release Notes - Podman Desktop 1.3",description:"Podman Desktop 1.3 has been released!",date:"2023-08-16T00:00:00.000Z",formattedDate:"August 16, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:5.195,hasTruncateMarker:!1,authors:[{name:"Denis Golovin",title:"Principal Software Engineer",url:"https://github.com/cdrage",imageURL:"https://github.com/dgolovin.png",key:"dgolovin"}],frontMatter:{title:"Release Notes - Podman Desktop 1.3",description:"Podman Desktop 1.3 has been released!",slug:"podman-desktop-release-1.3",authors:["dgolovin"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.3.webp"},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 1.4",permalink:"/blog/podman-desktop-release-1.4"},nextItem:{title:"Release Notes - Podman Desktop 1.2",permalink:"/blog/podman-desktop-release-1.2"}},d={authorsImageUrls:[void 0]},c=[{value:"Release Details",id:"release-details",level:2},{value:"Compose group Logs tab #3176",id:"compose-group-logs-tab-3176",level:3},{value:"Podman user-mode networking support to Windows/WSL #3251",id:"podman-user-mode-networking-support-to-windowswsl-3251",level:3},{value:"Compose group Summary tab #3317,",id:"compose-group-summary-tab-3317",level:3},{value:"Compose group Inspect tab #3316",id:"compose-group-inspect-tab-3316",level:3},{value:"Deploy to kubernetes in compose actions #3299",id:"deploy-to-kubernetes-in-compose-actions-3299",level:3},{value:"Generate Kube in Compose actions and Kube tab in compose details #3253",id:"generate-kube-in-compose-actions-and-kube-tab-in-compose-details-3253",level:3},{value:"Install multiple extensions using extension pack #3150",id:"install-multiple-extensions-using-extension-pack-3150",level:3},{value:"Customize icons from extension #3131",id:"customize-icons-from-extension-3131",level:3},{value:"Resource details page update #1923",id:"resource-details-page-update-1923",level:3},{value:"Node's container image field added to Create a Kind cluster form #3508",id:"nodes-container-image-field-added-to-create-a-kind-cluster-form-3508",level:3},{value:"Support Docker Desktop extensions using a backend #3435",id:"support-docker-desktop-extensions-using-a-backend-3435",level:3},{value:"Initial onboarding implementation for podman (experimental) #3308",id:"initial-onboarding-implementation-for-podman-experimental-3308",level:3},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:3},{value:"Community Thank You",id:"community-thank-you",level:3},{value:"Final Notes",id:"final-notes",level:3}];function p(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:"Podman Desktop 1.3 Release! \ud83c\udf89"}),"\n",(0,o.jsx)(n.p,{children:"This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features."}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Podman 4.6.1"}),": Podman 4.6.1 included in Windows and Mac installers"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Podman user-mode networking support to Windows/WSL"}),": A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Compose group new UI elements"}),": You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Extension packs and extension dependencies"}),": Install group of extensions in one click"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Resource details page update"}),": See summary and log for resource"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Create Kind cluster form update"}),": A new ",(0,o.jsx)(n.code,{children:"Node's container image"})," field can be used to specify the Kubernetes version used for the control-planed"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Support Docker Desktop extensions using a backend"}),": When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Podman Initial Onboarding (preview)"}),": Install and configure podman using included installer"]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["Podman Desktop 1.3 is now available. ",(0,o.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Podman-desktop-1-3-bug-swatting",src:s(46714).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,o.jsxs)(n.h3,{id:"compose-group-logs-tab-3176",children:["Compose group Logs tab ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3176",children:"#3176"})]}),"\n",(0,o.jsx)(n.p,{children:"When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open\nlog for every component individually."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/6422176/743a4ffc-e291-4697-8ac5-8052cc921946",alt:"Screenshot 2023-07-11 at 12 48 47 PM"})}),"\n",(0,o.jsxs)(n.h3,{id:"podman-user-mode-networking-support-to-windowswsl-3251",children:["Podman user-mode networking support to Windows/WSL ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3251",children:"#3251"})]}),"\n",(0,o.jsx)(n.p,{children:"Certain VPN setups or other specialized networking configs will block traffic from the virtual WSL networking device, resulting in the podman WSL backend from being unable to contact systems on the VPN, and potentially losing internet access altogether. The new switch allows you to create a podman VM machine configured to work correctly in mentioned above networking environments."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/620330/2f521576-b6a6-42b5-b24d-08df5b432608",alt:"user"})}),"\n",(0,o.jsxs)(n.h3,{id:"compose-group-summary-tab-3317",children:["Compose group Summary tab ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3317",children:"#3317"}),","]}),"\n",(0,o.jsx)(n.p,{children:"Compose group Summary tab shows all containers in the group and let you navigate to Details page for specific container."}),"\n",(0,o.jsx)(i.Z,{playing:!0,controls:!0,url:"https://github.com/containers/podman-desktop/assets/620330/6dd6dacd-a0d8-478d-b11e-2b414108bd20",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"compose-group-inspect-tab-3316",children:["Compose group Inspect tab ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3316",children:"#3316"})]}),"\n",(0,o.jsx)(n.p,{children:'Compose group Inspect tab shows an array of "container inspect" from docker / podman.'}),"\n",(0,o.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/255658081-4a2ce4ce-bdc7-435d-9114-1071ab1ec3c5.mov",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"deploy-to-kubernetes-in-compose-actions-3299",children:[(0,o.jsx)(n.code,{children:"Deploy to kubernetes"})," in compose actions ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3295",children:"#3299"})]}),"\n",(0,o.jsx)(n.p,{children:"A button to deploy to kubernetes added to Compose group."}),"\n",(0,o.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/254973806-1ce57225-3422-4d36-8d09-b70a2825869f.mov",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"generate-kube-in-compose-actions-and-kube-tab-in-compose-details-3253",children:[(0,o.jsx)(n.code,{children:"Generate Kube"})," in Compose actions and ",(0,o.jsx)(n.code,{children:"Kube"})," tab in compose details ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3253",children:"#3253"})]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"Generate Kube"}),' item added to Compose actions and "Kube" tab is now available in Compose details view.']}),"\n",(0,o.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/254337805-98268722-4dde-4c0e-afdf-4873fa4f43fe.mov",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"install-multiple-extensions-using-extension-pack-3150",children:["Install multiple extensions using extension pack ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3150",children:"#3150"})]}),"\n",(0,o.jsx)(n.p,{children:"An Extension pack introduced in Extension engine is a way to declare set of extensions to install them all at once."}),"\n",(0,o.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/251741571-0cd4a199-06f4-4890-8414-4e93ca9178bc.mp4",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"customize-icons-from-extension-3131",children:["Customize icons from extension ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3131",children:"#3131"})]}),"\n",(0,o.jsxs)(n.p,{children:["Extensions now can customize icons for list elements using ",(0,o.jsx)(n.code,{children:"when"})," clause."]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/49404737/7aae5347-4f07-4854-ba11-1f629b5ccf22",alt:"image"})}),"\n",(0,o.jsxs)(n.h3,{id:"resource-details-page-update-1923",children:["Resource details page update ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1923",children:"#1923"})]}),"\n",(0,o.jsx)(n.p,{children:"If you click on the arrow icon next to a resource name it will open up a details page (similarly to how clicking on a container in the container list opens up a details page)."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/229542404-bae44f89-5cd3-4baf-8b08-e934e4462697.gif",alt:"image"})}),"\n",(0,o.jsxs)(n.h3,{id:"nodes-container-image-field-added-to-create-a-kind-cluster-form-3508",children:[(0,o.jsx)(n.code,{children:"Node's container image"})," field added to ",(0,o.jsx)(n.code,{children:"Create a Kind cluster"})," form ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3508",children:"#3508"})]}),"\n",(0,o.jsxs)(n.p,{children:["The new ",(0,o.jsx)(n.code,{children:"Node's container image"})," field can be used to specify the Kubernetes version used for the control-planed."]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/42176370/b2a63faf-629f-436d-8496-7c0cd8158679",alt:"image"})}),"\n",(0,o.jsxs)(n.h3,{id:"support-docker-desktop-extensions-using-a-backend-3435",children:["Support Docker Desktop extensions using a backend ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3435",children:"#3435"})]}),"\n",(0,o.jsx)(n.p,{children:"Podman Desktop now loads the containers in the backend as described in the vm section of extension descriptor the same way as Docker Desktop does."}),"\n",(0,o.jsxs)(n.h3,{id:"initial-onboarding-implementation-for-podman-experimental-3308",children:["Initial onboarding implementation for podman (experimental) ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3308",children:"#3308"})]}),"\n",(0,o.jsx)(n.p,{children:"This is the initial implementation for the onboarding feature. It only covers a simple onboarding for podman. Check system requirements -> install podman -> yay! Done!"}),"\n",(0,o.jsx)(n.h3,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Updating videos to be adaptive for mobile by @mairin ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3229",children:"#3229"})]}),"\n",(0,o.jsxs)(n.li,{children:["Consistent max width and padding in settings by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3232",children:"#3232"})]}),"\n",(0,o.jsxs)(n.li,{children:["Settings navigation bar resizing by @deboer-tim in ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3231",children:"#3231"})]}),"\n",(0,o.jsxs)(n.li,{children:["Move new registry button to header by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3245",children:"#3245"})]}),"\n",(0,o.jsxs)(n.li,{children:["Bigger lima logo by @afbjorklund ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3248",children:"#3248"})]}),"\n",(0,o.jsxs)(n.li,{children:["Horizontal docker logo by @afbjorklund ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3236",children:"#3236"})]}),"\n",(0,o.jsxs)(n.li,{children:["Respect LIMA_HOME environment variable by @afbjorklund ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3254",children:"#3254"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add check before writing to terminal by @lstocchi ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3263",children:"#3263"})]}),"\n",(0,o.jsxs)(n.li,{children:["Wait until remote side has fully initialized the extensions by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3257",children:"#3257"})]}),"\n",(0,o.jsxs)(n.li,{children:["Fix loader not centered horizontally by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3270",children:"#3270"})]}),"\n",(0,o.jsxs)(n.li,{children:["Troubleshooting still waiting after failure by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3354",children:"#3354"})]}),"\n",(0,o.jsxs)(n.li,{children:["Store error for build by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3365",children:"#3365"})]}),"\n",(0,o.jsxs)(n.li,{children:["Missing checkbox tooltips by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3380",children:"#3380"})]}),"\n",(0,o.jsxs)(n.li,{children:["Load compose logs async not await by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3377",children:"#3377"})]}),"\n",(0,o.jsxs)(n.li,{children:["Set rootful connection when starting rootful machine by @lstocchi ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3364",children:"#3364"})]}),"\n",(0,o.jsxs)(n.li,{children:["Default last page by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3388",children:"#3388"})]}),"\n",(0,o.jsxs)(n.li,{children:["Avoid dashboard displaying providers starting while they don't by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3451",children:"#3451"})]}),"\n",(0,o.jsxs)(n.li,{children:["Do not use extensionInfo until it is defined by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3450",children:"#V"})]}),"\n",(0,o.jsxs)(n.li,{children:["Allow BASIC authentication (all caps) by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3471",children:"#3471"})]}),"\n",(0,o.jsxs)(n.li,{children:["Allow single domain registry such as localhost:5000 by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3468",children:"#3468"})]}),"\n",(0,o.jsxs)(n.li,{children:["Create /usr/local/bin directory if it does not exist on binary install by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3425",children:"#3425"})]}),"\n",(0,o.jsxs)(n.li,{children:["Only delete selected pods by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3378",children:"#"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add back 'Done' text on the button by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3487",children:"#3487"})]}),"\n",(0,o.jsxs)(n.li,{children:["Do not wait for more than 5s when checking for podman ping by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3497",children:"#3497"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add proxy support for extension using patching get and request approach by @dgolovin ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2825",children:"#2825"})]}),"\n",(0,o.jsxs)(n.li,{children:["Refresh component when field is updated by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3525",children:"#3525"})]}),"\n",(0,o.jsxs)(n.li,{children:["Higher-res icons for featured extensions list by @mairin ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3511",children:"#3511"})]}),"\n",(0,o.jsxs)(n.li,{children:["Main nav selection by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3510",children:"#3510"})]}),"\n",(0,o.jsxs)(n.li,{children:["kube event error when switching context by @jeffmaury ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3494",children:"#3494"})]}),"\n",(0,o.jsxs)(n.li,{children:["Reset error message each time we pull image by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3550",children:"#3550"})]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,o.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better."}),"\n",(0,o.jsxs)(n.p,{children:["A warm welcome to ",(0,o.jsx)(n.a,{href:"https://github.com/rostalan",children:"@rostalan"})," and ",(0,o.jsx)(n.a,{href:"https://github.com/axel7083",children:"@axel7083"})," who made their first contribution to the project in this release."]}),"\n",(0,o.jsx)(n.h3,{id:"final-notes",children:"Final Notes"}),"\n",(0,o.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.3.0",children:"here"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["Get the latest release from the ",(0,o.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}},46714:(e,n,s)=>{s.d(n,{Z:()=>o});const o=s.p+"assets/images/title-bug-swatting-8a5058958e05e545e61c1e5e689335d3.png"}}]); \ No newline at end of file diff --git a/assets/js/a00af9f0.aa516391.js b/assets/js/a00af9f0.aa516391.js new file mode 100644 index 00000000000..c75862d58dd --- /dev/null +++ b/assets/js/a00af9f0.aa516391.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[822],{5416:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>h,contentTitle:()=>l,default:()=>m,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var t=s(24246),i=s(71670),o=s(92975),a=s.n(o);const r={title:"Release Notes - Podman Desktop 1.5",description:"Podman Desktop 1.5 has been released!",slug:"podman-desktop-release-1.5",authors:"duffy",tags:["podman-desktop","release","kubernetes","openshift","onboarding","compose","extensions","settings"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.5/onboarding-selkies.png"},l=void 0,d={permalink:"/blog/podman-desktop-release-1.5",source:"@site/blog/2023-11-03-release-1.5.md",title:"Release Notes - Podman Desktop 1.5",description:"Podman Desktop 1.5 has been released!",date:"2023-11-03T00:00:00.000Z",formattedDate:"November 3, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"},{label:"onboarding",permalink:"/blog/tags/onboarding"},{label:"compose",permalink:"/blog/tags/compose"},{label:"extensions",permalink:"/blog/tags/extensions"},{label:"settings",permalink:"/blog/tags/settings"}],readingTime:8.14,hasTruncateMarker:!1,authors:[{name:"M\xe1ir\xedn Duffy",title:"User Experience Designer",url:"https://github.com/mairin",imageURL:"https://github.com/mairin.png",key:"duffy"}],frontMatter:{title:"Release Notes - Podman Desktop 1.5",description:"Podman Desktop 1.5 has been released!",slug:"podman-desktop-release-1.5",authors:"duffy",tags:["podman-desktop","release","kubernetes","openshift","onboarding","compose","extensions","settings"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.5/onboarding-selkies.png"},unlisted:!1,prevItem:{title:"Share your local podman images with the Kubernetes cluster",permalink:"/blog/sharing-podman-images-with-kubernetes-cluster"},nextItem:{title:"Release Notes - Podman Desktop 1.4",permalink:"/blog/podman-desktop-release-1.4"}},h={authorsImageUrls:[void 0]},c=[{value:"Release Details",id:"release-details",level:2},{value:"Onboarding",id:"onboarding",level:3},{value:"Command Palette",id:"command-palette",level:3},{value:"Expanded "Summary" tab for Kubernetes pods",id:"expanded-summary-tab-for-kubernetes-pods",level:3},{value:"Environment file support",id:"environment-file-support",level:3},{value:"Enhancements to the Settings area",id:"enhancements-to-the-settings-area",level:3},{value:"Improved user experience for state changes",id:"improved-user-experience-for-state-changes",level:3},{value:"Extension API improvements",id:"extension-api-improvements",level:3},{value:"Other Notable Enhancements",id:"other-notable-enhancements",level:2},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:2},{value:"Community Thank You",id:"community-thank-you",level:2},{value:"Final notes",id:"final-notes",level:2},{value:"Known Issues",id:"known-issues",level:3},{value:"Known Issues: Podman Desktop 1.5.2",id:"known-issues-podman-desktop-152",level:4},{value:"Fixed Issues",id:"fixed-issues",level:3},{value:"Where to Download",id:"where-to-download",level:3}];function p(e){const n={a:"a",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components},{Icon:o}=n;return o||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Icon",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Podman Desktop 1.5 Release! \ud83c\udf89"}),"\n",(0,t.jsxs)(n.p,{children:["With this release of Podman Desktop, we're introducing ",(0,t.jsx)(n.strong,{children:"a new onboarding feature"})," that we hope will earn your \ud83e\uddad seal of approval! But wait... there's so much more!"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Onboarding"}),": Guided setup and configuration of ",(0,t.jsx)(n.strong,{children:"Podman"})," and ",(0,t.jsx)(n.strong,{children:"Compose"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Podman 4.7.2"}),": ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman/releases",children:"Podman 4.7.2"})," is now included in Windows and Mac installers"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Command Palette"}),": Gain easy access to various commands via a new keyboard-driven command palette"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:'Expanded "Summary" tab for Kubernetes pods'}),': Go deep with extended details on Kubernetes pods in the pod "Summary" tab']}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Environment file support"}),": Chart out environment variables for new containers to access on creation"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Enhancements to the Settings area"}),": Get your bearings with improved Docker compatibility mode controls"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Improved user experience for state changes"}),": No more dead reckoning on container state with improved visual indication of status"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Extension API improvements"}),": A boatload of improvements to the extension API enabling more goodness from \ud83e\uddad Podman Desktop's extensions"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 1.5 is now available. ",(0,t.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Podman-desktop-1-5-hero",src:s(90973).Z+"",width:"1920",height:"1080"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,t.jsx)(n.h3,{id:"onboarding",children:"Onboarding"}),"\n",(0,t.jsx)(n.p,{children:"We are introducing a new feature providing guided flows for the initial setup of specific \ud83e\uddad Podman Desktop extensions. Release 1.5 features two new onboarding flows: Podman and Compose."}),"\n",(0,t.jsxs)(n.p,{children:['To start the Podman onboarding flow, you can start from the dashboard notification by clicking the "Set up" button:\n',(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280362279-598cc052-5ea4-4c31-849c-da9bbbcc3e42.png",alt:"podman-onboarding-start"}),"\n",(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280363859-f35b85f8-1dd4-4b7f-a995-25fe5d1ccced.png",alt:"podman-onboarding"})]}),"\n",(0,t.jsxs)(n.p,{children:["Visit ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(o,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Resources"]}),' screen and click the Compose "Setup ..." button in order to start Compose onboarding:\n',(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280276847-ca0558ab-70ad-48cc-8dd5-67e3eb465a62.png",alt:"compose-onboarding-start"}),"\n",(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280277936-77ba0fb2-5cb0-41de-a7cf-1a3d6400fd89.png",alt:"compose-onboarding"})]}),"\n",(0,t.jsx)(n.h3,{id:"command-palette",children:"Command Palette"}),"\n",(0,t.jsxs)(n.p,{children:["A new, search-driven command palette is now available to enable quick access to various commands available across \ud83e\uddad Podman Desktop. You can try this new tool out by hitting the F1 key. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4081",children:"#4081"})," && ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3979",children:"#3979"})]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/270362431-5aaa6a1b-6df5-4b66-a811-cdd148d02ad6.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"expanded-summary-tab-for-kubernetes-pods",children:'Expanded "Summary" tab for Kubernetes pods'}),"\n",(0,t.jsx)(n.p,{children:'Kubernetes pods now offer a more comprehensive set of information under the "Summary" tab, including networking, volumes, environment variables, and other key metadata.'}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/272972815-bed96f3a-6b13-45d3-a13b-74eacb27a4cd.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"environment-file-support",children:"Environment file support"}),"\n",(0,t.jsxs)(n.p,{children:["When creating a container from the Images list, there's now an option to provide an environment file to set env variables for the new container. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4026",children:"#4026"})," && ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4025",children:"#4025"})]}),"\n",(0,t.jsx)(n.h3,{id:"enhancements-to-the-settings-area",children:"Enhancements to the Settings area"}),"\n",(0,t.jsxs)(n.p,{children:["The user experience for enabling or disabling Docker compatibility is improved, with a new entry in the ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(o,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Preferences"]})," screen that includes contextual guidance. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4093",children:"#4093"})]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/270497318-902b2566-62ad-4ee6-87af-6a9a2705de99.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"improved-user-experience-for-state-changes",children:"Improved user experience for state changes"}),"\n",(0,t.jsxs)(n.p,{children:["The user experience around state changes for containers, pods, and other objects in the UI is improved, with clear status messages and improved animated visual indicator of state changes. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4056",children:"#4056"})]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/270027524-f5176cf9-462f-4024-920a-b4a906c7d30d.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/270027533-70e152ec-5bbf-45ad-9f1d-563752464655.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"extension-api-improvements",children:"Extension API improvements"}),"\n",(0,t.jsx)(n.p,{children:"The \ud83e\uddad Podman Desktop extension API received many improvements, including:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["In addition to pushing and listing image from an extension, it's now possible to pull images from a \ud83e\uddad Podman Desktop extension ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4155",children:"#4155"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The \ud83e\uddad Podman Desktop extension API has been enhanced with both the ability to list images & networks and the ability to create containers & networks. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4172",children:"#4172"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["\ud83e\uddad Podman Desktop extensions now have a consistent way to run administrative tasks. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4049",children:"#4049"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Extensions now have the ability to register a custom Kubernetes config generator. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3970",children:"#3970"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The ability of extensions to add commands to UI menus has been extended; previously for action menus it was only available in the Image list screen. It is now possible for extensions to add commands to the action menus of items listed on the Containers list screen as well. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3947",children:"#3947"})," & ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3963",children:"#3963"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Extensions have gained the ability to contribute menu items in the UI based on specific conditions. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3959",children:"#3959"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Enhanced logic for displaying or hiding properties listed under the ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(o,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Preferences"]})," screens is now available. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4159",children:"#4159"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/271650937-3991565c-12a4-4e6c-a315-9343bfa25f65.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other Notable Enhancements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The progress of loading an image into Kind is now visible as a task in the task manager. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4061",children:"#4061"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/42176370/270154775-eb7007b4-fd0e-4287-be9e-40ffc412de35.png",alt:"kind-progress-task"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["It's now possible to start a new Podman machine right after creation, or you can create it and wait to start it later. It's up to you! ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4046",children:"#4046"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/269941187-f4768833-ecfc-4d0b-8acf-d4afedb428d9.png",alt:"podman-start-now-or-later"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The Podman machine and Kubernetes provider creation forms have an updated look & feel consisted with other forms in the user interface, along with minor bug fixes. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4317",children:"#4317"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/274694157-fe89f3bc-e5b8-4735-96e9-669fe52c7a41.png",alt:"Updated provider creation forms"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The empty screen message shown when a search filter results in no matches now provides a message specific to filter matching, including the specific filter terms and an explicit button for clearing the filter. Previously, the screen displayed a generic message about how to create new objects of the type displayed on the screen, which led to some confusion about the status of the system. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3988",children:"#3988"})]}),"\n"]}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/269291090-13e724f7-252f-4915-bb04-00665001d21d.mov",width:"100%",height:"100%"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["New support for adding spin animations to icons is now available. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4188",children:"#4188"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["There is a new indeterminate progress bar type available for the task manager; this is meant for providing limited status for actions whose APIs do not provide detailed status information. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4016",children:"#4016"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["For authenticating as admin to perform administrative tasks, \ud83e\uddad Podman Desktop now provides touchID support for macOS. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4050",children:"#4050"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/436777/248588015-f08115bd-d211-43ad-bddd-286d7b3a7056.png",alt:"touchID-support"})}),"\n",(0,t.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/269859758-47581e2b-8469-4e9c-822c-f4fddf46684d.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Support for connecting to interactive terminals for containers via tty was added. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3900",children:"#3900"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["It's now more clear which container/pod providers will autostart when \ud83e\uddad Podman Desktop starts. Previously autostart had both a global and a per-provider setting. It has been simplified by removing the global setting. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3840",children:"#3840"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The "Working with containers" section of the documentation has been reworked and improved. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3951",children:"#3951"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The disable registry command was not blocking subsequent pulls from disabled registries. This has been corrected. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4183",children:"#4183"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Some users behind network proxies were unable to complete workflow involving the download of online resources. The mechanism for fetching these resources has been fixed to be proxy compatible to address this issue. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3994",children:"#3994"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The status of pods running in Kubernetes that are undergoing the deletion process is now accurately reflected in the \ud83e\uddad Podman Desktop UI. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3877",children:"#3877"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The image details page always listed the image as being "not used" even when it was. This has been corrected. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3985",children:"#3985"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Previously, deleting a specific image tag would cause all tags with the same Image ID to be deleted. This has been fixed so only the selected image tag will be deleted. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3837",children:"#3837"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Could not view the pod details for some remote Kubernetes cluster pods due to an encoding error. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4371",children:"#4371"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Error logs were being tracked separately from the actions they applied to. This has been addressed for kind cluster creation failure ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4427",children:"#4427"})," and Compose installation failure ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4407",children:"#4407"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['For Linux users, \ud83e\uddad Podman Desktop previously did not appear under the "Development" menu when installed via Flatpak; it appeared under "Utilities." \ud83e\uddad Podman Desktop now appears under the "Development" menu. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3911",children:"#3911"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['Podman Machine names are no longer prefixed with the "Podman Machine" string. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3878",children:"#3878"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/267378447-aafdfbd7-f005-4b94-8626-9e11eec61b95.png",alt:"touchID-support"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The initial action state of pods and containers was being displayed as "STARTING" regardless of actual state; this has been corrected. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3889",children:"#3889"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Resizing the application window no longer makes the last lines of a container's terminal invisible. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3993",children:"#3993"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["An issue with incorrect terminal behavior in response to long lines in the terminal attached to a container has been resolved. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3955",children:"#3955"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["A spacing issue on the run image form has been corrected. [#4089]",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4089",children:"https://github.com/containers/podman-desktop/pull/4089"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The "podify" icon & button on the Containers list was unusually large in release 1.4. That regression has been corrected in this release. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4122",children:"#4122"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["An error in the instructions for Windows users on migrating from Docker has been corrected. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4157",children:"#4157"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,t.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make \ud83e\uddad Podman Desktop even better. In this\nrelease we received pull requests from the following people:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/afbjorklund",children:"afbjorklund"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4373",children:"#4373 - docs: fix broken links and add lima onboarding"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4372",children:"#4372 - docs: clear up lima column on containers page"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4091",children:"#4091 - fix: avoid errors with unexpected JSON input"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4098",children:"#4098 - docs: Lima onboarding details"}),", and ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3854",children:"#3854 - fix: check if machine init rootful flag supported"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/axel7083",children:"axel7083"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4061",children:"#4061 - feat: adding task progress for kind"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3970",children:"#3970 - feat: extension can register custom kube generator"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3959",children:"#3959 - feat: add when property to extensions menus"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4016",children:"#4016 - feat: indeterminate progress bar"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3963",children:"#3963 - fix: ContainerList propagating containers in ComposeActions and PodActions"}),", and ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3947",children:"#3947 - feat: extend menus capabilities"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/ayushrakesh",children:"ayushrakesh"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4415#",children:"#4415 - Update README.md"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/eltociear",children:"eltociear"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4194",children:"#4194 - Update README.md"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/foxydevloper",children:"foxydeveloper"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4157",children:"#4157 - docs: Correct windows instructions for migrating from docker"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/harsh-solanki21",children:"harsh-solanki21"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4162",children:"#4162 - fix: Removed fullstop from summary"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/rahul0x00",children:"rahul0x00"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4240",children:"#4240 - fix typos in README.md"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/shelar1423",children:"shelar1423"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4221",children:"#4221 - chore: document property setting in EXTENSIONS.md"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,t.jsx)(n.h3,{id:"known-issues",children:"Known Issues"}),"\n",(0,t.jsx)(n.p,{children:"We have a discussion board topic where we have posted known issues with this release. If you run into problems, please check this list before filing a bug - if we already have an issue open for it, it saves you the time and trouble of filing, and there may be a workaround posted in the issue."}),"\n",(0,t.jsx)(n.h4,{id:"known-issues-podman-desktop-152",children:(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/discussions/4635",children:"Known Issues: Podman Desktop 1.5.2"})}),"\n",(0,t.jsx)(n.h3,{id:"fixed-issues",children:"Fixed Issues"}),"\n",(0,t.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.5.0",children:"here"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"where-to-download",children:"Where to Download"}),"\n",(0,t.jsxs)(n.p,{children:["Get the latest release from the ",(0,t.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function m(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},90973:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/onboarding-selkies-3ddb7cb6ee2cf9abed002b01f63b1822.png"}}]); \ No newline at end of file diff --git a/assets/js/a00af9f0.d9986f19.js b/assets/js/a00af9f0.d9986f19.js deleted file mode 100644 index c1324a67fc4..00000000000 --- a/assets/js/a00af9f0.d9986f19.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[822],{5416:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>h});var t=s(24246),i=s(71670),o=s(92975);const a={title:"Release Notes - Podman Desktop 1.5",description:"Podman Desktop 1.5 has been released!",slug:"podman-desktop-release-1.5",authors:"duffy",tags:["podman-desktop","release","kubernetes","openshift","onboarding","compose","extensions","settings"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.5/onboarding-selkies.png"},r=void 0,l={permalink:"/blog/podman-desktop-release-1.5",source:"@site/blog/2023-11-03-release-1.5.md",title:"Release Notes - Podman Desktop 1.5",description:"Podman Desktop 1.5 has been released!",date:"2023-11-03T00:00:00.000Z",formattedDate:"November 3, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"},{label:"onboarding",permalink:"/blog/tags/onboarding"},{label:"compose",permalink:"/blog/tags/compose"},{label:"extensions",permalink:"/blog/tags/extensions"},{label:"settings",permalink:"/blog/tags/settings"}],readingTime:8.14,hasTruncateMarker:!1,authors:[{name:"M\xe1ir\xedn Duffy",title:"User Experience Designer",url:"https://github.com/mairin",imageURL:"https://github.com/mairin.png",key:"duffy"}],frontMatter:{title:"Release Notes - Podman Desktop 1.5",description:"Podman Desktop 1.5 has been released!",slug:"podman-desktop-release-1.5",authors:"duffy",tags:["podman-desktop","release","kubernetes","openshift","onboarding","compose","extensions","settings"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.5/onboarding-selkies.png"},unlisted:!1,prevItem:{title:"Share your local podman images with the Kubernetes cluster",permalink:"/blog/sharing-podman-images-with-kubernetes-cluster"},nextItem:{title:"Release Notes - Podman Desktop 1.4",permalink:"/blog/podman-desktop-release-1.4"}},d={authorsImageUrls:[void 0]},h=[{value:"Release Details",id:"release-details",level:2},{value:"Onboarding",id:"onboarding",level:3},{value:"Command Palette",id:"command-palette",level:3},{value:"Expanded "Summary" tab for Kubernetes pods",id:"expanded-summary-tab-for-kubernetes-pods",level:3},{value:"Environment file support",id:"environment-file-support",level:3},{value:"Enhancements to the Settings area",id:"enhancements-to-the-settings-area",level:3},{value:"Improved user experience for state changes",id:"improved-user-experience-for-state-changes",level:3},{value:"Extension API improvements",id:"extension-api-improvements",level:3},{value:"Other Notable Enhancements",id:"other-notable-enhancements",level:2},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:2},{value:"Community Thank You",id:"community-thank-you",level:2},{value:"Final notes",id:"final-notes",level:2},{value:"Known Issues",id:"known-issues",level:3},{value:"Known Issues: Podman Desktop 1.5.2",id:"known-issues-podman-desktop-152",level:4},{value:"Fixed Issues",id:"fixed-issues",level:3},{value:"Where to Download",id:"where-to-download",level:3}];function c(e){const n={a:"a",h2:"h2",h3:"h3",h4:"h4",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components},{Icon:a}=n;return a||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Icon",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"Podman Desktop 1.5 Release! \ud83c\udf89"}),"\n",(0,t.jsxs)(n.p,{children:["With this release of Podman Desktop, we're introducing ",(0,t.jsx)(n.strong,{children:"a new onboarding feature"})," that we hope will earn your \ud83e\uddad seal of approval! But wait... there's so much more!"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Onboarding"}),": Guided setup and configuration of ",(0,t.jsx)(n.strong,{children:"Podman"})," and ",(0,t.jsx)(n.strong,{children:"Compose"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Podman 4.7.2"}),": ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman/releases",children:"Podman 4.7.2"})," is now included in Windows and Mac installers"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Command Palette"}),": Gain easy access to various commands via a new keyboard-driven command palette"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:'Expanded "Summary" tab for Kubernetes pods'}),': Go deep with extended details on Kubernetes pods in the pod "Summary" tab']}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Environment file support"}),": Chart out environment variables for new containers to access on creation"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Enhancements to the Settings area"}),": Get your bearings with improved Docker compatibility mode controls"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Improved user experience for state changes"}),": No more dead reckoning on container state with improved visual indication of status"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Extension API improvements"}),": A boatload of improvements to the extension API enabling more goodness from \ud83e\uddad Podman Desktop's extensions"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Podman Desktop 1.5 is now available. ",(0,t.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"Podman-desktop-1-5-hero",src:s(90973).Z+"",width:"1920",height:"1080"})}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,t.jsx)(n.h3,{id:"onboarding",children:"Onboarding"}),"\n",(0,t.jsx)(n.p,{children:"We are introducing a new feature providing guided flows for the initial setup of specific \ud83e\uddad Podman Desktop extensions. Release 1.5 features two new onboarding flows: Podman and Compose."}),"\n",(0,t.jsxs)(n.p,{children:['To start the Podman onboarding flow, you can start from the dashboard notification by clicking the "Set up" button:\n',(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280362279-598cc052-5ea4-4c31-849c-da9bbbcc3e42.png",alt:"podman-onboarding-start"}),"\n",(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280363859-f35b85f8-1dd4-4b7f-a995-25fe5d1ccced.png",alt:"podman-onboarding"})]}),"\n",(0,t.jsxs)(n.p,{children:["Visit ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Resources"]}),' screen and click the Compose "Setup ..." button in order to start Compose onboarding:\n',(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280276847-ca0558ab-70ad-48cc-8dd5-67e3eb465a62.png",alt:"compose-onboarding-start"}),"\n",(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/799683/280277936-77ba0fb2-5cb0-41de-a7cf-1a3d6400fd89.png",alt:"compose-onboarding"})]}),"\n",(0,t.jsx)(n.h3,{id:"command-palette",children:"Command Palette"}),"\n",(0,t.jsxs)(n.p,{children:["A new, search-driven command palette is now available to enable quick access to various commands available across \ud83e\uddad Podman Desktop. You can try this new tool out by hitting the F1 key. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4081",children:"#4081"})," && ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3979",children:"#3979"})]}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/270362431-5aaa6a1b-6df5-4b66-a811-cdd148d02ad6.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"expanded-summary-tab-for-kubernetes-pods",children:'Expanded "Summary" tab for Kubernetes pods'}),"\n",(0,t.jsx)(n.p,{children:'Kubernetes pods now offer a more comprehensive set of information under the "Summary" tab, including networking, volumes, environment variables, and other key metadata.'}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/272972815-bed96f3a-6b13-45d3-a13b-74eacb27a4cd.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"environment-file-support",children:"Environment file support"}),"\n",(0,t.jsxs)(n.p,{children:["When creating a container from the Images list, there's now an option to provide an environment file to set env variables for the new container. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4026",children:"#4026"})," && ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4025",children:"#4025"})]}),"\n",(0,t.jsx)(n.h3,{id:"enhancements-to-the-settings-area",children:"Enhancements to the Settings area"}),"\n",(0,t.jsxs)(n.p,{children:["The user experience for enabling or disabling Docker compatibility is improved, with a new entry in the ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Preferences"]})," screen that includes contextual guidance. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4093",children:"#4093"})]}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/270497318-902b2566-62ad-4ee6-87af-6a9a2705de99.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"improved-user-experience-for-state-changes",children:"Improved user experience for state changes"}),"\n",(0,t.jsxs)(n.p,{children:["The user experience around state changes for containers, pods, and other objects in the UI is improved, with clear status messages and improved animated visual indicator of state changes. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4056",children:"#4056"})]}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/270027524-f5176cf9-462f-4024-920a-b4a906c7d30d.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/270027533-70e152ec-5bbf-45ad-9f1d-563752464655.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.h3,{id:"extension-api-improvements",children:"Extension API improvements"}),"\n",(0,t.jsx)(n.p,{children:"The \ud83e\uddad Podman Desktop extension API received many improvements, including:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["In addition to pushing and listing image from an extension, it's now possible to pull images from a \ud83e\uddad Podman Desktop extension ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4155",children:"#4155"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The \ud83e\uddad Podman Desktop extension API has been enhanced with both the ability to list images & networks and the ability to create containers & networks. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4172",children:"#4172"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["\ud83e\uddad Podman Desktop extensions now have a consistent way to run administrative tasks. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4049",children:"#4049"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Extensions now have the ability to register a custom Kubernetes config generator. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3970",children:"#3970"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The ability of extensions to add commands to UI menus has been extended; previously for action menus it was only available in the Image list screen. It is now possible for extensions to add commands to the action menus of items listed on the Containers list screen as well. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3947",children:"#3947"})," & ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3963",children:"#3963"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Extensions have gained the ability to contribute menu items in the UI based on specific conditions. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3959",children:"#3959"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Enhanced logic for displaying or hiding properties listed under the ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(a,{icon:"fa-solid fa-cog",size:"lg"}),"Settings > Preferences"]})," screens is now available. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4159",children:"#4159"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/271650937-3991565c-12a4-4e6c-a315-9343bfa25f65.mov",width:"100%",height:"100%"}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"other-notable-enhancements",children:"Other Notable Enhancements"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The progress of loading an image into Kind is now visible as a task in the task manager. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4061",children:"#4061"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/42176370/270154775-eb7007b4-fd0e-4287-be9e-40ffc412de35.png",alt:"kind-progress-task"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["It's now possible to start a new Podman machine right after creation, or you can create it and wait to start it later. It's up to you! ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4046",children:"#4046"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/269941187-f4768833-ecfc-4d0b-8acf-d4afedb428d9.png",alt:"podman-start-now-or-later"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The Podman machine and Kubernetes provider creation forms have an updated look & feel consisted with other forms in the user interface, along with minor bug fixes. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4317",children:"#4317"})]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/274694157-fe89f3bc-e5b8-4735-96e9-669fe52c7a41.png",alt:"Updated provider creation forms"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["The empty screen message shown when a search filter results in no matches now provides a message specific to filter matching, including the specific filter terms and an explicit button for clearing the filter. Previously, the screen displayed a generic message about how to create new objects of the type displayed on the screen, which led to some confusion about the status of the system. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3988",children:"#3988"})]}),"\n"]}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/19958075/269291090-13e724f7-252f-4915-bb04-00665001d21d.mov",width:"100%",height:"100%"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["New support for adding spin animations to icons is now available. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4188",children:"#4188"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["There is a new indeterminate progress bar type available for the task manager; this is meant for providing limited status for actions whose APIs do not provide detailed status information. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4016",children:"#4016"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["For authenticating as admin to perform administrative tasks, \ud83e\uddad Podman Desktop now provides touchID support for macOS. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4050",children:"#4050"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/436777/248588015-f08115bd-d211-43ad-bddd-286d7b3a7056.png",alt:"touchID-support"})}),"\n",(0,t.jsx)(o.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/269859758-47581e2b-8469-4e9c-822c-f4fddf46684d.mp4",width:"100%",height:"100%"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Support for connecting to interactive terminals for containers via tty was added. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3900",children:"#3900"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["It's now more clear which container/pod providers will autostart when \ud83e\uddad Podman Desktop starts. Previously autostart had both a global and a per-provider setting. It has been simplified by removing the global setting. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3840",children:"#3840"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The "Working with containers" section of the documentation has been reworked and improved. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3951",children:"#3951"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The disable registry command was not blocking subsequent pulls from disabled registries. This has been corrected. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4183",children:"#4183"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Some users behind network proxies were unable to complete workflow involving the download of online resources. The mechanism for fetching these resources has been fixed to be proxy compatible to address this issue. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3994",children:"#3994"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["The status of pods running in Kubernetes that are undergoing the deletion process is now accurately reflected in the \ud83e\uddad Podman Desktop UI. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3877",children:"#3877"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The image details page always listed the image as being "not used" even when it was. This has been corrected. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3985",children:"#3985"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Previously, deleting a specific image tag would cause all tags with the same Image ID to be deleted. This has been fixed so only the selected image tag will be deleted. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3837",children:"#3837"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Could not view the pod details for some remote Kubernetes cluster pods due to an encoding error. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4371",children:"#4371"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Error logs were being tracked separately from the actions they applied to. This has been addressed for kind cluster creation failure ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4427",children:"#4427"})," and Compose installation failure ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4407",children:"#4407"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['For Linux users, \ud83e\uddad Podman Desktop previously did not appear under the "Development" menu when installed via Flatpak; it appeared under "Utilities." \ud83e\uddad Podman Desktop now appears under the "Development" menu. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3911",children:"#3911"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['Podman Machine names are no longer prefixed with the "Podman Machine" string. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3878",children:"#3878"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{src:"https://user-images.githubusercontent.com/19958075/267378447-aafdfbd7-f005-4b94-8626-9e11eec61b95.png",alt:"touchID-support"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The initial action state of pods and containers was being displayed as "STARTING" regardless of actual state; this has been corrected. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3889",children:"#3889"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Resizing the application window no longer makes the last lines of a container's terminal invisible. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3993",children:"#3993"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["An issue with incorrect terminal behavior in response to long lines in the terminal attached to a container has been resolved. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3955",children:"#3955"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["A spacing issue on the run image form has been corrected. [#4089]",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4089",children:"https://github.com/containers/podman-desktop/pull/4089"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:['The "podify" icon & button on the Containers list was unusually large in release 1.4. That regression has been corrected in this release. ',(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4122",children:"#4122"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["An error in the instructions for Windows users on migrating from Docker has been corrected. ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4157",children:"#4157"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,t.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make \ud83e\uddad Podman Desktop even better. In this\nrelease we received pull requests from the following people:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/afbjorklund",children:"afbjorklund"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4373",children:"#4373 - docs: fix broken links and add lima onboarding"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4372",children:"#4372 - docs: clear up lima column on containers page"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4091",children:"#4091 - fix: avoid errors with unexpected JSON input"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4098",children:"#4098 - docs: Lima onboarding details"}),", and ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3854",children:"#3854 - fix: check if machine init rootful flag supported"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/axel7083",children:"axel7083"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4061",children:"#4061 - feat: adding task progress for kind"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3970",children:"#3970 - feat: extension can register custom kube generator"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3959",children:"#3959 - feat: add when property to extensions menus"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4016",children:"#4016 - feat: indeterminate progress bar"}),", ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3963",children:"#3963 - fix: ContainerList propagating containers in ComposeActions and PodActions"}),", and ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3947",children:"#3947 - feat: extend menus capabilities"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/ayushrakesh",children:"ayushrakesh"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4415#",children:"#4415 - Update README.md"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/eltociear",children:"eltociear"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4194",children:"#4194 - Update README.md"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/foxydevloper",children:"foxydeveloper"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4157",children:"#4157 - docs: Correct windows instructions for migrating from docker"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/harsh-solanki21",children:"harsh-solanki21"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4162",children:"#4162 - fix: Removed fullstop from summary"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/rahul0x00",children:"rahul0x00"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4240",children:"#4240 - fix typos in README.md"})]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://github.com/shelar1423",children:"shelar1423"})," in ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/4221",children:"#4221 - chore: document property setting in EXTENSIONS.md"})]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"final-notes",children:"Final notes"}),"\n",(0,t.jsx)(n.h3,{id:"known-issues",children:"Known Issues"}),"\n",(0,t.jsx)(n.p,{children:"We have a discussion board topic where we have posted known issues with this release. If you run into problems, please check this list before filing a bug - if we already have an issue open for it, it saves you the time and trouble of filing, and there may be a workaround posted in the issue."}),"\n",(0,t.jsx)(n.h4,{id:"known-issues-podman-desktop-152",children:(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/discussions/4635",children:"Known Issues: Podman Desktop 1.5.2"})}),"\n",(0,t.jsx)(n.h3,{id:"fixed-issues",children:"Fixed Issues"}),"\n",(0,t.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.5.0",children:"here"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"where-to-download",children:"Where to Download"}),"\n",(0,t.jsxs)(n.p,{children:["Get the latest release from the ",(0,t.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,t.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function p(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},90973:(e,n,s)=>{s.d(n,{Z:()=>t});const t=s.p+"assets/images/onboarding-selkies-3ddb7cb6ee2cf9abed002b01f63b1822.png"}}]); \ No newline at end of file diff --git a/assets/js/f0e3a130.6dc4aaae.js b/assets/js/f0e3a130.6dc4aaae.js deleted file mode 100644 index a1c1cf6d443..00000000000 --- a/assets/js/f0e3a130.6dc4aaae.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5776],{11316:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var o=s(24246),t=s(71670),i=s(92975);const a={title:"Release Notes - Podman Desktop 1.3",description:"Podman Desktop 1.3 has been released!",slug:"podman-desktop-release-1.3",authors:["dgolovin"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.3.webp"},l=void 0,r={permalink:"/blog/podman-desktop-release-1.3",source:"@site/blog/2023-08-16-release-1.3.md",title:"Release Notes - Podman Desktop 1.3",description:"Podman Desktop 1.3 has been released!",date:"2023-08-16T00:00:00.000Z",formattedDate:"August 16, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:5.195,hasTruncateMarker:!1,authors:[{name:"Denis Golovin",title:"Principal Software Engineer",url:"https://github.com/cdrage",imageURL:"https://github.com/dgolovin.png",key:"dgolovin"}],frontMatter:{title:"Release Notes - Podman Desktop 1.3",description:"Podman Desktop 1.3 has been released!",slug:"podman-desktop-release-1.3",authors:["dgolovin"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.3.webp"},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 1.4",permalink:"/blog/podman-desktop-release-1.4"},nextItem:{title:"Release Notes - Podman Desktop 1.2",permalink:"/blog/podman-desktop-release-1.2"}},d={authorsImageUrls:[void 0]},c=[{value:"Release Details",id:"release-details",level:2},{value:"Compose group Logs tab #3176",id:"compose-group-logs-tab-3176",level:3},{value:"Podman user-mode networking support to Windows/WSL #3251",id:"podman-user-mode-networking-support-to-windowswsl-3251",level:3},{value:"Compose group Summary tab #3317,",id:"compose-group-summary-tab-3317",level:3},{value:"Compose group Inspect tab #3316",id:"compose-group-inspect-tab-3316",level:3},{value:"Deploy to kubernetes in compose actions #3299",id:"deploy-to-kubernetes-in-compose-actions-3299",level:3},{value:"Generate Kube in Compose actions and Kube tab in compose details #3253",id:"generate-kube-in-compose-actions-and-kube-tab-in-compose-details-3253",level:3},{value:"Install multiple extensions using extension pack #3150",id:"install-multiple-extensions-using-extension-pack-3150",level:3},{value:"Customize icons from extension #3131",id:"customize-icons-from-extension-3131",level:3},{value:"Resource details page update #1923",id:"resource-details-page-update-1923",level:3},{value:"Node's container image field added to Create a Kind cluster form #3508",id:"nodes-container-image-field-added-to-create-a-kind-cluster-form-3508",level:3},{value:"Support Docker Desktop extensions using a backend #3435",id:"support-docker-desktop-extensions-using-a-backend-3435",level:3},{value:"Initial onboarding implementation for podman (experimental) #3308",id:"initial-onboarding-implementation-for-podman-experimental-3308",level:3},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:3},{value:"Community Thank You",id:"community-thank-you",level:3},{value:"Final Notes",id:"final-notes",level:3}];function p(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:"Podman Desktop 1.3 Release! \ud83c\udf89"}),"\n",(0,o.jsx)(n.p,{children:"This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features."}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Podman 4.6.1"}),": Podman 4.6.1 included in Windows and Mac installers"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Podman user-mode networking support to Windows/WSL"}),": A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Compose group new UI elements"}),": You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Extension packs and extension dependencies"}),": Install group of extensions in one click"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Resource details page update"}),": See summary and log for resource"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Create Kind cluster form update"}),": A new ",(0,o.jsx)(n.code,{children:"Node's container image"})," field can be used to specify the Kubernetes version used for the control-planed"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Support Docker Desktop extensions using a backend"}),": When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Podman Initial Onboarding (preview)"}),": Install and configure podman using included installer"]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["Podman Desktop 1.3 is now available. ",(0,o.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Podman-desktop-1-3-bug-swatting",src:s(46714).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,o.jsxs)(n.h3,{id:"compose-group-logs-tab-3176",children:["Compose group Logs tab ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3176",children:"#3176"})]}),"\n",(0,o.jsx)(n.p,{children:"When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open\nlog for every component individually."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/6422176/743a4ffc-e291-4697-8ac5-8052cc921946",alt:"Screenshot 2023-07-11 at 12 48 47 PM"})}),"\n",(0,o.jsxs)(n.h3,{id:"podman-user-mode-networking-support-to-windowswsl-3251",children:["Podman user-mode networking support to Windows/WSL ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3251",children:"#3251"})]}),"\n",(0,o.jsx)(n.p,{children:"Certain VPN setups or other specialized networking configs will block traffic from the virtual WSL networking device, resulting in the podman WSL backend from being unable to contact systems on the VPN, and potentially losing internet access altogether. The new switch allows you to create a podman VM machine configured to work correctly in mentioned above networking environments."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/620330/2f521576-b6a6-42b5-b24d-08df5b432608",alt:"user"})}),"\n",(0,o.jsxs)(n.h3,{id:"compose-group-summary-tab-3317",children:["Compose group Summary tab ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3317",children:"#3317"}),","]}),"\n",(0,o.jsx)(n.p,{children:"Compose group Summary tab shows all containers in the group and let you navigate to Details page for specific container."}),"\n",(0,o.jsx)(i.Z,{playing:!0,controls:!0,url:"https://github.com/containers/podman-desktop/assets/620330/6dd6dacd-a0d8-478d-b11e-2b414108bd20",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"compose-group-inspect-tab-3316",children:["Compose group Inspect tab ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3316",children:"#3316"})]}),"\n",(0,o.jsx)(n.p,{children:'Compose group Inspect tab shows an array of "container inspect" from docker / podman.'}),"\n",(0,o.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/255658081-4a2ce4ce-bdc7-435d-9114-1071ab1ec3c5.mov",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"deploy-to-kubernetes-in-compose-actions-3299",children:[(0,o.jsx)(n.code,{children:"Deploy to kubernetes"})," in compose actions ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3295",children:"#3299"})]}),"\n",(0,o.jsx)(n.p,{children:"A button to deploy to kubernetes added to Compose group."}),"\n",(0,o.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/254973806-1ce57225-3422-4d36-8d09-b70a2825869f.mov",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"generate-kube-in-compose-actions-and-kube-tab-in-compose-details-3253",children:[(0,o.jsx)(n.code,{children:"Generate Kube"})," in Compose actions and ",(0,o.jsx)(n.code,{children:"Kube"})," tab in compose details ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3253",children:"#3253"})]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"Generate Kube"}),' item added to Compose actions and "Kube" tab is now available in Compose details view.']}),"\n",(0,o.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/254337805-98268722-4dde-4c0e-afdf-4873fa4f43fe.mov",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"install-multiple-extensions-using-extension-pack-3150",children:["Install multiple extensions using extension pack ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3150",children:"#3150"})]}),"\n",(0,o.jsx)(n.p,{children:"An Extension pack introduced in Extension engine is a way to declare set of extensions to install them all at once."}),"\n",(0,o.jsx)(i.Z,{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/251741571-0cd4a199-06f4-4890-8414-4e93ca9178bc.mp4",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"customize-icons-from-extension-3131",children:["Customize icons from extension ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3131",children:"#3131"})]}),"\n",(0,o.jsxs)(n.p,{children:["Extensions now can customize icons for list elements using ",(0,o.jsx)(n.code,{children:"when"})," clause."]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/49404737/7aae5347-4f07-4854-ba11-1f629b5ccf22",alt:"image"})}),"\n",(0,o.jsxs)(n.h3,{id:"resource-details-page-update-1923",children:["Resource details page update ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1923",children:"#1923"})]}),"\n",(0,o.jsx)(n.p,{children:"If you click on the arrow icon next to a resource name it will open up a details page (similarly to how clicking on a container in the container list opens up a details page)."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/229542404-bae44f89-5cd3-4baf-8b08-e934e4462697.gif",alt:"image"})}),"\n",(0,o.jsxs)(n.h3,{id:"nodes-container-image-field-added-to-create-a-kind-cluster-form-3508",children:[(0,o.jsx)(n.code,{children:"Node's container image"})," field added to ",(0,o.jsx)(n.code,{children:"Create a Kind cluster"})," form ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3508",children:"#3508"})]}),"\n",(0,o.jsxs)(n.p,{children:["The new ",(0,o.jsx)(n.code,{children:"Node's container image"})," field can be used to specify the Kubernetes version used for the control-planed."]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/42176370/b2a63faf-629f-436d-8496-7c0cd8158679",alt:"image"})}),"\n",(0,o.jsxs)(n.h3,{id:"support-docker-desktop-extensions-using-a-backend-3435",children:["Support Docker Desktop extensions using a backend ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3435",children:"#3435"})]}),"\n",(0,o.jsx)(n.p,{children:"Podman Desktop now loads the containers in the backend as described in the vm section of extension descriptor the same way as Docker Desktop does."}),"\n",(0,o.jsxs)(n.h3,{id:"initial-onboarding-implementation-for-podman-experimental-3308",children:["Initial onboarding implementation for podman (experimental) ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3308",children:"#3308"})]}),"\n",(0,o.jsx)(n.p,{children:"This is the initial implementation for the onboarding feature. It only covers a simple onboarding for podman. Check system requirements -> install podman -> yay! Done!"}),"\n",(0,o.jsx)(n.h3,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Updating videos to be adaptive for mobile by @mairin ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3229",children:"#3229"})]}),"\n",(0,o.jsxs)(n.li,{children:["Consistent max width and padding in settings by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3232",children:"#3232"})]}),"\n",(0,o.jsxs)(n.li,{children:["Settings navigation bar resizing by @deboer-tim in ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3231",children:"#3231"})]}),"\n",(0,o.jsxs)(n.li,{children:["Move new registry button to header by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3245",children:"#3245"})]}),"\n",(0,o.jsxs)(n.li,{children:["Bigger lima logo by @afbjorklund ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3248",children:"#3248"})]}),"\n",(0,o.jsxs)(n.li,{children:["Horizontal docker logo by @afbjorklund ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3236",children:"#3236"})]}),"\n",(0,o.jsxs)(n.li,{children:["Respect LIMA_HOME environment variable by @afbjorklund ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3254",children:"#3254"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add check before writing to terminal by @lstocchi ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3263",children:"#3263"})]}),"\n",(0,o.jsxs)(n.li,{children:["Wait until remote side has fully initialized the extensions by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3257",children:"#3257"})]}),"\n",(0,o.jsxs)(n.li,{children:["Fix loader not centered horizontally by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3270",children:"#3270"})]}),"\n",(0,o.jsxs)(n.li,{children:["Troubleshooting still waiting after failure by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3354",children:"#3354"})]}),"\n",(0,o.jsxs)(n.li,{children:["Store error for build by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3365",children:"#3365"})]}),"\n",(0,o.jsxs)(n.li,{children:["Missing checkbox tooltips by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3380",children:"#3380"})]}),"\n",(0,o.jsxs)(n.li,{children:["Load compose logs async not await by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3377",children:"#3377"})]}),"\n",(0,o.jsxs)(n.li,{children:["Set rootful connection when starting rootful machine by @lstocchi ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3364",children:"#3364"})]}),"\n",(0,o.jsxs)(n.li,{children:["Default last page by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3388",children:"#3388"})]}),"\n",(0,o.jsxs)(n.li,{children:["Avoid dashboard displaying providers starting while they don't by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3451",children:"#3451"})]}),"\n",(0,o.jsxs)(n.li,{children:["Do not use extensionInfo until it is defined by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3450",children:"#V"})]}),"\n",(0,o.jsxs)(n.li,{children:["Allow BASIC authentication (all caps) by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3471",children:"#3471"})]}),"\n",(0,o.jsxs)(n.li,{children:["Allow single domain registry such as localhost:5000 by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3468",children:"#3468"})]}),"\n",(0,o.jsxs)(n.li,{children:["Create /usr/local/bin directory if it does not exist on binary install by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3425",children:"#3425"})]}),"\n",(0,o.jsxs)(n.li,{children:["Only delete selected pods by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3378",children:"#"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add back 'Done' text on the button by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3487",children:"#3487"})]}),"\n",(0,o.jsxs)(n.li,{children:["Do not wait for more than 5s when checking for podman ping by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3497",children:"#3497"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add proxy support for extension using patching get and request approach by @dgolovin ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2825",children:"#2825"})]}),"\n",(0,o.jsxs)(n.li,{children:["Refresh component when field is updated by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3525",children:"#3525"})]}),"\n",(0,o.jsxs)(n.li,{children:["Higher-res icons for featured extensions list by @mairin ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3511",children:"#3511"})]}),"\n",(0,o.jsxs)(n.li,{children:["Main nav selection by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3510",children:"#3510"})]}),"\n",(0,o.jsxs)(n.li,{children:["kube event error when switching context by @jeffmaury ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3494",children:"#3494"})]}),"\n",(0,o.jsxs)(n.li,{children:["Reset error message each time we pull image by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3550",children:"#3550"})]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,o.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better."}),"\n",(0,o.jsxs)(n.p,{children:["A warm welcome to ",(0,o.jsx)(n.a,{href:"https://github.com/rostalan",children:"@rostalan"})," and ",(0,o.jsx)(n.a,{href:"https://github.com/axel7083",children:"@axel7083"})," who made their first contribution to the project in this release."]}),"\n",(0,o.jsx)(n.h3,{id:"final-notes",children:"Final Notes"}),"\n",(0,o.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.3.0",children:"here"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["Get the latest release from the ",(0,o.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}},46714:(e,n,s)=>{s.d(n,{Z:()=>o});const o=s.p+"assets/images/title-bug-swatting-8a5058958e05e545e61c1e5e689335d3.png"}}]); \ No newline at end of file diff --git a/assets/js/f0e3a130.98f8b21a.js b/assets/js/f0e3a130.98f8b21a.js new file mode 100644 index 00000000000..cb9f26b136c --- /dev/null +++ b/assets/js/f0e3a130.98f8b21a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5776],{11316:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>m,frontMatter:()=>l,metadata:()=>d,toc:()=>p});var o=s(24246),t=s(71670),i=s(92975),a=s.n(i);const l={title:"Release Notes - Podman Desktop 1.3",description:"Podman Desktop 1.3 has been released!",slug:"podman-desktop-release-1.3",authors:["dgolovin"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.3.webp"},r=void 0,d={permalink:"/blog/podman-desktop-release-1.3",source:"@site/blog/2023-08-16-release-1.3.md",title:"Release Notes - Podman Desktop 1.3",description:"Podman Desktop 1.3 has been released!",date:"2023-08-16T00:00:00.000Z",formattedDate:"August 16, 2023",tags:[{label:"podman-desktop",permalink:"/blog/tags/podman-desktop"},{label:"release",permalink:"/blog/tags/release"},{label:"kubernetes",permalink:"/blog/tags/kubernetes"},{label:"openshift",permalink:"/blog/tags/openshift"}],readingTime:5.195,hasTruncateMarker:!1,authors:[{name:"Denis Golovin",title:"Principal Software Engineer",url:"https://github.com/cdrage",imageURL:"https://github.com/dgolovin.png",key:"dgolovin"}],frontMatter:{title:"Release Notes - Podman Desktop 1.3",description:"Podman Desktop 1.3 has been released!",slug:"podman-desktop-release-1.3",authors:["dgolovin"],tags:["podman-desktop","release","kubernetes","openshift"],hide_table_of_contents:!1,image:"/img/blog/podman-desktop-release-1.3.webp"},unlisted:!1,prevItem:{title:"Release Notes - Podman Desktop 1.4",permalink:"/blog/podman-desktop-release-1.4"},nextItem:{title:"Release Notes - Podman Desktop 1.2",permalink:"/blog/podman-desktop-release-1.2"}},c={authorsImageUrls:[void 0]},p=[{value:"Release Details",id:"release-details",level:2},{value:"Compose group Logs tab #3176",id:"compose-group-logs-tab-3176",level:3},{value:"Podman user-mode networking support to Windows/WSL #3251",id:"podman-user-mode-networking-support-to-windowswsl-3251",level:3},{value:"Compose group Summary tab #3317,",id:"compose-group-summary-tab-3317",level:3},{value:"Compose group Inspect tab #3316",id:"compose-group-inspect-tab-3316",level:3},{value:"Deploy to kubernetes in compose actions #3299",id:"deploy-to-kubernetes-in-compose-actions-3299",level:3},{value:"Generate Kube in Compose actions and Kube tab in compose details #3253",id:"generate-kube-in-compose-actions-and-kube-tab-in-compose-details-3253",level:3},{value:"Install multiple extensions using extension pack #3150",id:"install-multiple-extensions-using-extension-pack-3150",level:3},{value:"Customize icons from extension #3131",id:"customize-icons-from-extension-3131",level:3},{value:"Resource details page update #1923",id:"resource-details-page-update-1923",level:3},{value:"Node's container image field added to Create a Kind cluster form #3508",id:"nodes-container-image-field-added-to-create-a-kind-cluster-form-3508",level:3},{value:"Support Docker Desktop extensions using a backend #3435",id:"support-docker-desktop-extensions-using-a-backend-3435",level:3},{value:"Initial onboarding implementation for podman (experimental) #3308",id:"initial-onboarding-implementation-for-podman-experimental-3308",level:3},{value:"Notable Bug Fixes",id:"notable-bug-fixes",level:3},{value:"Community Thank You",id:"community-thank-you",level:3},{value:"Final Notes",id:"final-notes",level:3}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",hr:"hr",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.p,{children:"Podman Desktop 1.3 Release! \ud83c\udf89"}),"\n",(0,o.jsx)(n.p,{children:"This is essentially a bug-fix release to fix various issues in UI, extension engine and featured extensions, but as usual we also added a few new features."}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Podman 4.6.1"}),": Podman 4.6.1 included in Windows and Mac installers"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Podman user-mode networking support to Windows/WSL"}),": A new switch `User mode networking' is available when creating Podman machine on Windows for Podman 4.6.0+ to configure podman to work in certain VPN setups and other specialized networking configurations"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Compose group new UI elements"}),": You can now see summary, inspect, deploy to kubernetes, generate kube yaml and view logs"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Extension packs and extension dependencies"}),": Install group of extensions in one click"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Resource details page update"}),": See summary and log for resource"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Create Kind cluster form update"}),": A new ",(0,o.jsx)(n.code,{children:"Node's container image"})," field can be used to specify the Kubernetes version used for the control-planed"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Support Docker Desktop extensions using a backend"}),": When loading Docker Desktop extension the containers are created in the backend as described in the vm section of extension's descriptor"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Podman Initial Onboarding (preview)"}),": Install and configure podman using included installer"]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["Podman Desktop 1.3 is now available. ",(0,o.jsx)(n.a,{href:"/downloads",children:"Click here to download it"}),"!"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Podman-desktop-1-3-bug-swatting",src:s(46714).Z+"",width:"1920",height:"1080"})}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"release-details",children:"Release Details"}),"\n",(0,o.jsxs)(n.h3,{id:"compose-group-logs-tab-3176",children:["Compose group Logs tab ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3176",children:"#3176"})]}),"\n",(0,o.jsx)(n.p,{children:"When clicking on the group of containers, you can now view the logs of the entire group of compose containers and don't need to open\nlog for every component individually."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/6422176/743a4ffc-e291-4697-8ac5-8052cc921946",alt:"Screenshot 2023-07-11 at 12 48 47 PM"})}),"\n",(0,o.jsxs)(n.h3,{id:"podman-user-mode-networking-support-to-windowswsl-3251",children:["Podman user-mode networking support to Windows/WSL ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3251",children:"#3251"})]}),"\n",(0,o.jsx)(n.p,{children:"Certain VPN setups or other specialized networking configs will block traffic from the virtual WSL networking device, resulting in the podman WSL backend from being unable to contact systems on the VPN, and potentially losing internet access altogether. The new switch allows you to create a podman VM machine configured to work correctly in mentioned above networking environments."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/620330/2f521576-b6a6-42b5-b24d-08df5b432608",alt:"user"})}),"\n",(0,o.jsxs)(n.h3,{id:"compose-group-summary-tab-3317",children:["Compose group Summary tab ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3317",children:"#3317"}),","]}),"\n",(0,o.jsx)(n.p,{children:"Compose group Summary tab shows all containers in the group and let you navigate to Details page for specific container."}),"\n",(0,o.jsx)(a(),{playing:!0,controls:!0,url:"https://github.com/containers/podman-desktop/assets/620330/6dd6dacd-a0d8-478d-b11e-2b414108bd20",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"compose-group-inspect-tab-3316",children:["Compose group Inspect tab ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3316",children:"#3316"})]}),"\n",(0,o.jsx)(n.p,{children:'Compose group Inspect tab shows an array of "container inspect" from docker / podman.'}),"\n",(0,o.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/255658081-4a2ce4ce-bdc7-435d-9114-1071ab1ec3c5.mov",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"deploy-to-kubernetes-in-compose-actions-3299",children:[(0,o.jsx)(n.code,{children:"Deploy to kubernetes"})," in compose actions ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3295",children:"#3299"})]}),"\n",(0,o.jsx)(n.p,{children:"A button to deploy to kubernetes added to Compose group."}),"\n",(0,o.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/254973806-1ce57225-3422-4d36-8d09-b70a2825869f.mov",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"generate-kube-in-compose-actions-and-kube-tab-in-compose-details-3253",children:[(0,o.jsx)(n.code,{children:"Generate Kube"})," in Compose actions and ",(0,o.jsx)(n.code,{children:"Kube"})," tab in compose details ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3253",children:"#3253"})]}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"Generate Kube"}),' item added to Compose actions and "Kube" tab is now available in Compose details view.']}),"\n",(0,o.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/6422176/254337805-98268722-4dde-4c0e-afdf-4873fa4f43fe.mov",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"install-multiple-extensions-using-extension-pack-3150",children:["Install multiple extensions using extension pack ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3150",children:"#3150"})]}),"\n",(0,o.jsx)(n.p,{children:"An Extension pack introduced in Extension engine is a way to declare set of extensions to install them all at once."}),"\n",(0,o.jsx)(a(),{playing:!0,controls:!0,url:"https://user-images.githubusercontent.com/436777/251741571-0cd4a199-06f4-4890-8414-4e93ca9178bc.mp4",width:"100%",height:"100%"}),"\n",(0,o.jsxs)(n.h3,{id:"customize-icons-from-extension-3131",children:["Customize icons from extension ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3131",children:"#3131"})]}),"\n",(0,o.jsxs)(n.p,{children:["Extensions now can customize icons for list elements using ",(0,o.jsx)(n.code,{children:"when"})," clause."]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/49404737/7aae5347-4f07-4854-ba11-1f629b5ccf22",alt:"image"})}),"\n",(0,o.jsxs)(n.h3,{id:"resource-details-page-update-1923",children:["Resource details page update ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/1923",children:"#1923"})]}),"\n",(0,o.jsx)(n.p,{children:"If you click on the arrow icon next to a resource name it will open up a details page (similarly to how clicking on a container in the container list opens up a details page)."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://user-images.githubusercontent.com/49404737/229542404-bae44f89-5cd3-4baf-8b08-e934e4462697.gif",alt:"image"})}),"\n",(0,o.jsxs)(n.h3,{id:"nodes-container-image-field-added-to-create-a-kind-cluster-form-3508",children:[(0,o.jsx)(n.code,{children:"Node's container image"})," field added to ",(0,o.jsx)(n.code,{children:"Create a Kind cluster"})," form ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3508",children:"#3508"})]}),"\n",(0,o.jsxs)(n.p,{children:["The new ",(0,o.jsx)(n.code,{children:"Node's container image"})," field can be used to specify the Kubernetes version used for the control-planed."]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{src:"https://github.com/containers/podman-desktop/assets/42176370/b2a63faf-629f-436d-8496-7c0cd8158679",alt:"image"})}),"\n",(0,o.jsxs)(n.h3,{id:"support-docker-desktop-extensions-using-a-backend-3435",children:["Support Docker Desktop extensions using a backend ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3435",children:"#3435"})]}),"\n",(0,o.jsx)(n.p,{children:"Podman Desktop now loads the containers in the backend as described in the vm section of extension descriptor the same way as Docker Desktop does."}),"\n",(0,o.jsxs)(n.h3,{id:"initial-onboarding-implementation-for-podman-experimental-3308",children:["Initial onboarding implementation for podman (experimental) ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3308",children:"#3308"})]}),"\n",(0,o.jsx)(n.p,{children:"This is the initial implementation for the onboarding feature. It only covers a simple onboarding for podman. Check system requirements -> install podman -> yay! Done!"}),"\n",(0,o.jsx)(n.h3,{id:"notable-bug-fixes",children:"Notable Bug Fixes"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Updating videos to be adaptive for mobile by @mairin ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3229",children:"#3229"})]}),"\n",(0,o.jsxs)(n.li,{children:["Consistent max width and padding in settings by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3232",children:"#3232"})]}),"\n",(0,o.jsxs)(n.li,{children:["Settings navigation bar resizing by @deboer-tim in ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3231",children:"#3231"})]}),"\n",(0,o.jsxs)(n.li,{children:["Move new registry button to header by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3245",children:"#3245"})]}),"\n",(0,o.jsxs)(n.li,{children:["Bigger lima logo by @afbjorklund ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3248",children:"#3248"})]}),"\n",(0,o.jsxs)(n.li,{children:["Horizontal docker logo by @afbjorklund ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3236",children:"#3236"})]}),"\n",(0,o.jsxs)(n.li,{children:["Respect LIMA_HOME environment variable by @afbjorklund ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3254",children:"#3254"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add check before writing to terminal by @lstocchi ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3263",children:"#3263"})]}),"\n",(0,o.jsxs)(n.li,{children:["Wait until remote side has fully initialized the extensions by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3257",children:"#3257"})]}),"\n",(0,o.jsxs)(n.li,{children:["Fix loader not centered horizontally by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3270",children:"#3270"})]}),"\n",(0,o.jsxs)(n.li,{children:["Troubleshooting still waiting after failure by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3354",children:"#3354"})]}),"\n",(0,o.jsxs)(n.li,{children:["Store error for build by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3365",children:"#3365"})]}),"\n",(0,o.jsxs)(n.li,{children:["Missing checkbox tooltips by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3380",children:"#3380"})]}),"\n",(0,o.jsxs)(n.li,{children:["Load compose logs async not await by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3377",children:"#3377"})]}),"\n",(0,o.jsxs)(n.li,{children:["Set rootful connection when starting rootful machine by @lstocchi ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3364",children:"#3364"})]}),"\n",(0,o.jsxs)(n.li,{children:["Default last page by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3388",children:"#3388"})]}),"\n",(0,o.jsxs)(n.li,{children:["Avoid dashboard displaying providers starting while they don't by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3451",children:"#3451"})]}),"\n",(0,o.jsxs)(n.li,{children:["Do not use extensionInfo until it is defined by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3450",children:"#V"})]}),"\n",(0,o.jsxs)(n.li,{children:["Allow BASIC authentication (all caps) by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3471",children:"#3471"})]}),"\n",(0,o.jsxs)(n.li,{children:["Allow single domain registry such as localhost:5000 by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3468",children:"#3468"})]}),"\n",(0,o.jsxs)(n.li,{children:["Create /usr/local/bin directory if it does not exist on binary install by @cdrage ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3425",children:"#3425"})]}),"\n",(0,o.jsxs)(n.li,{children:["Only delete selected pods by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3378",children:"#"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add back 'Done' text on the button by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3487",children:"#3487"})]}),"\n",(0,o.jsxs)(n.li,{children:["Do not wait for more than 5s when checking for podman ping by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3497",children:"#3497"})]}),"\n",(0,o.jsxs)(n.li,{children:["Add proxy support for extension using patching get and request approach by @dgolovin ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/2825",children:"#2825"})]}),"\n",(0,o.jsxs)(n.li,{children:["Refresh component when field is updated by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3525",children:"#3525"})]}),"\n",(0,o.jsxs)(n.li,{children:["Higher-res icons for featured extensions list by @mairin ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3511",children:"#3511"})]}),"\n",(0,o.jsxs)(n.li,{children:["Main nav selection by @deboer-tim ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3510",children:"#3510"})]}),"\n",(0,o.jsxs)(n.li,{children:["kube event error when switching context by @jeffmaury ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3494",children:"#3494"})]}),"\n",(0,o.jsxs)(n.li,{children:["Reset error message each time we pull image by @benoitf ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/pull/3550",children:"#3550"})]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"community-thank-you",children:"Community Thank You"}),"\n",(0,o.jsx)(n.p,{children:"\ud83c\udf89 We\u2019d like to say a big thank you to everyone who helped to make Podman Desktop even better."}),"\n",(0,o.jsxs)(n.p,{children:["A warm welcome to ",(0,o.jsx)(n.a,{href:"https://github.com/rostalan",children:"@rostalan"})," and ",(0,o.jsx)(n.a,{href:"https://github.com/axel7083",children:"@axel7083"})," who made their first contribution to the project in this release."]}),"\n",(0,o.jsx)(n.h3,{id:"final-notes",children:"Final Notes"}),"\n",(0,o.jsxs)(n.p,{children:["The complete list of issues fixed in this release is available ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop/issues?q=is%3Aclosed+milestone%3A1.3.0",children:"here"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["Get the latest release from the ",(0,o.jsx)(n.a,{href:"/downloads",children:"Downloads"})," section of the website and boost your development journey with Podman Desktop. Additionally, visit the ",(0,o.jsx)(n.a,{href:"https://github.com/containers/podman-desktop",children:"GitHub repository"})," and see how you can help us make Podman Desktop better."]})]})}function m(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},46714:(e,n,s)=>{s.d(n,{Z:()=>o});const o=s.p+"assets/images/title-bug-swatting-8a5058958e05e545e61c1e5e689335d3.png"}}]); \ No newline at end of file diff --git a/assets/js/reactPlayerDailyMotion.3ed40b36.js b/assets/js/reactPlayerDailyMotion.3ed40b36.js new file mode 100644 index 00000000000..c641aa40263 --- /dev/null +++ b/assets/js/reactPlayerDailyMotion.3ed40b36.js @@ -0,0 +1,155 @@ +exports.id = 596; +exports.ids = [596]; +exports.modules = { + +/***/ 4922: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var DailyMotion_exports = {}; +__export(DailyMotion_exports, { + default: () => DailyMotion +}); +module.exports = __toCommonJS(DailyMotion_exports); +var import_react = __toESM(__webpack_require__(27378)); +var import_utils = __webpack_require__(43887); +var import_patterns = __webpack_require__(62773); +const SDK_URL = "https://api.dmcdn.net/all.js"; +const SDK_GLOBAL = "DM"; +const SDK_GLOBAL_READY = "dmAsyncInit"; +class DailyMotion extends import_react.Component { + constructor() { + super(...arguments); + __publicField(this, "callPlayer", import_utils.callPlayer); + __publicField(this, "onDurationChange", () => { + const duration = this.getDuration(); + this.props.onDuration(duration); + }); + __publicField(this, "mute", () => { + this.callPlayer("setMuted", true); + }); + __publicField(this, "unmute", () => { + this.callPlayer("setMuted", false); + }); + __publicField(this, "ref", (container) => { + this.container = container; + }); + } + componentDidMount() { + this.props.onMount && this.props.onMount(this); + } + load(url) { + const { controls, config, onError, playing } = this.props; + const [, id] = url.match(import_patterns.MATCH_URL_DAILYMOTION); + if (this.player) { + this.player.load(id, { + start: (0, import_utils.parseStartTime)(url), + autoplay: playing + }); + return; + } + (0, import_utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY, (DM) => DM.player).then((DM) => { + if (!this.container) + return; + const Player = DM.player; + this.player = new Player(this.container, { + width: "100%", + height: "100%", + video: id, + params: { + controls, + autoplay: this.props.playing, + mute: this.props.muted, + start: (0, import_utils.parseStartTime)(url), + origin: window.location.origin, + ...config.params + }, + events: { + apiready: this.props.onReady, + seeked: () => this.props.onSeek(this.player.currentTime), + video_end: this.props.onEnded, + durationchange: this.onDurationChange, + pause: this.props.onPause, + playing: this.props.onPlay, + waiting: this.props.onBuffer, + error: (event) => onError(event) + } + }); + }, onError); + } + play() { + this.callPlayer("play"); + } + pause() { + this.callPlayer("pause"); + } + stop() { + } + seekTo(seconds, keepPlaying = true) { + this.callPlayer("seek", seconds); + if (!keepPlaying) { + this.pause(); + } + } + setVolume(fraction) { + this.callPlayer("setVolume", fraction); + } + getDuration() { + return this.player.duration || null; + } + getCurrentTime() { + return this.player.currentTime; + } + getSecondsLoaded() { + return this.player.bufferedTime; + } + render() { + const { display } = this.props; + const style = { + width: "100%", + height: "100%", + display + }; + return /* @__PURE__ */ import_react.default.createElement("div", { style }, /* @__PURE__ */ import_react.default.createElement("div", { ref: this.ref })); + } +} +__publicField(DailyMotion, "displayName", "DailyMotion"); +__publicField(DailyMotion, "canPlay", import_patterns.canPlay.dailymotion); +__publicField(DailyMotion, "loopOnEnded", true); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/reactPlayerDailyMotion.f8009a5e.js b/assets/js/reactPlayerDailyMotion.f8009a5e.js new file mode 100644 index 00000000000..8f75d400d83 --- /dev/null +++ b/assets/js/reactPlayerDailyMotion.f8009a5e.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7596],{4922:(e,t,r)=>{var a,s=Object.create,o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,l=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,u=(e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))p.call(e,s)||s===r||o(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e},h=(e,t,r)=>(((e,t,r)=>{t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r),c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{default:()=>f}),e.exports=(a=c,u(o({},"__esModule",{value:!0}),a));var y=((e,t,r)=>(r=null!=e?s(l(e)):{},u(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)))(r(27378)),d=r(43887),m=r(62773);class f extends y.Component{constructor(){super(...arguments),h(this,"callPlayer",d.callPlayer),h(this,"onDurationChange",(()=>{const e=this.getDuration();this.props.onDuration(e)})),h(this,"mute",(()=>{this.callPlayer("setMuted",!0)})),h(this,"unmute",(()=>{this.callPlayer("setMuted",!1)})),h(this,"ref",(e=>{this.container=e}))}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){const{controls:t,config:r,onError:a,playing:s}=this.props,[,o]=e.match(m.MATCH_URL_DAILYMOTION);this.player?this.player.load(o,{start:(0,d.parseStartTime)(e),autoplay:s}):(0,d.getSDK)("https://api.dmcdn.net/all.js","DM","dmAsyncInit",(e=>e.player)).then((s=>{if(!this.container)return;const n=s.player;this.player=new n(this.container,{width:"100%",height:"100%",video:o,params:{controls:t,autoplay:this.props.playing,mute:this.props.muted,start:(0,d.parseStartTime)(e),origin:window.location.origin,...r.params},events:{apiready:this.props.onReady,seeked:()=>this.props.onSeek(this.player.currentTime),video_end:this.props.onEnded,durationchange:this.onDurationChange,pause:this.props.onPause,playing:this.props.onPlay,waiting:this.props.onBuffer,error:e=>a(e)}})}),a)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,t=!0){this.callPlayer("seek",e),t||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}getDuration(){return this.player.duration||null}getCurrentTime(){return this.player.currentTime}getSecondsLoaded(){return this.player.bufferedTime}render(){const{display:e}=this.props,t={width:"100%",height:"100%",display:e};return y.default.createElement("div",{style:t},y.default.createElement("div",{ref:this.ref}))}}h(f,"displayName","DailyMotion"),h(f,"canPlay",m.canPlay.dailymotion),h(f,"loopOnEnded",!0)}}]); \ No newline at end of file diff --git a/assets/js/reactPlayerFacebook.1d5631d2.js b/assets/js/reactPlayerFacebook.1d5631d2.js new file mode 100644 index 00000000000..4aa80cb666b --- /dev/null +++ b/assets/js/reactPlayerFacebook.1d5631d2.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2121],{76765:(e,t,s)=>{var r,a=Object.create,l=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,n=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,u=(e,t,s,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of i(t))p.call(e,a)||a===s||l(e,a,{get:()=>t[a],enumerable:!(r=o(t,a))||r.enumerable});return e},c=(e,t,s)=>(((e,t,s)=>{t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s})(e,"symbol"!=typeof t?t+"":t,s),s),h={};((e,t)=>{for(var s in t)l(e,s,{get:t[s],enumerable:!0})})(h,{default:()=>g}),e.exports=(r=h,u(l({},"__esModule",{value:!0}),r));var y=((e,t,s)=>(s=null!=e?a(n(e)):{},u(!t&&e&&e.__esModule?s:l(s,"default",{value:e,enumerable:!0}),e)))(s(27378)),d=s(43887),b=s(62773);const f="https://connect.facebook.net/en_US/sdk.js",m="fbAsyncInit";class g extends y.Component{constructor(){super(...arguments),c(this,"callPlayer",d.callPlayer),c(this,"playerID",this.props.config.playerId||`facebook-player-${(0,d.randomString)()}`),c(this,"mute",(()=>{this.callPlayer("mute")})),c(this,"unmute",(()=>{this.callPlayer("unmute")}))}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e,t){t?(0,d.getSDK)(f,"FB",m).then((e=>e.XFBML.parse())):(0,d.getSDK)(f,"FB",m).then((e=>{e.init({appId:this.props.config.appId,xfbml:!0,version:this.props.config.version}),e.Event.subscribe("xfbml.render",(e=>{this.props.onLoaded()})),e.Event.subscribe("xfbml.ready",(e=>{"video"===e.type&&e.id===this.playerID&&(this.player=e.instance,this.player.subscribe("startedPlaying",this.props.onPlay),this.player.subscribe("paused",this.props.onPause),this.player.subscribe("finishedPlaying",this.props.onEnded),this.player.subscribe("startedBuffering",this.props.onBuffer),this.player.subscribe("finishedBuffering",this.props.onBufferEnd),this.player.subscribe("error",this.props.onError),this.props.muted?this.callPlayer("mute"):this.callPlayer("unmute"),this.props.onReady(),document.getElementById(this.playerID).querySelector("iframe").style.visibility="visible")}))}))}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,t=!0){this.callPlayer("seek",e),t||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}getDuration(){return this.callPlayer("getDuration")}getCurrentTime(){return this.callPlayer("getCurrentPosition")}getSecondsLoaded(){return null}render(){const{attributes:e}=this.props.config;return y.default.createElement("div",{style:{width:"100%",height:"100%"},id:this.playerID,className:"fb-video","data-href":this.props.url,"data-autoplay":this.props.playing?"true":"false","data-allowfullscreen":"true","data-controls":this.props.controls?"true":"false",...e})}}c(g,"displayName","Facebook"),c(g,"canPlay",b.canPlay.facebook),c(g,"loopOnEnded",!0)}}]); \ No newline at end of file diff --git a/assets/js/reactPlayerFacebook.2652c8c4.js b/assets/js/reactPlayerFacebook.2652c8c4.js new file mode 100644 index 00000000000..1de176a3938 --- /dev/null +++ b/assets/js/reactPlayerFacebook.2652c8c4.js @@ -0,0 +1,156 @@ +exports.id = 121; +exports.ids = [121]; +exports.modules = { + +/***/ 76765: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var Facebook_exports = {}; +__export(Facebook_exports, { + default: () => Facebook +}); +module.exports = __toCommonJS(Facebook_exports); +var import_react = __toESM(__webpack_require__(27378)); +var import_utils = __webpack_require__(43887); +var import_patterns = __webpack_require__(62773); +const SDK_URL = "https://connect.facebook.net/en_US/sdk.js"; +const SDK_GLOBAL = "FB"; +const SDK_GLOBAL_READY = "fbAsyncInit"; +const PLAYER_ID_PREFIX = "facebook-player-"; +class Facebook extends import_react.Component { + constructor() { + super(...arguments); + __publicField(this, "callPlayer", import_utils.callPlayer); + __publicField(this, "playerID", this.props.config.playerId || `${PLAYER_ID_PREFIX}${(0, import_utils.randomString)()}`); + __publicField(this, "mute", () => { + this.callPlayer("mute"); + }); + __publicField(this, "unmute", () => { + this.callPlayer("unmute"); + }); + } + componentDidMount() { + this.props.onMount && this.props.onMount(this); + } + load(url, isReady) { + if (isReady) { + (0, import_utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY).then((FB) => FB.XFBML.parse()); + return; + } + (0, import_utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY).then((FB) => { + FB.init({ + appId: this.props.config.appId, + xfbml: true, + version: this.props.config.version + }); + FB.Event.subscribe("xfbml.render", (msg) => { + this.props.onLoaded(); + }); + FB.Event.subscribe("xfbml.ready", (msg) => { + if (msg.type === "video" && msg.id === this.playerID) { + this.player = msg.instance; + this.player.subscribe("startedPlaying", this.props.onPlay); + this.player.subscribe("paused", this.props.onPause); + this.player.subscribe("finishedPlaying", this.props.onEnded); + this.player.subscribe("startedBuffering", this.props.onBuffer); + this.player.subscribe("finishedBuffering", this.props.onBufferEnd); + this.player.subscribe("error", this.props.onError); + if (this.props.muted) { + this.callPlayer("mute"); + } else { + this.callPlayer("unmute"); + } + this.props.onReady(); + document.getElementById(this.playerID).querySelector("iframe").style.visibility = "visible"; + } + }); + }); + } + play() { + this.callPlayer("play"); + } + pause() { + this.callPlayer("pause"); + } + stop() { + } + seekTo(seconds, keepPlaying = true) { + this.callPlayer("seek", seconds); + if (!keepPlaying) { + this.pause(); + } + } + setVolume(fraction) { + this.callPlayer("setVolume", fraction); + } + getDuration() { + return this.callPlayer("getDuration"); + } + getCurrentTime() { + return this.callPlayer("getCurrentPosition"); + } + getSecondsLoaded() { + return null; + } + render() { + const { attributes } = this.props.config; + const style = { + width: "100%", + height: "100%" + }; + return /* @__PURE__ */ import_react.default.createElement( + "div", + { + style, + id: this.playerID, + className: "fb-video", + "data-href": this.props.url, + "data-autoplay": this.props.playing ? "true" : "false", + "data-allowfullscreen": "true", + "data-controls": this.props.controls ? "true" : "false", + ...attributes + } + ); + } +} +__publicField(Facebook, "displayName", "Facebook"); +__publicField(Facebook, "canPlay", import_patterns.canPlay.facebook); +__publicField(Facebook, "loopOnEnded", true); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/reactPlayerFilePlayer.b143422e.js b/assets/js/reactPlayerFilePlayer.b143422e.js new file mode 100644 index 00000000000..9ce3749033c --- /dev/null +++ b/assets/js/reactPlayerFilePlayer.b143422e.js @@ -0,0 +1,385 @@ +exports.id = 11; +exports.ids = [11]; +exports.modules = { + +/***/ 98450: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var FilePlayer_exports = {}; +__export(FilePlayer_exports, { + default: () => FilePlayer +}); +module.exports = __toCommonJS(FilePlayer_exports); +var import_react = __toESM(__webpack_require__(27378)); +var import_utils = __webpack_require__(43887); +var import_patterns = __webpack_require__(62773); +const HAS_NAVIGATOR = typeof navigator !== "undefined"; +const IS_IPAD_PRO = HAS_NAVIGATOR && navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1; +const IS_IOS = HAS_NAVIGATOR && (/iPad|iPhone|iPod/.test(navigator.userAgent) || IS_IPAD_PRO) && !window.MSStream; +const IS_SAFARI = HAS_NAVIGATOR && /^((?!chrome|android).)*safari/i.test(navigator.userAgent) && !window.MSStream; +const HLS_SDK_URL = "https://cdn.jsdelivr.net/npm/hls.js@VERSION/dist/hls.min.js"; +const HLS_GLOBAL = "Hls"; +const DASH_SDK_URL = "https://cdnjs.cloudflare.com/ajax/libs/dashjs/VERSION/dash.all.min.js"; +const DASH_GLOBAL = "dashjs"; +const FLV_SDK_URL = "https://cdn.jsdelivr.net/npm/flv.js@VERSION/dist/flv.min.js"; +const FLV_GLOBAL = "flvjs"; +const MATCH_DROPBOX_URL = /www\.dropbox\.com\/.+/; +const MATCH_CLOUDFLARE_STREAM = /https:\/\/watch\.cloudflarestream\.com\/([a-z0-9]+)/; +const REPLACE_CLOUDFLARE_STREAM = "https://videodelivery.net/{id}/manifest/video.m3u8"; +class FilePlayer extends import_react.Component { + constructor() { + super(...arguments); + // Proxy methods to prevent listener leaks + __publicField(this, "onReady", (...args) => this.props.onReady(...args)); + __publicField(this, "onPlay", (...args) => this.props.onPlay(...args)); + __publicField(this, "onBuffer", (...args) => this.props.onBuffer(...args)); + __publicField(this, "onBufferEnd", (...args) => this.props.onBufferEnd(...args)); + __publicField(this, "onPause", (...args) => this.props.onPause(...args)); + __publicField(this, "onEnded", (...args) => this.props.onEnded(...args)); + __publicField(this, "onError", (...args) => this.props.onError(...args)); + __publicField(this, "onPlayBackRateChange", (event) => this.props.onPlaybackRateChange(event.target.playbackRate)); + __publicField(this, "onEnablePIP", (...args) => this.props.onEnablePIP(...args)); + __publicField(this, "onDisablePIP", (e) => { + const { onDisablePIP, playing } = this.props; + onDisablePIP(e); + if (playing) { + this.play(); + } + }); + __publicField(this, "onPresentationModeChange", (e) => { + if (this.player && (0, import_utils.supportsWebKitPresentationMode)(this.player)) { + const { webkitPresentationMode } = this.player; + if (webkitPresentationMode === "picture-in-picture") { + this.onEnablePIP(e); + } else if (webkitPresentationMode === "inline") { + this.onDisablePIP(e); + } + } + }); + __publicField(this, "onSeek", (e) => { + this.props.onSeek(e.target.currentTime); + }); + __publicField(this, "mute", () => { + this.player.muted = true; + }); + __publicField(this, "unmute", () => { + this.player.muted = false; + }); + __publicField(this, "renderSourceElement", (source, index) => { + if (typeof source === "string") { + return /* @__PURE__ */ import_react.default.createElement("source", { key: index, src: source }); + } + return /* @__PURE__ */ import_react.default.createElement("source", { key: index, ...source }); + }); + __publicField(this, "renderTrack", (track, index) => { + return /* @__PURE__ */ import_react.default.createElement("track", { key: index, ...track }); + }); + __publicField(this, "ref", (player) => { + if (this.player) { + this.prevPlayer = this.player; + } + this.player = player; + }); + } + componentDidMount() { + this.props.onMount && this.props.onMount(this); + this.addListeners(this.player); + const src = this.getSource(this.props.url); + if (src) { + this.player.src = src; + } + if (IS_IOS || this.props.config.forceDisableHls) { + this.player.load(); + } + } + componentDidUpdate(prevProps) { + if (this.shouldUseAudio(this.props) !== this.shouldUseAudio(prevProps)) { + this.removeListeners(this.prevPlayer, prevProps.url); + this.addListeners(this.player); + } + if (this.props.url !== prevProps.url && !(0, import_utils.isMediaStream)(this.props.url) && !(this.props.url instanceof Array)) { + this.player.srcObject = null; + } + } + componentWillUnmount() { + this.player.removeAttribute("src"); + this.removeListeners(this.player); + if (this.hls) { + this.hls.destroy(); + } + } + addListeners(player) { + const { url, playsinline } = this.props; + player.addEventListener("play", this.onPlay); + player.addEventListener("waiting", this.onBuffer); + player.addEventListener("playing", this.onBufferEnd); + player.addEventListener("pause", this.onPause); + player.addEventListener("seeked", this.onSeek); + player.addEventListener("ended", this.onEnded); + player.addEventListener("error", this.onError); + player.addEventListener("ratechange", this.onPlayBackRateChange); + player.addEventListener("enterpictureinpicture", this.onEnablePIP); + player.addEventListener("leavepictureinpicture", this.onDisablePIP); + player.addEventListener("webkitpresentationmodechanged", this.onPresentationModeChange); + if (!this.shouldUseHLS(url)) { + player.addEventListener("canplay", this.onReady); + } + if (playsinline) { + player.setAttribute("playsinline", ""); + player.setAttribute("webkit-playsinline", ""); + player.setAttribute("x5-playsinline", ""); + } + } + removeListeners(player, url) { + player.removeEventListener("canplay", this.onReady); + player.removeEventListener("play", this.onPlay); + player.removeEventListener("waiting", this.onBuffer); + player.removeEventListener("playing", this.onBufferEnd); + player.removeEventListener("pause", this.onPause); + player.removeEventListener("seeked", this.onSeek); + player.removeEventListener("ended", this.onEnded); + player.removeEventListener("error", this.onError); + player.removeEventListener("ratechange", this.onPlayBackRateChange); + player.removeEventListener("enterpictureinpicture", this.onEnablePIP); + player.removeEventListener("leavepictureinpicture", this.onDisablePIP); + player.removeEventListener("webkitpresentationmodechanged", this.onPresentationModeChange); + if (!this.shouldUseHLS(url)) { + player.removeEventListener("canplay", this.onReady); + } + } + shouldUseAudio(props) { + if (props.config.forceVideo) { + return false; + } + if (props.config.attributes.poster) { + return false; + } + return import_patterns.AUDIO_EXTENSIONS.test(props.url) || props.config.forceAudio; + } + shouldUseHLS(url) { + if (IS_SAFARI && this.props.config.forceSafariHLS || this.props.config.forceHLS) { + return true; + } + if (IS_IOS || this.props.config.forceDisableHls) { + return false; + } + return import_patterns.HLS_EXTENSIONS.test(url) || MATCH_CLOUDFLARE_STREAM.test(url); + } + shouldUseDASH(url) { + return import_patterns.DASH_EXTENSIONS.test(url) || this.props.config.forceDASH; + } + shouldUseFLV(url) { + return import_patterns.FLV_EXTENSIONS.test(url) || this.props.config.forceFLV; + } + load(url) { + const { hlsVersion, hlsOptions, dashVersion, flvVersion } = this.props.config; + if (this.hls) { + this.hls.destroy(); + } + if (this.dash) { + this.dash.reset(); + } + if (this.shouldUseHLS(url)) { + (0, import_utils.getSDK)(HLS_SDK_URL.replace("VERSION", hlsVersion), HLS_GLOBAL).then((Hls) => { + this.hls = new Hls(hlsOptions); + this.hls.on(Hls.Events.MANIFEST_PARSED, () => { + this.props.onReady(); + }); + this.hls.on(Hls.Events.ERROR, (e, data) => { + this.props.onError(e, data, this.hls, Hls); + }); + if (MATCH_CLOUDFLARE_STREAM.test(url)) { + const id = url.match(MATCH_CLOUDFLARE_STREAM)[1]; + this.hls.loadSource(REPLACE_CLOUDFLARE_STREAM.replace("{id}", id)); + } else { + this.hls.loadSource(url); + } + this.hls.attachMedia(this.player); + this.props.onLoaded(); + }); + } + if (this.shouldUseDASH(url)) { + (0, import_utils.getSDK)(DASH_SDK_URL.replace("VERSION", dashVersion), DASH_GLOBAL).then((dashjs) => { + this.dash = dashjs.MediaPlayer().create(); + this.dash.initialize(this.player, url, this.props.playing); + this.dash.on("error", this.props.onError); + if (parseInt(dashVersion) < 3) { + this.dash.getDebug().setLogToBrowserConsole(false); + } else { + this.dash.updateSettings({ debug: { logLevel: dashjs.Debug.LOG_LEVEL_NONE } }); + } + this.props.onLoaded(); + }); + } + if (this.shouldUseFLV(url)) { + (0, import_utils.getSDK)(FLV_SDK_URL.replace("VERSION", flvVersion), FLV_GLOBAL).then((flvjs) => { + this.flv = flvjs.createPlayer({ type: "flv", url }); + this.flv.attachMediaElement(this.player); + this.flv.on(flvjs.Events.ERROR, (e, data) => { + this.props.onError(e, data, this.flv, flvjs); + }); + this.flv.load(); + this.props.onLoaded(); + }); + } + if (url instanceof Array) { + this.player.load(); + } else if ((0, import_utils.isMediaStream)(url)) { + try { + this.player.srcObject = url; + } catch (e) { + this.player.src = window.URL.createObjectURL(url); + } + } + } + play() { + const promise = this.player.play(); + if (promise) { + promise.catch(this.props.onError); + } + } + pause() { + this.player.pause(); + } + stop() { + this.player.removeAttribute("src"); + if (this.dash) { + this.dash.reset(); + } + } + seekTo(seconds, keepPlaying = true) { + this.player.currentTime = seconds; + if (!keepPlaying) { + this.pause(); + } + } + setVolume(fraction) { + this.player.volume = fraction; + } + enablePIP() { + if (this.player.requestPictureInPicture && document.pictureInPictureElement !== this.player) { + this.player.requestPictureInPicture(); + } else if ((0, import_utils.supportsWebKitPresentationMode)(this.player) && this.player.webkitPresentationMode !== "picture-in-picture") { + this.player.webkitSetPresentationMode("picture-in-picture"); + } + } + disablePIP() { + if (document.exitPictureInPicture && document.pictureInPictureElement === this.player) { + document.exitPictureInPicture(); + } else if ((0, import_utils.supportsWebKitPresentationMode)(this.player) && this.player.webkitPresentationMode !== "inline") { + this.player.webkitSetPresentationMode("inline"); + } + } + setPlaybackRate(rate) { + try { + this.player.playbackRate = rate; + } catch (error) { + this.props.onError(error); + } + } + getDuration() { + if (!this.player) + return null; + const { duration, seekable } = this.player; + if (duration === Infinity && seekable.length > 0) { + return seekable.end(seekable.length - 1); + } + return duration; + } + getCurrentTime() { + if (!this.player) + return null; + return this.player.currentTime; + } + getSecondsLoaded() { + if (!this.player) + return null; + const { buffered } = this.player; + if (buffered.length === 0) { + return 0; + } + const end = buffered.end(buffered.length - 1); + const duration = this.getDuration(); + if (end > duration) { + return duration; + } + return end; + } + getSource(url) { + const useHLS = this.shouldUseHLS(url); + const useDASH = this.shouldUseDASH(url); + const useFLV = this.shouldUseFLV(url); + if (url instanceof Array || (0, import_utils.isMediaStream)(url) || useHLS || useDASH || useFLV) { + return void 0; + } + if (MATCH_DROPBOX_URL.test(url)) { + return url.replace("www.dropbox.com", "dl.dropboxusercontent.com"); + } + return url; + } + render() { + const { url, playing, loop, controls, muted, config, width, height } = this.props; + const useAudio = this.shouldUseAudio(this.props); + const Element = useAudio ? "audio" : "video"; + const style = { + width: width === "auto" ? width : "100%", + height: height === "auto" ? height : "100%" + }; + return /* @__PURE__ */ import_react.default.createElement( + Element, + { + ref: this.ref, + src: this.getSource(url), + style, + preload: "auto", + autoPlay: playing || void 0, + controls, + muted, + loop, + ...config.attributes + }, + url instanceof Array && url.map(this.renderSourceElement), + config.tracks.map(this.renderTrack) + ); + } +} +__publicField(FilePlayer, "displayName", "FilePlayer"); +__publicField(FilePlayer, "canPlay", import_patterns.canPlay.file); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/reactPlayerFilePlayer.cac6ee27.js b/assets/js/reactPlayerFilePlayer.cac6ee27.js new file mode 100644 index 00000000000..9c49051eb3e --- /dev/null +++ b/assets/js/reactPlayerFilePlayer.cac6ee27.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6011],{98450:(e,t,s)=>{var r,i=Object.create,n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,h=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,p=(e,t,s,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of a(t))l.call(e,i)||i===s||n(e,i,{get:()=>t[i],enumerable:!(r=o(t,i))||r.enumerable});return e},d=(e,t,s)=>(((e,t,s)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s})(e,"symbol"!=typeof t?t+"":t,s),s),u={};((e,t)=>{for(var s in t)n(e,s,{get:t[s],enumerable:!0})})(u,{default:()=>L}),e.exports=(r=u,p(n({},"__esModule",{value:!0}),r));var c=((e,t,s)=>(s=null!=e?i(h(e)):{},p(!t&&e&&e.__esModule?s:n(s,"default",{value:e,enumerable:!0}),e)))(s(27378)),y=s(43887),f=s(62773);const m="undefined"!=typeof navigator,v=m&&"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,E=m&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||v)&&!window.MSStream,P=m&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent)&&!window.MSStream,g=/www\.dropbox\.com\/.+/,b=/https:\/\/watch\.cloudflarestream\.com\/([a-z0-9]+)/;class L extends c.Component{constructor(){super(...arguments),d(this,"onReady",((...e)=>this.props.onReady(...e))),d(this,"onPlay",((...e)=>this.props.onPlay(...e))),d(this,"onBuffer",((...e)=>this.props.onBuffer(...e))),d(this,"onBufferEnd",((...e)=>this.props.onBufferEnd(...e))),d(this,"onPause",((...e)=>this.props.onPause(...e))),d(this,"onEnded",((...e)=>this.props.onEnded(...e))),d(this,"onError",((...e)=>this.props.onError(...e))),d(this,"onPlayBackRateChange",(e=>this.props.onPlaybackRateChange(e.target.playbackRate))),d(this,"onEnablePIP",((...e)=>this.props.onEnablePIP(...e))),d(this,"onDisablePIP",(e=>{const{onDisablePIP:t,playing:s}=this.props;t(e),s&&this.play()})),d(this,"onPresentationModeChange",(e=>{if(this.player&&(0,y.supportsWebKitPresentationMode)(this.player)){const{webkitPresentationMode:t}=this.player;"picture-in-picture"===t?this.onEnablePIP(e):"inline"===t&&this.onDisablePIP(e)}})),d(this,"onSeek",(e=>{this.props.onSeek(e.target.currentTime)})),d(this,"mute",(()=>{this.player.muted=!0})),d(this,"unmute",(()=>{this.player.muted=!1})),d(this,"renderSourceElement",((e,t)=>"string"==typeof e?c.default.createElement("source",{key:t,src:e}):c.default.createElement("source",{key:t,...e}))),d(this,"renderTrack",((e,t)=>c.default.createElement("track",{key:t,...e}))),d(this,"ref",(e=>{this.player&&(this.prevPlayer=this.player),this.player=e}))}componentDidMount(){this.props.onMount&&this.props.onMount(this),this.addListeners(this.player);const e=this.getSource(this.props.url);e&&(this.player.src=e),(E||this.props.config.forceDisableHls)&&this.player.load()}componentDidUpdate(e){this.shouldUseAudio(this.props)!==this.shouldUseAudio(e)&&(this.removeListeners(this.prevPlayer,e.url),this.addListeners(this.player)),this.props.url===e.url||(0,y.isMediaStream)(this.props.url)||this.props.url instanceof Array||(this.player.srcObject=null)}componentWillUnmount(){this.player.removeAttribute("src"),this.removeListeners(this.player),this.hls&&this.hls.destroy()}addListeners(e){const{url:t,playsinline:s}=this.props;e.addEventListener("play",this.onPlay),e.addEventListener("waiting",this.onBuffer),e.addEventListener("playing",this.onBufferEnd),e.addEventListener("pause",this.onPause),e.addEventListener("seeked",this.onSeek),e.addEventListener("ended",this.onEnded),e.addEventListener("error",this.onError),e.addEventListener("ratechange",this.onPlayBackRateChange),e.addEventListener("enterpictureinpicture",this.onEnablePIP),e.addEventListener("leavepictureinpicture",this.onDisablePIP),e.addEventListener("webkitpresentationmodechanged",this.onPresentationModeChange),this.shouldUseHLS(t)||e.addEventListener("canplay",this.onReady),s&&(e.setAttribute("playsinline",""),e.setAttribute("webkit-playsinline",""),e.setAttribute("x5-playsinline",""))}removeListeners(e,t){e.removeEventListener("canplay",this.onReady),e.removeEventListener("play",this.onPlay),e.removeEventListener("waiting",this.onBuffer),e.removeEventListener("playing",this.onBufferEnd),e.removeEventListener("pause",this.onPause),e.removeEventListener("seeked",this.onSeek),e.removeEventListener("ended",this.onEnded),e.removeEventListener("error",this.onError),e.removeEventListener("ratechange",this.onPlayBackRateChange),e.removeEventListener("enterpictureinpicture",this.onEnablePIP),e.removeEventListener("leavepictureinpicture",this.onDisablePIP),e.removeEventListener("webkitpresentationmodechanged",this.onPresentationModeChange),this.shouldUseHLS(t)||e.removeEventListener("canplay",this.onReady)}shouldUseAudio(e){return!e.config.forceVideo&&(!e.config.attributes.poster&&(f.AUDIO_EXTENSIONS.test(e.url)||e.config.forceAudio))}shouldUseHLS(e){return!!(P&&this.props.config.forceSafariHLS||this.props.config.forceHLS)||!E&&!this.props.config.forceDisableHls&&(f.HLS_EXTENSIONS.test(e)||b.test(e))}shouldUseDASH(e){return f.DASH_EXTENSIONS.test(e)||this.props.config.forceDASH}shouldUseFLV(e){return f.FLV_EXTENSIONS.test(e)||this.props.config.forceFLV}load(e){const{hlsVersion:t,hlsOptions:s,dashVersion:r,flvVersion:i}=this.props.config;if(this.hls&&this.hls.destroy(),this.dash&&this.dash.reset(),this.shouldUseHLS(e)&&(0,y.getSDK)("https://cdn.jsdelivr.net/npm/hls.js@VERSION/dist/hls.min.js".replace("VERSION",t),"Hls").then((t=>{if(this.hls=new t(s),this.hls.on(t.Events.MANIFEST_PARSED,(()=>{this.props.onReady()})),this.hls.on(t.Events.ERROR,((e,s)=>{this.props.onError(e,s,this.hls,t)})),b.test(e)){const t=e.match(b)[1];this.hls.loadSource("https://videodelivery.net/{id}/manifest/video.m3u8".replace("{id}",t))}else this.hls.loadSource(e);this.hls.attachMedia(this.player),this.props.onLoaded()})),this.shouldUseDASH(e)&&(0,y.getSDK)("https://cdnjs.cloudflare.com/ajax/libs/dashjs/VERSION/dash.all.min.js".replace("VERSION",r),"dashjs").then((t=>{this.dash=t.MediaPlayer().create(),this.dash.initialize(this.player,e,this.props.playing),this.dash.on("error",this.props.onError),parseInt(r)<3?this.dash.getDebug().setLogToBrowserConsole(!1):this.dash.updateSettings({debug:{logLevel:t.Debug.LOG_LEVEL_NONE}}),this.props.onLoaded()})),this.shouldUseFLV(e)&&(0,y.getSDK)("https://cdn.jsdelivr.net/npm/flv.js@VERSION/dist/flv.min.js".replace("VERSION",i),"flvjs").then((t=>{this.flv=t.createPlayer({type:"flv",url:e}),this.flv.attachMediaElement(this.player),this.flv.on(t.Events.ERROR,((e,s)=>{this.props.onError(e,s,this.flv,t)})),this.flv.load(),this.props.onLoaded()})),e instanceof Array)this.player.load();else if((0,y.isMediaStream)(e))try{this.player.srcObject=e}catch(n){this.player.src=window.URL.createObjectURL(e)}}play(){const e=this.player.play();e&&e.catch(this.props.onError)}pause(){this.player.pause()}stop(){this.player.removeAttribute("src"),this.dash&&this.dash.reset()}seekTo(e,t=!0){this.player.currentTime=e,t||this.pause()}setVolume(e){this.player.volume=e}enablePIP(){this.player.requestPictureInPicture&&document.pictureInPictureElement!==this.player?this.player.requestPictureInPicture():(0,y.supportsWebKitPresentationMode)(this.player)&&"picture-in-picture"!==this.player.webkitPresentationMode&&this.player.webkitSetPresentationMode("picture-in-picture")}disablePIP(){document.exitPictureInPicture&&document.pictureInPictureElement===this.player?document.exitPictureInPicture():(0,y.supportsWebKitPresentationMode)(this.player)&&"inline"!==this.player.webkitPresentationMode&&this.player.webkitSetPresentationMode("inline")}setPlaybackRate(e){try{this.player.playbackRate=e}catch(t){this.props.onError(t)}}getDuration(){if(!this.player)return null;const{duration:e,seekable:t}=this.player;return e===1/0&&t.length>0?t.end(t.length-1):e}getCurrentTime(){return this.player?this.player.currentTime:null}getSecondsLoaded(){if(!this.player)return null;const{buffered:e}=this.player;if(0===e.length)return 0;const t=e.end(e.length-1),s=this.getDuration();return t>s?s:t}getSource(e){const t=this.shouldUseHLS(e),s=this.shouldUseDASH(e),r=this.shouldUseFLV(e);if(!(e instanceof Array||(0,y.isMediaStream)(e)||t||s||r))return g.test(e)?e.replace("www.dropbox.com","dl.dropboxusercontent.com"):e}render(){const{url:e,playing:t,loop:s,controls:r,muted:i,config:n,width:o,height:a}=this.props,h=this.shouldUseAudio(this.props)?"audio":"video",l={width:"auto"===o?o:"100%",height:"auto"===a?a:"100%"};return c.default.createElement(h,{ref:this.ref,src:this.getSource(e),style:l,preload:"auto",autoPlay:t||void 0,controls:r,muted:i,loop:s,...n.attributes},e instanceof Array&&e.map(this.renderSourceElement),n.tracks.map(this.renderTrack))}}d(L,"displayName","FilePlayer"),d(L,"canPlay",f.canPlay.file)}}]); \ No newline at end of file diff --git a/assets/js/reactPlayerKaltura.45130f3f.js b/assets/js/reactPlayerKaltura.45130f3f.js new file mode 100644 index 00000000000..c1cea75d65c --- /dev/null +++ b/assets/js/reactPlayerKaltura.45130f3f.js @@ -0,0 +1,153 @@ +exports.id = 261; +exports.ids = [261]; +exports.modules = { + +/***/ 7248: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var Kaltura_exports = {}; +__export(Kaltura_exports, { + default: () => Kaltura +}); +module.exports = __toCommonJS(Kaltura_exports); +var import_react = __toESM(__webpack_require__(27378)); +var import_utils = __webpack_require__(43887); +var import_patterns = __webpack_require__(62773); +const SDK_URL = "https://cdn.embed.ly/player-0.1.0.min.js"; +const SDK_GLOBAL = "playerjs"; +class Kaltura extends import_react.Component { + constructor() { + super(...arguments); + __publicField(this, "callPlayer", import_utils.callPlayer); + __publicField(this, "duration", null); + __publicField(this, "currentTime", null); + __publicField(this, "secondsLoaded", null); + __publicField(this, "mute", () => { + this.callPlayer("mute"); + }); + __publicField(this, "unmute", () => { + this.callPlayer("unmute"); + }); + __publicField(this, "ref", (iframe) => { + this.iframe = iframe; + }); + } + componentDidMount() { + this.props.onMount && this.props.onMount(this); + } + load(url) { + (0, import_utils.getSDK)(SDK_URL, SDK_GLOBAL).then((playerjs) => { + if (!this.iframe) + return; + this.player = new playerjs.Player(this.iframe); + this.player.on("ready", () => { + setTimeout(() => { + this.player.isReady = true; + this.player.setLoop(this.props.loop); + if (this.props.muted) { + this.player.mute(); + } + this.addListeners(this.player, this.props); + this.props.onReady(); + }, 500); + }); + }, this.props.onError); + } + addListeners(player, props) { + player.on("play", props.onPlay); + player.on("pause", props.onPause); + player.on("ended", props.onEnded); + player.on("error", props.onError); + player.on("timeupdate", ({ duration, seconds }) => { + this.duration = duration; + this.currentTime = seconds; + }); + } + play() { + this.callPlayer("play"); + } + pause() { + this.callPlayer("pause"); + } + stop() { + } + seekTo(seconds, keepPlaying = true) { + this.callPlayer("setCurrentTime", seconds); + if (!keepPlaying) { + this.pause(); + } + } + setVolume(fraction) { + this.callPlayer("setVolume", fraction); + } + setLoop(loop) { + this.callPlayer("setLoop", loop); + } + getDuration() { + return this.duration; + } + getCurrentTime() { + return this.currentTime; + } + getSecondsLoaded() { + return this.secondsLoaded; + } + render() { + const style = { + width: "100%", + height: "100%" + }; + return /* @__PURE__ */ import_react.default.createElement( + "iframe", + { + ref: this.ref, + src: this.props.url, + frameBorder: "0", + scrolling: "no", + style, + allow: "encrypted-media; autoplay; fullscreen;", + referrerPolicy: "no-referrer-when-downgrade" + } + ); + } +} +__publicField(Kaltura, "displayName", "Kaltura"); +__publicField(Kaltura, "canPlay", import_patterns.canPlay.kaltura); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/reactPlayerKaltura.59b3b0c6.js b/assets/js/reactPlayerKaltura.59b3b0c6.js new file mode 100644 index 00000000000..5868cb5bf2c --- /dev/null +++ b/assets/js/reactPlayerKaltura.59b3b0c6.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[261],{7248:(e,t,r)=>{var s,a=Object.create,o=Object.defineProperty,l=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,i=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,p=(e,t,r,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of n(t))u.call(e,a)||a===r||o(e,a,{get:()=>t[a],enumerable:!(s=l(t,a))||s.enumerable});return e},h=(e,t,r)=>(((e,t,r)=>{t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r),d={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(d,{default:()=>f}),e.exports=(s=d,p(o({},"__esModule",{value:!0}),s));var c=((e,t,r)=>(r=null!=e?a(i(e)):{},p(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)))(r(27378)),y=r(43887),m=r(62773);class f extends c.Component{constructor(){super(...arguments),h(this,"callPlayer",y.callPlayer),h(this,"duration",null),h(this,"currentTime",null),h(this,"secondsLoaded",null),h(this,"mute",(()=>{this.callPlayer("mute")})),h(this,"unmute",(()=>{this.callPlayer("unmute")})),h(this,"ref",(e=>{this.iframe=e}))}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){(0,y.getSDK)("https://cdn.embed.ly/player-0.1.0.min.js","playerjs").then((e=>{this.iframe&&(this.player=new e.Player(this.iframe),this.player.on("ready",(()=>{setTimeout((()=>{this.player.isReady=!0,this.player.setLoop(this.props.loop),this.props.muted&&this.player.mute(),this.addListeners(this.player,this.props),this.props.onReady()}),500)})))}),this.props.onError)}addListeners(e,t){e.on("play",t.onPlay),e.on("pause",t.onPause),e.on("ended",t.onEnded),e.on("error",t.onError),e.on("timeupdate",(({duration:e,seconds:t})=>{this.duration=e,this.currentTime=t}))}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,t=!0){this.callPlayer("setCurrentTime",e),t||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}setLoop(e){this.callPlayer("setLoop",e)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.secondsLoaded}render(){return c.default.createElement("iframe",{ref:this.ref,src:this.props.url,frameBorder:"0",scrolling:"no",style:{width:"100%",height:"100%"},allow:"encrypted-media; autoplay; fullscreen;",referrerPolicy:"no-referrer-when-downgrade"})}}h(f,"displayName","Kaltura"),h(f,"canPlay",m.canPlay.kaltura)}}]); \ No newline at end of file diff --git a/assets/js/reactPlayerMixcloud.643d0896.js b/assets/js/reactPlayerMixcloud.643d0896.js new file mode 100644 index 00000000000..8aec5e0f78f --- /dev/null +++ b/assets/js/reactPlayerMixcloud.643d0896.js @@ -0,0 +1,141 @@ +exports.id = 667; +exports.ids = [667]; +exports.modules = { + +/***/ 31241: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var Mixcloud_exports = {}; +__export(Mixcloud_exports, { + default: () => Mixcloud +}); +module.exports = __toCommonJS(Mixcloud_exports); +var import_react = __toESM(__webpack_require__(27378)); +var import_utils = __webpack_require__(43887); +var import_patterns = __webpack_require__(62773); +const SDK_URL = "https://widget.mixcloud.com/media/js/widgetApi.js"; +const SDK_GLOBAL = "Mixcloud"; +class Mixcloud extends import_react.Component { + constructor() { + super(...arguments); + __publicField(this, "callPlayer", import_utils.callPlayer); + __publicField(this, "duration", null); + __publicField(this, "currentTime", null); + __publicField(this, "secondsLoaded", null); + __publicField(this, "mute", () => { + }); + __publicField(this, "unmute", () => { + }); + __publicField(this, "ref", (iframe) => { + this.iframe = iframe; + }); + } + componentDidMount() { + this.props.onMount && this.props.onMount(this); + } + load(url) { + (0, import_utils.getSDK)(SDK_URL, SDK_GLOBAL).then((Mixcloud2) => { + this.player = Mixcloud2.PlayerWidget(this.iframe); + this.player.ready.then(() => { + this.player.events.play.on(this.props.onPlay); + this.player.events.pause.on(this.props.onPause); + this.player.events.ended.on(this.props.onEnded); + this.player.events.error.on(this.props.error); + this.player.events.progress.on((seconds, duration) => { + this.currentTime = seconds; + this.duration = duration; + }); + this.props.onReady(); + }); + }, this.props.onError); + } + play() { + this.callPlayer("play"); + } + pause() { + this.callPlayer("pause"); + } + stop() { + } + seekTo(seconds, keepPlaying = true) { + this.callPlayer("seek", seconds); + if (!keepPlaying) { + this.pause(); + } + } + setVolume(fraction) { + } + getDuration() { + return this.duration; + } + getCurrentTime() { + return this.currentTime; + } + getSecondsLoaded() { + return null; + } + render() { + const { url, config } = this.props; + const id = url.match(import_patterns.MATCH_URL_MIXCLOUD)[1]; + const style = { + width: "100%", + height: "100%" + }; + const query = (0, import_utils.queryString)({ + ...config.options, + feed: `/${id}/` + }); + return /* @__PURE__ */ import_react.default.createElement( + "iframe", + { + key: id, + ref: this.ref, + style, + src: `https://www.mixcloud.com/widget/iframe/?${query}`, + frameBorder: "0", + allow: "autoplay" + } + ); + } +} +__publicField(Mixcloud, "displayName", "Mixcloud"); +__publicField(Mixcloud, "canPlay", import_patterns.canPlay.mixcloud); +__publicField(Mixcloud, "loopOnEnded", true); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/reactPlayerMixcloud.79c9fa66.js b/assets/js/reactPlayerMixcloud.79c9fa66.js new file mode 100644 index 00000000000..fc2cd70cc42 --- /dev/null +++ b/assets/js/reactPlayerMixcloud.79c9fa66.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4667],{31241:(e,t,r)=>{var s,o=Object.create,n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,i=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,u=(e,t,r,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of l(t))p.call(e,o)||o===r||n(e,o,{get:()=>t[o],enumerable:!(s=a(t,o))||s.enumerable});return e},h=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r),c={};((e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})})(c,{default:()=>f}),e.exports=(s=c,u(n({},"__esModule",{value:!0}),s));var d=((e,t,r)=>(r=null!=e?o(i(e)):{},u(!t&&e&&e.__esModule?r:n(r,"default",{value:e,enumerable:!0}),e)))(r(27378)),y=r(43887),m=r(62773);class f extends d.Component{constructor(){super(...arguments),h(this,"callPlayer",y.callPlayer),h(this,"duration",null),h(this,"currentTime",null),h(this,"secondsLoaded",null),h(this,"mute",(()=>{})),h(this,"unmute",(()=>{})),h(this,"ref",(e=>{this.iframe=e}))}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){(0,y.getSDK)("https://widget.mixcloud.com/media/js/widgetApi.js","Mixcloud").then((e=>{this.player=e.PlayerWidget(this.iframe),this.player.ready.then((()=>{this.player.events.play.on(this.props.onPlay),this.player.events.pause.on(this.props.onPause),this.player.events.ended.on(this.props.onEnded),this.player.events.error.on(this.props.error),this.player.events.progress.on(((e,t)=>{this.currentTime=e,this.duration=t})),this.props.onReady()}))}),this.props.onError)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,t=!0){this.callPlayer("seek",e),t||this.pause()}setVolume(e){}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return null}render(){const{url:e,config:t}=this.props,r=e.match(m.MATCH_URL_MIXCLOUD)[1],s=(0,y.queryString)({...t.options,feed:`/${r}/`});return d.default.createElement("iframe",{key:r,ref:this.ref,style:{width:"100%",height:"100%"},src:`https://www.mixcloud.com/widget/iframe/?${s}`,frameBorder:"0",allow:"autoplay"})}}h(f,"displayName","Mixcloud"),h(f,"canPlay",m.canPlay.mixcloud),h(f,"loopOnEnded",!0)}}]); \ No newline at end of file diff --git a/assets/js/reactPlayerPreview.2267cb44.js b/assets/js/reactPlayerPreview.2267cb44.js new file mode 100644 index 00000000000..8a546d7b5a2 --- /dev/null +++ b/assets/js/reactPlayerPreview.2267cb44.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7664],{76148:(e,t,r)=>{var a,n=Object.create,i=Object.defineProperty,l=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,p=(e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of o(t))c.call(e,n)||n===r||i(e,n,{get:()=>t[n],enumerable:!(a=l(t,n))||a.enumerable});return e},d=(e,t,r)=>(((e,t,r)=>{t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r),u={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(u,{default:()=>b}),e.exports=(a=u,p(i({},"__esModule",{value:!0}),a));var h=((e,t,r)=>(r=null!=e?n(s(e)):{},p(!t&&e&&e.__esModule?r:i(r,"default",{value:e,enumerable:!0}),e)))(r(27378));const m="64px",g={};class b extends h.Component{constructor(){super(...arguments),d(this,"mounted",!1),d(this,"state",{image:null}),d(this,"handleKeyPress",(e=>{"Enter"!==e.key&&" "!==e.key||this.props.onClick()}))}componentDidMount(){this.mounted=!0,this.fetchImage(this.props)}componentDidUpdate(e){const{url:t,light:r}=this.props;e.url===t&&e.light===r||this.fetchImage(this.props)}componentWillUnmount(){this.mounted=!1}fetchImage({url:e,light:t,oEmbedUrl:r}){if(!h.default.isValidElement(t))if("string"!=typeof t){if(!g[e])return this.setState({image:null}),window.fetch(r.replace("{url}",e)).then((e=>e.json())).then((t=>{if(t.thumbnail_url&&this.mounted){const r=t.thumbnail_url.replace("height=100","height=480").replace("-d_295x166","-d_640");this.setState({image:r}),g[e]=r}}));this.setState({image:g[e]})}else this.setState({image:t})}render(){const{light:e,onClick:t,playIcon:r,previewTabIndex:a}=this.props,{image:n}=this.state,i=h.default.isValidElement(e),l={display:"flex",alignItems:"center",justifyContent:"center"},o={preview:{width:"100%",height:"100%",backgroundImage:n&&!i?`url(${n})`:void 0,backgroundSize:"cover",backgroundPosition:"center",cursor:"pointer",...l},shadow:{background:"radial-gradient(rgb(0, 0, 0, 0.3), rgba(0, 0, 0, 0) 60%)",borderRadius:m,width:m,height:m,position:i?"absolute":void 0,...l},playIcon:{borderStyle:"solid",borderWidth:"16px 0 16px 26px",borderColor:"transparent transparent transparent white",marginLeft:"7px"}},s=h.default.createElement("div",{style:o.shadow,className:"react-player__shadow"},h.default.createElement("div",{style:o.playIcon,className:"react-player__play-icon"}));return h.default.createElement("div",{style:o.preview,className:"react-player__preview",onClick:t,tabIndex:a,onKeyPress:this.handleKeyPress},i?e:null,r||s)}}}}]); \ No newline at end of file diff --git a/assets/js/reactPlayerPreview.bb38780d.js b/assets/js/reactPlayerPreview.bb38780d.js new file mode 100644 index 00000000000..c21b499db87 --- /dev/null +++ b/assets/js/reactPlayerPreview.bb38780d.js @@ -0,0 +1,149 @@ +exports.id = 664; +exports.ids = [664]; +exports.modules = { + +/***/ 76148: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var Preview_exports = {}; +__export(Preview_exports, { + default: () => Preview +}); +module.exports = __toCommonJS(Preview_exports); +var import_react = __toESM(__webpack_require__(27378)); +const ICON_SIZE = "64px"; +const cache = {}; +class Preview extends import_react.Component { + constructor() { + super(...arguments); + __publicField(this, "mounted", false); + __publicField(this, "state", { + image: null + }); + __publicField(this, "handleKeyPress", (e) => { + if (e.key === "Enter" || e.key === " ") { + this.props.onClick(); + } + }); + } + componentDidMount() { + this.mounted = true; + this.fetchImage(this.props); + } + componentDidUpdate(prevProps) { + const { url, light } = this.props; + if (prevProps.url !== url || prevProps.light !== light) { + this.fetchImage(this.props); + } + } + componentWillUnmount() { + this.mounted = false; + } + fetchImage({ url, light, oEmbedUrl }) { + if (import_react.default.isValidElement(light)) { + return; + } + if (typeof light === "string") { + this.setState({ image: light }); + return; + } + if (cache[url]) { + this.setState({ image: cache[url] }); + return; + } + this.setState({ image: null }); + return window.fetch(oEmbedUrl.replace("{url}", url)).then((response) => response.json()).then((data) => { + if (data.thumbnail_url && this.mounted) { + const image = data.thumbnail_url.replace("height=100", "height=480").replace("-d_295x166", "-d_640"); + this.setState({ image }); + cache[url] = image; + } + }); + } + render() { + const { light, onClick, playIcon, previewTabIndex } = this.props; + const { image } = this.state; + const isElement = import_react.default.isValidElement(light); + const flexCenter = { + display: "flex", + alignItems: "center", + justifyContent: "center" + }; + const styles = { + preview: { + width: "100%", + height: "100%", + backgroundImage: image && !isElement ? `url(${image})` : void 0, + backgroundSize: "cover", + backgroundPosition: "center", + cursor: "pointer", + ...flexCenter + }, + shadow: { + background: "radial-gradient(rgb(0, 0, 0, 0.3), rgba(0, 0, 0, 0) 60%)", + borderRadius: ICON_SIZE, + width: ICON_SIZE, + height: ICON_SIZE, + position: isElement ? "absolute" : void 0, + ...flexCenter + }, + playIcon: { + borderStyle: "solid", + borderWidth: "16px 0 16px 26px", + borderColor: "transparent transparent transparent white", + marginLeft: "7px" + } + }; + const defaultPlayIcon = /* @__PURE__ */ import_react.default.createElement("div", { style: styles.shadow, className: "react-player__shadow" }, /* @__PURE__ */ import_react.default.createElement("div", { style: styles.playIcon, className: "react-player__play-icon" })); + return /* @__PURE__ */ import_react.default.createElement( + "div", + { + style: styles.preview, + className: "react-player__preview", + onClick, + tabIndex: previewTabIndex, + onKeyPress: this.handleKeyPress + }, + isElement ? light : null, + playIcon || defaultPlayIcon + ); + } +} + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/reactPlayerSoundCloud.b843d475.js b/assets/js/reactPlayerSoundCloud.b843d475.js new file mode 100644 index 00000000000..6040862fd8d --- /dev/null +++ b/assets/js/reactPlayerSoundCloud.b843d475.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6125],{54992:(e,t,r)=>{var s,o=Object.create,i=Object.defineProperty,l=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,n=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,p=(e,t,r,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of a(t))u.call(e,o)||o===r||i(e,o,{get:()=>t[o],enumerable:!(s=l(t,o))||s.enumerable});return e},h=(e,t,r)=>(((e,t,r)=>{t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r),d={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(d,{default:()=>f}),e.exports=(s=d,p(i({},"__esModule",{value:!0}),s));var c=((e,t,r)=>(r=null!=e?o(n(e)):{},p(!t&&e&&e.__esModule?r:i(r,"default",{value:e,enumerable:!0}),e)))(r(27378)),y=r(43887),m=r(62773);class f extends c.Component{constructor(){super(...arguments),h(this,"callPlayer",y.callPlayer),h(this,"duration",null),h(this,"currentTime",null),h(this,"fractionLoaded",null),h(this,"mute",(()=>{this.setVolume(0)})),h(this,"unmute",(()=>{null!==this.props.volume&&this.setVolume(this.props.volume)})),h(this,"ref",(e=>{this.iframe=e}))}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e,t){(0,y.getSDK)("https://w.soundcloud.com/player/api.js","SC").then((r=>{if(!this.iframe)return;const{PLAY:s,PLAY_PROGRESS:o,PAUSE:i,FINISH:l,ERROR:a}=r.Widget.Events;t||(this.player=r.Widget(this.iframe),this.player.bind(s,this.props.onPlay),this.player.bind(i,(()=>{this.duration-this.currentTime<.05||this.props.onPause()})),this.player.bind(o,(e=>{this.currentTime=e.currentPosition/1e3,this.fractionLoaded=e.loadedProgress})),this.player.bind(l,(()=>this.props.onEnded())),this.player.bind(a,(e=>this.props.onError(e)))),this.player.load(e,{...this.props.config.options,callback:()=>{this.player.getDuration((e=>{this.duration=e/1e3,this.props.onReady()}))}})}))}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,t=!0){this.callPlayer("seekTo",1e3*e),t||this.pause()}setVolume(e){this.callPlayer("setVolume",100*e)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.fractionLoaded*this.duration}render(){const{display:e}=this.props,t={width:"100%",height:"100%",display:e};return c.default.createElement("iframe",{ref:this.ref,src:`https://w.soundcloud.com/player/?url=${encodeURIComponent(this.props.url)}`,style:t,frameBorder:0,allow:"autoplay"})}}h(f,"displayName","SoundCloud"),h(f,"canPlay",m.canPlay.soundcloud),h(f,"loopOnEnded",!0)}}]); \ No newline at end of file diff --git a/assets/js/reactPlayerSoundCloud.f5722153.js b/assets/js/reactPlayerSoundCloud.f5722153.js new file mode 100644 index 00000000000..e0e0ea5cff8 --- /dev/null +++ b/assets/js/reactPlayerSoundCloud.f5722153.js @@ -0,0 +1,158 @@ +exports.id = 125; +exports.ids = [125]; +exports.modules = { + +/***/ 54992: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var SoundCloud_exports = {}; +__export(SoundCloud_exports, { + default: () => SoundCloud +}); +module.exports = __toCommonJS(SoundCloud_exports); +var import_react = __toESM(__webpack_require__(27378)); +var import_utils = __webpack_require__(43887); +var import_patterns = __webpack_require__(62773); +const SDK_URL = "https://w.soundcloud.com/player/api.js"; +const SDK_GLOBAL = "SC"; +class SoundCloud extends import_react.Component { + constructor() { + super(...arguments); + __publicField(this, "callPlayer", import_utils.callPlayer); + __publicField(this, "duration", null); + __publicField(this, "currentTime", null); + __publicField(this, "fractionLoaded", null); + __publicField(this, "mute", () => { + this.setVolume(0); + }); + __publicField(this, "unmute", () => { + if (this.props.volume !== null) { + this.setVolume(this.props.volume); + } + }); + __publicField(this, "ref", (iframe) => { + this.iframe = iframe; + }); + } + componentDidMount() { + this.props.onMount && this.props.onMount(this); + } + load(url, isReady) { + (0, import_utils.getSDK)(SDK_URL, SDK_GLOBAL).then((SC) => { + if (!this.iframe) + return; + const { PLAY, PLAY_PROGRESS, PAUSE, FINISH, ERROR } = SC.Widget.Events; + if (!isReady) { + this.player = SC.Widget(this.iframe); + this.player.bind(PLAY, this.props.onPlay); + this.player.bind(PAUSE, () => { + const remaining = this.duration - this.currentTime; + if (remaining < 0.05) { + return; + } + this.props.onPause(); + }); + this.player.bind(PLAY_PROGRESS, (e) => { + this.currentTime = e.currentPosition / 1e3; + this.fractionLoaded = e.loadedProgress; + }); + this.player.bind(FINISH, () => this.props.onEnded()); + this.player.bind(ERROR, (e) => this.props.onError(e)); + } + this.player.load(url, { + ...this.props.config.options, + callback: () => { + this.player.getDuration((duration) => { + this.duration = duration / 1e3; + this.props.onReady(); + }); + } + }); + }); + } + play() { + this.callPlayer("play"); + } + pause() { + this.callPlayer("pause"); + } + stop() { + } + seekTo(seconds, keepPlaying = true) { + this.callPlayer("seekTo", seconds * 1e3); + if (!keepPlaying) { + this.pause(); + } + } + setVolume(fraction) { + this.callPlayer("setVolume", fraction * 100); + } + getDuration() { + return this.duration; + } + getCurrentTime() { + return this.currentTime; + } + getSecondsLoaded() { + return this.fractionLoaded * this.duration; + } + render() { + const { display } = this.props; + const style = { + width: "100%", + height: "100%", + display + }; + return /* @__PURE__ */ import_react.default.createElement( + "iframe", + { + ref: this.ref, + src: `https://w.soundcloud.com/player/?url=${encodeURIComponent(this.props.url)}`, + style, + frameBorder: 0, + allow: "autoplay" + } + ); + } +} +__publicField(SoundCloud, "displayName", "SoundCloud"); +__publicField(SoundCloud, "canPlay", import_patterns.canPlay.soundcloud); +__publicField(SoundCloud, "loopOnEnded", true); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/reactPlayerStreamable.353efec6.js b/assets/js/reactPlayerStreamable.353efec6.js new file mode 100644 index 00000000000..ccf88e11a16 --- /dev/null +++ b/assets/js/reactPlayerStreamable.353efec6.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2546],{5876:(e,t,r)=>{var s,a=Object.create,o=Object.defineProperty,l=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,i=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,u=(e,t,r,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of n(t))p.call(e,a)||a===r||o(e,a,{get:()=>t[a],enumerable:!(s=l(t,a))||s.enumerable});return e},h=(e,t,r)=>(((e,t,r)=>{t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r),c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{default:()=>f}),e.exports=(s=c,u(o({},"__esModule",{value:!0}),s));var d=((e,t,r)=>(r=null!=e?a(i(e)):{},u(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)))(r(27378)),y=r(43887),m=r(62773);class f extends d.Component{constructor(){super(...arguments),h(this,"callPlayer",y.callPlayer),h(this,"duration",null),h(this,"currentTime",null),h(this,"secondsLoaded",null),h(this,"mute",(()=>{this.callPlayer("mute")})),h(this,"unmute",(()=>{this.callPlayer("unmute")})),h(this,"ref",(e=>{this.iframe=e}))}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){(0,y.getSDK)("https://cdn.embed.ly/player-0.1.0.min.js","playerjs").then((e=>{this.iframe&&(this.player=new e.Player(this.iframe),this.player.setLoop(this.props.loop),this.player.on("ready",this.props.onReady),this.player.on("play",this.props.onPlay),this.player.on("pause",this.props.onPause),this.player.on("seeked",this.props.onSeek),this.player.on("ended",this.props.onEnded),this.player.on("error",this.props.onError),this.player.on("timeupdate",(({duration:e,seconds:t})=>{this.duration=e,this.currentTime=t})),this.player.on("buffered",(({percent:e})=>{this.duration&&(this.secondsLoaded=this.duration*e)})),this.props.muted&&this.player.mute())}),this.props.onError)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){}seekTo(e,t=!0){this.callPlayer("setCurrentTime",e),t||this.pause()}setVolume(e){this.callPlayer("setVolume",100*e)}setLoop(e){this.callPlayer("setLoop",e)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.secondsLoaded}render(){const e=this.props.url.match(m.MATCH_URL_STREAMABLE)[1];return d.default.createElement("iframe",{ref:this.ref,src:`https://streamable.com/o/${e}`,frameBorder:"0",scrolling:"no",style:{width:"100%",height:"100%"},allow:"encrypted-media; autoplay; fullscreen;"})}}h(f,"displayName","Streamable"),h(f,"canPlay",m.canPlay.streamable)}}]); \ No newline at end of file diff --git a/assets/js/reactPlayerStreamable.8d57960a.js b/assets/js/reactPlayerStreamable.8d57960a.js new file mode 100644 index 00000000000..7e555b815ec --- /dev/null +++ b/assets/js/reactPlayerStreamable.8d57960a.js @@ -0,0 +1,151 @@ +exports.id = 546; +exports.ids = [546]; +exports.modules = { + +/***/ 5876: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var Streamable_exports = {}; +__export(Streamable_exports, { + default: () => Streamable +}); +module.exports = __toCommonJS(Streamable_exports); +var import_react = __toESM(__webpack_require__(27378)); +var import_utils = __webpack_require__(43887); +var import_patterns = __webpack_require__(62773); +const SDK_URL = "https://cdn.embed.ly/player-0.1.0.min.js"; +const SDK_GLOBAL = "playerjs"; +class Streamable extends import_react.Component { + constructor() { + super(...arguments); + __publicField(this, "callPlayer", import_utils.callPlayer); + __publicField(this, "duration", null); + __publicField(this, "currentTime", null); + __publicField(this, "secondsLoaded", null); + __publicField(this, "mute", () => { + this.callPlayer("mute"); + }); + __publicField(this, "unmute", () => { + this.callPlayer("unmute"); + }); + __publicField(this, "ref", (iframe) => { + this.iframe = iframe; + }); + } + componentDidMount() { + this.props.onMount && this.props.onMount(this); + } + load(url) { + (0, import_utils.getSDK)(SDK_URL, SDK_GLOBAL).then((playerjs) => { + if (!this.iframe) + return; + this.player = new playerjs.Player(this.iframe); + this.player.setLoop(this.props.loop); + this.player.on("ready", this.props.onReady); + this.player.on("play", this.props.onPlay); + this.player.on("pause", this.props.onPause); + this.player.on("seeked", this.props.onSeek); + this.player.on("ended", this.props.onEnded); + this.player.on("error", this.props.onError); + this.player.on("timeupdate", ({ duration, seconds }) => { + this.duration = duration; + this.currentTime = seconds; + }); + this.player.on("buffered", ({ percent }) => { + if (this.duration) { + this.secondsLoaded = this.duration * percent; + } + }); + if (this.props.muted) { + this.player.mute(); + } + }, this.props.onError); + } + play() { + this.callPlayer("play"); + } + pause() { + this.callPlayer("pause"); + } + stop() { + } + seekTo(seconds, keepPlaying = true) { + this.callPlayer("setCurrentTime", seconds); + if (!keepPlaying) { + this.pause(); + } + } + setVolume(fraction) { + this.callPlayer("setVolume", fraction * 100); + } + setLoop(loop) { + this.callPlayer("setLoop", loop); + } + getDuration() { + return this.duration; + } + getCurrentTime() { + return this.currentTime; + } + getSecondsLoaded() { + return this.secondsLoaded; + } + render() { + const id = this.props.url.match(import_patterns.MATCH_URL_STREAMABLE)[1]; + const style = { + width: "100%", + height: "100%" + }; + return /* @__PURE__ */ import_react.default.createElement( + "iframe", + { + ref: this.ref, + src: `https://streamable.com/o/${id}`, + frameBorder: "0", + scrolling: "no", + style, + allow: "encrypted-media; autoplay; fullscreen;" + } + ); + } +} +__publicField(Streamable, "displayName", "Streamable"); +__publicField(Streamable, "canPlay", import_patterns.canPlay.streamable); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/reactPlayerTwitch.32269018.js b/assets/js/reactPlayerTwitch.32269018.js new file mode 100644 index 00000000000..cffbf8fcd59 --- /dev/null +++ b/assets/js/reactPlayerTwitch.32269018.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6216],{67964:(e,t,r)=>{var s,a=Object.create,l=Object.defineProperty,n=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,o=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,h=(e,t,r,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of i(t))p.call(e,a)||a===r||l(e,a,{get:()=>t[a],enumerable:!(s=n(t,a))||s.enumerable});return e},d=(e,t,r)=>(((e,t,r)=>{t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r),y={};((e,t)=>{for(var r in t)l(e,r,{get:t[r],enumerable:!0})})(y,{default:()=>P}),e.exports=(s=y,h(l({},"__esModule",{value:!0}),s));var c=((e,t,r)=>(r=null!=e?a(o(e)):{},h(!t&&e&&e.__esModule?r:l(r,"default",{value:e,enumerable:!0}),e)))(r(27378)),u=r(43887),m=r(62773);class P extends c.Component{constructor(){super(...arguments),d(this,"callPlayer",u.callPlayer),d(this,"playerID",this.props.config.playerId||`twitch-player-${(0,u.randomString)()}`),d(this,"mute",(()=>{this.callPlayer("setMuted",!0)})),d(this,"unmute",(()=>{this.callPlayer("setMuted",!1)}))}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e,t){const{playsinline:r,onError:s,config:a,controls:l}=this.props,n=m.MATCH_URL_TWITCH_CHANNEL.test(e),i=n?e.match(m.MATCH_URL_TWITCH_CHANNEL)[1]:e.match(m.MATCH_URL_TWITCH_VIDEO)[1];t?n?this.player.setChannel(i):this.player.setVideo("v"+i):(0,u.getSDK)("https://player.twitch.tv/js/embed/v1.js","Twitch").then((t=>{this.player=new t.Player(this.playerID,{video:n?"":i,channel:n?i:"",height:"100%",width:"100%",playsinline:r,autoplay:this.props.playing,muted:this.props.muted,controls:!!n||l,time:(0,u.parseStartTime)(e),...a.options});const{READY:s,PLAYING:o,PAUSE:p,ENDED:h,ONLINE:d,OFFLINE:y,SEEK:c}=t.Player;this.player.addEventListener(s,this.props.onReady),this.player.addEventListener(o,this.props.onPlay),this.player.addEventListener(p,this.props.onPause),this.player.addEventListener(h,this.props.onEnded),this.player.addEventListener(c,this.props.onSeek),this.player.addEventListener(d,this.props.onLoaded),this.player.addEventListener(y,this.props.onLoaded)}),s)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){this.callPlayer("pause")}seekTo(e,t=!0){this.callPlayer("seek",e),t||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}getDuration(){return this.callPlayer("getDuration")}getCurrentTime(){return this.callPlayer("getCurrentTime")}getSecondsLoaded(){return null}render(){return c.default.createElement("div",{style:{width:"100%",height:"100%"},id:this.playerID})}}d(P,"displayName","Twitch"),d(P,"canPlay",m.canPlay.twitch),d(P,"loopOnEnded",!0)}}]); \ No newline at end of file diff --git a/assets/js/reactPlayerTwitch.b5a39db7.js b/assets/js/reactPlayerTwitch.b5a39db7.js new file mode 100644 index 00000000000..c03ae264aaa --- /dev/null +++ b/assets/js/reactPlayerTwitch.b5a39db7.js @@ -0,0 +1,145 @@ +exports.id = 216; +exports.ids = [216]; +exports.modules = { + +/***/ 67964: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var Twitch_exports = {}; +__export(Twitch_exports, { + default: () => Twitch +}); +module.exports = __toCommonJS(Twitch_exports); +var import_react = __toESM(__webpack_require__(27378)); +var import_utils = __webpack_require__(43887); +var import_patterns = __webpack_require__(62773); +const SDK_URL = "https://player.twitch.tv/js/embed/v1.js"; +const SDK_GLOBAL = "Twitch"; +const PLAYER_ID_PREFIX = "twitch-player-"; +class Twitch extends import_react.Component { + constructor() { + super(...arguments); + __publicField(this, "callPlayer", import_utils.callPlayer); + __publicField(this, "playerID", this.props.config.playerId || `${PLAYER_ID_PREFIX}${(0, import_utils.randomString)()}`); + __publicField(this, "mute", () => { + this.callPlayer("setMuted", true); + }); + __publicField(this, "unmute", () => { + this.callPlayer("setMuted", false); + }); + } + componentDidMount() { + this.props.onMount && this.props.onMount(this); + } + load(url, isReady) { + const { playsinline, onError, config, controls } = this.props; + const isChannel = import_patterns.MATCH_URL_TWITCH_CHANNEL.test(url); + const id = isChannel ? url.match(import_patterns.MATCH_URL_TWITCH_CHANNEL)[1] : url.match(import_patterns.MATCH_URL_TWITCH_VIDEO)[1]; + if (isReady) { + if (isChannel) { + this.player.setChannel(id); + } else { + this.player.setVideo("v" + id); + } + return; + } + (0, import_utils.getSDK)(SDK_URL, SDK_GLOBAL).then((Twitch2) => { + this.player = new Twitch2.Player(this.playerID, { + video: isChannel ? "" : id, + channel: isChannel ? id : "", + height: "100%", + width: "100%", + playsinline, + autoplay: this.props.playing, + muted: this.props.muted, + // https://github.com/CookPete/react-player/issues/733#issuecomment-549085859 + controls: isChannel ? true : controls, + time: (0, import_utils.parseStartTime)(url), + ...config.options + }); + const { READY, PLAYING, PAUSE, ENDED, ONLINE, OFFLINE, SEEK } = Twitch2.Player; + this.player.addEventListener(READY, this.props.onReady); + this.player.addEventListener(PLAYING, this.props.onPlay); + this.player.addEventListener(PAUSE, this.props.onPause); + this.player.addEventListener(ENDED, this.props.onEnded); + this.player.addEventListener(SEEK, this.props.onSeek); + this.player.addEventListener(ONLINE, this.props.onLoaded); + this.player.addEventListener(OFFLINE, this.props.onLoaded); + }, onError); + } + play() { + this.callPlayer("play"); + } + pause() { + this.callPlayer("pause"); + } + stop() { + this.callPlayer("pause"); + } + seekTo(seconds, keepPlaying = true) { + this.callPlayer("seek", seconds); + if (!keepPlaying) { + this.pause(); + } + } + setVolume(fraction) { + this.callPlayer("setVolume", fraction); + } + getDuration() { + return this.callPlayer("getDuration"); + } + getCurrentTime() { + return this.callPlayer("getCurrentTime"); + } + getSecondsLoaded() { + return null; + } + render() { + const style = { + width: "100%", + height: "100%" + }; + return /* @__PURE__ */ import_react.default.createElement("div", { style, id: this.playerID }); + } +} +__publicField(Twitch, "displayName", "Twitch"); +__publicField(Twitch, "canPlay", import_patterns.canPlay.twitch); +__publicField(Twitch, "loopOnEnded", true); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/reactPlayerVidyard.9886dd59.js b/assets/js/reactPlayerVidyard.9886dd59.js new file mode 100644 index 00000000000..103b1ac0249 --- /dev/null +++ b/assets/js/reactPlayerVidyard.9886dd59.js @@ -0,0 +1,149 @@ +exports.id = 888; +exports.ids = [888]; +exports.modules = { + +/***/ 57473: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var Vidyard_exports = {}; +__export(Vidyard_exports, { + default: () => Vidyard +}); +module.exports = __toCommonJS(Vidyard_exports); +var import_react = __toESM(__webpack_require__(27378)); +var import_utils = __webpack_require__(43887); +var import_patterns = __webpack_require__(62773); +const SDK_URL = "https://play.vidyard.com/embed/v4.js"; +const SDK_GLOBAL = "VidyardV4"; +const SDK_GLOBAL_READY = "onVidyardAPI"; +class Vidyard extends import_react.Component { + constructor() { + super(...arguments); + __publicField(this, "callPlayer", import_utils.callPlayer); + __publicField(this, "mute", () => { + this.setVolume(0); + }); + __publicField(this, "unmute", () => { + if (this.props.volume !== null) { + this.setVolume(this.props.volume); + } + }); + __publicField(this, "ref", (container) => { + this.container = container; + }); + } + componentDidMount() { + this.props.onMount && this.props.onMount(this); + } + load(url) { + const { playing, config, onError, onDuration } = this.props; + const id = url && url.match(import_patterns.MATCH_URL_VIDYARD)[1]; + if (this.player) { + this.stop(); + } + (0, import_utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY).then((Vidyard2) => { + if (!this.container) + return; + Vidyard2.api.addReadyListener((data, player) => { + if (this.player) { + return; + } + this.player = player; + this.player.on("ready", this.props.onReady); + this.player.on("play", this.props.onPlay); + this.player.on("pause", this.props.onPause); + this.player.on("seek", this.props.onSeek); + this.player.on("playerComplete", this.props.onEnded); + }, id); + Vidyard2.api.renderPlayer({ + uuid: id, + container: this.container, + autoplay: playing ? 1 : 0, + ...config.options + }); + Vidyard2.api.getPlayerMetadata(id).then((meta) => { + this.duration = meta.length_in_seconds; + onDuration(meta.length_in_seconds); + }); + }, onError); + } + play() { + this.callPlayer("play"); + } + pause() { + this.callPlayer("pause"); + } + stop() { + window.VidyardV4.api.destroyPlayer(this.player); + } + seekTo(amount, keepPlaying = true) { + this.callPlayer("seek", amount); + if (!keepPlaying) { + this.pause(); + } + } + setVolume(fraction) { + this.callPlayer("setVolume", fraction); + } + setPlaybackRate(rate) { + this.callPlayer("setPlaybackSpeed", rate); + } + getDuration() { + return this.duration; + } + getCurrentTime() { + return this.callPlayer("currentTime"); + } + getSecondsLoaded() { + return null; + } + render() { + const { display } = this.props; + const style = { + width: "100%", + height: "100%", + display + }; + return /* @__PURE__ */ import_react.default.createElement("div", { style }, /* @__PURE__ */ import_react.default.createElement("div", { ref: this.ref })); + } +} +__publicField(Vidyard, "displayName", "Vidyard"); +__publicField(Vidyard, "canPlay", import_patterns.canPlay.vidyard); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/reactPlayerVidyard.aa75b509.js b/assets/js/reactPlayerVidyard.aa75b509.js new file mode 100644 index 00000000000..10de204742d --- /dev/null +++ b/assets/js/reactPlayerVidyard.aa75b509.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8888],{57473:(e,t,a)=>{var r,s=Object.create,l=Object.defineProperty,o=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,i=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,y=(e,t,a,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of n(t))p.call(e,s)||s===a||l(e,s,{get:()=>t[s],enumerable:!(r=o(t,s))||r.enumerable});return e},u=(e,t,a)=>(((e,t,a)=>{t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a})(e,"symbol"!=typeof t?t+"":t,a),a),h={};((e,t)=>{for(var a in t)l(e,a,{get:t[a],enumerable:!0})})(h,{default:()=>P}),e.exports=(r=h,y(l({},"__esModule",{value:!0}),r));var d=((e,t,a)=>(a=null!=e?s(i(e)):{},y(!t&&e&&e.__esModule?a:l(a,"default",{value:e,enumerable:!0}),e)))(a(27378)),c=a(43887),m=a(62773);class P extends d.Component{constructor(){super(...arguments),u(this,"callPlayer",c.callPlayer),u(this,"mute",(()=>{this.setVolume(0)})),u(this,"unmute",(()=>{null!==this.props.volume&&this.setVolume(this.props.volume)})),u(this,"ref",(e=>{this.container=e}))}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){const{playing:t,config:a,onError:r,onDuration:s}=this.props,l=e&&e.match(m.MATCH_URL_VIDYARD)[1];this.player&&this.stop(),(0,c.getSDK)("https://play.vidyard.com/embed/v4.js","VidyardV4","onVidyardAPI").then((e=>{this.container&&(e.api.addReadyListener(((e,t)=>{this.player||(this.player=t,this.player.on("ready",this.props.onReady),this.player.on("play",this.props.onPlay),this.player.on("pause",this.props.onPause),this.player.on("seek",this.props.onSeek),this.player.on("playerComplete",this.props.onEnded))}),l),e.api.renderPlayer({uuid:l,container:this.container,autoplay:t?1:0,...a.options}),e.api.getPlayerMetadata(l).then((e=>{this.duration=e.length_in_seconds,s(e.length_in_seconds)})))}),r)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){window.VidyardV4.api.destroyPlayer(this.player)}seekTo(e,t=!0){this.callPlayer("seek",e),t||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}setPlaybackRate(e){this.callPlayer("setPlaybackSpeed",e)}getDuration(){return this.duration}getCurrentTime(){return this.callPlayer("currentTime")}getSecondsLoaded(){return null}render(){const{display:e}=this.props,t={width:"100%",height:"100%",display:e};return d.default.createElement("div",{style:t},d.default.createElement("div",{ref:this.ref}))}}u(P,"displayName","Vidyard"),u(P,"canPlay",m.canPlay.vidyard)}}]); \ No newline at end of file diff --git a/assets/js/reactPlayerVimeo.43335252.js b/assets/js/reactPlayerVimeo.43335252.js new file mode 100644 index 00000000000..7e36aa3ed43 --- /dev/null +++ b/assets/js/reactPlayerVimeo.43335252.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3743],{81251:(e,t,s)=>{var r,o=Object.create,a=Object.defineProperty,i=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,l=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,h=(e,t,s,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of n(t))p.call(e,o)||o===s||a(e,o,{get:()=>t[o],enumerable:!(r=i(t,o))||r.enumerable});return e},u=(e,t,s)=>(((e,t,s)=>{t in e?a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s})(e,"symbol"!=typeof t?t+"":t,s),s),c={};((e,t)=>{for(var s in t)a(e,s,{get:t[s],enumerable:!0})})(c,{default:()=>b}),e.exports=(r=c,h(a({},"__esModule",{value:!0}),r));var y=((e,t,s)=>(s=null!=e?o(l(e)):{},h(!t&&e&&e.__esModule?s:a(s,"default",{value:e,enumerable:!0}),e)))(s(27378)),d=s(43887),f=s(62773);const m=e=>e.replace("/manage/videos","");class b extends y.Component{constructor(){super(...arguments),u(this,"callPlayer",d.callPlayer),u(this,"duration",null),u(this,"currentTime",null),u(this,"secondsLoaded",null),u(this,"mute",(()=>{this.setMuted(!0)})),u(this,"unmute",(()=>{this.setMuted(!1)})),u(this,"ref",(e=>{this.container=e}))}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){this.duration=null,(0,d.getSDK)("https://player.vimeo.com/api/player.js","Vimeo").then((t=>{if(!this.container)return;const{playerOptions:s,title:r}=this.props.config;this.player=new t.Player(this.container,{url:m(e),autoplay:this.props.playing,muted:this.props.muted,loop:this.props.loop,playsinline:this.props.playsinline,controls:this.props.controls,...s}),this.player.ready().then((()=>{const e=this.container.querySelector("iframe");e.style.width="100%",e.style.height="100%",r&&(e.title=r)})).catch(this.props.onError),this.player.on("loaded",(()=>{this.props.onReady(),this.refreshDuration()})),this.player.on("play",(()=>{this.props.onPlay(),this.refreshDuration()})),this.player.on("pause",this.props.onPause),this.player.on("seeked",(e=>this.props.onSeek(e.seconds))),this.player.on("ended",this.props.onEnded),this.player.on("error",this.props.onError),this.player.on("timeupdate",(({seconds:e})=>{this.currentTime=e})),this.player.on("progress",(({seconds:e})=>{this.secondsLoaded=e})),this.player.on("bufferstart",this.props.onBuffer),this.player.on("bufferend",this.props.onBufferEnd),this.player.on("playbackratechange",(e=>this.props.onPlaybackRateChange(e.playbackRate)))}),this.props.onError)}refreshDuration(){this.player.getDuration().then((e=>{this.duration=e}))}play(){const e=this.callPlayer("play");e&&e.catch(this.props.onError)}pause(){this.callPlayer("pause")}stop(){this.callPlayer("unload")}seekTo(e,t=!0){this.callPlayer("setCurrentTime",e),t||this.pause()}setVolume(e){this.callPlayer("setVolume",e)}setMuted(e){this.callPlayer("setMuted",e)}setLoop(e){this.callPlayer("setLoop",e)}setPlaybackRate(e){this.callPlayer("setPlaybackRate",e)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.secondsLoaded}render(){const{display:e}=this.props,t={width:"100%",height:"100%",overflow:"hidden",display:e};return y.default.createElement("div",{key:this.props.url,ref:this.ref,style:t})}}u(b,"displayName","Vimeo"),u(b,"canPlay",f.canPlay.vimeo),u(b,"forceLoad",!0)}}]); \ No newline at end of file diff --git a/assets/js/reactPlayerVimeo.afd0735a.js b/assets/js/reactPlayerVimeo.afd0735a.js new file mode 100644 index 00000000000..ea9948bae58 --- /dev/null +++ b/assets/js/reactPlayerVimeo.afd0735a.js @@ -0,0 +1,190 @@ +exports.id = 743; +exports.ids = [743]; +exports.modules = { + +/***/ 81251: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var Vimeo_exports = {}; +__export(Vimeo_exports, { + default: () => Vimeo +}); +module.exports = __toCommonJS(Vimeo_exports); +var import_react = __toESM(__webpack_require__(27378)); +var import_utils = __webpack_require__(43887); +var import_patterns = __webpack_require__(62773); +const SDK_URL = "https://player.vimeo.com/api/player.js"; +const SDK_GLOBAL = "Vimeo"; +const cleanUrl = (url) => { + return url.replace("/manage/videos", ""); +}; +class Vimeo extends import_react.Component { + constructor() { + super(...arguments); + // Prevent checking isLoading when URL changes + __publicField(this, "callPlayer", import_utils.callPlayer); + __publicField(this, "duration", null); + __publicField(this, "currentTime", null); + __publicField(this, "secondsLoaded", null); + __publicField(this, "mute", () => { + this.setMuted(true); + }); + __publicField(this, "unmute", () => { + this.setMuted(false); + }); + __publicField(this, "ref", (container) => { + this.container = container; + }); + } + componentDidMount() { + this.props.onMount && this.props.onMount(this); + } + load(url) { + this.duration = null; + (0, import_utils.getSDK)(SDK_URL, SDK_GLOBAL).then((Vimeo2) => { + if (!this.container) + return; + const { playerOptions, title } = this.props.config; + this.player = new Vimeo2.Player(this.container, { + url: cleanUrl(url), + autoplay: this.props.playing, + muted: this.props.muted, + loop: this.props.loop, + playsinline: this.props.playsinline, + controls: this.props.controls, + ...playerOptions + }); + this.player.ready().then(() => { + const iframe = this.container.querySelector("iframe"); + iframe.style.width = "100%"; + iframe.style.height = "100%"; + if (title) { + iframe.title = title; + } + }).catch(this.props.onError); + this.player.on("loaded", () => { + this.props.onReady(); + this.refreshDuration(); + }); + this.player.on("play", () => { + this.props.onPlay(); + this.refreshDuration(); + }); + this.player.on("pause", this.props.onPause); + this.player.on("seeked", (e) => this.props.onSeek(e.seconds)); + this.player.on("ended", this.props.onEnded); + this.player.on("error", this.props.onError); + this.player.on("timeupdate", ({ seconds }) => { + this.currentTime = seconds; + }); + this.player.on("progress", ({ seconds }) => { + this.secondsLoaded = seconds; + }); + this.player.on("bufferstart", this.props.onBuffer); + this.player.on("bufferend", this.props.onBufferEnd); + this.player.on("playbackratechange", (e) => this.props.onPlaybackRateChange(e.playbackRate)); + }, this.props.onError); + } + refreshDuration() { + this.player.getDuration().then((duration) => { + this.duration = duration; + }); + } + play() { + const promise = this.callPlayer("play"); + if (promise) { + promise.catch(this.props.onError); + } + } + pause() { + this.callPlayer("pause"); + } + stop() { + this.callPlayer("unload"); + } + seekTo(seconds, keepPlaying = true) { + this.callPlayer("setCurrentTime", seconds); + if (!keepPlaying) { + this.pause(); + } + } + setVolume(fraction) { + this.callPlayer("setVolume", fraction); + } + setMuted(muted) { + this.callPlayer("setMuted", muted); + } + setLoop(loop) { + this.callPlayer("setLoop", loop); + } + setPlaybackRate(rate) { + this.callPlayer("setPlaybackRate", rate); + } + getDuration() { + return this.duration; + } + getCurrentTime() { + return this.currentTime; + } + getSecondsLoaded() { + return this.secondsLoaded; + } + render() { + const { display } = this.props; + const style = { + width: "100%", + height: "100%", + overflow: "hidden", + display + }; + return /* @__PURE__ */ import_react.default.createElement( + "div", + { + key: this.props.url, + ref: this.ref, + style + } + ); + } +} +__publicField(Vimeo, "displayName", "Vimeo"); +__publicField(Vimeo, "canPlay", import_patterns.canPlay.vimeo); +__publicField(Vimeo, "forceLoad", true); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/reactPlayerWistia.7ac13b2f.js b/assets/js/reactPlayerWistia.7ac13b2f.js new file mode 100644 index 00000000000..1e06580c6d8 --- /dev/null +++ b/assets/js/reactPlayerWistia.7ac13b2f.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8055],{2521:(e,t,a)=>{var s,n=Object.create,l=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,r=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,h=(e,t,a,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of i(t))p.call(e,n)||n===a||l(e,n,{get:()=>t[n],enumerable:!(s=o(t,n))||s.enumerable});return e},u=(e,t,a)=>(((e,t,a)=>{t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a})(e,"symbol"!=typeof t?t+"":t,a),a),y={};((e,t)=>{for(var a in t)l(e,a,{get:t[a],enumerable:!0})})(y,{default:()=>P}),e.exports=(s=y,h(l({},"__esModule",{value:!0}),s));var c=((e,t,a)=>(a=null!=e?n(r(e)):{},h(!t&&e&&e.__esModule?a:l(a,"default",{value:e,enumerable:!0}),e)))(a(27378)),d=a(43887),b=a(62773);class P extends c.Component{constructor(){super(...arguments),u(this,"callPlayer",d.callPlayer),u(this,"playerID",this.props.config.playerId||`wistia-player-${(0,d.randomString)()}`),u(this,"onPlay",((...e)=>this.props.onPlay(...e))),u(this,"onPause",((...e)=>this.props.onPause(...e))),u(this,"onSeek",((...e)=>this.props.onSeek(...e))),u(this,"onEnded",((...e)=>this.props.onEnded(...e))),u(this,"onPlaybackRateChange",((...e)=>this.props.onPlaybackRateChange(...e))),u(this,"mute",(()=>{this.callPlayer("mute")})),u(this,"unmute",(()=>{this.callPlayer("unmute")}))}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){const{playing:t,muted:a,controls:s,onReady:n,config:l,onError:o}=this.props;(0,d.getSDK)("https://fast.wistia.com/assets/external/E-v1.js","Wistia").then((e=>{l.customControls&&l.customControls.forEach((t=>e.defineControl(t))),window._wq=window._wq||[],window._wq.push({id:this.playerID,options:{autoPlay:t,silentAutoPlay:"allow",muted:a,controlsVisibleOnLoad:s,fullscreenButton:s,playbar:s,playbackRateControl:s,qualityControl:s,volumeControl:s,settingsControl:s,smallPlayButton:s,...l.options},onReady:e=>{this.player=e,this.unbind(),this.player.bind("play",this.onPlay),this.player.bind("pause",this.onPause),this.player.bind("seek",this.onSeek),this.player.bind("end",this.onEnded),this.player.bind("playbackratechange",this.onPlaybackRateChange),n()}})}),o)}unbind(){this.player.unbind("play",this.onPlay),this.player.unbind("pause",this.onPause),this.player.unbind("seek",this.onSeek),this.player.unbind("end",this.onEnded),this.player.unbind("playbackratechange",this.onPlaybackRateChange)}play(){this.callPlayer("play")}pause(){this.callPlayer("pause")}stop(){this.unbind(),this.callPlayer("remove")}seekTo(e,t=!0){this.callPlayer("time",e),t||this.pause()}setVolume(e){this.callPlayer("volume",e)}setPlaybackRate(e){this.callPlayer("playbackRate",e)}getDuration(){return this.callPlayer("duration")}getCurrentTime(){return this.callPlayer("time")}getSecondsLoaded(){return null}render(){const{url:e}=this.props,t=e&&e.match(b.MATCH_URL_WISTIA)[1],a=`wistia_embed wistia_async_${t}`;return c.default.createElement("div",{id:this.playerID,key:t,className:a,style:{width:"100%",height:"100%"}})}}u(P,"displayName","Wistia"),u(P,"canPlay",b.canPlay.wistia),u(P,"loopOnEnded",!0)}}]); \ No newline at end of file diff --git a/assets/js/reactPlayerWistia.a6be884e.js b/assets/js/reactPlayerWistia.a6be884e.js new file mode 100644 index 00000000000..6d46d4c9d16 --- /dev/null +++ b/assets/js/reactPlayerWistia.a6be884e.js @@ -0,0 +1,165 @@ +exports.id = 55; +exports.ids = [55]; +exports.modules = { + +/***/ 2521: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var Wistia_exports = {}; +__export(Wistia_exports, { + default: () => Wistia +}); +module.exports = __toCommonJS(Wistia_exports); +var import_react = __toESM(__webpack_require__(27378)); +var import_utils = __webpack_require__(43887); +var import_patterns = __webpack_require__(62773); +const SDK_URL = "https://fast.wistia.com/assets/external/E-v1.js"; +const SDK_GLOBAL = "Wistia"; +const PLAYER_ID_PREFIX = "wistia-player-"; +class Wistia extends import_react.Component { + constructor() { + super(...arguments); + __publicField(this, "callPlayer", import_utils.callPlayer); + __publicField(this, "playerID", this.props.config.playerId || `${PLAYER_ID_PREFIX}${(0, import_utils.randomString)()}`); + // Proxy methods to prevent listener leaks + __publicField(this, "onPlay", (...args) => this.props.onPlay(...args)); + __publicField(this, "onPause", (...args) => this.props.onPause(...args)); + __publicField(this, "onSeek", (...args) => this.props.onSeek(...args)); + __publicField(this, "onEnded", (...args) => this.props.onEnded(...args)); + __publicField(this, "onPlaybackRateChange", (...args) => this.props.onPlaybackRateChange(...args)); + __publicField(this, "mute", () => { + this.callPlayer("mute"); + }); + __publicField(this, "unmute", () => { + this.callPlayer("unmute"); + }); + } + componentDidMount() { + this.props.onMount && this.props.onMount(this); + } + load(url) { + const { playing, muted, controls, onReady, config, onError } = this.props; + (0, import_utils.getSDK)(SDK_URL, SDK_GLOBAL).then((Wistia2) => { + if (config.customControls) { + config.customControls.forEach((control) => Wistia2.defineControl(control)); + } + window._wq = window._wq || []; + window._wq.push({ + id: this.playerID, + options: { + autoPlay: playing, + silentAutoPlay: "allow", + muted, + controlsVisibleOnLoad: controls, + fullscreenButton: controls, + playbar: controls, + playbackRateControl: controls, + qualityControl: controls, + volumeControl: controls, + settingsControl: controls, + smallPlayButton: controls, + ...config.options + }, + onReady: (player) => { + this.player = player; + this.unbind(); + this.player.bind("play", this.onPlay); + this.player.bind("pause", this.onPause); + this.player.bind("seek", this.onSeek); + this.player.bind("end", this.onEnded); + this.player.bind("playbackratechange", this.onPlaybackRateChange); + onReady(); + } + }); + }, onError); + } + unbind() { + this.player.unbind("play", this.onPlay); + this.player.unbind("pause", this.onPause); + this.player.unbind("seek", this.onSeek); + this.player.unbind("end", this.onEnded); + this.player.unbind("playbackratechange", this.onPlaybackRateChange); + } + play() { + this.callPlayer("play"); + } + pause() { + this.callPlayer("pause"); + } + stop() { + this.unbind(); + this.callPlayer("remove"); + } + seekTo(seconds, keepPlaying = true) { + this.callPlayer("time", seconds); + if (!keepPlaying) { + this.pause(); + } + } + setVolume(fraction) { + this.callPlayer("volume", fraction); + } + setPlaybackRate(rate) { + this.callPlayer("playbackRate", rate); + } + getDuration() { + return this.callPlayer("duration"); + } + getCurrentTime() { + return this.callPlayer("time"); + } + getSecondsLoaded() { + return null; + } + render() { + const { url } = this.props; + const videoID = url && url.match(import_patterns.MATCH_URL_WISTIA)[1]; + const className = `wistia_embed wistia_async_${videoID}`; + const style = { + width: "100%", + height: "100%" + }; + return /* @__PURE__ */ import_react.default.createElement("div", { id: this.playerID, key: videoID, className, style }); + } +} +__publicField(Wistia, "displayName", "Wistia"); +__publicField(Wistia, "canPlay", import_patterns.canPlay.wistia); +__publicField(Wistia, "loopOnEnded", true); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/reactPlayerYouTube.0e0bb5ba.js b/assets/js/reactPlayerYouTube.0e0bb5ba.js new file mode 100644 index 00000000000..69af00c253d --- /dev/null +++ b/assets/js/reactPlayerYouTube.0e0bb5ba.js @@ -0,0 +1,235 @@ +exports.id = 439; +exports.ids = [439]; +exports.modules = { + +/***/ 38144: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var YouTube_exports = {}; +__export(YouTube_exports, { + default: () => YouTube +}); +module.exports = __toCommonJS(YouTube_exports); +var import_react = __toESM(__webpack_require__(27378)); +var import_utils = __webpack_require__(43887); +var import_patterns = __webpack_require__(62773); +const SDK_URL = "https://www.youtube.com/iframe_api"; +const SDK_GLOBAL = "YT"; +const SDK_GLOBAL_READY = "onYouTubeIframeAPIReady"; +const MATCH_PLAYLIST = /[?&](?:list|channel)=([a-zA-Z0-9_-]+)/; +const MATCH_USER_UPLOADS = /user\/([a-zA-Z0-9_-]+)\/?/; +const MATCH_NOCOOKIE = /youtube-nocookie\.com/; +const NOCOOKIE_HOST = "https://www.youtube-nocookie.com"; +class YouTube extends import_react.Component { + constructor() { + super(...arguments); + __publicField(this, "callPlayer", import_utils.callPlayer); + __publicField(this, "parsePlaylist", (url) => { + if (url instanceof Array) { + return { + listType: "playlist", + playlist: url.map(this.getID).join(",") + }; + } + if (MATCH_PLAYLIST.test(url)) { + const [, playlistId] = url.match(MATCH_PLAYLIST); + return { + listType: "playlist", + list: playlistId.replace(/^UC/, "UU") + }; + } + if (MATCH_USER_UPLOADS.test(url)) { + const [, username] = url.match(MATCH_USER_UPLOADS); + return { + listType: "user_uploads", + list: username + }; + } + return {}; + }); + __publicField(this, "onStateChange", (event) => { + const { data } = event; + const { onPlay, onPause, onBuffer, onBufferEnd, onEnded, onReady, loop, config: { playerVars, onUnstarted } } = this.props; + const { UNSTARTED, PLAYING, PAUSED, BUFFERING, ENDED, CUED } = window[SDK_GLOBAL].PlayerState; + if (data === UNSTARTED) + onUnstarted(); + if (data === PLAYING) { + onPlay(); + onBufferEnd(); + } + if (data === PAUSED) + onPause(); + if (data === BUFFERING) + onBuffer(); + if (data === ENDED) { + const isPlaylist = !!this.callPlayer("getPlaylist"); + if (loop && !isPlaylist) { + if (playerVars.start) { + this.seekTo(playerVars.start); + } else { + this.play(); + } + } + onEnded(); + } + if (data === CUED) + onReady(); + }); + __publicField(this, "mute", () => { + this.callPlayer("mute"); + }); + __publicField(this, "unmute", () => { + this.callPlayer("unMute"); + }); + __publicField(this, "ref", (container) => { + this.container = container; + }); + } + componentDidMount() { + this.props.onMount && this.props.onMount(this); + } + getID(url) { + if (!url || url instanceof Array || MATCH_PLAYLIST.test(url)) { + return null; + } + return url.match(import_patterns.MATCH_URL_YOUTUBE)[1]; + } + load(url, isReady) { + const { playing, muted, playsinline, controls, loop, config, onError } = this.props; + const { playerVars, embedOptions } = config; + const id = this.getID(url); + if (isReady) { + if (MATCH_PLAYLIST.test(url) || MATCH_USER_UPLOADS.test(url) || url instanceof Array) { + this.player.loadPlaylist(this.parsePlaylist(url)); + return; + } + this.player.cueVideoById({ + videoId: id, + startSeconds: (0, import_utils.parseStartTime)(url) || playerVars.start, + endSeconds: (0, import_utils.parseEndTime)(url) || playerVars.end + }); + return; + } + (0, import_utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY, (YT) => YT.loaded).then((YT) => { + if (!this.container) + return; + this.player = new YT.Player(this.container, { + width: "100%", + height: "100%", + videoId: id, + playerVars: { + autoplay: playing ? 1 : 0, + mute: muted ? 1 : 0, + controls: controls ? 1 : 0, + start: (0, import_utils.parseStartTime)(url), + end: (0, import_utils.parseEndTime)(url), + origin: window.location.origin, + playsinline: playsinline ? 1 : 0, + ...this.parsePlaylist(url), + ...playerVars + }, + events: { + onReady: () => { + if (loop) { + this.player.setLoop(true); + } + this.props.onReady(); + }, + onPlaybackRateChange: (event) => this.props.onPlaybackRateChange(event.data), + onPlaybackQualityChange: (event) => this.props.onPlaybackQualityChange(event), + onStateChange: this.onStateChange, + onError: (event) => onError(event.data) + }, + host: MATCH_NOCOOKIE.test(url) ? NOCOOKIE_HOST : void 0, + ...embedOptions + }); + }, onError); + if (embedOptions.events) { + console.warn("Using `embedOptions.events` will likely break things. Use ReactPlayer\u2019s callback props instead, eg onReady, onPlay, onPause"); + } + } + play() { + this.callPlayer("playVideo"); + } + pause() { + this.callPlayer("pauseVideo"); + } + stop() { + if (!document.body.contains(this.callPlayer("getIframe"))) + return; + this.callPlayer("stopVideo"); + } + seekTo(amount, keepPlaying = false) { + this.callPlayer("seekTo", amount); + if (!keepPlaying && !this.props.playing) { + this.pause(); + } + } + setVolume(fraction) { + this.callPlayer("setVolume", fraction * 100); + } + setPlaybackRate(rate) { + this.callPlayer("setPlaybackRate", rate); + } + setLoop(loop) { + this.callPlayer("setLoop", loop); + } + getDuration() { + return this.callPlayer("getDuration"); + } + getCurrentTime() { + return this.callPlayer("getCurrentTime"); + } + getSecondsLoaded() { + return this.callPlayer("getVideoLoadedFraction") * this.getDuration(); + } + render() { + const { display } = this.props; + const style = { + width: "100%", + height: "100%", + display + }; + return /* @__PURE__ */ import_react.default.createElement("div", { style }, /* @__PURE__ */ import_react.default.createElement("div", { ref: this.ref })); + } +} +__publicField(YouTube, "displayName", "YouTube"); +__publicField(YouTube, "canPlay", import_patterns.canPlay.youtube); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/reactPlayerYouTube.7c09aa1f.js b/assets/js/reactPlayerYouTube.7c09aa1f.js new file mode 100644 index 00000000000..38dabcc7447 --- /dev/null +++ b/assets/js/reactPlayerYouTube.7c09aa1f.js @@ -0,0 +1 @@ +(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4439],{38144:(e,t,a)=>{var s,o=Object.create,l=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,i=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,y=(e,t,a,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of n(t))p.call(e,o)||o===a||l(e,o,{get:()=>t[o],enumerable:!(s=r(t,o))||s.enumerable});return e},c=(e,t,a)=>(((e,t,a)=>{t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a})(e,"symbol"!=typeof t?t+"":t,a),a),u={};((e,t)=>{for(var a in t)l(e,a,{get:t[a],enumerable:!0})})(u,{default:()=>b}),e.exports=(s=u,y(l({},"__esModule",{value:!0}),s));var h=((e,t,a)=>(a=null!=e?o(i(e)):{},y(!t&&e&&e.__esModule?a:l(a,"default",{value:e,enumerable:!0}),e)))(a(27378)),d=a(43887),P=a(62773);const m=/[?&](?:list|channel)=([a-zA-Z0-9_-]+)/,f=/user\/([a-zA-Z0-9_-]+)\/?/,g=/youtube-nocookie\.com/;class b extends h.Component{constructor(){super(...arguments),c(this,"callPlayer",d.callPlayer),c(this,"parsePlaylist",(e=>{if(e instanceof Array)return{listType:"playlist",playlist:e.map(this.getID).join(",")};if(m.test(e)){const[,t]=e.match(m);return{listType:"playlist",list:t.replace(/^UC/,"UU")}}if(f.test(e)){const[,t]=e.match(f);return{listType:"user_uploads",list:t}}return{}})),c(this,"onStateChange",(e=>{const{data:t}=e,{onPlay:a,onPause:s,onBuffer:o,onBufferEnd:l,onEnded:r,onReady:n,loop:i,config:{playerVars:p,onUnstarted:y}}=this.props,{UNSTARTED:c,PLAYING:u,PAUSED:h,BUFFERING:d,ENDED:P,CUED:m}=window.YT.PlayerState;if(t===c&&y(),t===u&&(a(),l()),t===h&&s(),t===d&&o(),t===P){const e=!!this.callPlayer("getPlaylist");i&&!e&&(p.start?this.seekTo(p.start):this.play()),r()}t===m&&n()})),c(this,"mute",(()=>{this.callPlayer("mute")})),c(this,"unmute",(()=>{this.callPlayer("unMute")})),c(this,"ref",(e=>{this.container=e}))}componentDidMount(){this.props.onMount&&this.props.onMount(this)}getID(e){return!e||e instanceof Array||m.test(e)?null:e.match(P.MATCH_URL_YOUTUBE)[1]}load(e,t){const{playing:a,muted:s,playsinline:o,controls:l,loop:r,config:n,onError:i}=this.props,{playerVars:p,embedOptions:y}=n,c=this.getID(e);if(t)return m.test(e)||f.test(e)||e instanceof Array?void this.player.loadPlaylist(this.parsePlaylist(e)):void this.player.cueVideoById({videoId:c,startSeconds:(0,d.parseStartTime)(e)||p.start,endSeconds:(0,d.parseEndTime)(e)||p.end});(0,d.getSDK)("https://www.youtube.com/iframe_api","YT","onYouTubeIframeAPIReady",(e=>e.loaded)).then((t=>{this.container&&(this.player=new t.Player(this.container,{width:"100%",height:"100%",videoId:c,playerVars:{autoplay:a?1:0,mute:s?1:0,controls:l?1:0,start:(0,d.parseStartTime)(e),end:(0,d.parseEndTime)(e),origin:window.location.origin,playsinline:o?1:0,...this.parsePlaylist(e),...p},events:{onReady:()=>{r&&this.player.setLoop(!0),this.props.onReady()},onPlaybackRateChange:e=>this.props.onPlaybackRateChange(e.data),onPlaybackQualityChange:e=>this.props.onPlaybackQualityChange(e),onStateChange:this.onStateChange,onError:e=>i(e.data)},host:g.test(e)?"https://www.youtube-nocookie.com":void 0,...y}))}),i),y.events&&console.warn("Using `embedOptions.events` will likely break things. Use ReactPlayer\u2019s callback props instead, eg onReady, onPlay, onPause")}play(){this.callPlayer("playVideo")}pause(){this.callPlayer("pauseVideo")}stop(){document.body.contains(this.callPlayer("getIframe"))&&this.callPlayer("stopVideo")}seekTo(e,t=!1){this.callPlayer("seekTo",e),t||this.props.playing||this.pause()}setVolume(e){this.callPlayer("setVolume",100*e)}setPlaybackRate(e){this.callPlayer("setPlaybackRate",e)}setLoop(e){this.callPlayer("setLoop",e)}getDuration(){return this.callPlayer("getDuration")}getCurrentTime(){return this.callPlayer("getCurrentTime")}getSecondsLoaded(){return this.callPlayer("getVideoLoadedFraction")*this.getDuration()}render(){const{display:e}=this.props,t={width:"100%",height:"100%",display:e};return h.default.createElement("div",{style:t},h.default.createElement("div",{ref:this.ref}))}}c(b,"displayName","YouTube"),c(b,"canPlay",P.canPlay.youtube)}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.702e5015.js b/assets/js/runtime~main.702e5015.js deleted file mode 100644 index 4a509ac5334..00000000000 --- a/assets/js/runtime~main.702e5015.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,a,c,f,d,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={exports:{}};return b[e].call(c.exports,c,c.exports,r),c.exports}r.m=b,e=[],r.O=(a,c,f,d)=>{if(!c){var b=1/0;for(i=0;i=d)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,f,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(d,b),d},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({10:"33942509",53:"935f2afb",70:"86f2a982",114:"e665718d",138:"54590fd2",182:"c276ecb2",203:"c6aad055",205:"83d480e9",347:"bc816bf2",397:"6194ac84",406:"0cbb83d7",465:"f7b7f9b7",506:"9aa62c0e",522:"308aae28",523:"a0323d9f",533:"b2b675dd",534:"4b8121dd",563:"c685778b",592:"b39cdcf9",649:"512fbd77",743:"61d4c13a",745:"64abd3af",809:"840a98fb",822:"a00af9f0",873:"cabda5f8",899:"b985118d",921:"c37b4a03",944:"b2e1a0c8",945:"df322e14",1021:"901c37e5",1032:"a67ca768",1046:"4cb6c19a",1074:"9e8f4e9c",1297:"34cf6fc7",1342:"a766a857",1425:"fc8a94e3",1441:"382c5d2b",1447:"4974f5d2",1477:"b2f554cd",1625:"de311ed4",1647:"3b5edcc4",1676:"819ef483",1705:"94fb813f",1713:"a7023ddc",1724:"5087625a",1830:"b00bc883",1859:"2295be0e",1896:"25622900",1981:"b799648a",2079:"1a16e8bf",2082:"e85ba0e6",2111:"79665d43",2178:"ba322490",2193:"c5b2f0f9",2217:"d7fbbe43",2242:"1dcf37fa",2323:"6c80b6fe",2339:"17896441",2451:"fb50ea3a",2472:"65a10ffa",2535:"814f3328",2549:"5c63ba15",2599:"e44de27e",2609:"6269f1c0",2667:"368cce37",2778:"608238a8",2783:"f425c855",2896:"abc85917",2938:"c95aa39f",2958:"86063cd3",3010:"56c3a9b2",3089:"a6aa9e1f",3152:"33a21d7d",3154:"c6346fcf",3163:"232c546d",3207:"6603ef13",3233:"59a6f192",3237:"1df93b7f",3259:"03ccf92d",3296:"181ef600",3317:"846a5e19",3324:"1ce91f4c",3414:"35a7a45c",3427:"bd80aa65",3505:"72486833",3584:"ed75cfcb",3608:"9e4087bc",3636:"8b4dd820",3714:"894e67a6",3751:"3720c009",3820:"a5e1f61e",3840:"562ca3e9",3868:"1b2af15e",3870:"5df556a2",3879:"2d629ea6",3973:"f523fb3f",4013:"01a85c17",4059:"9cb03f5d",4117:"fd684bd6",4121:"55960ee5",4157:"83e10f72",4220:"2bbe04e6",4322:"69c5f318",4356:"a9a76bf7",4368:"a94703ab",4386:"ae79aff5",4459:"19eded63",4573:"f9fb4395",4617:"95366386",4651:"94f3d131",4672:"03685665",4781:"12f1535e",4918:"24bda87b",4929:"330dfcdb",4940:"c11c87f7",5018:"cd509849",5210:"1949cc8d",5240:"22de4147",5248:"6101b3fc",5326:"af231220",5375:"97615df2",5414:"724f3974",5594:"f6360934",5625:"657ac0bc",5708:"f0057c03",5765:"d18d294a",5776:"f0e3a130",5803:"ff8f5ed0",6026:"51dec273",6049:"f213dd13",6088:"88efc5aa",6103:"ccc49370",6120:"d4840880",6158:"51e516cc",6308:"e8dc4d98",6317:"959a8cfe",6328:"c0d19596",6521:"014457dd",6536:"3ed6e2e9",6586:"183053be",6608:"5099f3e0",6623:"b104dd1e",6690:"4816649b",6692:"2ae2e7fe",6766:"e5638e51",6843:"9f97f9d1",6932:"aaabcfd8",7007:"8593ff01",7034:"3e03f778",7134:"0b40a488",7138:"38a042e4",7141:"b5abacaa",7149:"822c343e",7159:"a8ce95ee",7220:"7591d420",7251:"ba5b9f11",7363:"583db3ef",7366:"75281220",7377:"708d858d",7438:"9c021584",7480:"eb17771c",7536:"f6e0e63c",7573:"48b6ff5f",7622:"dbbb982f",7653:"31de1779",7679:"83245ae6",7698:"cd23aec9",7714:"7bdcd7a7",7722:"213182ef",7739:"efc2a09d",7741:"7d88b63f",7759:"ff38b1ce",7847:"43b416ef",7875:"021eaa84",7881:"2658ced2",7918:"10ce918d",7920:"1a4e3797",8145:"006e489c",8176:"5660752d",8215:"1cfced13",8221:"6af14956",8262:"059d1c6a",8290:"3fe48f60",8445:"99245987",8502:"b4657d81",8514:"d651e2ee",8518:"a7bd4aaa",8532:"d1b15a6d",8533:"f3d54061",8566:"9dce5486",8610:"6875c492",8626:"c6f0d1b2",8768:"524ce9a0",8800:"e6fb1369",8811:"3289a752",8860:"0d040286",8893:"ba1dc56d",8960:"6bf124c2",8989:"d4bf7e47",9043:"473de3ed",9106:"72dd8f7e",9133:"02e265ea",9179:"79551407",9341:"a35cf155",9372:"07f59c2a",9387:"b0f1c099",9469:"3b85f227",9558:"f41c0109",9579:"09b168a7",9626:"81e486a8",9661:"5e95c892",9671:"0e384e19",9817:"4f561e31",9924:"df203c0f",9944:"08570680",9973:"4213e5b1",9979:"987564cc"}[e]||e)+"."+{10:"998f6ce5",53:"f73584dc",70:"c1f4341f",114:"3ca680b0",138:"b569aa2b",182:"c229eebf",203:"6cc1a9bc",205:"957c776a",299:"67fe53cf",335:"4805c0ff",347:"08f2aa82",349:"6fd93ebb",397:"83490a42",406:"7d0892b8",449:"c6fe4c7c",465:"4c7a59ed",506:"1333873d",522:"efb62398",523:"bae0097e",533:"209aeddd",534:"a0101e89",563:"38cad871",592:"ee25241a",649:"d1adf67b",743:"b6bef3d2",745:"38013f83",809:"6db3735a",822:"d9986f19",873:"a0b4dd3a",899:"c3338ab4",921:"f0615854",944:"1ae3b6d8",945:"a828355e",1006:"19e95ff9",1021:"352aaa75",1032:"f0f19bbe",1046:"11fb5560",1074:"fd3d60f8",1297:"8b4d7087",1342:"c51cfec6",1425:"a8c31912",1441:"d5188a32",1447:"5c96ef54",1477:"b83fa145",1625:"e902b2a6",1647:"38cb72ef",1676:"accbe635",1705:"b1bd0aee",1713:"0b7e2f7e",1724:"e683acaf",1830:"31abf427",1856:"2b4c6f80",1859:"4a95dc0a",1896:"00dc3a40",1981:"f7385425",2079:"87efea1b",2082:"20800bc7",2111:"6fd148ce",2178:"13069292",2193:"e0ae080f",2217:"4500992a",2242:"2da98dd6",2323:"4a8d92c7",2339:"a8f7e97d",2451:"7d339ad5",2472:"9fdb1eef",2535:"f25993c6",2549:"8bac4679",2599:"16dae3fe",2609:"766b98f9",2667:"22327ab1",2778:"0561c303",2783:"05b37f6e",2896:"d57cbebc",2938:"30b67970",2958:"eadf4062",3010:"18fcb77a",3041:"4be8b86b",3089:"adf73dea",3152:"1b14defd",3154:"f2c32df8",3163:"8f1e6bda",3207:"06460fe8",3233:"0406b5e1",3237:"f41aab22",3259:"d48e5470",3296:"fbe68b38",3313:"b1117ed6",3317:"2eb33a9d",3324:"ca16a2c4",3414:"793f6bb5",3427:"332d5638",3505:"d09f3bbb",3584:"29f530b0",3608:"1526f889",3636:"2a7866c5",3714:"fffc18ff",3751:"52b86fe9",3820:"2fc73bc7",3840:"4dbff5ee",3868:"a4034df7",3870:"2b7e8a28",3879:"772bbb02",3973:"9c6324a3",4013:"77711dcc",4059:"347b96b9",4069:"729390c9",4094:"efc68385",4117:"8c7aad71",4121:"f8db0cf6",4157:"280c2c34",4191:"ddc88419",4220:"318f1a29",4322:"7549ee39",4356:"40b6eee7",4366:"ba8f5ab2",4368:"c0e88a45",4386:"b9f0c03a",4459:"b9f7eba1",4573:"3e927fac",4617:"4a2331c8",4651:"900c9c1a",4670:"c6602195",4672:"9f8d98b5",4781:"8061589b",4854:"93ebc2db",4875:"1b1d16eb",4918:"45518a96",4929:"ba11604a",4940:"b9612c3c",4988:"366d30f5",5018:"076affc0",5067:"9cb86b62",5210:"dd98ff27",5240:"69fe84b9",5248:"3b3048d2",5326:"e4e3e788",5375:"15020999",5414:"2c87a2e0",5594:"71a1098b",5625:"c4b6a5f2",5628:"bd9d7a73",5708:"f1adb0e5",5711:"51498bc4",5760:"bd2ac63e",5765:"efe24b1a",5776:"6dc4aaae",5803:"a681401e",5909:"a26f057e",6026:"81e7a447",6049:"2835c78e",6070:"a38f944d",6088:"ccc7fd07",6103:"9dd201d7",6120:"0cc246eb",6158:"70ec50c1",6166:"30a60e8a",6274:"8f2d8703",6308:"5ce2b518",6317:"9e90ecc2",6328:"7aa75287",6521:"fcc51e46",6536:"c0488fc2",6586:"5528338e",6608:"bd5dfed2",6623:"4cc43386",6690:"95e2cb49",6692:"601cb7ae",6730:"ffe4ecfc",6766:"e6f76e33",6843:"a2b38731",6932:"9410731b",7007:"2945babe",7034:"89d06177",7076:"b2056ff8",7134:"c4e78e68",7138:"78ce4697",7141:"bcb20f6d",7149:"663ec94f",7159:"7c5c1815",7220:"e83e320e",7251:"993dc57e",7260:"edee19ff",7363:"9920635e",7366:"3792e34e",7377:"6b4fe40f",7430:"bdba0009",7438:"ab961c74",7480:"bb181ea3",7536:"f0cbb62f",7573:"f1a802cb",7622:"b17356bb",7653:"2ea50086",7679:"710bfde3",7698:"4f79d26b",7714:"d02b8df8",7722:"d40b4c8b",7737:"38d71842",7739:"c08a4589",7741:"1afbfa31",7759:"809680ab",7847:"2c70676d",7849:"6f99b72f",7875:"eeb10f58",7881:"aed2806c",7918:"73f8b649",7920:"0e623c45",8145:"aa213bf5",8176:"4a5af7d6",8215:"094662f6",8221:"00b1aa0c",8262:"369fdebe",8290:"ed6f8f6c",8315:"0ceeb234",8327:"47f26ce2",8445:"4fc783d0",8502:"08d69c78",8514:"a243eab8",8518:"d1ef6cf4",8532:"43299dd2",8533:"db9e37cb",8566:"846625b8",8610:"70f4caf3",8626:"a1d012d1",8768:"95402132",8800:"09f3f410",8811:"2bfa95ba",8860:"1b79d3d0",8893:"dfc51795",8960:"613d028d",8989:"7fc2e7e3",9043:"dd930965",9106:"91d0911a",9127:"02f87f8d",9133:"7057011c",9179:"0a935167",9341:"05fdb1ad",9372:"e2894edd",9387:"98377134",9469:"9a7d7fb2",9500:"8bb8cb2a",9558:"7d7d2efa",9579:"705c3d78",9626:"918cf6d7",9661:"b7ea4262",9671:"6652f4ad",9812:"935315d5",9817:"1bbc72ba",9924:"2026b37e",9944:"d424f2ea",9964:"8c664f0c",9973:"df3f1309",9979:"9b060904"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},d="docs:",r.l=(e,a,c,b)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"2339",25622900:"1896",33942509:"10",72486833:"3505",75281220:"7366",79551407:"9179",95366386:"4617",99245987:"8445","935f2afb":"53","86f2a982":"70",e665718d:"114","54590fd2":"138",c276ecb2:"182",c6aad055:"203","83d480e9":"205",bc816bf2:"347","6194ac84":"397","0cbb83d7":"406",f7b7f9b7:"465","9aa62c0e":"506","308aae28":"522",a0323d9f:"523",b2b675dd:"533","4b8121dd":"534",c685778b:"563",b39cdcf9:"592","512fbd77":"649","61d4c13a":"743","64abd3af":"745","840a98fb":"809",a00af9f0:"822",cabda5f8:"873",b985118d:"899",c37b4a03:"921",b2e1a0c8:"944",df322e14:"945","901c37e5":"1021",a67ca768:"1032","4cb6c19a":"1046","9e8f4e9c":"1074","34cf6fc7":"1297",a766a857:"1342",fc8a94e3:"1425","382c5d2b":"1441","4974f5d2":"1447",b2f554cd:"1477",de311ed4:"1625","3b5edcc4":"1647","819ef483":"1676","94fb813f":"1705",a7023ddc:"1713","5087625a":"1724",b00bc883:"1830","2295be0e":"1859",b799648a:"1981","1a16e8bf":"2079",e85ba0e6:"2082","79665d43":"2111",ba322490:"2178",c5b2f0f9:"2193",d7fbbe43:"2217","1dcf37fa":"2242","6c80b6fe":"2323",fb50ea3a:"2451","65a10ffa":"2472","814f3328":"2535","5c63ba15":"2549",e44de27e:"2599","6269f1c0":"2609","368cce37":"2667","608238a8":"2778",f425c855:"2783",abc85917:"2896",c95aa39f:"2938","86063cd3":"2958","56c3a9b2":"3010",a6aa9e1f:"3089","33a21d7d":"3152",c6346fcf:"3154","232c546d":"3163","6603ef13":"3207","59a6f192":"3233","1df93b7f":"3237","03ccf92d":"3259","181ef600":"3296","846a5e19":"3317","1ce91f4c":"3324","35a7a45c":"3414",bd80aa65:"3427",ed75cfcb:"3584","9e4087bc":"3608","8b4dd820":"3636","894e67a6":"3714","3720c009":"3751",a5e1f61e:"3820","562ca3e9":"3840","1b2af15e":"3868","5df556a2":"3870","2d629ea6":"3879",f523fb3f:"3973","01a85c17":"4013","9cb03f5d":"4059",fd684bd6:"4117","55960ee5":"4121","83e10f72":"4157","2bbe04e6":"4220","69c5f318":"4322",a9a76bf7:"4356",a94703ab:"4368",ae79aff5:"4386","19eded63":"4459",f9fb4395:"4573","94f3d131":"4651","03685665":"4672","12f1535e":"4781","24bda87b":"4918","330dfcdb":"4929",c11c87f7:"4940",cd509849:"5018","1949cc8d":"5210","22de4147":"5240","6101b3fc":"5248",af231220:"5326","97615df2":"5375","724f3974":"5414",f6360934:"5594","657ac0bc":"5625",f0057c03:"5708",d18d294a:"5765",f0e3a130:"5776",ff8f5ed0:"5803","51dec273":"6026",f213dd13:"6049","88efc5aa":"6088",ccc49370:"6103",d4840880:"6120","51e516cc":"6158",e8dc4d98:"6308","959a8cfe":"6317",c0d19596:"6328","014457dd":"6521","3ed6e2e9":"6536","183053be":"6586","5099f3e0":"6608",b104dd1e:"6623","4816649b":"6690","2ae2e7fe":"6692",e5638e51:"6766","9f97f9d1":"6843",aaabcfd8:"6932","8593ff01":"7007","3e03f778":"7034","0b40a488":"7134","38a042e4":"7138",b5abacaa:"7141","822c343e":"7149",a8ce95ee:"7159","7591d420":"7220",ba5b9f11:"7251","583db3ef":"7363","708d858d":"7377","9c021584":"7438",eb17771c:"7480",f6e0e63c:"7536","48b6ff5f":"7573",dbbb982f:"7622","31de1779":"7653","83245ae6":"7679",cd23aec9:"7698","7bdcd7a7":"7714","213182ef":"7722",efc2a09d:"7739","7d88b63f":"7741",ff38b1ce:"7759","43b416ef":"7847","021eaa84":"7875","2658ced2":"7881","10ce918d":"7918","1a4e3797":"7920","006e489c":"8145","5660752d":"8176","1cfced13":"8215","6af14956":"8221","059d1c6a":"8262","3fe48f60":"8290",b4657d81:"8502",d651e2ee:"8514",a7bd4aaa:"8518",d1b15a6d:"8532",f3d54061:"8533","9dce5486":"8566","6875c492":"8610",c6f0d1b2:"8626","524ce9a0":"8768",e6fb1369:"8800","3289a752":"8811","0d040286":"8860",ba1dc56d:"8893","6bf124c2":"8960",d4bf7e47:"8989","473de3ed":"9043","72dd8f7e":"9106","02e265ea":"9133",a35cf155:"9341","07f59c2a":"9372",b0f1c099:"9387","3b85f227":"9469",f41c0109:"9558","09b168a7":"9579","81e486a8":"9626","5e95c892":"9661","0e384e19":"9671","4f561e31":"9817",df203c0f:"9924","08570680":"9944","4213e5b1":"9973","987564cc":"9979"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var d=new Promise(((c,d)=>f=e[a]=[c,d]));c.push(f[2]=d);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n{"use strict";var e,a,c,f,d,b={},r={};function t(e){var a=r[e];if(void 0!==a)return a.exports;var c=r[e]={exports:{}};return b[e].call(c.exports,c,c.exports,t),c.exports}t.m=b,e=[],t.O=(a,c,f,d)=>{if(!c){var b=1/0;for(n=0;n=d)&&Object.keys(t.O).every((e=>t.O[e](c[o])))?c.splice(o--,1):(r=!1,d0&&e[n-1][2]>d;n--)e[n]=e[n-1];e[n]=[c,f,d]},t.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,t.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);t.r(d);var b={};a=a||[null,c({}),c([]),c(c)];for(var r=2&f&&e;"object"==typeof r&&!~a.indexOf(r);r=c(r))Object.getOwnPropertyNames(r).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,t.d(d,b),d},t.d=(e,a)=>{for(var c in a)t.o(a,c)&&!t.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce(((a,c)=>(t.f[c](e,a),a)),[])),t.u=e=>"assets/js/"+({10:"33942509",53:"935f2afb",70:"86f2a982",114:"e665718d",138:"54590fd2",182:"c276ecb2",203:"c6aad055",205:"83d480e9",261:"reactPlayerKaltura",347:"bc816bf2",397:"6194ac84",406:"0cbb83d7",465:"f7b7f9b7",506:"9aa62c0e",522:"308aae28",523:"a0323d9f",533:"b2b675dd",534:"4b8121dd",563:"c685778b",592:"b39cdcf9",649:"512fbd77",743:"61d4c13a",745:"64abd3af",809:"840a98fb",822:"a00af9f0",873:"cabda5f8",899:"b985118d",921:"c37b4a03",944:"b2e1a0c8",945:"df322e14",1021:"901c37e5",1032:"a67ca768",1046:"4cb6c19a",1074:"9e8f4e9c",1297:"34cf6fc7",1342:"a766a857",1425:"fc8a94e3",1441:"382c5d2b",1447:"4974f5d2",1477:"b2f554cd",1625:"de311ed4",1647:"3b5edcc4",1676:"819ef483",1705:"94fb813f",1713:"a7023ddc",1724:"5087625a",1830:"b00bc883",1859:"2295be0e",1896:"25622900",1981:"b799648a",2079:"1a16e8bf",2082:"e85ba0e6",2111:"79665d43",2121:"reactPlayerFacebook",2178:"ba322490",2193:"c5b2f0f9",2217:"d7fbbe43",2242:"1dcf37fa",2323:"6c80b6fe",2339:"17896441",2451:"fb50ea3a",2472:"65a10ffa",2535:"814f3328",2546:"reactPlayerStreamable",2549:"5c63ba15",2599:"e44de27e",2609:"6269f1c0",2667:"368cce37",2778:"608238a8",2783:"f425c855",2896:"abc85917",2938:"c95aa39f",2958:"86063cd3",3010:"56c3a9b2",3089:"a6aa9e1f",3152:"33a21d7d",3154:"c6346fcf",3163:"232c546d",3207:"6603ef13",3233:"59a6f192",3237:"1df93b7f",3259:"03ccf92d",3296:"181ef600",3317:"846a5e19",3324:"1ce91f4c",3414:"35a7a45c",3427:"bd80aa65",3505:"72486833",3584:"ed75cfcb",3608:"9e4087bc",3636:"8b4dd820",3714:"894e67a6",3743:"reactPlayerVimeo",3751:"3720c009",3820:"a5e1f61e",3840:"562ca3e9",3868:"1b2af15e",3870:"5df556a2",3879:"2d629ea6",3973:"f523fb3f",4013:"01a85c17",4059:"9cb03f5d",4117:"fd684bd6",4121:"55960ee5",4157:"83e10f72",4220:"2bbe04e6",4322:"69c5f318",4356:"a9a76bf7",4368:"a94703ab",4386:"ae79aff5",4439:"reactPlayerYouTube",4459:"19eded63",4573:"f9fb4395",4617:"95366386",4651:"94f3d131",4667:"reactPlayerMixcloud",4672:"03685665",4781:"12f1535e",4918:"24bda87b",4929:"330dfcdb",4940:"c11c87f7",5018:"cd509849",5210:"1949cc8d",5240:"22de4147",5248:"6101b3fc",5326:"af231220",5375:"97615df2",5414:"724f3974",5594:"f6360934",5625:"657ac0bc",5708:"f0057c03",5765:"d18d294a",5776:"f0e3a130",5803:"ff8f5ed0",6011:"reactPlayerFilePlayer",6026:"51dec273",6049:"f213dd13",6088:"88efc5aa",6103:"ccc49370",6120:"d4840880",6125:"reactPlayerSoundCloud",6158:"51e516cc",6216:"reactPlayerTwitch",6308:"e8dc4d98",6317:"959a8cfe",6328:"c0d19596",6521:"014457dd",6536:"3ed6e2e9",6586:"183053be",6608:"5099f3e0",6623:"b104dd1e",6690:"4816649b",6692:"2ae2e7fe",6766:"e5638e51",6843:"9f97f9d1",6932:"aaabcfd8",7007:"8593ff01",7034:"3e03f778",7134:"0b40a488",7138:"38a042e4",7141:"b5abacaa",7149:"822c343e",7159:"a8ce95ee",7220:"7591d420",7251:"ba5b9f11",7363:"583db3ef",7366:"75281220",7377:"708d858d",7438:"9c021584",7480:"eb17771c",7536:"f6e0e63c",7573:"48b6ff5f",7596:"reactPlayerDailyMotion",7622:"dbbb982f",7653:"31de1779",7664:"reactPlayerPreview",7679:"83245ae6",7698:"cd23aec9",7714:"7bdcd7a7",7722:"213182ef",7739:"efc2a09d",7741:"7d88b63f",7759:"ff38b1ce",7847:"43b416ef",7875:"021eaa84",7881:"2658ced2",7918:"10ce918d",7920:"1a4e3797",8055:"reactPlayerWistia",8145:"006e489c",8176:"5660752d",8215:"1cfced13",8221:"6af14956",8262:"059d1c6a",8290:"3fe48f60",8445:"99245987",8502:"b4657d81",8514:"d651e2ee",8518:"a7bd4aaa",8532:"d1b15a6d",8533:"f3d54061",8566:"9dce5486",8610:"6875c492",8626:"c6f0d1b2",8768:"524ce9a0",8800:"e6fb1369",8811:"3289a752",8860:"0d040286",8888:"reactPlayerVidyard",8893:"ba1dc56d",8960:"6bf124c2",8989:"d4bf7e47",9043:"473de3ed",9106:"72dd8f7e",9133:"02e265ea",9179:"79551407",9341:"a35cf155",9372:"07f59c2a",9387:"b0f1c099",9469:"3b85f227",9558:"f41c0109",9579:"09b168a7",9626:"81e486a8",9661:"5e95c892",9671:"0e384e19",9817:"4f561e31",9924:"df203c0f",9944:"08570680",9973:"4213e5b1",9979:"987564cc"}[e]||e)+"."+{10:"998f6ce5",53:"f73584dc",70:"c1f4341f",114:"3ca680b0",138:"b569aa2b",182:"c229eebf",203:"6cc1a9bc",205:"957c776a",261:"59b3b0c6",299:"67fe53cf",335:"4805c0ff",347:"08f2aa82",349:"6fd93ebb",397:"83490a42",406:"7d0892b8",449:"c6fe4c7c",465:"4c7a59ed",506:"1333873d",522:"efb62398",523:"bae0097e",533:"209aeddd",534:"a0101e89",563:"38cad871",592:"ee25241a",649:"d1adf67b",743:"b6bef3d2",745:"38013f83",809:"6db3735a",822:"aa516391",873:"a0b4dd3a",899:"c3338ab4",921:"f0615854",944:"1ae3b6d8",945:"a828355e",1006:"19e95ff9",1021:"352aaa75",1032:"f0f19bbe",1046:"11fb5560",1074:"fd3d60f8",1297:"8b4d7087",1342:"c51cfec6",1425:"a8c31912",1441:"d5188a32",1447:"5c96ef54",1477:"b83fa145",1625:"e902b2a6",1647:"38cb72ef",1676:"accbe635",1705:"b1bd0aee",1713:"0b7e2f7e",1724:"e683acaf",1830:"31abf427",1856:"2b4c6f80",1859:"4a95dc0a",1896:"00dc3a40",1981:"f7385425",2079:"a6bac1ac",2082:"20800bc7",2111:"6fd148ce",2121:"1d5631d2",2178:"13069292",2193:"e0ae080f",2217:"4500992a",2242:"2da98dd6",2323:"4a8d92c7",2339:"a8f7e97d",2451:"7d339ad5",2472:"9fdb1eef",2535:"f25993c6",2546:"353efec6",2549:"8bac4679",2599:"16dae3fe",2609:"766b98f9",2667:"22327ab1",2778:"0561c303",2783:"05b37f6e",2896:"d57cbebc",2938:"30b67970",2958:"eadf4062",3010:"18fcb77a",3041:"4be8b86b",3089:"adf73dea",3152:"1b14defd",3154:"f2c32df8",3163:"8f1e6bda",3207:"06460fe8",3233:"0406b5e1",3237:"f41aab22",3259:"d48e5470",3296:"fbe68b38",3313:"b1117ed6",3317:"2eb33a9d",3324:"ca16a2c4",3414:"793f6bb5",3427:"332d5638",3505:"d09f3bbb",3584:"29f530b0",3608:"1526f889",3636:"2a7866c5",3714:"fffc18ff",3743:"43335252",3751:"52b86fe9",3820:"2fc73bc7",3840:"4dbff5ee",3868:"a4034df7",3870:"d35f976a",3879:"772bbb02",3973:"9c6324a3",4013:"77711dcc",4059:"347b96b9",4069:"729390c9",4094:"efc68385",4117:"8c7aad71",4121:"f8db0cf6",4157:"280c2c34",4191:"ddc88419",4220:"318f1a29",4322:"7549ee39",4356:"40b6eee7",4366:"ba8f5ab2",4368:"c0e88a45",4386:"b9f0c03a",4439:"7c09aa1f",4459:"b9f7eba1",4573:"3e927fac",4617:"4a2331c8",4651:"900c9c1a",4667:"79c9fa66",4670:"c6602195",4672:"9f8d98b5",4781:"8061589b",4854:"93ebc2db",4875:"1b1d16eb",4918:"45518a96",4929:"ba11604a",4940:"b9612c3c",4988:"366d30f5",5018:"076affc0",5067:"9cb86b62",5210:"dd98ff27",5240:"69fe84b9",5248:"3b3048d2",5326:"e4e3e788",5375:"1f13aea9",5414:"2c87a2e0",5594:"71a1098b",5625:"c4b6a5f2",5628:"4d1e89d2",5708:"f1adb0e5",5711:"51498bc4",5760:"bd2ac63e",5765:"efe24b1a",5776:"98f8b21a",5803:"a681401e",5909:"a26f057e",6011:"cac6ee27",6026:"81e7a447",6049:"2835c78e",6070:"a38f944d",6088:"ccc7fd07",6103:"9dd201d7",6120:"0cc246eb",6125:"b843d475",6158:"70ec50c1",6166:"30a60e8a",6216:"32269018",6274:"8f2d8703",6308:"5ce2b518",6317:"9e90ecc2",6328:"7aa75287",6521:"fcc51e46",6536:"c0488fc2",6586:"5528338e",6608:"bd5dfed2",6623:"4cc43386",6690:"99fd0ff4",6692:"601cb7ae",6730:"ffe4ecfc",6766:"e6f76e33",6843:"6f54242f",6932:"9410731b",7007:"2945babe",7034:"89d06177",7076:"b2056ff8",7134:"c4e78e68",7138:"78ce4697",7141:"bcb20f6d",7149:"663ec94f",7159:"7c5c1815",7220:"e83e320e",7251:"993dc57e",7260:"edee19ff",7363:"9920635e",7366:"3792e34e",7377:"6b4fe40f",7430:"bdba0009",7438:"ab961c74",7480:"bb181ea3",7536:"f0cbb62f",7573:"f1a802cb",7596:"f8009a5e",7622:"b17356bb",7653:"2ea50086",7664:"2267cb44",7679:"2268355e",7698:"4f79d26b",7714:"d02b8df8",7722:"d40b4c8b",7737:"38d71842",7739:"c08a4589",7741:"1afbfa31",7759:"809680ab",7847:"2c70676d",7849:"6f99b72f",7875:"0ad319ce",7881:"aed2806c",7918:"73f8b649",7920:"0e623c45",8055:"7ac13b2f",8145:"0820074d",8176:"4a5af7d6",8215:"778f5e2d",8221:"00b1aa0c",8262:"369fdebe",8290:"ed6f8f6c",8315:"0ceeb234",8327:"47f26ce2",8445:"4fc783d0",8502:"08d69c78",8514:"a243eab8",8518:"d1ef6cf4",8532:"43299dd2",8533:"db9e37cb",8566:"846625b8",8610:"70f4caf3",8626:"a1d012d1",8768:"95402132",8800:"09f3f410",8811:"2bfa95ba",8860:"1b79d3d0",8888:"aa75b509",8893:"dfc51795",8960:"613d028d",8989:"7fc2e7e3",9043:"dd930965",9106:"91d0911a",9127:"02f87f8d",9133:"7057011c",9179:"0a935167",9341:"05fdb1ad",9372:"e2894edd",9387:"98377134",9469:"9a7d7fb2",9500:"8bb8cb2a",9558:"7d7d2efa",9579:"705c3d78",9626:"918cf6d7",9661:"b7ea4262",9671:"6652f4ad",9812:"935315d5",9817:"1bbc72ba",9924:"2026b37e",9944:"d424f2ea",9964:"8c664f0c",9973:"df3f1309",9979:"9b060904"}[e]+".js",t.miniCssF=e=>{},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},d="docs:",t.l=(e,a,c,b)=>{if(f[e])f[e].push(a);else{var r,o;if(void 0!==c)for(var l=document.getElementsByTagName("script"),n=0;n{r.onerror=r.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],r.parentNode&&r.parentNode.removeChild(r),d&&d.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),o&&document.head.appendChild(r)}},t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.p="/",t.gca=function(e){return e={17896441:"2339",25622900:"1896",33942509:"10",72486833:"3505",75281220:"7366",79551407:"9179",95366386:"4617",99245987:"8445","935f2afb":"53","86f2a982":"70",e665718d:"114","54590fd2":"138",c276ecb2:"182",c6aad055:"203","83d480e9":"205",reactPlayerKaltura:"261",bc816bf2:"347","6194ac84":"397","0cbb83d7":"406",f7b7f9b7:"465","9aa62c0e":"506","308aae28":"522",a0323d9f:"523",b2b675dd:"533","4b8121dd":"534",c685778b:"563",b39cdcf9:"592","512fbd77":"649","61d4c13a":"743","64abd3af":"745","840a98fb":"809",a00af9f0:"822",cabda5f8:"873",b985118d:"899",c37b4a03:"921",b2e1a0c8:"944",df322e14:"945","901c37e5":"1021",a67ca768:"1032","4cb6c19a":"1046","9e8f4e9c":"1074","34cf6fc7":"1297",a766a857:"1342",fc8a94e3:"1425","382c5d2b":"1441","4974f5d2":"1447",b2f554cd:"1477",de311ed4:"1625","3b5edcc4":"1647","819ef483":"1676","94fb813f":"1705",a7023ddc:"1713","5087625a":"1724",b00bc883:"1830","2295be0e":"1859",b799648a:"1981","1a16e8bf":"2079",e85ba0e6:"2082","79665d43":"2111",reactPlayerFacebook:"2121",ba322490:"2178",c5b2f0f9:"2193",d7fbbe43:"2217","1dcf37fa":"2242","6c80b6fe":"2323",fb50ea3a:"2451","65a10ffa":"2472","814f3328":"2535",reactPlayerStreamable:"2546","5c63ba15":"2549",e44de27e:"2599","6269f1c0":"2609","368cce37":"2667","608238a8":"2778",f425c855:"2783",abc85917:"2896",c95aa39f:"2938","86063cd3":"2958","56c3a9b2":"3010",a6aa9e1f:"3089","33a21d7d":"3152",c6346fcf:"3154","232c546d":"3163","6603ef13":"3207","59a6f192":"3233","1df93b7f":"3237","03ccf92d":"3259","181ef600":"3296","846a5e19":"3317","1ce91f4c":"3324","35a7a45c":"3414",bd80aa65:"3427",ed75cfcb:"3584","9e4087bc":"3608","8b4dd820":"3636","894e67a6":"3714",reactPlayerVimeo:"3743","3720c009":"3751",a5e1f61e:"3820","562ca3e9":"3840","1b2af15e":"3868","5df556a2":"3870","2d629ea6":"3879",f523fb3f:"3973","01a85c17":"4013","9cb03f5d":"4059",fd684bd6:"4117","55960ee5":"4121","83e10f72":"4157","2bbe04e6":"4220","69c5f318":"4322",a9a76bf7:"4356",a94703ab:"4368",ae79aff5:"4386",reactPlayerYouTube:"4439","19eded63":"4459",f9fb4395:"4573","94f3d131":"4651",reactPlayerMixcloud:"4667","03685665":"4672","12f1535e":"4781","24bda87b":"4918","330dfcdb":"4929",c11c87f7:"4940",cd509849:"5018","1949cc8d":"5210","22de4147":"5240","6101b3fc":"5248",af231220:"5326","97615df2":"5375","724f3974":"5414",f6360934:"5594","657ac0bc":"5625",f0057c03:"5708",d18d294a:"5765",f0e3a130:"5776",ff8f5ed0:"5803",reactPlayerFilePlayer:"6011","51dec273":"6026",f213dd13:"6049","88efc5aa":"6088",ccc49370:"6103",d4840880:"6120",reactPlayerSoundCloud:"6125","51e516cc":"6158",reactPlayerTwitch:"6216",e8dc4d98:"6308","959a8cfe":"6317",c0d19596:"6328","014457dd":"6521","3ed6e2e9":"6536","183053be":"6586","5099f3e0":"6608",b104dd1e:"6623","4816649b":"6690","2ae2e7fe":"6692",e5638e51:"6766","9f97f9d1":"6843",aaabcfd8:"6932","8593ff01":"7007","3e03f778":"7034","0b40a488":"7134","38a042e4":"7138",b5abacaa:"7141","822c343e":"7149",a8ce95ee:"7159","7591d420":"7220",ba5b9f11:"7251","583db3ef":"7363","708d858d":"7377","9c021584":"7438",eb17771c:"7480",f6e0e63c:"7536","48b6ff5f":"7573",reactPlayerDailyMotion:"7596",dbbb982f:"7622","31de1779":"7653",reactPlayerPreview:"7664","83245ae6":"7679",cd23aec9:"7698","7bdcd7a7":"7714","213182ef":"7722",efc2a09d:"7739","7d88b63f":"7741",ff38b1ce:"7759","43b416ef":"7847","021eaa84":"7875","2658ced2":"7881","10ce918d":"7918","1a4e3797":"7920",reactPlayerWistia:"8055","006e489c":"8145","5660752d":"8176","1cfced13":"8215","6af14956":"8221","059d1c6a":"8262","3fe48f60":"8290",b4657d81:"8502",d651e2ee:"8514",a7bd4aaa:"8518",d1b15a6d:"8532",f3d54061:"8533","9dce5486":"8566","6875c492":"8610",c6f0d1b2:"8626","524ce9a0":"8768",e6fb1369:"8800","3289a752":"8811","0d040286":"8860",reactPlayerVidyard:"8888",ba1dc56d:"8893","6bf124c2":"8960",d4bf7e47:"8989","473de3ed":"9043","72dd8f7e":"9106","02e265ea":"9133",a35cf155:"9341","07f59c2a":"9372",b0f1c099:"9387","3b85f227":"9469",f41c0109:"9558","09b168a7":"9579","81e486a8":"9626","5e95c892":"9661","0e384e19":"9671","4f561e31":"9817",df203c0f:"9924","08570680":"9944","4213e5b1":"9973","987564cc":"9979"}[e]||e,t.p+t.u(e)},(()=>{var e={1303:0,532:0};t.f.j=(a,c)=>{var f=t.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var d=new Promise(((c,d)=>f=e[a]=[c,d]));c.push(f[2]=d);var b=t.p+t.u(a),r=new Error;t.l(b,(c=>{if(t.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;r.message="Loading chunk "+a+" failed.\n("+d+": "+b+")",r.name="ChunkLoadError",r.type=d,r.request=b,f[1](r)}}),"chunk-"+a,a)}},t.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,b=c[0],r=c[1],o=c[2],l=0;if(b.some((a=>0!==e[a]))){for(f in r)t.o(r,f)&&(t.m[f]=r[f]);if(o)var n=o(t)}for(a&&a(c);l - + diff --git a/blog/5-things-to-know-for-a-docker-user.html b/blog/5-things-to-know-for-a-docker-user.html index c8c3c513840..0842669aacc 100644 --- a/blog/5-things-to-know-for-a-docker-user.html +++ b/blog/5-things-to-know-for-a-docker-user.html @@ -13,7 +13,7 @@ - + diff --git a/blog/archive.html b/blog/archive.html index 234221b8bce..c2262b88084 100644 --- a/blog/archive.html +++ b/blog/archive.html @@ -13,7 +13,7 @@ - + diff --git a/blog/develop-using-devcontainer.html b/blog/develop-using-devcontainer.html index 2e63f6367b6..4119d8a35cd 100644 --- a/blog/develop-using-devcontainer.html +++ b/blog/develop-using-devcontainer.html @@ -13,7 +13,7 @@ - + diff --git a/blog/podman-desktop-release-0.10.html b/blog/podman-desktop-release-0.10.html index 36cbc03b57e..4cf4acad1f0 100644 --- a/blog/podman-desktop-release-0.10.html +++ b/blog/podman-desktop-release-0.10.html @@ -13,7 +13,7 @@ - + diff --git a/blog/podman-desktop-release-0.11.html b/blog/podman-desktop-release-0.11.html index eb432f69d05..3494645ce93 100644 --- a/blog/podman-desktop-release-0.11.html +++ b/blog/podman-desktop-release-0.11.html @@ -13,7 +13,7 @@ - + diff --git a/blog/podman-desktop-release-0.12.html b/blog/podman-desktop-release-0.12.html index b9d8b43ca1e..70f355aae7a 100644 --- a/blog/podman-desktop-release-0.12.html +++ b/blog/podman-desktop-release-0.12.html @@ -13,7 +13,7 @@ - + diff --git a/blog/podman-desktop-release-0.13.html b/blog/podman-desktop-release-0.13.html index 3a682346793..c8b67aafc6c 100644 --- a/blog/podman-desktop-release-0.13.html +++ b/blog/podman-desktop-release-0.13.html @@ -13,7 +13,7 @@ - + diff --git a/blog/podman-desktop-release-0.14.html b/blog/podman-desktop-release-0.14.html index d6951be58ae..35b72d0ce9d 100644 --- a/blog/podman-desktop-release-0.14.html +++ b/blog/podman-desktop-release-0.14.html @@ -13,7 +13,7 @@ - + diff --git a/blog/podman-desktop-release-0.15.html b/blog/podman-desktop-release-0.15.html index b444e0d5124..b65e66613f3 100644 --- a/blog/podman-desktop-release-0.15.html +++ b/blog/podman-desktop-release-0.15.html @@ -13,7 +13,7 @@ - + diff --git a/blog/podman-desktop-release-1.0.html b/blog/podman-desktop-release-1.0.html index 3cfaa743bac..47810d1cb24 100644 --- a/blog/podman-desktop-release-1.0.html +++ b/blog/podman-desktop-release-1.0.html @@ -13,7 +13,7 @@ - + diff --git a/blog/podman-desktop-release-1.1.html b/blog/podman-desktop-release-1.1.html index b814ec850c9..b75b5bb2a6b 100644 --- a/blog/podman-desktop-release-1.1.html +++ b/blog/podman-desktop-release-1.1.html @@ -13,7 +13,7 @@ - + diff --git a/blog/podman-desktop-release-1.2.html b/blog/podman-desktop-release-1.2.html index 7592eb6dcb9..478e3883aaf 100644 --- a/blog/podman-desktop-release-1.2.html +++ b/blog/podman-desktop-release-1.2.html @@ -13,7 +13,7 @@ - + diff --git a/blog/podman-desktop-release-1.3.html b/blog/podman-desktop-release-1.3.html index 256393b1c24..f65bcc6d635 100644 --- a/blog/podman-desktop-release-1.3.html +++ b/blog/podman-desktop-release-1.3.html @@ -13,7 +13,7 @@ - + diff --git a/blog/podman-desktop-release-1.4.html b/blog/podman-desktop-release-1.4.html index 415dc1e698d..c886db26516 100644 --- a/blog/podman-desktop-release-1.4.html +++ b/blog/podman-desktop-release-1.4.html @@ -13,7 +13,7 @@ - + diff --git a/blog/podman-desktop-release-1.5.html b/blog/podman-desktop-release-1.5.html index 33fcd01f14f..63b66b4746d 100644 --- a/blog/podman-desktop-release-1.5.html +++ b/blog/podman-desktop-release-1.5.html @@ -13,7 +13,7 @@ - + diff --git a/blog/running-a-local-kubernetes-cluster-with-podman-desktop.html b/blog/running-a-local-kubernetes-cluster-with-podman-desktop.html index bc062ff9e90..75aebd5eacd 100644 --- a/blog/running-a-local-kubernetes-cluster-with-podman-desktop.html +++ b/blog/running-a-local-kubernetes-cluster-with-podman-desktop.html @@ -13,7 +13,7 @@ - + diff --git a/blog/sharing-podman-images-with-kubernetes-cluster.html b/blog/sharing-podman-images-with-kubernetes-cluster.html index cad9ac0bba0..deedb3a9571 100644 --- a/blog/sharing-podman-images-with-kubernetes-cluster.html +++ b/blog/sharing-podman-images-with-kubernetes-cluster.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags.html b/blog/tags.html index 6d9b5e3e862..5080511d3da 100644 --- a/blog/tags.html +++ b/blog/tags.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/codespaces.html b/blog/tags/codespaces.html index c4ab8318f74..8306ebcc3bc 100644 --- a/blog/tags/codespaces.html +++ b/blog/tags/codespaces.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/compose.html b/blog/tags/compose.html index afd5cff5e1a..9f828a8fdc6 100644 --- a/blog/tags/compose.html +++ b/blog/tags/compose.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/devcontainer.html b/blog/tags/devcontainer.html index 42e1f27305c..cce0f50bbae 100644 --- a/blog/tags/devcontainer.html +++ b/blog/tags/devcontainer.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/docker.html b/blog/tags/docker.html index 8c248cb6419..b1fa2f590ca 100644 --- a/blog/tags/docker.html +++ b/blog/tags/docker.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/extensions.html b/blog/tags/extensions.html index aa9236fc61e..8eb0412d3da 100644 --- a/blog/tags/extensions.html +++ b/blog/tags/extensions.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/images.html b/blog/tags/images.html index 6dffd10aa1c..899e9db3bb9 100644 --- a/blog/tags/images.html +++ b/blog/tags/images.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/kind.html b/blog/tags/kind.html index 3bdd1b3a621..8a3cd70c639 100644 --- a/blog/tags/kind.html +++ b/blog/tags/kind.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/kubernetes.html b/blog/tags/kubernetes.html index 227f98b478d..92e60640378 100644 --- a/blog/tags/kubernetes.html +++ b/blog/tags/kubernetes.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/migrating.html b/blog/tags/migrating.html index 437002652b5..06f8340a1e1 100644 --- a/blog/tags/migrating.html +++ b/blog/tags/migrating.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/onboarding.html b/blog/tags/onboarding.html index 81e274c9694..420ff59eb12 100644 --- a/blog/tags/onboarding.html +++ b/blog/tags/onboarding.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/openshift.html b/blog/tags/openshift.html index e61a114ce9a..fd42c8245c6 100644 --- a/blog/tags/openshift.html +++ b/blog/tags/openshift.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/podman-desktop.html b/blog/tags/podman-desktop.html index 5b1ef26de81..5b7950eaefd 100644 --- a/blog/tags/podman-desktop.html +++ b/blog/tags/podman-desktop.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/podman.html b/blog/tags/podman.html index 8f92ed9ea52..7fa5e0bbcc6 100644 --- a/blog/tags/podman.html +++ b/blog/tags/podman.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/release.html b/blog/tags/release.html index 3dca3bceb20..b9547c3bb4c 100644 --- a/blog/tags/release.html +++ b/blog/tags/release.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/settings.html b/blog/tags/settings.html index 583baa862c8..ecde8538340 100644 --- a/blog/tags/settings.html +++ b/blog/tags/settings.html @@ -13,7 +13,7 @@ - + diff --git a/blog/tags/story.html b/blog/tags/story.html index 4d78caf4139..caf28e5f4c9 100644 --- a/blog/tags/story.html +++ b/blog/tags/story.html @@ -13,7 +13,7 @@ - + diff --git a/core-values.html b/core-values.html index 6c0fa7c70bb..ed38b3309a1 100644 --- a/core-values.html +++ b/core-values.html @@ -13,7 +13,7 @@ - + diff --git a/docs/compose.html b/docs/compose.html index faf6a9bdcdb..90b905d8817 100644 --- a/docs/compose.html +++ b/docs/compose.html @@ -13,7 +13,7 @@ - + diff --git a/docs/compose/running-compose.html b/docs/compose/running-compose.html index 2fe18f29ac6..7cbe745c70f 100644 --- a/docs/compose/running-compose.html +++ b/docs/compose/running-compose.html @@ -13,7 +13,7 @@ - + diff --git a/docs/compose/setting-up-compose.html b/docs/compose/setting-up-compose.html index 7f7a6c51671..2cd170a92a9 100644 --- a/docs/compose/setting-up-compose.html +++ b/docs/compose/setting-up-compose.html @@ -13,7 +13,7 @@ - + diff --git a/docs/containers.html b/docs/containers.html index 8310e1fee44..34f24daf593 100644 --- a/docs/containers.html +++ b/docs/containers.html @@ -13,7 +13,7 @@ - + diff --git a/docs/containers/creating-a-pod.html b/docs/containers/creating-a-pod.html index 5b33085d196..4b3228cdd19 100644 --- a/docs/containers/creating-a-pod.html +++ b/docs/containers/creating-a-pod.html @@ -13,7 +13,7 @@ - + diff --git a/docs/containers/images.html b/docs/containers/images.html index 70e5c79be94..836fdd3ec71 100644 --- a/docs/containers/images.html +++ b/docs/containers/images.html @@ -13,7 +13,7 @@ - + diff --git a/docs/containers/images/building-an-image.html b/docs/containers/images/building-an-image.html index 86e15b91bdc..c693107e34f 100644 --- a/docs/containers/images/building-an-image.html +++ b/docs/containers/images/building-an-image.html @@ -13,7 +13,7 @@ - + diff --git a/docs/containers/images/pulling-an-image.html b/docs/containers/images/pulling-an-image.html index 45e04fa21c6..b5ba8aa7dde 100644 --- a/docs/containers/images/pulling-an-image.html +++ b/docs/containers/images/pulling-an-image.html @@ -13,7 +13,7 @@ - + diff --git a/docs/containers/images/pushing-an-image-to-a-registry.html b/docs/containers/images/pushing-an-image-to-a-registry.html index bf460e047e8..b9ab543f49e 100644 --- a/docs/containers/images/pushing-an-image-to-a-registry.html +++ b/docs/containers/images/pushing-an-image-to-a-registry.html @@ -13,7 +13,7 @@ - + diff --git a/docs/containers/onboarding.html b/docs/containers/onboarding.html index 70b8a7e4fc4..196ae39bee3 100644 --- a/docs/containers/onboarding.html +++ b/docs/containers/onboarding.html @@ -13,7 +13,7 @@ - + diff --git a/docs/containers/registries.html b/docs/containers/registries.html index cd239b8afdd..f31b592c1f1 100644 --- a/docs/containers/registries.html +++ b/docs/containers/registries.html @@ -13,7 +13,7 @@ - + diff --git a/docs/containers/registries/authenticating-to-a-preconfigured-registry.html b/docs/containers/registries/authenticating-to-a-preconfigured-registry.html index c37852bdd36..042471f25bc 100644 --- a/docs/containers/registries/authenticating-to-a-preconfigured-registry.html +++ b/docs/containers/registries/authenticating-to-a-preconfigured-registry.html @@ -13,7 +13,7 @@ - + diff --git a/docs/containers/registries/insecure-registry.html b/docs/containers/registries/insecure-registry.html index 03f96bf3c2c..44a473d1e51 100644 --- a/docs/containers/registries/insecure-registry.html +++ b/docs/containers/registries/insecure-registry.html @@ -13,7 +13,7 @@ - + diff --git a/docs/containers/starting-a-container.html b/docs/containers/starting-a-container.html index 0fd44dc402f..95227b4f431 100644 --- a/docs/containers/starting-a-container.html +++ b/docs/containers/starting-a-container.html @@ -13,7 +13,7 @@ - + diff --git a/docs/extensions.html b/docs/extensions.html index 5b95a9008ba..7fc255eafd4 100644 --- a/docs/extensions.html +++ b/docs/extensions.html @@ -13,7 +13,7 @@ - + diff --git a/docs/extensions/install.html b/docs/extensions/install.html index 8ed4c10dd6a..b33c775e9c8 100644 --- a/docs/extensions/install.html +++ b/docs/extensions/install.html @@ -13,7 +13,7 @@ - + diff --git a/docs/extensions/publish.html b/docs/extensions/publish.html index 4caddb0ceb2..f93e16c7a9d 100644 --- a/docs/extensions/publish.html +++ b/docs/extensions/publish.html @@ -13,7 +13,7 @@ - + diff --git a/docs/extensions/write.html b/docs/extensions/write.html index 56d802dec3c..94ca1778eaf 100644 --- a/docs/extensions/write.html +++ b/docs/extensions/write.html @@ -13,7 +13,7 @@ - + diff --git a/docs/extensions/write/onboarding-workflow.html b/docs/extensions/write/onboarding-workflow.html index 09b1b2f19b0..d225000cc92 100644 --- a/docs/extensions/write/onboarding-workflow.html +++ b/docs/extensions/write/onboarding-workflow.html @@ -13,7 +13,7 @@ - + diff --git a/docs/extensions/write/when-clause-context.html b/docs/extensions/write/when-clause-context.html index c741da7a709..fe5e6abb4fd 100644 --- a/docs/extensions/write/when-clause-context.html +++ b/docs/extensions/write/when-clause-context.html @@ -13,7 +13,7 @@ - + diff --git a/docs/installation.html b/docs/installation.html index 4a5f85fb0d7..0bfdecc056c 100644 --- a/docs/installation.html +++ b/docs/installation.html @@ -13,7 +13,7 @@ - + diff --git a/docs/installation/linux-install.html b/docs/installation/linux-install.html index d514b3361a9..d88b8b2e654 100644 --- a/docs/installation/linux-install.html +++ b/docs/installation/linux-install.html @@ -13,7 +13,7 @@ - + diff --git a/docs/installation/linux-install/installing-podman-desktop-from-a-compressed-tar-file.html b/docs/installation/linux-install/installing-podman-desktop-from-a-compressed-tar-file.html index bd72ec3da49..f1b6cc71637 100644 --- a/docs/installation/linux-install/installing-podman-desktop-from-a-compressed-tar-file.html +++ b/docs/installation/linux-install/installing-podman-desktop-from-a-compressed-tar-file.html @@ -13,7 +13,7 @@ - + diff --git a/docs/installation/linux-install/installing-podman-desktop-from-a-flatpak-bundle.html b/docs/installation/linux-install/installing-podman-desktop-from-a-flatpak-bundle.html index a527c2ae25f..d26e558b8fb 100644 --- a/docs/installation/linux-install/installing-podman-desktop-from-a-flatpak-bundle.html +++ b/docs/installation/linux-install/installing-podman-desktop-from-a-flatpak-bundle.html @@ -13,7 +13,7 @@ - + diff --git a/docs/installation/macos-install.html b/docs/installation/macos-install.html index ac9bf7e623f..0596bdec645 100644 --- a/docs/installation/macos-install.html +++ b/docs/installation/macos-install.html @@ -13,7 +13,7 @@ - + diff --git a/docs/installation/windows-install.html b/docs/installation/windows-install.html index 0c56c0a39fb..d111b19e661 100644 --- a/docs/installation/windows-install.html +++ b/docs/installation/windows-install.html @@ -13,7 +13,7 @@ - + diff --git a/docs/installation/windows-install/installing-podman-desktop-and-podman-in-a-restricted-environment.html b/docs/installation/windows-install/installing-podman-desktop-and-podman-in-a-restricted-environment.html index 2ec115babce..7b46acf688c 100644 --- a/docs/installation/windows-install/installing-podman-desktop-and-podman-in-a-restricted-environment.html +++ b/docs/installation/windows-install/installing-podman-desktop-and-podman-in-a-restricted-environment.html @@ -13,7 +13,7 @@ - + diff --git a/docs/installation/windows-install/installing-podman-desktop-silently-with-the-windows-installer.html b/docs/installation/windows-install/installing-podman-desktop-silently-with-the-windows-installer.html index 88384b9591c..2ff342ec1f3 100644 --- a/docs/installation/windows-install/installing-podman-desktop-silently-with-the-windows-installer.html +++ b/docs/installation/windows-install/installing-podman-desktop-silently-with-the-windows-installer.html @@ -13,7 +13,7 @@ - + diff --git a/docs/installation/windows-install/installing-podman-desktop-with-chocolatey.html b/docs/installation/windows-install/installing-podman-desktop-with-chocolatey.html index ac897c7a202..9ed94ccb5ff 100644 --- a/docs/installation/windows-install/installing-podman-desktop-with-chocolatey.html +++ b/docs/installation/windows-install/installing-podman-desktop-with-chocolatey.html @@ -13,7 +13,7 @@ - + diff --git a/docs/installation/windows-install/installing-podman-desktop-with-scoop.html b/docs/installation/windows-install/installing-podman-desktop-with-scoop.html index 12d8c7789de..e265403b19a 100644 --- a/docs/installation/windows-install/installing-podman-desktop-with-scoop.html +++ b/docs/installation/windows-install/installing-podman-desktop-with-scoop.html @@ -13,7 +13,7 @@ - + diff --git a/docs/installation/windows-install/installing-podman-desktop-with-winget.html b/docs/installation/windows-install/installing-podman-desktop-with-winget.html index ec044a3c0ef..38000a3b3cd 100644 --- a/docs/installation/windows-install/installing-podman-desktop-with-winget.html +++ b/docs/installation/windows-install/installing-podman-desktop-with-winget.html @@ -13,7 +13,7 @@ - + diff --git a/docs/intro.html b/docs/intro.html index b151b2f51ec..721c6e24c35 100644 --- a/docs/intro.html +++ b/docs/intro.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kind.html b/docs/kind.html index 7a9f39767c0..8f6f2cdccfb 100644 --- a/docs/kind.html +++ b/docs/kind.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kind/building-an-image-and-testing-it-in-kind.html b/docs/kind/building-an-image-and-testing-it-in-kind.html index 000b6b68b12..be38f5d79b8 100644 --- a/docs/kind/building-an-image-and-testing-it-in-kind.html +++ b/docs/kind/building-an-image-and-testing-it-in-kind.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kind/configuring-podman-for-kind-on-windows.html b/docs/kind/configuring-podman-for-kind-on-windows.html index 176c2f44f4d..a4f6bd3deb1 100644 --- a/docs/kind/configuring-podman-for-kind-on-windows.html +++ b/docs/kind/configuring-podman-for-kind-on-windows.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kind/creating-a-kind-cluster.html b/docs/kind/creating-a-kind-cluster.html index 670a1acd00c..0133c07c447 100644 --- a/docs/kind/creating-a-kind-cluster.html +++ b/docs/kind/creating-a-kind-cluster.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kind/deleting-your-kind-cluster.html b/docs/kind/deleting-your-kind-cluster.html index 654c25f256a..b40fe34d61d 100644 --- a/docs/kind/deleting-your-kind-cluster.html +++ b/docs/kind/deleting-your-kind-cluster.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kind/installing.html b/docs/kind/installing.html index 430e1f7eae8..829c0e6eea1 100644 --- a/docs/kind/installing.html +++ b/docs/kind/installing.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kind/pushing-an-image-to-kind.html b/docs/kind/pushing-an-image-to-kind.html index 273f7c0ebbd..880403975ec 100644 --- a/docs/kind/pushing-an-image-to-kind.html +++ b/docs/kind/pushing-an-image-to-kind.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kind/restarting-your-kind-cluster.html b/docs/kind/restarting-your-kind-cluster.html index 85126eb72b6..45c60fb2c38 100644 --- a/docs/kind/restarting-your-kind-cluster.html +++ b/docs/kind/restarting-your-kind-cluster.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kind/working-with-your-local-kind-cluster.html b/docs/kind/working-with-your-local-kind-cluster.html index 2484bae14e7..9b9d67d9ebf 100644 --- a/docs/kind/working-with-your-local-kind-cluster.html +++ b/docs/kind/working-with-your-local-kind-cluster.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kubernetes.html b/docs/kubernetes.html index 31b6d9649a6..d6ab96e60af 100644 --- a/docs/kubernetes.html +++ b/docs/kubernetes.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kubernetes/deploying-a-container-to-kubernetes.html b/docs/kubernetes/deploying-a-container-to-kubernetes.html index 20cf98fbaae..16c03b088c5 100644 --- a/docs/kubernetes/deploying-a-container-to-kubernetes.html +++ b/docs/kubernetes/deploying-a-container-to-kubernetes.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kubernetes/deploying-a-pod-to-kubernetes.html b/docs/kubernetes/deploying-a-pod-to-kubernetes.html index d7269220829..a4c5f00661e 100644 --- a/docs/kubernetes/deploying-a-pod-to-kubernetes.html +++ b/docs/kubernetes/deploying-a-pod-to-kubernetes.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kubernetes/existing-kubernetes.html b/docs/kubernetes/existing-kubernetes.html index 3e5e3470b2b..10773af79a2 100644 --- a/docs/kubernetes/existing-kubernetes.html +++ b/docs/kubernetes/existing-kubernetes.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kubernetes/kind/pushing-an-image-to-kind.html b/docs/kubernetes/kind/pushing-an-image-to-kind.html index 569d4222fdf..56ef15c3711 100644 --- a/docs/kubernetes/kind/pushing-an-image-to-kind.html +++ b/docs/kubernetes/kind/pushing-an-image-to-kind.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kubernetes/viewing-and-selecting-current-kubernete-context-in-the-status-bar.html b/docs/kubernetes/viewing-and-selecting-current-kubernete-context-in-the-status-bar.html index 95a36fe2a97..0ace9fea8a4 100644 --- a/docs/kubernetes/viewing-and-selecting-current-kubernete-context-in-the-status-bar.html +++ b/docs/kubernetes/viewing-and-selecting-current-kubernete-context-in-the-status-bar.html @@ -13,7 +13,7 @@ - + diff --git a/docs/kubernetes/viewing-and-selecting-current-kubernete-context.html b/docs/kubernetes/viewing-and-selecting-current-kubernete-context.html index 05835721b7f..3dcafccaa2e 100644 --- a/docs/kubernetes/viewing-and-selecting-current-kubernete-context.html +++ b/docs/kubernetes/viewing-and-selecting-current-kubernete-context.html @@ -13,7 +13,7 @@ - + diff --git a/docs/lima.html b/docs/lima.html index ced8729ade1..f706e5ca410 100644 --- a/docs/lima.html +++ b/docs/lima.html @@ -13,7 +13,7 @@ - + diff --git a/docs/lima/creating-a-kubernetes-instance.html b/docs/lima/creating-a-kubernetes-instance.html index a23713fe9df..95a9312f3c1 100644 --- a/docs/lima/creating-a-kubernetes-instance.html +++ b/docs/lima/creating-a-kubernetes-instance.html @@ -13,7 +13,7 @@ - + diff --git a/docs/lima/creating-a-lima-instance.html b/docs/lima/creating-a-lima-instance.html index 1a51f255173..3ac97cfbde1 100644 --- a/docs/lima/creating-a-lima-instance.html +++ b/docs/lima/creating-a-lima-instance.html @@ -13,7 +13,7 @@ - + diff --git a/docs/lima/customizing.html b/docs/lima/customizing.html index 7fc07886148..38cc0a5207a 100644 --- a/docs/lima/customizing.html +++ b/docs/lima/customizing.html @@ -13,7 +13,7 @@ - + diff --git a/docs/lima/installing.html b/docs/lima/installing.html index 197e8eef8af..332925bc2fe 100644 --- a/docs/lima/installing.html +++ b/docs/lima/installing.html @@ -13,7 +13,7 @@ - + diff --git a/docs/migrating-from-docker.html b/docs/migrating-from-docker.html index 4a909a4dd65..cc074a7084c 100644 --- a/docs/migrating-from-docker.html +++ b/docs/migrating-from-docker.html @@ -13,7 +13,7 @@ - + diff --git a/docs/migrating-from-docker/emulating-docker-cli-with-podman.html b/docs/migrating-from-docker/emulating-docker-cli-with-podman.html index ed21fb47970..aa7c99dab5b 100644 --- a/docs/migrating-from-docker/emulating-docker-cli-with-podman.html +++ b/docs/migrating-from-docker/emulating-docker-cli-with-podman.html @@ -13,7 +13,7 @@ - + diff --git a/docs/migrating-from-docker/importing-saved-containers.html b/docs/migrating-from-docker/importing-saved-containers.html index 5bc9b0cbad4..1309036f54a 100644 --- a/docs/migrating-from-docker/importing-saved-containers.html +++ b/docs/migrating-from-docker/importing-saved-containers.html @@ -13,7 +13,7 @@ - + diff --git a/docs/migrating-from-docker/using-podman-mac-helper.html b/docs/migrating-from-docker/using-podman-mac-helper.html index 897a167b305..0ff8d97bad3 100644 --- a/docs/migrating-from-docker/using-podman-mac-helper.html +++ b/docs/migrating-from-docker/using-podman-mac-helper.html @@ -13,7 +13,7 @@ - + diff --git a/docs/migrating-from-docker/using-the-docker_host-environment-variable.html b/docs/migrating-from-docker/using-the-docker_host-environment-variable.html index 85f7f0b7751..9dd68bcba5c 100644 --- a/docs/migrating-from-docker/using-the-docker_host-environment-variable.html +++ b/docs/migrating-from-docker/using-the-docker_host-environment-variable.html @@ -13,7 +13,7 @@ - + diff --git a/docs/migrating-from-docker/verifying-your-tools-are-using-podman.html b/docs/migrating-from-docker/verifying-your-tools-are-using-podman.html index 70416822ccd..ba6b21a647c 100644 --- a/docs/migrating-from-docker/verifying-your-tools-are-using-podman.html +++ b/docs/migrating-from-docker/verifying-your-tools-are-using-podman.html @@ -13,7 +13,7 @@ - + diff --git a/docs/minikube.html b/docs/minikube.html index 32031772aed..0948510f3e4 100644 --- a/docs/minikube.html +++ b/docs/minikube.html @@ -13,7 +13,7 @@ - + diff --git a/docs/minikube/building-an-image-and-testing-it-in-minikube.html b/docs/minikube/building-an-image-and-testing-it-in-minikube.html index d2fd6248bf9..240d604a602 100644 --- a/docs/minikube/building-an-image-and-testing-it-in-minikube.html +++ b/docs/minikube/building-an-image-and-testing-it-in-minikube.html @@ -13,7 +13,7 @@ - + diff --git a/docs/minikube/configuring-podman-for-minikube-on-windows.html b/docs/minikube/configuring-podman-for-minikube-on-windows.html index 16258affcdf..a9dca47178b 100644 --- a/docs/minikube/configuring-podman-for-minikube-on-windows.html +++ b/docs/minikube/configuring-podman-for-minikube-on-windows.html @@ -13,7 +13,7 @@ - + diff --git a/docs/minikube/creating-a-minikube-cluster.html b/docs/minikube/creating-a-minikube-cluster.html index 82f7cc71df5..5c6949a0e71 100644 --- a/docs/minikube/creating-a-minikube-cluster.html +++ b/docs/minikube/creating-a-minikube-cluster.html @@ -13,7 +13,7 @@ - + diff --git a/docs/minikube/deleting-your-minikube-cluster.html b/docs/minikube/deleting-your-minikube-cluster.html index cf7d0ec8d72..2982bfe27e1 100644 --- a/docs/minikube/deleting-your-minikube-cluster.html +++ b/docs/minikube/deleting-your-minikube-cluster.html @@ -13,7 +13,7 @@ - + diff --git a/docs/minikube/installing.html b/docs/minikube/installing.html index 0623882b29a..d4f4b44df3c 100644 --- a/docs/minikube/installing.html +++ b/docs/minikube/installing.html @@ -13,7 +13,7 @@ - + diff --git a/docs/minikube/pushing-an-image-to-minikube.html b/docs/minikube/pushing-an-image-to-minikube.html index 0c40b438d9f..b62e39a506b 100644 --- a/docs/minikube/pushing-an-image-to-minikube.html +++ b/docs/minikube/pushing-an-image-to-minikube.html @@ -13,7 +13,7 @@ - + diff --git a/docs/minikube/restarting-your-minikube-cluster.html b/docs/minikube/restarting-your-minikube-cluster.html index 6ed270b85d5..ba580d7df3f 100644 --- a/docs/minikube/restarting-your-minikube-cluster.html +++ b/docs/minikube/restarting-your-minikube-cluster.html @@ -13,7 +13,7 @@ - + diff --git a/docs/minikube/working-with-your-local-minikube-cluster.html b/docs/minikube/working-with-your-local-minikube-cluster.html index 1afa28ffcce..580b93d1ad2 100644 --- a/docs/minikube/working-with-your-local-minikube-cluster.html +++ b/docs/minikube/working-with-your-local-minikube-cluster.html @@ -13,7 +13,7 @@ - + diff --git a/docs/openshift.html b/docs/openshift.html index e842c15f0fb..ffd3e5fbdba 100644 --- a/docs/openshift.html +++ b/docs/openshift.html @@ -13,7 +13,7 @@ - + diff --git a/docs/openshift/developer-sandbox.html b/docs/openshift/developer-sandbox.html index ba57260e0e7..bc02c5b8213 100644 --- a/docs/openshift/developer-sandbox.html +++ b/docs/openshift/developer-sandbox.html @@ -13,7 +13,7 @@ - + diff --git a/docs/openshift/openshift-local.html b/docs/openshift/openshift-local.html index 942f17d3f4a..3f12b46ecac 100644 --- a/docs/openshift/openshift-local.html +++ b/docs/openshift/openshift-local.html @@ -13,7 +13,7 @@ - + diff --git a/docs/podman.html b/docs/podman.html index 62a93b28b41..f30bbefeafe 100644 --- a/docs/podman.html +++ b/docs/podman.html @@ -13,7 +13,7 @@ - + diff --git a/docs/podman/creating-a-podman-machine.html b/docs/podman/creating-a-podman-machine.html index bbb054e256f..e51e29a2202 100644 --- a/docs/podman/creating-a-podman-machine.html +++ b/docs/podman/creating-a-podman-machine.html @@ -13,7 +13,7 @@ - + diff --git a/docs/podman/installing-podman-with-openshift-local-on-windows.html b/docs/podman/installing-podman-with-openshift-local-on-windows.html index 461f7375c41..ab5c34e4154 100644 --- a/docs/podman/installing-podman-with-openshift-local-on-windows.html +++ b/docs/podman/installing-podman-with-openshift-local-on-windows.html @@ -13,7 +13,7 @@ - + diff --git a/docs/podman/installing.html b/docs/podman/installing.html index cb2152c6058..9f063ad152d 100644 --- a/docs/podman/installing.html +++ b/docs/podman/installing.html @@ -13,7 +13,7 @@ - + diff --git a/docs/podman/setting-podman-machine-default-connection.html b/docs/podman/setting-podman-machine-default-connection.html index 718b7d7570a..9a4c66953b0 100644 --- a/docs/podman/setting-podman-machine-default-connection.html +++ b/docs/podman/setting-podman-machine-default-connection.html @@ -13,7 +13,7 @@ - + diff --git a/docs/proxy.html b/docs/proxy.html index d73e69e4375..4be0d214abb 100644 --- a/docs/proxy.html +++ b/docs/proxy.html @@ -13,7 +13,7 @@ - + diff --git a/docs/proxy/using-a-proxy-in-your-containers.html b/docs/proxy/using-a-proxy-in-your-containers.html index 220cc81fa75..798881f7d65 100644 --- a/docs/proxy/using-a-proxy-in-your-containers.html +++ b/docs/proxy/using-a-proxy-in-your-containers.html @@ -13,7 +13,7 @@ - + diff --git a/docs/proxy/using-a-proxy-on-linux.html b/docs/proxy/using-a-proxy-on-linux.html index 52f5a61ae6b..af9dca9e194 100644 --- a/docs/proxy/using-a-proxy-on-linux.html +++ b/docs/proxy/using-a-proxy-on-linux.html @@ -13,7 +13,7 @@ - + diff --git a/docs/proxy/using-a-proxy-requiring-a-custom-ca.html b/docs/proxy/using-a-proxy-requiring-a-custom-ca.html index 4acb8d1918d..995ba28db5e 100644 --- a/docs/proxy/using-a-proxy-requiring-a-custom-ca.html +++ b/docs/proxy/using-a-proxy-requiring-a-custom-ca.html @@ -13,7 +13,7 @@ - + diff --git a/docs/proxy/using-a-proxy.html b/docs/proxy/using-a-proxy.html index b2eb038dce2..002c57009a6 100644 --- a/docs/proxy/using-a-proxy.html +++ b/docs/proxy/using-a-proxy.html @@ -13,7 +13,7 @@ - + diff --git a/docs/proxy/using-a-vpn-on-windows.html b/docs/proxy/using-a-vpn-on-windows.html index 57ce0c645e5..bcace720f83 100644 --- a/docs/proxy/using-a-vpn-on-windows.html +++ b/docs/proxy/using-a-vpn-on-windows.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags.html b/docs/tags.html index 5dab3c419a8..961597b6641 100644 --- a/docs/tags.html +++ b/docs/tags.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/chocolatey.html b/docs/tags/chocolatey.html index 4ec1ea9f219..5623075250e 100644 --- a/docs/tags/chocolatey.html +++ b/docs/tags/chocolatey.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/compose.html b/docs/tags/compose.html index 10e6371611a..d94e2007df4 100644 --- a/docs/tags/compose.html +++ b/docs/tags/compose.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/containers.html b/docs/tags/containers.html index 935892c0d7c..1bec3f5526a 100644 --- a/docs/tags/containers.html +++ b/docs/tags/containers.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/docker.html b/docs/tags/docker.html index e4b9ca17cb4..b4285ff1e73 100644 --- a/docs/tags/docker.html +++ b/docs/tags/docker.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/extension.html b/docs/tags/extension.html index fc7dd9cead9..d28844d3e12 100644 --- a/docs/tags/extension.html +++ b/docs/tags/extension.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/flathub.html b/docs/tags/flathub.html index a591a3a95c8..5d3cc9ac001 100644 --- a/docs/tags/flathub.html +++ b/docs/tags/flathub.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/flatpak.html b/docs/tags/flatpak.html index 0fb83f2881d..eb694d02f51 100644 --- a/docs/tags/flatpak.html +++ b/docs/tags/flatpak.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/images.html b/docs/tags/images.html index dace2d7e24a..fed9cfbd1fd 100644 --- a/docs/tags/images.html +++ b/docs/tags/images.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/installing.html b/docs/tags/installing.html index e11ff391a32..e55b68ace26 100644 --- a/docs/tags/installing.html +++ b/docs/tags/installing.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/kind.html b/docs/tags/kind.html index effcc81f684..093ab5196c6 100644 --- a/docs/tags/kind.html +++ b/docs/tags/kind.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/kubernetes.html b/docs/tags/kubernetes.html index 098b560f92c..95811698f59 100644 --- a/docs/tags/kubernetes.html +++ b/docs/tags/kubernetes.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/lima.html b/docs/tags/lima.html index 2b832adee0a..d17cac48d92 100644 --- a/docs/tags/lima.html +++ b/docs/tags/lima.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/linux.html b/docs/tags/linux.html index 363e21f6fd9..1242ee6ddb8 100644 --- a/docs/tags/linux.html +++ b/docs/tags/linux.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/mac-0-s.html b/docs/tags/mac-0-s.html index ee109d6be2c..7825d32c598 100644 --- a/docs/tags/mac-0-s.html +++ b/docs/tags/mac-0-s.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/mac-os.html b/docs/tags/mac-os.html index c1de629b9b7..97abab4db5a 100644 --- a/docs/tags/mac-os.html +++ b/docs/tags/mac-os.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/macos.html b/docs/tags/macos.html index 731f9521cb2..b0455ab5ddf 100644 --- a/docs/tags/macos.html +++ b/docs/tags/macos.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/migrating-from-docker.html b/docs/tags/migrating-from-docker.html index 78b0cd9750a..c8d543a469a 100644 --- a/docs/tags/migrating-from-docker.html +++ b/docs/tags/migrating-from-docker.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/migrating-to-kubernetes.html b/docs/tags/migrating-to-kubernetes.html index 6592b0b67d3..3568481f707 100644 --- a/docs/tags/migrating-to-kubernetes.html +++ b/docs/tags/migrating-to-kubernetes.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/minikube.html b/docs/tags/minikube.html index edaf415f8dc..d87953b7c25 100644 --- a/docs/tags/minikube.html +++ b/docs/tags/minikube.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/onboarding.html b/docs/tags/onboarding.html index 19399d57c27..b45fd933fd1 100644 --- a/docs/tags/onboarding.html +++ b/docs/tags/onboarding.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/openshift-local.html b/docs/tags/openshift-local.html index be14e138131..4935064dde1 100644 --- a/docs/tags/openshift-local.html +++ b/docs/tags/openshift-local.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/openshift.html b/docs/tags/openshift.html index e8c4b30b07d..b9b4c77039d 100644 --- a/docs/tags/openshift.html +++ b/docs/tags/openshift.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/podman-desktop.html b/docs/tags/podman-desktop.html index b4da196c137..ea5c3f68007 100644 --- a/docs/tags/podman-desktop.html +++ b/docs/tags/podman-desktop.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/podman.html b/docs/tags/podman.html index 0764e4af651..26db1d72a65 100644 --- a/docs/tags/podman.html +++ b/docs/tags/podman.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/pods.html b/docs/tags/pods.html index ef2f4637910..6dc4aa82042 100644 --- a/docs/tags/pods.html +++ b/docs/tags/pods.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/proxy.html b/docs/tags/proxy.html index b398322db22..18d19ca5509 100644 --- a/docs/tags/proxy.html +++ b/docs/tags/proxy.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/publishing.html b/docs/tags/publishing.html index e09e9ef7b75..7a06d7ae90d 100644 --- a/docs/tags/publishing.html +++ b/docs/tags/publishing.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/registries.html b/docs/tags/registries.html index 195750e201a..20c17a9044e 100644 --- a/docs/tags/registries.html +++ b/docs/tags/registries.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/restricted-environment.html b/docs/tags/restricted-environment.html index 89c36128281..5fda9fb0436 100644 --- a/docs/tags/restricted-environment.html +++ b/docs/tags/restricted-environment.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/scoop.html b/docs/tags/scoop.html index a2e66d287bb..2fae4d76fc3 100644 --- a/docs/tags/scoop.html +++ b/docs/tags/scoop.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/vpn.html b/docs/tags/vpn.html index 11f05fe18f7..e4ff46e3cec 100644 --- a/docs/tags/vpn.html +++ b/docs/tags/vpn.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/when-clause.html b/docs/tags/when-clause.html index 20705302374..b2f393197b3 100644 --- a/docs/tags/when-clause.html +++ b/docs/tags/when-clause.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/windows.html b/docs/tags/windows.html index e0a2f3c95c5..79b59d961e6 100644 --- a/docs/tags/windows.html +++ b/docs/tags/windows.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/winget.html b/docs/tags/winget.html index 67f4a569715..d12b1eb70d7 100644 --- a/docs/tags/winget.html +++ b/docs/tags/winget.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tags/writing.html b/docs/tags/writing.html index 8bb04d386cc..583be952413 100644 --- a/docs/tags/writing.html +++ b/docs/tags/writing.html @@ -13,7 +13,7 @@ - + diff --git a/docs/troubleshooting.html b/docs/troubleshooting.html index 1c848c67218..80919d1145e 100644 --- a/docs/troubleshooting.html +++ b/docs/troubleshooting.html @@ -13,7 +13,7 @@ - + diff --git a/docs/troubleshooting/troubleshooting-openshift-local.html b/docs/troubleshooting/troubleshooting-openshift-local.html index b452ecfebff..8693963819e 100644 --- a/docs/troubleshooting/troubleshooting-openshift-local.html +++ b/docs/troubleshooting/troubleshooting-openshift-local.html @@ -13,7 +13,7 @@ - + diff --git a/docs/troubleshooting/troubleshooting-podman-on-linux.html b/docs/troubleshooting/troubleshooting-podman-on-linux.html index 8034b651630..a1ac491bcb2 100644 --- a/docs/troubleshooting/troubleshooting-podman-on-linux.html +++ b/docs/troubleshooting/troubleshooting-podman-on-linux.html @@ -13,7 +13,7 @@ - + diff --git a/docs/troubleshooting/troubleshooting-podman-on-macos.html b/docs/troubleshooting/troubleshooting-podman-on-macos.html index 741c101681d..e6e008b75b7 100644 --- a/docs/troubleshooting/troubleshooting-podman-on-macos.html +++ b/docs/troubleshooting/troubleshooting-podman-on-macos.html @@ -13,7 +13,7 @@ - + diff --git a/docs/troubleshooting/troubleshooting-podman-on-windows.html b/docs/troubleshooting/troubleshooting-podman-on-windows.html index d304e722a61..13f1129cb52 100644 --- a/docs/troubleshooting/troubleshooting-podman-on-windows.html +++ b/docs/troubleshooting/troubleshooting-podman-on-windows.html @@ -13,7 +13,7 @@ - + diff --git a/docs/troubleshooting/troubleshooting-podman.html b/docs/troubleshooting/troubleshooting-podman.html index 6d0e2de1a05..2a8017d171a 100644 --- a/docs/troubleshooting/troubleshooting-podman.html +++ b/docs/troubleshooting/troubleshooting-podman.html @@ -13,7 +13,7 @@ - + diff --git a/downloads.html b/downloads.html index 2b30b8b6fe2..afbd8984b04 100644 --- a/downloads.html +++ b/downloads.html @@ -13,7 +13,7 @@ - + diff --git a/downloads/linux.html b/downloads/linux.html index f239aeb9f4c..c38ac35ff3f 100644 --- a/downloads/linux.html +++ b/downloads/linux.html @@ -13,7 +13,7 @@ - + diff --git a/downloads/macos.html b/downloads/macos.html index ae8b01b4b58..0d0d5652ca5 100644 --- a/downloads/macos.html +++ b/downloads/macos.html @@ -13,7 +13,7 @@ - + diff --git a/downloads/windows.html b/downloads/windows.html index 056a1b20dbc..ce20c49fa6b 100644 --- a/downloads/windows.html +++ b/downloads/windows.html @@ -13,7 +13,7 @@ - + diff --git a/extend.html b/extend.html index ecb0c928e97..cc9b7678882 100644 --- a/extend.html +++ b/extend.html @@ -13,7 +13,7 @@ - + diff --git a/features.html b/features.html index c0cdbf444cf..6facbac4571 100644 --- a/features.html +++ b/features.html @@ -13,7 +13,7 @@ - + diff --git a/index.html b/index.html index 8e244d58093..01e7daf619f 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,7 @@ - + diff --git a/search.html b/search.html index 35b668a2682..121b836470e 100644 --- a/search.html +++ b/search.html @@ -13,7 +13,7 @@ - +