diff --git a/CHANGELOG.md b/CHANGELOG.md
index 68aa2e3c2e..dd469c4bcd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,213 @@
# Changelog
+## [v0.4.0](https://github.com/lf-lang/lingua-franca/tree/v0.4.0) (2023-03-01)
+
+**Highlights**
+
+This release includes substantial changes under the hood and brings a lot of new features and enhancements, ranging from performance improvements to the support of new platforms like Zephyr, Arduino, and MBED in the C target. In the C++ target, it is now also straightforward to interact with ROS2 packages using the `ros2-dependencies` target property.
+
+**🚀 New Features**
+
+- Multiport iterator for more efficient access to sparse inputs [\#1298](https://github.com/lf-lang/lingua-franca/pull/1298) ([edwardalee](https://github.com/edwardalee))
+- Inference of logical execution times of reactions [\#1292](https://github.com/lf-lang/lingua-franca/pull/1292) ([lhstrh](https://github.com/lhstrh))
+- Custom icons for reactors in diagrams [\#1300](https://github.com/lf-lang/lingua-franca/pull/1300) ([a-sr](https://github.com/a-sr))
+- Support for Arduino platforms [\#1272](https://github.com/lf-lang/lingua-franca/pull/1272) ([arengarajan99](https://github.com/arengarajan99))
+- Automatic LF code formatter [\#1227](https://github.com/lf-lang/lingua-franca/pull/1227) ([petervdonovan](https://github.com/petervdonovan))
+- Option of using OpenSSL for authentication between RTI and federates [\#1432](https://github.com/lf-lang/lingua-franca/pull/1432) ([Jakio815](https://github.com/Jakio815))
+- Safe handling of physical actions in single-threaded C runtime [\#1348](https://github.com/lf-lang/lingua-franca/pull/1348) ([lhstrh](https://github.com/lhstrh))
+- Initial support for childref multiports [\#1228](https://github.com/lf-lang/lingua-franca/pull/1228) ([jhaye](https://github.com/jhaye))
+- Epoch built for M1 Mac [\#1530](https://github.com/lf-lang/lingua-franca/pull/1530) ([hokeun](https://github.com/hokeun))
+- Proper handling of asynchronous interactions in Rust [\#1459](https://github.com/lf-lang/lingua-franca/pull/1459) ([oowekyala](https://github.com/oowekyala))
+- Support for basic scheduling enclaves in the C++ target [\#1513](https://github.com/lf-lang/lingua-franca/pull/1513) ([cmnrd](https://github.com/cmnrd))
+- Zephyr support for the C target [\#1536](https://github.com/lf-lang/lingua-franca/pull/1536) ([erlingrj](https://github.com/erlingrj))
+- Support for Arduino CLI [\#1532](https://github.com/lf-lang/lingua-franca/pull/1532) ([arengarajan99](https://github.com/arengarajan99))
+- Arduino MBED RTOS Support [\#1581](https://github.com/lf-lang/lingua-franca/pull/1581) ([arengarajan99](https://github.com/arengarajan99))
+
+**✨ Enhancements**
+
+- Added advance-message-interval option and more federated tests for TypeScript [\#1293](https://github.com/lf-lang/lingua-franca/pull/1293) ([hokeun](https://github.com/hokeun))
+- Improved layout for error message node [\#1324](https://github.com/lf-lang/lingua-franca/pull/1324) ([a-sr](https://github.com/a-sr))
+- C++ target performance optimizations [\#1330](https://github.com/lf-lang/lingua-franca/pull/1330) ([cmnrd](https://github.com/cmnrd))
+- Improved error messaging for mode validation [\#1349](https://github.com/lf-lang/lingua-franca/pull/1349) ([a-sr](https://github.com/a-sr))
+- New target property for specifying additional ROS dependencies [\#1355](https://github.com/lf-lang/lingua-franca/pull/1355) ([cmnrd](https://github.com/cmnrd))
+- Support for passthrough connections in the C++ target [\#1361](https://github.com/lf-lang/lingua-franca/pull/1361) ([cmnrd](https://github.com/cmnrd))
+- Support scheduling physical actions synchronously [\#1367](https://github.com/lf-lang/lingua-franca/pull/1367) ([oowekyala](https://github.com/oowekyala))
+- Automatic code formatting using Spotless [\#1374](https://github.com/lf-lang/lingua-franca/pull/1374) ([petervdonovan](https://github.com/petervdonovan))
+- Optimized access to sparse multiports in the C++ target [\#1312](https://github.com/lf-lang/lingua-franca/pull/1312) ([revol-xut](https://github.com/revol-xut))
+- Augmented support for Arduino [\#1384](https://github.com/lf-lang/lingua-franca/pull/1384) ([arengarajan99](https://github.com/arengarajan99))
+- New lff autoformatter for Lingua Franca files [\#1422](https://github.com/lf-lang/lingua-franca/pull/1422) ([cmnrd](https://github.com/cmnrd))
+- Protection from code modifying the multiport container in C++ [\#1420](https://github.com/lf-lang/lingua-franca/pull/1420) ([revol-xut](https://github.com/revol-xut))
+- Empty bracket pairs properly tokenized [\#1439](https://github.com/lf-lang/lingua-franca/pull/1439) ([oowekyala](https://github.com/oowekyala))
+- Switched to Gradle for language and diagram server build [\#1469](https://github.com/lf-lang/lingua-franca/pull/1469) ([a-sr](https://github.com/a-sr))
+- Better multiport support for Rust [\#1406](https://github.com/lf-lang/lingua-franca/pull/1406) ([oowekyala](https://github.com/oowekyala))
+- Reduction of disk usage in the Rust target [\#1476](https://github.com/lf-lang/lingua-franca/pull/1476) ([oowekyala](https://github.com/oowekyala))
+- Native implementation of timeout in C++ [\#1507](https://github.com/lf-lang/lingua-franca/pull/1507) ([cmnrd](https://github.com/cmnrd))
+- Less verbose CMake output via suppressed install messages [\#1517](https://github.com/lf-lang/lingua-franca/pull/1517) ([cmnrd](https://github.com/cmnrd))
+- Preservation of time units when formatting LF code [\#1518](https://github.com/lf-lang/lingua-franca/pull/1518) ([cmnrd](https://github.com/cmnrd))
+- Check for update Rust runtime [\#1546](https://github.com/lf-lang/lingua-franca/pull/1546) ([oowekyala](https://github.com/oowekyala))
+- Bugfixes and improvements in token-based memory management in C [\#1548](https://github.com/lf-lang/lingua-franca/pull/1548) ([edwardalee](https://github.com/edwardalee))
+- Use of delayed and physical connections as provided by the C++ runtime [\#1583](https://github.com/lf-lang/lingua-franca/pull/1583) ([cmnrd](https://github.com/cmnrd))
+
+**🔧 Fixes**
+
+- Removal of error reporting markers from parameter types [\#1310](https://github.com/lf-lang/lingua-franca/pull/1310) ([Wonseo-C](https://github.com/Wonseo-C))
+- Quick fix to adjust upstreamFedDelays as never tag [\#1334](https://github.com/lf-lang/lingua-franca/pull/1334) ([byeong-gil](https://github.com/byeong-gil))
+- Fixed tracing in the C++ target [\#1350](https://github.com/lf-lang/lingua-franca/pull/1350) ([cmnrd](https://github.com/cmnrd))
+- Reactor runtime module excluded from the Rust test modules [\#1351](https://github.com/lf-lang/lingua-franca/pull/1351) ([oowekyala](https://github.com/oowekyala))
+- Problem with child dependencies in Rust fixed [\#1352](https://github.com/lf-lang/lingua-franca/pull/1352) ([oowekyala](https://github.com/oowekyala))
+- Adjustment of code generator to address #1368 [\#1370](https://github.com/lf-lang/lingua-franca/pull/1370) ([lsk567](https://github.com/lsk567))
+- Removal of PyDev and Kotlin plugin dependencies from Epoch [\#1371](https://github.com/lf-lang/lingua-franca/pull/1371) ([lhstrh](https://github.com/lhstrh))
+- Repair of Windows diagnostic reporting [\#1391](https://github.com/lf-lang/lingua-franca/pull/1391) ([petervdonovan](https://github.com/petervdonovan))
+- Fix of flaky timedwait on Windows [\#1402](https://github.com/lf-lang/lingua-franca/pull/1402) ([lhstrh](https://github.com/lhstrh))
+- Use of paths not URIs in line-directives [\#1412](https://github.com/lf-lang/lingua-franca/pull/1412) ([erlingrj](https://github.com/erlingrj))
+- NPE in Epoch fixed [\#1425](https://github.com/lf-lang/lingua-franca/pull/1425) ([petervdonovan](https://github.com/petervdonovan))
+- JavaDoc and NPE on toString fixed [\#1445](https://github.com/lf-lang/lingua-franca/pull/1445) ([edwardalee](https://github.com/edwardalee))
+- Avoid reading the same input stream twice [\#1490](https://github.com/lf-lang/lingua-franca/pull/1490) ([cmnrd](https://github.com/cmnrd))
+- Tracing tools Makefile fixed [\#1485](https://github.com/lf-lang/lingua-franca/pull/1485) ([lsk567](https://github.com/lsk567))
+- MalleableStrings made human readable [\#1500](https://github.com/lf-lang/lingua-franca/pull/1500) ([petervdonovan](https://github.com/petervdonovan))
+- Fix for broken deadline propagation mechanism [\#1451](https://github.com/lf-lang/lingua-franca/pull/1451) ([erlingrj](https://github.com/erlingrj))
+- Fix of CMake policy CMP0068 warning [\#1523](https://github.com/lf-lang/lingua-franca/pull/1523) ([cmnrd](https://github.com/cmnrd))
+- rs/AsyncCallback: Join thread before creating new one [\#1542](https://github.com/lf-lang/lingua-franca/pull/1542) ([oowekyala](https://github.com/oowekyala))
+- Bugfix for port access to contained generic reactors in C++ [\#1547](https://github.com/lf-lang/lingua-franca/pull/1547) ([cmnrd](https://github.com/cmnrd))
+- Fixed validation of icon paths [\#1572](https://github.com/lf-lang/lingua-franca/pull/1572) ([cmnrd](https://github.com/cmnrd))
+- Useful error message upon encountering missing runtime sources [\#1573](https://github.com/lf-lang/lingua-franca/pull/1573) ([cmnrd](https://github.com/cmnrd))
+- [ts] Bugfix that re-enables the use of custom configuration files [\#1575](https://github.com/lf-lang/lingua-franca/pull/1575) ([lhstrh](https://github.com/lhstrh))
+- Fix to let relative include helper ignore non-C files [\#1578](https://github.com/lf-lang/lingua-franca/pull/1578) ([lhstrh](https://github.com/lhstrh))
+- Fix failing building of tracing tools [\#1589](https://github.com/lf-lang/lingua-franca/pull/1589) ([erlingrj](https://github.com/erlingrj))
+- Fixes in relative include helper for arduino-cli [\#1586](https://github.com/lf-lang/lingua-franca/pull/1586) ([arengarajan99](https://github.com/arengarajan99))
+- CLI args propagated to federates [\#1604](https://github.com/lf-lang/lingua-franca/pull/1604) ([lhstrh](https://github.com/lhstrh))
+- [ts] Missing types pulled from npm [\#1609](https://github.com/lf-lang/lingua-franca/pull/1609) ([lhstrh](https://github.com/lhstrh))
+
+**🚧 Maintenance and Refactoring**
+
+- Use HTTPS for Rust reactor runtime submodule [\#1308](https://github.com/lf-lang/lingua-franca/pull/1308) ([jhaye](https://github.com/jhaye))
+- Switch from Rust nightly to Rust stable [\#1218](https://github.com/lf-lang/lingua-franca/pull/1218) ([jhaye](https://github.com/jhaye))
+- Tests in TypeScript for requesting stop in federated execution [\#1302](https://github.com/lf-lang/lingua-franca/pull/1302) ([hokeun](https://github.com/hokeun))
+- More portable way to suppress unused variable warnings [\#1317](https://github.com/lf-lang/lingua-franca/pull/1317) ([edwardalee](https://github.com/edwardalee))
+- Reduced verbosity in reported output [\#1323](https://github.com/lf-lang/lingua-franca/pull/1323) ([petervdonovan](https://github.com/petervdonovan))
+- Reference reactor-ts as module [\#1322](https://github.com/lf-lang/lingua-franca/pull/1322) ([lhstrh](https://github.com/lhstrh))
+- Removal of unnecessary build dependency to address security exceptions [\#1365](https://github.com/lf-lang/lingua-franca/pull/1365) ([cmnrd](https://github.com/cmnrd))
+- Simplification of grammar that encodes mutations with the same productions as reactions [\#1318](https://github.com/lf-lang/lingua-franca/pull/1318) ([Wonseo-C](https://github.com/Wonseo-C))
+- Removal of "No CMake" build option [\#1299](https://github.com/lf-lang/lingua-franca/pull/1299) ([petervdonovan](https://github.com/petervdonovan))
+- Usage of a published version of reactor-ts [\#1426](https://github.com/lf-lang/lingua-franca/pull/1426) ([petervdonovan](https://github.com/petervdonovan))
+- Differentiation between multi-threaded and single-threaded preprocessor directives in C [\#1411](https://github.com/lf-lang/lingua-franca/pull/1411) ([erlingrj](https://github.com/erlingrj))
+- TypeScript generator cleanups [\#1457](https://github.com/lf-lang/lingua-franca/pull/1457) ([oowekyala](https://github.com/oowekyala))
+- Clean up AttributeUtils [\#1470](https://github.com/lf-lang/lingua-franca/pull/1470) ([cmnrd](https://github.com/cmnrd))
+- Infrastructure for AST transformations and factored out delay transformation [\#1508](https://github.com/lf-lang/lingua-franca/pull/1508) ([cmnrd](https://github.com/cmnrd))
+- Cleanup initializer grammar [\#1441](https://github.com/lf-lang/lingua-franca/pull/1441) ([oowekyala](https://github.com/oowekyala))
+- Serialization of compile definitions [\#1529](https://github.com/lf-lang/lingua-franca/pull/1529) ([erlingrj](https://github.com/erlingrj))
+- Fix and reformat javadoc @author tag [\#1486](https://github.com/lf-lang/lingua-franca/pull/1486) ([axmmisaka](https://github.com/axmmisaka))
+- Restructuring of mechanism for compiling federated programs [\#1221](https://github.com/lf-lang/lingua-franca/pull/1221) ([lhstrh](https://github.com/lhstrh))
+- Removal of .c file includes in federated programs [\#1601](https://github.com/lf-lang/lingua-franca/pull/1601) ([arengarajan99](https://github.com/arengarajan99))
+
+**🧪 Tests**
+
+- Only record tests in test/*/src [\#1358](https://github.com/lf-lang/lingua-franca/pull/1358) ([oowekyala](https://github.com/oowekyala))
+- Test for Rust main parameters [\#1366](https://github.com/lf-lang/lingua-franca/pull/1366) ([oowekyala](https://github.com/oowekyala))
+- Add CLI unit tests [\#1467](https://github.com/lf-lang/lingua-franca/pull/1467) ([oowekyala](https://github.com/oowekyala))
+- Correct reporting of assertion errors and exceptions during code generation [\#1498](https://github.com/lf-lang/lingua-franca/pull/1498) ([cmnrd](https://github.com/cmnrd))
+- Removal of uses of deprecated reactor-c API in tests [\#1566](https://github.com/lf-lang/lingua-franca/pull/1566) ([erlingrj](https://github.com/erlingrj))
+
+**⬆️ Updated Dependencies**
+
+- Bump Rust runtime [\#1357](https://github.com/lf-lang/lingua-franca/pull/1357) ([jhaye](https://github.com/jhaye))
+- Xtext to 2.18.0, LSP4J to 0.15.0, and Guice to 5.1.0 [\#1364](https://github.com/lf-lang/lingua-franca/pull/1364) ([lhstrh](https://github.com/lhstrh))
+- Gradle bumped to version 7.5.1 [\#1408](https://github.com/lf-lang/lingua-franca/pull/1408) ([lhstrh](https://github.com/lhstrh))
+- Upgrade to Gradle v7.6.1 [\#1608](https://github.com/lf-lang/lingua-franca/pull/1608) ([lhstrh](https://github.com/lhstrh))
+
+
+### Submodule [lf-lang/reactor-c](http://github.com/lf-lang/reactor-c)
+
+**🚀 New Features**
+
+- Adaptive scheduler [\#85](https://github.com/lf-lang/reactor-c/pull/85) ([petervdonovan](https://github.com/petervdonovan))
+- Support for Arduino platforms [\#89](https://github.com/lf-lang/reactor-c/pull/89) ([arengarajan99](https://github.com/arengarajan99))
+- Basic authentication using HMAC for federates joining a federation [\#105](https://github.com/lf-lang/reactor-c/pull/105) ([hokeun](https://github.com/hokeun))
+- Platform support for Embedded targets [\#106](https://github.com/lf-lang/reactor-c/pull/106) ([lhstrh](https://github.com/lhstrh))
+- Changes to facilitate arduino-cli support [\#138](https://github.com/lf-lang/reactor-c/pull/138) ([arengarajan99](https://github.com/arengarajan99))
+- Zephyr support [\#134](https://github.com/lf-lang/reactor-c/pull/134) ([erlingrj](https://github.com/erlingrj))
+- Critical section functions as part of the public API [\#142](https://github.com/lf-lang/reactor-c/pull/142) ([edwardalee](https://github.com/edwardalee))
+- Preliminary multi-board support for Arduino [\#141](https://github.com/lf-lang/reactor-c/pull/141) ([arengarajan99](https://github.com/arengarajan99))
+- Add hi-res timing support for imxrt1170evk [\#149](https://github.com/lf-lang/reactor-c/pull/149) ([erlingrj](https://github.com/erlingrj))
+- Threading support for Arduino MBED/coupling of mutexes and condition variables [\#153](https://github.com/lf-lang/reactor-c/pull/153) ([arengarajan99](https://github.com/arengarajan99))
+
+**✨ Enhancements**
+
+- C support for multiport iterator for sparse inputs [\#95](https://github.com/lf-lang/reactor-c/pull/95) ([edwardalee](https://github.com/edwardalee))
+- Fewer warnings [\#101](https://github.com/lf-lang/reactor-c/pull/101) ([edwardalee](https://github.com/edwardalee))
+- Initial style guide [\#103](https://github.com/lf-lang/reactor-c/pull/103) ([petervdonovan](https://github.com/petervdonovan))
+- Memory management improvements and bugfixes [\#144](https://github.com/lf-lang/reactor-c/pull/144) ([edwardalee](https://github.com/edwardalee))
+- Improved CMake configuration [\#156](https://github.com/lf-lang/reactor-c/pull/156) ([arengarajan99](https://github.com/arengarajan99))
+- Small fixes to get Zephyr target compiling with threaded runtime [\#155](https://github.com/lf-lang/reactor-c/pull/155) ([erlingrj](https://github.com/erlingrj))
+
+**🔧 Fixes**
+
+- Fixed memory leaks in RTI [\#113](https://github.com/lf-lang/reactor-c/pull/113) ([erlingrj](https://github.com/erlingrj))
+- Fix of flaky timedwait on Windows [\#115](https://github.com/lf-lang/reactor-c/pull/115) ([cmnrd](https://github.com/cmnrd))
+- Token payload freed with after delay [\#124](https://github.com/lf-lang/reactor-c/pull/124) ([edwardalee](https://github.com/edwardalee))
+- Consistent way of handling entry and exit of critical section [\#136](https://github.com/lf-lang/reactor-c/pull/136) ([erlingrj](https://github.com/erlingrj))
+- Scheduling preprocessing fix [\#154](https://github.com/lf-lang/reactor-c/pull/154) ([erlingrj](https://github.com/erlingrj))
+- Fix problem with threaded Zephyr and overflow handling in QEMU emulation [\#159](https://github.com/lf-lang/reactor-c/pull/159) ([erlingrj](https://github.com/erlingrj))
+- Intended tag printed instead of last-seen tag in debug message [\#160](https://github.com/lf-lang/reactor-c/pull/160) ([byeong-gil](https://github.com/byeong-gil))
+- Zephyr timing fix [\#166](https://github.com/lf-lang/reactor-c/pull/166) ([erlingrj](https://github.com/erlingrj))
+- Fixed compilation of RTI without `-DAUTH` and CI job for building the RTI [\#171](https://github.com/lf-lang/reactor-c/pull/171) ([cmnrd](https://github.com/cmnrd))
+
+**🚧 Maintenance and Refactoring**
+
+- Removal of "No CMake" build option [\#97](https://github.com/lf-lang/reactor-c/pull/97) ([petervdonovan](https://github.com/petervdonovan))
+- Improved CMake configuration [\#137](https://github.com/lf-lang/reactor-c/pull/137) ([erlingrj](https://github.com/erlingrj))
+- Changes to accommodate restructuring code generation of federated programs [\#117](https://github.com/lf-lang/reactor-c/pull/117) ([lhstrh](https://github.com/lhstrh))
+- Relative paths in lf_types.h [\#147](https://github.com/lf-lang/reactor-c/pull/147) ([gundralaa](https://github.com/gundralaa))
+
+- Federated support without C include reliance [\#164](https://github.com/lf-lang/reactor-c/pull/164) ([arengarajan99](https://github.com/arengarajan99))
+
+### Submodule [lf-lang/reactor-cpp](http://github.com/lf-lang/reactor-cpp)
+
+**🚀 New Features**
+
+- Support passthrough connections [\#29](https://github.com/lf-lang/reactor-cpp/pull/29) ([cmnrd](https://github.com/cmnrd))
+- Enable multiple environments and schedulers to run at the same time [\#37](https://github.com/lf-lang/reactor-cpp/pull/37) ([cmnrd](https://github.com/cmnrd))
+- Native runtime implementation of delayed and physical connections [\#38](https://github.com/lf-lang/reactor-cpp/pull/38) ([revol-xut](https://github.com/revol-xut))
+
+**✨ Enhancements**
+
+- Optimization of value pointers for trivially copyable types [\#22](https://github.com/lf-lang/reactor-cpp/pull/22) ([cmnrd](https://github.com/cmnrd))
+- Avoid locking when scheduling actions [\#23](https://github.com/lf-lang/reactor-cpp/pull/23) ([cmnrd](https://github.com/cmnrd))
+- Optimized Multiports [\#24](https://github.com/lf-lang/reactor-cpp/pull/24) ([revol-xut](https://github.com/revol-xut))
+- Protect multiports from accidental modification by restricting Multiport and introducing new class ModifyableMultiport [\#33](https://github.com/lf-lang/reactor-cpp/pull/33) ([revol-xut](https://github.com/revol-xut))
+- Native timeout implementation, sync_shutdown made threadsafe, and is_present added for timers [\#36](https://github.com/lf-lang/reactor-cpp/pull/36) ([cmnrd](https://github.com/cmnrd))
+- Optimization: use std::string_view in validation functions [\#41](https://github.com/lf-lang/reactor-cpp/pull/41) ([cmnrd](https://github.com/cmnrd))
+- Native runtime implementation of delayed and physical connections [\#38](https://github.com/lf-lang/reactor-cpp/pull/38) ([revol-xut](https://github.com/revol-xut))
+
+**🔧 Fixes**
+
+- Fixed compilation with tracing support [\#25](https://github.com/lf-lang/reactor-cpp/pull/25) ([cmnrd](https://github.com/cmnrd))
+- Fix race condtions related to the scheduling of physical actions [\#31](https://github.com/lf-lang/reactor-cpp/pull/31) ([cmnrd](https://github.com/cmnrd))
+- Fix compilation on 32-Bit machines [\#40](https://github.com/lf-lang/reactor-cpp/pull/40) ([cmnrd](https://github.com/cmnrd))
+
+
+### Submodule [lf-lang/reactor-rs](http://github.com/lf-lang/reactor-rs)
+
+**🚀 New Features**
+
+- Support for synchronous scheduling of physical actions [\#30](https://github.com/lf-lang/reactor-rs/pull/30) ([oowekyala](https://github.com/oowekyala))
+
+**✨ Enhancements**
+
+- Replace level assignment algo [\#31](https://github.com/lf-lang/reactor-rs/pull/31) ([oowekyala](https://github.com/oowekyala))
+- Switched from Rust Nightly to Rust Stable [\#32](https://github.com/lf-lang/reactor-rs/pull/32) ([jhaye](https://github.com/jhaye))
+- Use of stable toolchain for lints in CI [\#35](https://github.com/lf-lang/reactor-rs/pull/35) ([oowekyala](https://github.com/oowekyala))
+- Simplified access to ports and port banks [\#29](https://github.com/lf-lang/reactor-rs/pull/29) ([oowekyala](https://github.com/oowekyala))
+- Use of external verified VecMap crate [\#39](https://github.com/lf-lang/reactor-rs/pull/39) ([jhaye](https://github.com/jhaye))
+- Removal of scoped threads for physical actions [\#34](https://github.com/lf-lang/reactor-rs/pull/34) ([oowekyala](https://github.com/oowekyala))
+
+**🔧 Fixes**
+
+- Clippy fixes [\#27](https://github.com/lf-lang/reactor-rs/pull/27) ([jhaye](https://github.com/jhaye))
+- Fix problem with merging of reaction plans [\#28](https://github.com/lf-lang/reactor-rs/pull/28) ([oowekyala](https://github.com/oowekyala))
+
+
+
## [v0.3.0](https://github.com/lf-lang/lingua-franca/tree/v0.3.0) (2022-07-22)
**Highlights**
diff --git a/LICENSE b/LICENSE
index 716d46b5fb..025e767c57 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
This software is licensed under the BSD 2-Clause License.
-Copyright (c) 2019-2022, the Lingua Franca contributors.
+Copyright (c) 2019-2023, the Lingua Franca contributors.
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/gradle.properties b/gradle.properties
index 4006c4b3ed..f99771b88b 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,6 +1,6 @@
[header]
group=org.lflang
-version=0.3.1-SNAPSHOT
+version=0.4.0
[versions]
commonsCliVersion=1.4
diff --git a/org.lflang.diagram/META-INF/MANIFEST.MF b/org.lflang.diagram/META-INF/MANIFEST.MF
index b11524c688..45049b5cea 100644
--- a/org.lflang.diagram/META-INF/MANIFEST.MF
+++ b/org.lflang.diagram/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Lingua Franca Block Diagram Editor
Bundle-SymbolicName: org.lflang.diagram;singleton:=true
-Bundle-Version: 0.3.1.qualifier
+Bundle-Version: 0.4.0
Automatic-Module-Name: org.lflang.diagram
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-ActivationPolicy: lazy
diff --git a/org.lflang.diagram/pom.xml b/org.lflang.diagram/pom.xml
index cb93a743e9..29483c40f6 100644
--- a/org.lflang.diagram/pom.xml
+++ b/org.lflang.diagram/pom.xml
@@ -8,7 +8,7 @@
../pom.xml
org.lflang
lf
- 0.3.1-SNAPSHOT
+ 0.4.0
org.lflang.diagram
diff --git a/org.lflang.ide/META-INF/MANIFEST.MF b/org.lflang.ide/META-INF/MANIFEST.MF
index d31a90e3d8..873c1d1c5c 100644
--- a/org.lflang.ide/META-INF/MANIFEST.MF
+++ b/org.lflang.ide/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Automatic-Module-Name: org.lflang.ide
Bundle-ManifestVersion: 2
Bundle-Name: Lingua Franca IDE
Bundle-Vendor: University of California, Berkeley
-Bundle-Version: 0.3.1.qualifier
+Bundle-Version: 0.4.0
Bundle-SymbolicName: org.lflang.ide; singleton:=true
Bundle-ActivationPolicy: lazy
Require-Bundle: org.lflang,
diff --git a/org.lflang.ide/pom.xml b/org.lflang.ide/pom.xml
index 9ba35c93e1..0bb8d328a0 100644
--- a/org.lflang.ide/pom.xml
+++ b/org.lflang.ide/pom.xml
@@ -7,7 +7,7 @@
../pom.xml
org.lflang
lf
- 0.3.1-SNAPSHOT
+ 0.4.0
org.lflang.ide
diff --git a/org.lflang.product/META-INF/MANIFEST.MF b/org.lflang.product/META-INF/MANIFEST.MF
index 80749becbd..fd9ebbcc85 100644
--- a/org.lflang.product/META-INF/MANIFEST.MF
+++ b/org.lflang.product/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Lingua Franca Product
Bundle-SymbolicName: org.lflang.product;singleton:=true
-Bundle-Version: 0.3.1.qualifier
+Bundle-Version: 0.4.0
Bundle-RequiredExecutionEnvironment: JavaSE-17
Automatic-Module-Name: org.lflang.product
Bundle-Vendor: University of California, Berkeley
diff --git a/org.lflang.product/plugin.xml b/org.lflang.product/plugin.xml
index bae5ff15cd..43e3e216fc 100644
--- a/org.lflang.product/plugin.xml
+++ b/org.lflang.product/plugin.xml
@@ -34,7 +34,7 @@
+ value="Version: 0.4.0.
Epoch is an IDE for Lingua Franca, a polyglot coordination language for building concurrent and distributed software that delivers predictable and reproducible reactive behavior.
Visit our GitHub: https://repo.lf-lang.org/.
This software is licensed under the BSD 2-Clause License.
Copyright © 2019-2023, the Lingua Franca contributors. All rights reserved.">
../pom.xml
org.lflang
lf
- 0.3.1-SNAPSHOT
+ 0.4.0
org.lflang.product
diff --git a/org.lflang.product/splash.bmp b/org.lflang.product/splash.bmp
index 7f77dadb29..6f1d5efc90 100644
Binary files a/org.lflang.product/splash.bmp and b/org.lflang.product/splash.bmp differ
diff --git a/org.lflang.rca/lflang.product b/org.lflang.rca/lflang.product
index 520fb3ce38..ff73577f24 100644
--- a/org.lflang.rca/lflang.product
+++ b/org.lflang.rca/lflang.product
@@ -1,7 +1,7 @@
-
+
@@ -13,7 +13,7 @@ Epoch is an IDE for Lingua Franca, a coordination language for building concurre
Visit our GitHub: https://repo.lf-lang.org/.
This software is licensed under the BSD 2-Clause License.
-Copyright © 2019-2022, the Lingua Franca contributors. All rights reserved.
+Copyright © 2019-2023, the Lingua Franca contributors. All rights reserved.
@@ -64,7 +64,7 @@ Copyright © 2019-2022, the Lingua Franca contributors. All rights reserved.
Epoch IDE is licensed under the BSD 2-Clause License:
-Copyright © 2019-2022, the Lingua Franca constributors. All rights reserved.
+Copyright © 2019-2023, the Lingua Franca constributors. All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
diff --git a/org.lflang.rca/pom.xml b/org.lflang.rca/pom.xml
index 28c22582bc..830571183d 100644
--- a/org.lflang.rca/pom.xml
+++ b/org.lflang.rca/pom.xml
@@ -8,10 +8,10 @@
../pom.xml
org.lflang
lf
- 0.3.1-SNAPSHOT
+ 0.4.0
- 0.3.1-SNAPSHOT
+ 0.4.0
org.lflang.rca
eclipse-repository
Lingua Franca Epoch IDE
diff --git a/org.lflang.sdk/feature.xml b/org.lflang.sdk/feature.xml
index 018e708605..ac329f49db 100644
--- a/org.lflang.sdk/feature.xml
+++ b/org.lflang.sdk/feature.xml
@@ -2,7 +2,7 @@
+ version="0.4.0">
diff --git a/org.lflang.sdk/pom.xml b/org.lflang.sdk/pom.xml
index d4766b03f3..eb69635d00 100644
--- a/org.lflang.sdk/pom.xml
+++ b/org.lflang.sdk/pom.xml
@@ -7,7 +7,7 @@
../pom.xml
org.lflang
lf
- 0.3.1-SNAPSHOT
+ 0.4.0
org.lflang.sdk
diff --git a/org.lflang.targetplatform/pom.xml b/org.lflang.targetplatform/pom.xml
index d736f7f607..e2f03e1b6f 100644
--- a/org.lflang.targetplatform/pom.xml
+++ b/org.lflang.targetplatform/pom.xml
@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
- 0.3.1-SNAPSHOT
+ 0.4.0
org.lflang.targetplatform
eclipse-target-definition
Lingua Franca Target Platform
@@ -12,7 +12,7 @@
org.lflang
lf
- 0.3.1-SNAPSHOT
+ 0.4.0
../pom.xml
diff --git a/org.lflang.tests/META-INF/MANIFEST.MF b/org.lflang.tests/META-INF/MANIFEST.MF
index 1e0539c0f5..f8ea9540a5 100644
--- a/org.lflang.tests/META-INF/MANIFEST.MF
+++ b/org.lflang.tests/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Automatic-Module-Name: org.lflang.tests
Bundle-ManifestVersion: 2
Bundle-Name: Lingua Franca Tests
Bundle-Vendor: University of California, Berkeley
-Bundle-Version: 0.3.1.qualifier
+Bundle-Version: 0.4.0
Bundle-SymbolicName: org.lflang.tests; singleton:=true
Bundle-ActivationPolicy: lazy
Require-Bundle: org.lflang,
diff --git a/org.lflang.tests/pom.xml b/org.lflang.tests/pom.xml
index 66854d4996..c104c792c7 100644
--- a/org.lflang.tests/pom.xml
+++ b/org.lflang.tests/pom.xml
@@ -6,7 +6,7 @@
../pom.xml
org.lflang
lf
- 0.3.1-SNAPSHOT
+ 0.4.0
org.lflang.tests
diff --git a/org.lflang.ui.tests/META-INF/MANIFEST.MF b/org.lflang.ui.tests/META-INF/MANIFEST.MF
index d65c33ed96..a770190e08 100644
--- a/org.lflang.ui.tests/META-INF/MANIFEST.MF
+++ b/org.lflang.ui.tests/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Automatic-Module-Name: org.lflang.ui.tests
Bundle-ManifestVersion: 2
Bundle-Name: Lingua Franca UI Tests
Bundle-Vendor: University of California, Berkeley
-Bundle-Version: 0.3.1.qualifier
+Bundle-Version: 0.4.0
Bundle-SymbolicName: org.lflang.ui.tests; singleton:=true
Bundle-ActivationPolicy: lazy
Require-Bundle: org.lflang.ui,
diff --git a/org.lflang.ui.tests/pom.xml b/org.lflang.ui.tests/pom.xml
index b2ee9d321c..968e3d58de 100644
--- a/org.lflang.ui.tests/pom.xml
+++ b/org.lflang.ui.tests/pom.xml
@@ -6,7 +6,7 @@
../pom.xml
org.lflang
lf
- 0.3.1-SNAPSHOT
+ 0.4.0
org.lflang.ui.tests
diff --git a/org.lflang.ui/META-INF/MANIFEST.MF b/org.lflang.ui/META-INF/MANIFEST.MF
index 08371cdbf4..4ebe57881b 100644
--- a/org.lflang.ui/META-INF/MANIFEST.MF
+++ b/org.lflang.ui/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Automatic-Module-Name: org.lflang.ui
Bundle-ManifestVersion: 2
Bundle-Name: Lingua Franca UI
Bundle-Vendor: University of California, Berkeley
-Bundle-Version: 0.3.1.qualifier
+Bundle-Version: 0.4.0
Bundle-SymbolicName: org.lflang.ui; singleton:=true
Bundle-ActivationPolicy: lazy
Require-Bundle: org.lflang,
diff --git a/org.lflang.ui/pom.xml b/org.lflang.ui/pom.xml
index f9fb56e16b..6e2033a339 100644
--- a/org.lflang.ui/pom.xml
+++ b/org.lflang.ui/pom.xml
@@ -7,7 +7,7 @@
../pom.xml
org.lflang
lf
- 0.3.1-SNAPSHOT
+ 0.4.0
org.lflang.ui
diff --git a/org.lflang.updatesite/pom.xml b/org.lflang.updatesite/pom.xml
index cc0103f430..21d3df4ad4 100644
--- a/org.lflang.updatesite/pom.xml
+++ b/org.lflang.updatesite/pom.xml
@@ -7,7 +7,7 @@
../pom.xml
org.lflang
lf
- 0.3.1-SNAPSHOT
+ 0.4.0
org.lflang.updatesite
diff --git a/org.lflang/META-INF/MANIFEST.MF b/org.lflang/META-INF/MANIFEST.MF
index 2cfc41eb09..8c2a67294a 100644
--- a/org.lflang/META-INF/MANIFEST.MF
+++ b/org.lflang/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Automatic-Module-Name: org.lflang
Bundle-ManifestVersion: 2
Bundle-Name: Lingua Franca Language Implementation
Bundle-Vendor: University of California, Berkeley
-Bundle-Version: 0.3.1.qualifier
+Bundle-Version: 0.4.0
Bundle-SymbolicName: org.lflang; singleton:=true
Bundle-ActivationPolicy: lazy
Require-Bundle: org.eclipse.xtext,
diff --git a/org.lflang/pom.xml b/org.lflang/pom.xml
index 3600735847..23e4a4d120 100644
--- a/org.lflang/pom.xml
+++ b/org.lflang/pom.xml
@@ -7,7 +7,7 @@
../pom.xml
org.lflang
lf
- 0.3.1-SNAPSHOT
+ 0.4.0
org.lflang
diff --git a/org.lflang/src/org/lflang/StringsBundle.properties b/org.lflang/src/org/lflang/StringsBundle.properties
index 38fe64d92f..f21d29d468 100644
--- a/org.lflang/src/org/lflang/StringsBundle.properties
+++ b/org.lflang/src/org/lflang/StringsBundle.properties
@@ -1 +1 @@
-VERSION = 0.3.1-SNAPSHOT
+VERSION = 0.4.0
diff --git a/pom.xml b/pom.xml
index 0f487a69ef..985f8f2d64 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@
org.lflang
lf
- 0.3.1-SNAPSHOT
+ 0.4.0
pom
Lingua Franca