|
| 1 | +--- |
| 2 | +title: odo v3.12.0 Released |
| 3 | +author: Armel Soro |
| 4 | +author_url: https://github.com/rm3l |
| 5 | +author_image_url: https://github.com/rm3l.png |
| 6 | +image: https://raw.githubusercontent.com/redhat-developer/odo/main/docs/website/static/img/logo.png |
| 7 | +tags: ["release"] |
| 8 | +slug: odo-v3.12.0 |
| 9 | +--- |
| 10 | + |
| 11 | +odo `v3.12.0` is now out! |
| 12 | + |
| 13 | +<!--truncate--> |
| 14 | + |
| 15 | +To install `odo`, follow [the installation guide](../docs/overview/installation). |
| 16 | + |
| 17 | +## Notable Changes |
| 18 | +Check these playlists for an overview of the most notable changes in this release: |
| 19 | +- [Sprint 239](https://youtube.com/playlist?list=PLGMB2PY4SNOp4BahHQMM0itX95TL-WXPP) |
| 20 | +- [`odo v3.12.0` (Sprint 240)](https://youtube.com/playlist?list=PLGMB2PY4SNOpRVyAmNcqgaZ08DuurOyFq) |
| 21 | + |
| 22 | +### Features |
| 23 | + |
| 24 | +#### Nightly binaries |
| 25 | + |
| 26 | +To make it easier to try out new features of `odo`, you no longer need to wait until a new version is released. |
| 27 | +We now publish nightly builds of `odo` with any changes that have been merged into the `main` branch at that time. |
| 28 | + |
| 29 | +:::caution |
| 30 | +Bear in mind that such builds are provided as is and might be highly unstable. |
| 31 | +::: |
| 32 | + |
| 33 | +Find out more on the [installation page](/docs/overview/installation#nightly-builds) for instructions on how to download and install nightly builds. |
| 34 | + |
| 35 | +#### Full control over the application lifecycle with `odo dev --no-commands` and `odo run` |
| 36 | + |
| 37 | +Prior to v3.12.0, `odo dev` would implicitly run the `build` and `run`/`debug` commands automatically, and users had no control over the commands execution. |
| 38 | +To give users more control over the lifecycle of their applications, we wanted to make it possible to not only start a Dev Session without any assumptions on the commands, |
| 39 | +but also to run any command manually at any time. |
| 40 | + |
| 41 | +The new `--no-commands` option allows to start a Dev Session without implicitly running the `build` and `run`/`debug` commands, |
| 42 | +and the new `odo run` command allows to run any command from the Devfile against an already-running Dev session. |
| 43 | + |
| 44 | +To make the most out of this workflow, users can: |
| 45 | +1. start a Dev session without executing any commands, with [`odo dev --commands`](/docs/command-reference/dev#running-with-no-commands) |
| 46 | + <iframe width="560" height="315" src="https://www.youtube.com/embed/WPfa5Wx22jk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> |
| 47 | +2. at any time, and in a separate terminal, run any commands defined in the Devfile, with [`odo run`](/docs/command-reference/run) |
| 48 | + <iframe width="560" height="315" src="https://www.youtube.com/embed/xyajkN6V0So" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> |
| 49 | + |
| 50 | +To make it easier to discover all the commands that are defined in the Devfile, we will be changing the output of `odo describe component`, |
| 51 | +so display the list of commands from the Devfile. |
| 52 | +[This](https://github.com/redhat-developer/odo/issues/6892) will be available in the upcoming v3.13.0, but you can already give it a try by |
| 53 | +downloading a [nightly build](/docs/overview/installation#nightly-builds). |
| 54 | + |
| 55 | + |
| 56 | +#### Syncing `.git` directory is now possible when running `odo dev` |
| 57 | + |
| 58 | +`odo dev` now has a new `--sync-git-dir` option, allowing to synchronize the `.git` folder (which might be huge) into the Dev container. |
| 59 | +By default, the `.git` folder is not synchronized, but this option can be helpful for applications that rely on the Git history. |
| 60 | + |
| 61 | +<iframe width="560" height="315" src="https://www.youtube.com/embed/UjziIgesTyA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> |
| 62 | + |
| 63 | + |
| 64 | +#### JSON output for `odo version` and Podman version if available |
| 65 | + |
| 66 | +`odo version` now displays the version of Podman if available, which should allow users to determine if they can use `odo` against Podman or not. |
| 67 | +Note that we have a timeout of `1s` for Podman to return a response, otherwise it will be considered unavailable. |
| 68 | +But this value is configurable via the [`PODMAN_CMD_INIT_TIMEOUT` environment variable](/docs/overview/configure#environment-variables-controlling-odo-behavior). |
| 69 | + |
| 70 | +We are also adding JSON support for the output of `odo version`. Find out more on the [JSON Output](/docs/command-reference/json-output#odo-version--o-json) documentation. |
| 71 | + |
| 72 | + |
| 73 | +#### [Experimental] API Server to control a running `odo dev` session |
| 74 | + |
| 75 | +To make it easier to interact with Dev Sessions, we are introducing an experimental feature of starting an API Server based off of [this OpenAPI specification](https://github.com/redhat-developer/odo/blob/main/ododevapispec.yaml). |
| 76 | +The rationale behind this is to simplify interactions with running Dev Sessions, while paving the way to building awesome things on top of this API server. |
| 77 | + |
| 78 | +At the moment, we have endpoints for: |
| 79 | +- controlling the `odo dev` instance (getting details about it, or even stop it) |
| 80 | +- getting details about the running component and its Devfile |
| 81 | +- sending requests for re-pushing, exactly as if the `p` key was pressed in the terminal running `odo dev` |
| 82 | + |
| 83 | +See the demo below for more details: |
| 84 | + |
| 85 | +<iframe width="560" height="315" src="https://www.youtube.com/embed/mB8vOJGWDvE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> |
| 86 | + |
| 87 | +Note that this is currently an opt-in feature. To try it out, please enable the experimental mode and run `odo dev` with the `--api-server` flag, e.g.: |
| 88 | + |
| 89 | +```shell |
| 90 | +ODO_EXPERIMENTAL_MODE=t odo dev --api-server |
| 91 | +``` |
| 92 | + |
| 93 | +<details> |
| 94 | +<summary>Example output</summary> |
| 95 | + |
| 96 | +```shell |
| 97 | +$ ODO_EXPERIMENTAL_MODE=t odo dev --api-server |
| 98 | + |
| 99 | +============================================================================ |
| 100 | +⚠ Experimental mode enabled. Use at your own risk. |
| 101 | +More details on https://odo.dev/docs/user-guides/advanced/experimental-mode |
| 102 | +============================================================================ |
| 103 | + |
| 104 | + __ |
| 105 | + / \__ Developing using the "odo-dev" Devfile |
| 106 | + \__/ \ Namespace: demo-api-server |
| 107 | + / \__/ odo version: v3.12.0 |
| 108 | + \__/ |
| 109 | + |
| 110 | +↪ Running on the cluster in Dev mode |
| 111 | +I0703 17:46:42.977459 609287 starterserver.go:58] API Server started at localhost:20000/api/v1 |
| 112 | + • Waiting for Kubernetes resources ... |
| 113 | + ⚠ Pod is Pending |
| 114 | + ✓ Pod is Running |
| 115 | + ✓ Syncing files into the container [2s] |
| 116 | + ✓ Executing post-start command in container (command: 0-install-yarn) [2s] |
| 117 | + ✓ Building your application in container (command: doc-install-deps) [22s] |
| 118 | + • Executing the application (command: doc-start) ... |
| 119 | + ✓ Waiting for the application to be ready [1s] |
| 120 | + - Forwarding from 127.0.0.1:20001 -> 3000 |
| 121 | + |
| 122 | +↪ Dev mode |
| 123 | + Status: |
| 124 | + Watching for changes in the current directory /home/asoro/work/projects/odo/docs/website |
| 125 | + |
| 126 | + Keyboard Commands: |
| 127 | +[Ctrl+c] - Exit and delete resources from the cluster |
| 128 | + [p] - Manually apply local changes to the application on the cluster |
| 129 | +``` |
| 130 | +
|
| 131 | +</details> |
| 132 | +
|
| 133 | +From there, you can see from the output of `odo dev` where the API Server is exposed (hint: `API Server started at localhost:20000/api/v1`). |
| 134 | +
|
| 135 | +
|
| 136 | +## Detailed Changelog |
| 137 | +
|
| 138 | +As with every release, you can find the full list of changes and bug fixes on the [GitHub release page](https://github.com/redhat-developer/odo/releases/tag/v3.12.0). |
| 139 | +
|
| 140 | +[Full Changelog](https://github.com/redhat-developer/odo/compare/v3.11.0...v3.12.0) |
| 141 | +
|
| 142 | +**Features/Enhancements:** |
| 143 | +
|
| 144 | +- Implement API endpoints [\#6915](https://github.com/redhat-developer/odo/pull/6915) ([feloy](https://github.com/feloy)) |
| 145 | +- Add podman version to odo version output [\#6913](https://github.com/redhat-developer/odo/pull/6913) ([valaparthvi](https://github.com/valaparthvi)) |
| 146 | +- Add --sync-git-dir flag to odo dev [\#6910](https://github.com/redhat-developer/odo/pull/6910) ([feloy](https://github.com/feloy)) |
| 147 | +- Display outputs when executing `odo run` [\#6865](https://github.com/redhat-developer/odo/pull/6865) ([feloy](https://github.com/feloy)) |
| 148 | +- Add an `odo run` command to manually execute command during `odo dev` [\#6857](https://github.com/redhat-developer/odo/pull/6857) ([feloy](https://github.com/feloy)) |
| 149 | +- Implement `odo dev --no-commands` [\#6855](https://github.com/redhat-developer/odo/pull/6855) ([rm3l](https://github.com/rm3l)) |
| 150 | +- Implement HTTP Server based on OpenAPI spec [\#6835](https://github.com/redhat-developer/odo/pull/6835) ([valaparthvi](https://github.com/valaparthvi)) |
| 151 | +
|
| 152 | +**Bugs:** |
| 153 | +
|
| 154 | +- List namespace right after namespace has been created [\#6922](https://github.com/redhat-developer/odo/pull/6922) ([valaparthvi](https://github.com/valaparthvi)) |
| 155 | +- Do not necessarily error out if `odo dev` is stopped via `Ctrl+C` [\#6917](https://github.com/redhat-developer/odo/pull/6917) ([rm3l](https://github.com/rm3l)) |
| 156 | +- Do not return an error in `odo analyze` if current directory contains an invalid Devfile [\#6905](https://github.com/redhat-developer/odo/pull/6905) ([rm3l](https://github.com/rm3l)) |
| 157 | +- Make sure the "Syncing files into the container" spinner is displayed on Podman [\#6863](https://github.com/redhat-developer/odo/pull/6863) ([rm3l](https://github.com/rm3l)) |
| 158 | +- Bump Alizer to fix potential panic when analyzing large projects [\#6926](https://github.com/redhat-developer/odo/pull/6926) ([rm3l](https://github.com/rm3l)) |
| 159 | +
|
| 160 | +**Documentation:** |
| 161 | +
|
| 162 | +- Website: Bump webpack from 5.85.0 to 5.88.0 in /docs/website [\#6930](https://github.com/redhat-developer/odo/pull/6930) ([dependabot[bot]](https://github.com/apps/dependabot)) |
| 163 | +- Website: Bump browserslist from 4.21.5 to 4.21.9 in /docs/website [\#6909](https://github.com/redhat-developer/odo/pull/6909) ([dependabot[bot]](https://github.com/apps/dependabot)) |
| 164 | +- Website: Bump `@docusaurus/*` from 2.4.0 to 2.4.1 in /docs/website [\#6877](https://github.com/redhat-developer/odo/pull/6877) ([dependabot[bot]](https://github.com/apps/dependabot)) |
| 165 | +
|
| 166 | +**Testing/CI:** |
| 167 | +
|
| 168 | +- Fix potential issue in `odo version` nightly tests if user does not have permission to get the OpenShift version [\#6933](https://github.com/redhat-developer/odo/pull/6933) ([rm3l](https://github.com/rm3l)) |
| 169 | +- Send tests results to Sheet [\#6873](https://github.com/redhat-developer/odo/pull/6873) ([feloy](https://github.com/feloy)) |
| 170 | +- Skip tests if all changes in docs [\#6870](https://github.com/redhat-developer/odo/pull/6870) ([feloy](https://github.com/feloy)) |
| 171 | +- Temporarily downgrade Podman on GitHub to fix CI failures for Podman tests [\#6928](https://github.com/redhat-developer/odo/pull/6928) ([rm3l](https://github.com/rm3l)) |
| 172 | +- Skip IBM Cloud tests for changes that do not affect odo behavior [\#6924](https://github.com/redhat-developer/odo/pull/6924) ([valaparthvi](https://github.com/valaparthvi)) |
| 173 | +- Stop test as soon as expectation is verified [\#6891](https://github.com/redhat-developer/odo/pull/6891) ([feloy](https://github.com/feloy)) |
| 174 | +- Set FsGroup for spring boot test [\#6931](https://github.com/redhat-developer/odo/pull/6931) ([feloy](https://github.com/feloy)) |
| 175 | +- Fix service binding skip on Windows [\#6929](https://github.com/redhat-developer/odo/pull/6929) ([feloy](https://github.com/feloy)) |
| 176 | +- Disable service binding related integration tests [\#6920](https://github.com/redhat-developer/odo/pull/6920) ([feloy](https://github.com/feloy)) |
| 177 | +- Improve website PR preview workflow [\#6907](https://github.com/redhat-developer/odo/pull/6907) ([rm3l](https://github.com/rm3l)) |
| 178 | +- Replace odo delete component integration with unit tests [\#6904](https://github.com/redhat-developer/odo/pull/6904) ([feloy](https://github.com/feloy)) |
| 179 | +- Refactor StartDevMode to return a single object instead of multiple args [\#6886](https://github.com/redhat-developer/odo/pull/6886) ([valaparthvi](https://github.com/valaparthvi)) |
| 180 | +- Unit tests/inject test clientset [\#6874](https://github.com/redhat-developer/odo/pull/6874) ([feloy](https://github.com/feloy)) |
| 181 | +- \[Dogfooding\] Create website deploy previews for PRs using `odo deploy` [\#6871](https://github.com/redhat-developer/odo/pull/6871) ([rm3l](https://github.com/rm3l)) |
| 182 | +
|
| 183 | +**Merged pull requests:** |
| 184 | +
|
| 185 | +- Bump version to 3.12.0 [\#6935](https://github.com/redhat-developer/odo/pull/6935) ([rm3l](https://github.com/rm3l)) |
| 186 | +- Build nightly binaries of odo and make them available \(via IBM Cloud Object Storage\) [\#6875](https://github.com/redhat-developer/odo/pull/6875) ([rm3l](https://github.com/rm3l)) |
| 187 | +- Mark issues and pull requests as stale [\#6872](https://github.com/redhat-developer/odo/pull/6872) ([ritudes](https://github.com/ritudes)) |
| 188 | +- Website: Bump webpack from 5.81.0 to 5.85.0 in /docs/website [\#6868](https://github.com/redhat-developer/odo/pull/6868) ([dependabot[bot]](https://github.com/apps/dependabot)) |
| 189 | +- Go: Bump github.com/segmentio/backo-go from 1.0.1-0.20200129164019-23eae7c10bd3 to 1.0.1 [\#6851](https://github.com/redhat-developer/odo/pull/6851) ([dependabot[bot]](https://github.com/apps/dependabot)) |
| 190 | +- Fix GitHub labels in release changelog generator script and PR template [\#6916](https://github.com/redhat-developer/odo/pull/6916) ([rm3l](https://github.com/rm3l)) |
| 191 | +
|
| 192 | +
|
| 193 | +## Contributing to odo |
| 194 | +
|
| 195 | +If `odo` interests you, and you would like to contribute to it, we welcome you! |
| 196 | +
|
| 197 | +You can contribute to `odo` in a lot of different ways! |
| 198 | +
|
| 199 | +Take it for a spin 🚘 and report back bugs🐞 that you encountered, or features🌟 that you would like to see. |
| 200 | +
|
| 201 | +Help us with the documentation📜, or tell us how you used `odo` 🖍. |
| 202 | +
|
| 203 | +Review the PRs👀, or help us fix a failing test 🚩. |
| 204 | +
|
| 205 | +Work on the TODOs📝, or help us cleanup the code🚮. |
| 206 | +
|
| 207 | +Or, simply tune in📻 to our [contributor calls](https://github.com/redhat-developer/odo#meetings) and learn more about `odo`. |
| 208 | +
|
| 209 | +`odo` is your playground! |
| 210 | +
|
| 211 | +Read the developer reference guide on [contributing to odo](/docs/development/contribution) to know more. |
0 commit comments