<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">"use strict";(self.webpackChunkodo_dev=self.webpackChunkodo_dev||[]).push([[5305],{3905:(e,t,a)=&gt;{a.d(t,{Zo:()=&gt;h,kt:()=&gt;m});var o=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&amp;&amp;(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function n(e){for(var t=1;t&lt;arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?l(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function i(e,t){if(null==e)return{};var a,o,r=function(e,t){if(null==e)return{};var a,o,r={},l=Object.keys(e);for(o=0;o&lt;l.length;o++)a=l[o],t.indexOf(a)&gt;=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o&lt;l.length;o++)a=l[o],t.indexOf(a)&gt;=0||Object.prototype.propertyIsEnumerable.call(e,a)&amp;&amp;(r[a]=e[a])}return r}var p=o.createContext({}),d=function(e){var t=o.useContext(p),a=t;return e&amp;&amp;(a="function"==typeof e?e(t):n(n({},t),e)),a},h=function(e){var t=d(e.components);return o.createElement(p.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},s=o.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,p=e.parentName,h=i(e,["components","mdxType","originalType","parentName"]),s=d(a),m=r,c=s["".concat(p,".").concat(m)]||s[m]||u[m]||l;return a?o.createElement(c,n(n({ref:t},h),{},{components:a})):o.createElement(c,n({ref:t},h))}));function m(e,t){var a=arguments,r=t&amp;&amp;t.mdxType;if("string"==typeof e||r){var l=a.length,n=new Array(l);n[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&amp;&amp;(i[p]=t[p]);i.originalType=e,i.mdxType="string"==typeof e?e:r,n[1]=i;for(var d=2;d&lt;l;d++)n[d]=a[d];return o.createElement.apply(null,n)}return o.createElement.apply(null,a)}s.displayName="MDXCreateElement"},7496:(e,t,a)=&gt;{a.r(t),a.d(t,{assets:()=&gt;p,contentTitle:()=&gt;n,default:()=&gt;u,frontMatter:()=&gt;l,metadata:()=&gt;i,toc:()=&gt;d});var o=a(7462),r=(a(7294),a(3905));const l={title:"odo v3.0.0-rc1 Released",author:"Philippe Martin",author_url:"https://github.com/feloy",author_image_url:"https://github.com/feloy.png",tags:["release"],slug:"odo-v3-rc1-release"},n=void 0,i={permalink:"/blog/odo-v3-rc1-release",editUrl:"https://github.com/redhat-developer/odo/edit/main/docs/website/blog/2022-09-01-odo-v3-rc1.md",source:"@site/blog/2022-09-01-odo-v3-rc1.md",title:"odo v3.0.0-rc1 Released",description:"3.0.0-rc1 of odo has been released!",date:"2022-09-01T00:00:00.000Z",formattedDate:"September 1, 2022",tags:[{label:"release",permalink:"/blog/tags/release"}],readingTime:3.445,hasTruncateMarker:!0,authors:[{name:"Philippe Martin",url:"https://github.com/feloy",imageURL:"https://github.com/feloy.png"}],frontMatter:{title:"odo v3.0.0-rc1 Released",author:"Philippe Martin",author_url:"https://github.com/feloy",author_image_url:"https://github.com/feloy.png",tags:["release"],slug:"odo-v3-rc1-release"},prevItem:{title:"odo v3.0.0-rc2 Released",permalink:"/blog/odo-v3-rc2-release"},nextItem:{title:"odo v3.0.0-beta3 Released",permalink:"/blog/odo-v3-beta3-release"}},p={authorsImageUrls:[void 0]},d=[{value:"Note about Release Candidate",id:"note-about-release-candidate",level:2},{value:"Notable Changes",id:"notable-changes",level:2},{value:"Features",id:"features",level:3},{value:"odo dev and odo deploy now always work on current Kubernetes namespace (#6025)",id:"odo-dev-and-odo-deploy-now-always-work-on-current-kubernetes-namespace-6025",level:4},{value:"odo list: show the component manager version (#6028)",id:"odo-list-show-the-component-manager-version-6028",level:4},{value:"odo list displaying components and bindings (#6043)",id:"odo-list-displaying-components-and-bindings-6043",level:4},{value:"odo no longer requires the optional &amp;#39;metadata.name&amp;#39; field in Devfile (#6015)",id:"odo-no-longer-requires-the-optional-metadataname-field-in-devfile-6015",level:4},{value:"odo using alizer name detection with odo init (#5989)",id:"odo-using-alizer-name-detection-with-odo-init-5989",level:4},{value:"Detailed Changelog",id:"detailed-changelog",level:2}],h={toc:d};function u(e){let{components:t,...a}=e;return(0,r.kt)("wrapper",(0,o.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"3.0.0-rc1")," of odo has been released!"),(0,r.kt)("p",null,"To install ",(0,r.kt)("inlineCode",{parentName:"p"},"odo"),", follow our installation guide at ",(0,r.kt)("a",{parentName:"p",href:"../docs/overview/installation"},"odo.dev")),(0,r.kt)("h2",{id:"note-about-release-candidate"},"Note about Release Candidate"),(0,r.kt)("p",null,"With rc1, we are feature complete with the following exceptions:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"odo list services (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/5996"},"#","5996"),")"),(0,r.kt)("li",{parentName:"ul"},"ability to turn off auto restart and trigger sync manually in odo dev (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/5634"},"#","5634"),")")),(0,r.kt)("p",null,"Our GA release will include:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Onboarding updates, including updates to the Quickstart guide"),(0,r.kt)("li",{parentName:"ul"},"Video tutorial")),(0,r.kt)("h2",{id:"notable-changes"},"Notable Changes"),(0,r.kt)("p",null,"Check this Playlist for an overview of the most notable changes in this release:\n",(0,r.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=OM8WjhGhdmw&amp;list=PLGMB2PY4SNOpvdCgJjgp-91Z3wh9eyatV"},"https://www.youtube.com/watch?v=OM8WjhGhdmw&amp;list=PLGMB2PY4SNOpvdCgJjgp-91Z3wh9eyatV")),(0,r.kt)("h3",{id:"features"},"Features"),(0,r.kt)("h4",{id:"odo-dev-and-odo-deploy-now-always-work-on-current-kubernetes-namespace-6025"},"odo dev and odo deploy now always work on current Kubernetes namespace (",(0,r.kt)("a",{parentName:"h4",href:"https://github.com/redhat-developer/odo/pull/6025"},"#6025"),")"),(0,r.kt)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/OM8WjhGhdmw",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0}),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"odo dev")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"odo deploy")," are now always working on the current Kubernetes namespace, and are no longer saving the namespace on which they are working in a local file."),(0,r.kt)("h4",{id:"odo-list-show-the-component-manager-version-6028"},"odo list: show the component manager version (",(0,r.kt)("a",{parentName:"h4",href:"https://github.com/redhat-developer/odo/pull/6028"},"#6028"),")"),(0,r.kt)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/vJsCink8M-w",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0}),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"odo list")," now outputs the version of the manager used to deploy a component, as described in the ",(0,r.kt)("inlineCode",{parentName:"p"},"app.kubernetes.io/managed-by-version")," label of the component's deployment."),(0,r.kt)("h4",{id:"odo-list-displaying-components-and-bindings-6043"},"odo list displaying components and bindings (",(0,r.kt)("a",{parentName:"h4",href:"https://github.com/redhat-developer/odo/pull/6043"},"#6043"),")"),(0,r.kt)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/aWxb_GXLW_w",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0}),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"odo list")," combines the output of ",(0,r.kt)("inlineCode",{parentName:"p"},"odo list component")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"odo list binding"),", for human-readable and JSON output."),(0,r.kt)("h4",{id:"odo-no-longer-requires-the-optional-metadataname-field-in-devfile-6015"},"odo no longer requires the optional 'metadata.name' field in Devfile (",(0,r.kt)("a",{parentName:"h4",href:"https://github.com/redhat-developer/odo/pull/6015"},"#6015"),")"),(0,r.kt)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/20QOOAwil8M",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0}),(0,r.kt)("p",null,"If the ",(0,r.kt)("inlineCode",{parentName:"p"},"metadata.name")," field is present in the Devfile, it is used as name of the deployed component. If not present, odo tries to detect the name automatically based on the project configuration. If this is not possible, the directory name is used instead."),(0,r.kt)("h4",{id:"odo-using-alizer-name-detection-with-odo-init-5989"},"odo using alizer name detection with odo init (",(0,r.kt)("a",{parentName:"h4",href:"https://github.com/redhat-developer/odo/pull/5989"},"#5989"),")"),(0,r.kt)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/q5pNWLSjhk8",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:!0}),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"odo init")," detects the project name via pom.xml (java), package.json (node.js), etc using alizer. If the detection fails, defaults to using the directory name."),(0,r.kt)("h2",{id:"detailed-changelog"},"Detailed Changelog"),(0,r.kt)("p",null,"As with every release, you can find the full list of changes and bug fixes on the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/redhat-developer/odo/releases/tag/v3.0.0-rc1"},"GitHub release page")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Features/Enhancements:")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},'Implement "odo list" ',(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6043"},"#","6043")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/feloy"},"feloy"),")"),(0,r.kt)("li",{parentName:"ul"},"odo list: add odo version used to create a component to the output ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6028"},"#","6028")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/valaparthvi"},"valaparthvi"),")"),(0,r.kt)("li",{parentName:"ul"},"Do not get project from env.yaml file ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6025"},"#","6025")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/feloy"},"feloy"),")"),(0,r.kt)("li",{parentName:"ul"},"Make odo work if optional ",(0,r.kt)("inlineCode",{parentName:"li"},"metadata.name")," field is missing in Devfile ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6015"},"#","6015")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/rm3l"},"rm3l"),")"),(0,r.kt)("li",{parentName:"ul"},"Autodetect project name via Alizer ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/5989"},"#","5989")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cdrage"},"cdrage"),")"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"odo dev"),": Add support for non-exec commands part of a composite run or debug command ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/5923"},"#","5923")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/valaparthvi"},"valaparthvi"),")")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Bugs:")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Update errors.go ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6059"},"#","6059")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/MahendraBishnoi29"},"MahendraBishnoi29"),")"),(0,r.kt)("li",{parentName:"ul"},"Do not use env.yaml file anymore ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6057"},"#","6057")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/feloy"},"feloy"),")"),(0,r.kt)("li",{parentName:"ul"},"Ignore notfound error on delete ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6055"},"#","6055")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/feloy"},"feloy"),")"),(0,r.kt)("li",{parentName:"ul"},"deploymentExists different from component running ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6048"},"#","6048")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/feloy"},"feloy"),")"),(0,r.kt)("li",{parentName:"ul"},"Do not send userId to registry when ODO","_","DEBUG","_","TELEMETRY","_","FILE is set ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6031"},"#","6031")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/feloy"},"feloy"),")"),(0,r.kt)("li",{parentName:"ul"},"Fix: ServiceBinding resources are not deployed with odo deploy ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6029"},"#","6029")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/valaparthvi"},"valaparthvi"),")"),(0,r.kt)("li",{parentName:"ul"},"odo dev: Cleanup after displaying the error ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6024"},"#","6024")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/feloy"},"feloy"),")"),(0,r.kt)("li",{parentName:"ul"},"Fix: Non odo components not reported ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6021"},"#","6021")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/valaparthvi"},"valaparthvi"),")"),(0,r.kt)("li",{parentName:"ul"},"Watch for devfile dependencies ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6020"},"#","6020")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/feloy"},"feloy"),")"),(0,r.kt)("li",{parentName:"ul"},"Restart port forwarding on failure ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6013"},"#","6013")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/feloy"},"feloy"),")"),(0,r.kt)("li",{parentName:"ul"},"Remove command: odo project ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6008"},"#","6008")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/valaparthvi"},"valaparthvi"),")"),(0,r.kt)("li",{parentName:"ul"},"Enhance error message when user runs from a non-component directory ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6006"},"#","6006")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/valaparthvi"},"valaparthvi"),")"),(0,r.kt)("li",{parentName:"ul"},"Allow specifying message to end the spinner with ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/5972"},"#","5972")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/dharmit"},"dharmit"),")")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Documentation:")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Update site index page with lighter font ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6035"},"#","6035")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cdrage"},"cdrage"),")"),(0,r.kt)("li",{parentName:"ul"},"Add blog post for v3.0.0-beta3 and update installation docs ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6032"},"#","6032")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/valaparthvi"},"valaparthvi"),")"),(0,r.kt)("li",{parentName:"ul"},"Add blog post for v3.0.0-beta3 and update installation docs ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6019"},"#","6019")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/valaparthvi"},"valaparthvi"),")"),(0,r.kt)("li",{parentName:"ul"},"Document how odo works with projects/namespaces ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6009"},"#","6009")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/valaparthvi"},"valaparthvi"),")")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Testing/CI:")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"fix flake and use operatorhub to install EDB ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6004"},"#","6004")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/anandrkskd"},"anandrkskd"),")")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Merged pull requests:")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Bump to version 3.0.0-rc1 ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6064"},"#","6064")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/feloy"},"feloy"),")"),(0,r.kt)("li",{parentName:"ul"},"Update script to support alpha/beta/rc versions ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6063"},"#","6063")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/feloy"},"feloy"),")"),(0,r.kt)("li",{parentName:"ul"},"update to OpenShift 4.11 ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6060"},"#","6060")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/kadel"},"kadel"),")"),(0,r.kt)("li",{parentName:"ul"},"Troubleshoot IBM Cloud Windows tests failing ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6038"},"#","6038")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/feloy"},"feloy"),")"),(0,r.kt)("li",{parentName:"ul"},"test: use ",(0,r.kt)("inlineCode",{parentName:"li"},"T.Setenv")," to set env vars in tests ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6037"},"#","6037")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/Juneezee"},"Juneezee"),")"),(0,r.kt)("li",{parentName:"ul"},'Revert "Add blog post for v3.0.0-beta3 and update installation docs" ',(0,r.kt)("a",{parentName:"li",href:"https://github.com/redhat-developer/odo/pull/6030"},"#","6030")," (",(0,r.kt)("a",{parentName:"li",href:"https://github.com/cdrage"},"cdrage"),")")))}u.isMDXComponent=!0}}]);</pre></body></html>