diff --git a/cli/pyproject.toml b/cli/pyproject.toml index 9e81d9392..49f571afe 100644 --- a/cli/pyproject.toml +++ b/cli/pyproject.toml @@ -6,7 +6,7 @@ [tool.poetry] name = "cloe-launch" -version = "0.21.0" +version = "0.22.0" description = "Launch cloe-engine with Conan profiles." license = "Apache-2.0" authors = [ diff --git a/cli/setup.py b/cli/setup.py index 4cef82354..f3caabade 100644 --- a/cli/setup.py +++ b/cli/setup.py @@ -12,7 +12,7 @@ setup( long_description=readme, name="cloe-launch", - version="0.20.0", + version="0.22.0", description="Launch cloe-engine with Conan profiles.", python_requires="==3.*,>=3.6.0", author="Robert Bosch GmbH", diff --git a/docs/changelog.rst b/docs/changelog.rst index a07298652..c1a4798e8 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -58,6 +58,44 @@ readable perspective on new releases. Note that the most recent release is at the *top* of the document. +0.22.0 (2024-03-28) +------------------- + +This is the fifth public minor release of the Cloe packages. +Read all about it :doc:`here `. + +**Core Libraries:** + +- fable: Use std::string instead of std::string&& for constructors `[2084ca03] `_ +- fable: Use C++17 type traits with _t and _v suffixes `[1b659be3] `_ +- fable: Fix excessive compilation duration `[6700c73d] `_ +- fable: Add example stress test with generated code `[6113b487] `_ + +- models: Add lane sensor functional `[c0f7c844] `_ + +- osi: Return reference to osi3::SensorData instead of shared_ptr `[a2283b9e] `_ +- osi: Skip polygonal objects `[bdf616fa] `_ +- osi: Write debug files to /tmp `[a5d5f7e4] `_ +- osi: Merge OsiSensor into cloe-osi `[ddff0cb2] `_ +- osi: Fix lane boundary point order `[865668e7] `_ +- osi: Renaming and cleanup `[26dde038] `_ +- osi: Initial commit of message handler and utils `[1eb0a156] `_ + +**Plugins:** + +- clothoid_fit: Add frustum culling `[957cfe74] `_ +- clothoid_fit: Add lane boundary clothoid fitting plugin `[c3b7e2cd] `_ + +- esmini: Move from optional to base `[c16fab70] `_ +- esmini: Fix received osi data `[a9412f89] `_ +- esmini: Initial commit of simulator binding `[e516a72a] `_ + +**Tooling & Dependencies:** + +- tooling: Add targets to Makefile.docker for building and running dev container `[8e766a27] `_ +- tooling: Fail when smoketest-deps fails `[c0e9c043] `_ +- vendor: Add esmini/2.37.4 `[ecf30691] `_ + 0.21.0 (2024-02-02) ------------------- diff --git a/docs/news.rst b/docs/news.rst index d5b31731f..7a3435582 100644 --- a/docs/news.rst +++ b/docs/news.rst @@ -23,10 +23,28 @@ News :hidden: :maxdepth: 1 + news/release-0.22.0 news/release-0.21.0 news/release-0.20.0 news/release-0.19.0 +:doc:`Version 0.22.0 Release ` +--------------------------------------------------- + +This version includes the initial release of the ESMini simulator +plugin binding. + +The cloe-osi library is introduced for a re-usable mechanism of +handling and converting Open Simulation Interface data. + +The clothoid-fit component plugin for lane boundaries makes its +entrance. + +Finally, compile-time improvements for the fable library radically +speed up the compilation of code that use the `make_schema` functions. + +Read all about it :doc:`here `. + :doc:`Version 0.21.0 Release ` --------------------------------------------------- diff --git a/docs/news/release-0.22.0.md b/docs/news/release-0.22.0.md new file mode 100644 index 000000000..d247cef86 --- /dev/null +++ b/docs/news/release-0.22.0.md @@ -0,0 +1,144 @@ +# Version 0.22.0 Release + +This version comes relatively soon after the previous version, +but includes some additions that have been several months in the +making. + +For the entire changelog, see the [Git commit history](https://github.com/eclipse/cloe/compare/v0.21.0...v0.22.0). + +## ESMini Simulator Plugin + +This release marks the initial release of the ESMini simulator +plugin binding. + +You can use it by adding it to your test configuration `conanfile.py` +at the appropriate location: + +```python +require("cloe-plugin-esmini/0.22.0@cloe/develop") +``` + +The ESMini simulator uses OpenScenario XML files as inputs, and +this needs to be configured in the stackfile in order for you +to use it: + +```yaml +version: "4" +simulators: + binding: esmini + args: + headless: true + scenario: "${ESMINI_XOSC_PATH}/test-driver.xosc" + vehicles: + Ego: + closed_loop: true + filter_distance: 200.0 +vehicles: + name: default + from: + simulator: esmini + index: 0 +``` + +The `${ESMINI_XOSC_PATH}` is defined by the `esmini-data` Conan package +and made available in the environment through `cloe-launch`. (You +can of course use your own environment variables if you want, +or none at all.) + +The above example code assumes it will integrate in an existing vehicle +and controller configuration and be passed to cloe-engine as JSON. + +See {doc}`the reference documentation <../reference/plugins/esmini>` for more. + +## Clothoid-Fit Component Plugin + +The clothoid-fit component plugin for lane boundaries makes its +entrance. + +You can use it by adding it to your test configuration `conanfile.py` +at the appropriate location: + +```python +require("cloe-plugin-clothoid-fit/0.22.0@cloe/develop") +``` + +And then you need to configure your vehicle in the stackfile: + +```yaml +version: "4" +vehicles: + name: default + from: + simulator: minimator + name: ego1 + components: + "cloe::clothoid_fit": + binding: clothoid_fit + from: "cloe::default_lane_sensor" + args: + enable: true + estimation_distance: 40 +``` + +The above example code assumes it will integrate in an existing vehicle +and simulator configuration and be passed to cloe-engine as JSON. + +See {doc}`the reference documentation <../reference/plugins/clothoid_fit>` for more. + +## Fable Library + +Compile-time improvements for the Fable library radically +speed up the compilation of code that use the `make_schema` functions. + +However, the following definitions were removed from the Fable +library in order to make the `make_schema()` functions consistent: + +- `Struct make_schema(TPropertyList&&)` +- `Struct make_schema(std::string&&, TPropertyList&&)` +- `Struct make_schema(std::string&&, const Box&, TPropertyList&&)` +- `Struct make_schema(std::string&&, const Struct&, TPropertyList&&)` +- `Variant make_schema(std::string&&, std::initializer_list)` +- `Variant make_schema(std::string&&, std::vector&&)` +- `Variant make_schema(std::initializer_list)` +- `Variant make_schema(std::vector&&)` +- `Ignore make_schema(std::string&&, JsonType t = Jsontype::object)` + +The purpose of `make_schema()` is to make it easy to derive the +correct schema for any C++ standard type you may have, even +more complex ones such as `std::vector>`. +The removed `make_schema()` definitions do not fall into this +use-case, and were rarely if ever used. + +If you want to create a struct, please use `fable::Schema` or +`fable::schema::Struct` directly: + +```cpp +return fable::Schema{ + { "foo", fable::Schema { + { "nested", make_schema(&variable, "description") }, + }} +}; +``` + +If you want to create a variant, please use `fable::schema::Variant` +directly: + +```cpp +return fable::schema::Variant{ + fable::Schema{ /* variant 1 * / }, + /* ... */ + fable::Schema{ /* variant N * / }, +}; +``` + +If you want to name a key but ignore it, please use `fable::schema::Ignore` +directly: + +```cpp +return fable::Schema{ + { "field", make_schema(&value, "description") }, + { "ignore", fable::schema::Ignore("description") }, +}; +``` + +Please see the respective header files for more initialization forms. diff --git a/ui/package.json b/ui/package.json index 1ad96c030..239887dd4 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "cloe-ui", - "version": "0.20.0", + "version": "0.22.0", "cloe-compatibility": "0.16", "license": "Apache-2.0", "private": true,