Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changelog for 2.0.0-rc1 #1159

Merged
merged 1 commit into from
Jan 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 67 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,71 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Fixed
-->

## [2.0.0-rc.1] - 2024-01-12

### Added

+ Support for CUDA 12.0-12.3. ([#1015](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1015), [#1056](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1056), [#1097](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1097), [#1130](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1130))
+ CUDA 12.2+ currently suffers from poor RTC compilation times due to changes in the CUDA headers ([#1118](https://github.com/FLAMEGPU/FLAMEGPU2/issues/1118)). This will be fixed in a future release.
+ Support for Python 3.12. ([#1117](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1117))
+ Visualiser: Add support for orthographic projection. ([FLAMEGPU/FLAMEGPU2-visualiser#114](https://github.com/FLAMEGPU/FLAMEGPU2-visualiser/pull/114), [FLAMEGPU/FLAMEGPU2-visualiser#121](https://github.com/FLAMEGPU/FLAMEGPU2-visualiser/pull/121) [#1040](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1040))
+ Visualiser: Agents can be hidden according to their state. ([#1041](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1041))
+ Declare/define Agent and Host function shims. ([#1049](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1049))
+ Poisson distribution support for random APIs. ([#1060](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1060))
+ `HostAPI` returns config structures and ensemble run index. ([#1082](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1082))
+ `pyflamegpu` installable from custom pip wheelhouse [whl.flamegpu.com](https://whl.flamegpu.com) . ([#645](https://github.com/FLAMEGPU/FLAMEGPU2/issues/645))
+ Environment macro properties can now be imported/exported. ([#1087](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1087))
+ Readme within `examples/` documenting the available examples.
+ `DeviceAPI::isAgent()`, `DeviceAPI::isState()`. ([#1116](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1116), [#1139](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1139))
+ Agent python codegen will now capture external variables with corresponding attribute. ([#1147](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1147))
+ Added `RunPlanVector::setPropertyStep()` ([#1152](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1152))
+ Added directed grraph support, via `EnvironmentDirectedGraphDescription` which can then be used with `MessageBucket` for on-graph communication. ([#1089](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1089))
+ Added optional Distributed Ensemble support (MPI). ([#1090](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1090))

### Changed (Breaking)

+ `CUDAEnsemble::getLogs` returns `std::map<unsigned int, RunLog>` rather than `std::vector<RunLog>`, required for distributed ensemble support. ([#1090](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1090))

### Changed

+ Improved dependency find logic. ([#1015](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1015))
+ Improved telemetry message when configuring CMake. ([#1030](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1030))
+ Improved robustness of context creation testing. ([#1096](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1096))
+ Improved (experimental) GLM support within python API. ([#1074](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1074))
+ Various CI changes. ([#1015](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1015), [#1036](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1036), [#1044](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1044), [#1062](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1062), [#1090](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1090), [#1097](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1097), [#1100](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1100), [#1102](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1102), [#1117](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1117), [#1130](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1130), [#1138](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1138), [#1140](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1140))

### Fixed

+ `FLAMEGPU_ENABLE_GLM` was incorrectly documented in README. ([#1033](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1033))
+ ManyLinux wheels did not have BuildNumber set. ([#1036](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1036))
+ arm/Tegra compilation errors. ([#1039](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1039), [FLAMEGPU/FLAMEGPU2-visualiser#119](https://github.com/FLAMEGPU/FLAMEGPU2-visualiser/pull/119))
+ `AgentRandom::uniform<int>()` would never return max bound. ([#411](https://github.com/FLAMEGPU/FLAMEGPU2/pull/411))
+ `AgentRandom::uniform<float>()` would return range `(0, 1]`. ([#411](https://github.com/FLAMEGPU/FLAMEGPU2/pull/411))
+ `AgentRandom::uniform<double>()` would return range `(0, 1]`. ([#411](https://github.com/FLAMEGPU/FLAMEGPU2/pull/411))
+ Visualiser: Draw would lose data when resizing large line art. ([FLAMEGPU/FLAMEGPU2-visualiser#118](https://github.com/FLAMEGPU/FLAMEGPU2-visualiser/pull/118))
+ Visualiser: Begin paused now pauses at the first frame with agents. ([FLAMEGPU/FLAMEGPU2-visualiser#120](https://github.com/FLAMEGPU/FLAMEGPU2-visualiser/pull/120), [#1046](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1046))
+ Resolved crash where no optional messages were output first step. ([#1054](https://github.com/FLAMEGPU/FLAMEGPU2/issues/1054))
+ Old version of Curl would write to stdout during telemetry. ([#1027](https://github.com/FLAMEGPU/FLAMEGPU2/issues/1027))
+ Agent python codegen would fail to translate math functions inside message loops. ([#1077](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1077))
+ Resolved missing messages from python host function exceptions thrown during ensembles. ([#1067](https://github.com/FLAMEGPU/FLAMEGPU2/issues/1067))
+ Various Telemetry fixes. ([#1035](https://github.com/FLAMEGPU/FLAMEGPU2/issues/1035), [#1098](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1098), [#1099](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1099), [#1079](https://github.com/FLAMEGPU/FLAMEGPU2/issues/1079))
+ Various CMake fixes. ([#1071](https://github.com/FLAMEGPU/FLAMEGPU2/issues/1071), [#1092](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1092), [#1062](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1062), [#1113](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1113))
+ Resolved nested venvs within Windows Python Wheels. ([#998](https://github.com/FLAMEGPU/FLAMEGPU2/issues/998))
+ Agent states loaded from file could be ignored. ([#1093](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1093))
+ Agent python codegen did not support standalone message variables. ([#1110](https://github.com/FLAMEGPU/FLAMEGPU2/issues/1110), [#1143](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1143))
+ Agent python codegen did not support `int`/`float` casts. ([#1143](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1143))
+ Resolved floating point cast to enum error. ([#1148](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1148))
+ `JitifyCache` is now exposed via the python API. ([#1151](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1151))
+ Agent python codegen did not support `ID` to `id_t` conversion. ([#1153](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1153))
+ Spatial Messaging interaction radius was incorrect when the requested radius was not a factor of the environment width ([#1160](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1160))
+ `astpretty` no longer a dependency of `pyflamegpu` ([#1166](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1166))
+ Agent python codegen did not correctly account for variable scope ([#1125](https://github.com/FLAMEGPU/FLAMEGPU2/issues/1125), [#1127](https://github.com/FLAMEGPU/FLAMEGPU2/issues/1127))
+ Resolve cmake_minimum_version deprecations by updating and patching dependencies (GoogleTest, RapidJSON and CMakeRC) ([1168](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1168))
+ Fix docstrings associated with the `flamegpu` namespace ([#1169](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1169))
+ Fix unused result warning(s) issued with clang as the host compiler ([1170](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1170))
+ Include `<cstdint>` in `DiscreteColor.h` for gcc 12.3 ([#1171](https://github.com/FLAMEGPU/FLAMEGPU2/pull/1171)). Thanks to [Daniele Baccege](https://github.com/daniele-baccega)

## [2.0.0-rc] - 2022-12-13

### Added
Expand Down Expand Up @@ -246,7 +311,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

Initial alpha release of FLAME GPU 2.0.0, a CUDA C++ / python3 library for agent based simulations

[Unreleased]: https://github.com/FLAMEGPU/FLAMEGPU2/compare/v2.0.0-rc...HEAD
[Unreleased]: https://github.com/FLAMEGPU/FLAMEGPU2/compare/v2.0.0-rc.1...HEAD
[2.0.0-rc.1]: https://github.com/FLAMEGPU/FLAMEGPU2/releases/tag/v2.0.0-rc.1
[2.0.0-rc]: https://github.com/FLAMEGPU/FLAMEGPU2/releases/tag/v2.0.0-rc
[2.0.0-alpha.2]: https://github.com/FLAMEGPU/FLAMEGPU2/releases/tag/v2.0.0-alpha.2
[2.0.0-alpha.1]: https://github.com/FLAMEGPU/FLAMEGPU2/releases/tag/v2.0.0-alpha.1
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ title: "FLAME GPU"
license: MIT
repository-code: "https://github.com/FLAMEGPU/FLAMEGPU2"
url: "https://flamegpu.com"
version: "2.0.0-rc"
date-released: 2022-12-13
version: "2.0.0-rc.1"
date-released: 2024-01-12
type: software
authors:
- given-names: Paul
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -369,4 +369,5 @@ For a full list of known issues pleases see the [Issue Tracker](https://github.c
+ Multiple known areas where performance can be improved (e.g. [#449](https://github.com/FLAMEGPU/FLAMEGPU2/issues/449), [#402](https://github.com/FLAMEGPU/FLAMEGPU2/issues/402))
+ Windows/MSVC builds using CUDA 11.0 may encounter errors when performing incremental builds if the static library has been recompiled. If this presents itself, re-save any `.cu` file in your executable producing project and re-trigger the build.
+ Debug builds under linux with CUDA 11.0 may encounter cuda errors during `validateIDCollisions`. Consider using an alternate CUDA version if this is required ([#569](https://github.com/FLAMEGPU/FLAMEGPU2/issues/569)).
+ CUDA 11.0 with GCC 9 may encounter a segmentation fault during compilation of the test suite. Consider using GCC 8 with CUDA 11.0.
+ CUDA 11.0 with GCC 9 may encounter a segmentation fault during compilation of the test suite. Consider using GCC 8 with CUDA 11.0.
+ CUDA 12.2+ suffers from poor RTC compilation times, to be fixed in a future release. ([#1118](https://github.com/FLAMEGPU/FLAMEGPU2/issues/1118)).
2 changes: 1 addition & 1 deletion cmake/dependencies/flamegpu2-visualiser.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include(FetchContent)
cmake_policy(SET CMP0079 NEW)

# Set the visualiser repo and tag to use unless overridden by the user.
set(DEFAULT_FLAMEGPU_VISUALISATION_GIT_VERSION "5de60dc004d524ce9dd07898daa3c84ea1e32203")
set(DEFAULT_FLAMEGPU_VISUALISATION_GIT_VERSION "flamegpu-2.0.0-rc.1")
set(DEFAULT_FLAMEGPU_VISUALISATION_REPOSITORY "https://github.com/FLAMEGPU/FLAMEGPU2-visualiser.git")

# Set a VISUSLAITION_ROOT cache entry so it is available in the GUI to override the location if required
Expand Down