Releases: nasa/fprime
Release v3.5.0
The release v3.5.0 contains a number of improvements. Primarily, the Operating System Abstraction Layer (OSAL) has been refactored to make integration with new operating systems easier. It also ensures that the OSAL selection for each subsystem is independent, and selected per-executable rather than the entire project.
State machine autocoding has been integrated into F Prime, and a plug-in system has been introduced to the GDS to allow for customized integrations and use-cases.
Breaking Changes
There are a number of breaking changes in this release. Users will need to fix these issues when upgrading from v3.4.3
.
Configuration Changes
Configuration has been substantially changed. Users should migrate to the new FpConfig.h
available in fprime/config
and adjust settings accordingly.
General OSAL Changes
Users are encouraged to call Os::init()
in the main function of their deployment. While not strictly necessary, this initializes OS singletons at a deterministic time.
Fw::Logger::log
calls that precede this call will not be output.
#include <Os/Os.hpp>
...
int main(...) {
Os::init();
...
}
Failing to do so will result in singletons self-initializing on first usage resulting in a very small delay on first usage. Fw::Logger::log
messages will not use the Os::Console
output until Os::init()
is called.
FPP Changes
FPP has introduced new keywords to support integrated state machines! This means users who chose those names will need to escape them. Commonly, state
is used and should be escaped as $state
- event SetBlinkingState(state: Fw.On) ...
+ event SetBlinkingState($state: Fw.On) ...
Task Changes
Most components have standardized on start
, stop
, and join
calls to manage internal tasks. To start these tasks users should switch to the new start
, stop
, and join
methods.
- comm.startSocketTask(name, true, COMM_PRIORITY, Default::STACK_SIZE);
+ comm.start(name, true, COMM_PRIORITY, Default::STACK_SIZE);
...
- comm.stopSocketTask();
- (void)comm.joinSocketTask(nullptr);
+ comm.join();
+ comm.stop();
Fully Qualified Instance Names
Instances in F Prime dictionaries and typologies are now fully-qualified. This means that the instances are prepended with the module names. To restore the global-instance functionality of older deployments, please remove modules definitions from around instances.
- module Ref {
...
instance blockDrv: Drv.BlockDriver base id 0x0100 \
queue size Default.QUEUE_SIZE \
stack size Default.STACK_SIZE \
priority 140
...
- }
StringUtils Changes
Users of StringUtils functions should now supply a FwSizeType
and may no longer use U32
as arguments.
Linux GPIO driver
Users of the LinuxGpioDriver now should exepct a return value of Drv::GpioStatus
from read and write calls. Additionally, the open call now expects a chip argument.
- bool gpio_success = gpioDriver.open(13, Drv::LinuxGpioDriver::GpioDirection::GPIO_OUT);
+ Os::File::Status gpio_success = gpioDriver.open("/dev/gpiochip0", 13, Drv::LinuxGpioDriver::GpioConfiguration::GPIO_OUTPUT);
Time and Interval Changes
Users should now supply a Fw::TimeInterval(seconds, microseconds)
to calls to Os::Task::delay
. Svc.TimeVal
has been replaced by Os::RawTime
.
Full List of Changes
- Fixed UT by @SMorettini in #2543
- Issue 2457 by @LeStarch in #2502
- Address comments from #2485 by @bocchino in #2542
- Update File.cpp by @LeStarch in #2555
- Add shadow variable and pedantic warnings by @JohanBertrand in #2544
- Add DpManager by @bocchino in #2546
- Update troubleshooting by @thomas-bc in #2561
- Fixed documentation of U32 (Swapped signed and unsigned int) by @tsha-256 in #2559
- Resolve string_copy static analysis warnings by @thomas-bc in #2556
- Add Fw::ObjectName to hold Fw::ObjBase name by @thomas-bc in #2497
- Remove FPP dependencies on native int types by @bocchino in #2548
- Force pip to upgrade during setup action by @thomas-bc in #2565
- Explicity add test dependencies to Os_ut_exe by @LeStarch in #2569
- Fix data product array record size by @bocchino in #2568
- Adding GDS development guide by @LeStarch in #2577
- Update dictionary JSON spec field names and examples by @jwest115 in #2574
- Fix crosscompiler path in tutorial by @thomas-bc in #2599
- Fix broken links in INSTALL.md by @thomas-bc in #2610
- Fixes #2602; bumps required version to 3.16 by @LeStarch in #2617
- Update
Svc/PolyDb
to use configurable FPP enumeration as index by @timcanham in #2587 - Disambiguate fpp error messages. Fixes: #2618 by @LeStarch in #2620
- Add Java requirement to install guide by @LeStarch in #2621
- Produce error on restricted targets. Fixes: #2486 by @LeStarch in #2633
- Fix missing fpp_depend build. Fixes: #2576 by @LeStarch in #2631
- Removing GroundInterface component. Fixes: #2037 by @LeStarch in #2632
- Split CMake tests and run with minimum cmake by @LeStarch in #2619
- Add DpWriter by @bocchino in #2593
- Fix INI newline processing. Fixes #2630 by @LeStarch in #2637
- Correcting rate group documentation. Fixes #1719 by @LeStarch in #2638
- Issue 1604 by @LeStarch in #2625
- Fixing Documentation Generation fo macOS by @LeStarch in #2655
- Adding start apps and arguments by @LeStarch in #2616
- Initial documentation of fprime libraries by @LeStarch in #2665
- More GDS plugin guide improvements by @LeStarch in #2670
- Revise types in generated C++ code by @bocchino in #2668
- Add CODE_OF_CONDUCT.md by @LeStarch in #2629
- Update JSON Dictionary spec by @thomas-bc in #2663
- Format cpp and hpp files in Fw/Types by @bocchino in #2677
- FPP v2.1.0a7 by @bocchino in #2676
- Revising integration test api. Fixes: #1902 by @LeStarch in #2652
- trouble-shooting-guide-2500 by @rlcheng in #2684
- Trouble shooting guide 2500 by @rlcheng in #2698
- Improve error display on failure by @JohanBertrand in #2696
- feat(ci): add markdown link checker by @SauravMaheshkar in #2651
- code clean up for POSIX. by @kevin-f-ortega in #2700
- Add JSON dictionary generation to CMake system by @thomas-bc in #2598
- Add Fw::ExternalString and revise string implementations by @bocchino in #2679
- Data Product Catalog prototype by @timcanham in #2667
- Fix string records for data products by @bocchino in #2697
- Add log on TCP/UDP UT failure and fix UDP UT by @JohanBertrand in #2705
- Fixed conversion warnings on framework tests by @JohanBertrand in #2606
- Create TickDriver interface by @chownw in #2708
- Make single-argument string constructors explicit by @bocchino in #2707
- Fix copying of data product containers by @bocchino in #2711
- Update of clang tidy checks by @JohanBertrand in #2710
- Fix Typo by @inferenceus in #2716
- Renamed Time Interface File and fixed where it's included by @CombustableLem0n in #2728
- Add contributing tips by @JohanBertrand in #2704
- fixed typo by @konerzajakub in #2736
- Add
-Wno-format-truncation
to root project by @thomas-bc in #2719 - Os task refactor issue 2526 by @LeStarch in #2672
- Fixing port selection in TCP UTs by @LeStarch in #2739
- Work/string search by @timcanham in #2720
- Remove dead link to kitware blog by @LeStarch in #2746
- Fix CI bash script for macOS by @JohanBertrand in #2742
- Create Command Interface by @rmzmrnn in #2753
- Add Events FPP interface by @menaman123 in #2749
- refactored FW_OBJ_NAME, FW_QUEUE_NAME, and FW_TASK_NAME. by @rldettloff in htt...
Release v3.4.3
Hotfix release correcting a bug in the deployment templates (fprime-util new --deployment
).
What's Changed
- Release v3.4.3 (hotfix), adding [email protected] by @thomas-bc in #2535
Full Changelog: v3.4.2...v3.4.3
Release v3.4.2
Quarterly release including bug fixes, improvements and a few minor breaking changes.
Breaking Changes
- In
Fw/FilePacket
, thelength
andvalue
member variables are now private and should instead be accessed with thegetLength
andgetValue
methods. - In
Svc/FileDownlink
, thesourceName
,destName
,osFile
andsize
member variables are now private and should be accessed with theirget*
methods. send
is now a reserved keyword in FPP. FPP objects that are namedsend
, such as ports, need to be either renamed or escaped with a $ character (see reference on escape characters in FPP)- The following only applies to projects that pull the
config/
folder out offprime/
to configure and own it in their project.
Modifications are required in the following files (links show content to add):
Improvements
- The Ninja build tool is now officially supported by F´ Tools. Generate a Ninja-based build cache with
fprime-util generate --ninja
. fprime-util new --project
is being deprecated in favor of a new package:fprime-bootstrap
. This is to fix installation issues as well as improve user experience with a new recommended approach to using virtual environments within an F´ project. See the Install Guide for more information.- Improvements to the F´ GDS and F´ Tools packages.
All PRs
- Add FPRIME_PROJECT_ROOT to CMAKE_MODULE_PATH. Fixes #2443 by @LeStarch in #2444
- Fix pedantic warning on assert macro by @JohanBertrand in #2436
- Fix/enum representation types by @JackNWhite in #2419
- Fix typo in fpp.cmake by @eltociear in #2459
- Updating framework for FPP post-v2.0.1 by @LeStarch in #2454
- Fix MacOS CI by @thomas-bc in #2466
- Correcting NO_ASSERT handling and safety. Fixes #1706, #2447 by @LeStarch in #2448
- Fix pedantic warnings by @JohanBertrand in #2441
- (#2465) use u8 instead of char by @japrozs in #2471
- Switching to absolute paths in CMake. Fixes #2449 by @LeStarch in #2451
- Generalize UT of RateGroupDriver by @SMorettini in #2472
- Add version-check to bug-report template (#2407) by @0x48piraj in #2490
- Fix
Baremetal/FileSystem
readDirectory()
impl by @kbotteon in #2489 - Fix issues in FppTest by @bocchino in #2494
- Update
ActiveTextLogger
naming to match build system naming expectations by @kbotteon in #2509 - Remove AcConstants.ini by @thomas-bc in #2496
- Fix shadow variables by @JohanBertrand in #2482
- Update demo to show member array support gds by @SMorettini in #2517
- Fixes FIFO buffer after fix-shadow-variables by @LeStarch in #2524
- Removed a_ prefix on arguments by @JohanBertrand in #2513
- Update install guide to use fprime-bootstrap by @thomas-bc in #2512
- Data product framework support by @bocchino in #2485
- Release v3.4.2 by @thomas-bc in #2531
New Contributors
- @JackNWhite made their first contribution in #2419
- @japrozs made their first contribution in #2471
- @0x48piraj made their first contribution in #2490
- @kbotteon made their first contribution in #2489
Full Changelog: v3.4.1...v3.4.2
Release v3.4.1
This release addresses a number of issues with the v3.4.0 release. Most notably, we've corrected a number of issues with the various tool packages that support F´.
What's Changed
- CMake Implementation Selection by @LeStarch in #2384
- Library UTs correctly added with messaging. Fixes #2392 by @LeStarch in #2393
- Update PR template by @thomas-bc in #2402
- Add FPP JSON dictionary spec by @jwest115 in #2403
- Prettify error message if googletest is missing by @thomas-bc in #2408
- Fixing Two Minor CMake Bugs by @LeStarch in #2412
- Add CI on release branches by @thomas-bc in #2417
- Fixes #2420 by removing impl and testimpl targets by @LeStarch in #2425
- Fix check targets name mismatch by @thomas-bc in #2430
- Add recommended pip versions to INSTALL.md by @thomas-bc in #2431
- Attempt to fix #2383 with cleaner code refactoring by @LeStarch in #2434
- Update FPP version to 2.0.2 by @bocchino in #2433
- Fixes #2432 removing extra pointer qualifier by @LeStarch in #2435
- Tame CI to use fewer parallel jobs by @LeStarch in #2437
- Changes for v3.4.1 by @LeStarch in #2438
Full Changelog: v3.4.0...v3.4.1
Release v3.4.0: FPP v2.0.0 Support!
Description
This release of F´, v3.4.0, introduces several major features:
- Interfaces: interfaces are
.fppi
files that break out standard bits of functionality. This allows others to use that functionality in a new component by including that file. The new component may then drop-in for any other component implementing the interface. This means that the days of multiple components using the same model are over! - FPP v2.0: FPP is updated to the v2.0.x line. The old autocoder for C++ files is no longer used, which reduces a significant amount of technical debt. Note: the older autocoder package still remains for use in dictionary generation.
- Documentation: much work has been done on the documentation to ensure that it links correctly, builds correctly, and is more navigable. Enjoy!
- CMake Restructuring: CMake's "prescan" has now been formalized into subbuilds allowing users to use this feature (and enabling the associated UTs to check that it works).
Upgrading to v3.4.0 (Breaking Changes)
This section will designate the breaking changes for this release. Users should study each subsection when upgrading to v3.4.0.
For a full example of all changes described, see: fprime-community/fprime-tutorial-math-component@5ffca10...4b89b9d
Python 3.7 Support Discontinued
Python 3.7 has reached end-of-life and as such our support of Python 3.7 has been discontinued. Users must upgrade their python installations to use Python 3.8 - Python 3.11. Python 3.12 support is being worked on but is unavailable for this release due to significant changes to the python packaging setup.
googletest is a Submodule
The Google Test framework has been made into a submodule. Users of existing projects now need to initialize sub repositories recursively.
git submodule update --init --recursive
Users who have not initialized the repository with the above command will see an error similar to the following during unit test generation. The above command will fix the problem.
-- Configuring incomplete, errors occurred! The source directory .../fprime/googletest does not contain a CMakeLists.txt file. Call Stack (most recent call first): .../fprime/cmake/FPrime-Code.cmake:15 (fprime_setup_included_code) CMakeLists.txt:12 (include)
Svc.LinuxTime
Replaced By Svc.PosixTime
Svc.LinuxTime
was always implementing time services for posix operating systems despite the misnomer. It has been renamed Svc.PosixTime
and implements the new Svc.Time
interface! To upgrade, replace the following in your topology instance definitions:
instance linuxTime: Svc.Time base id 0x4500 \
type "Svc::LinuxTime" \
at "../../Svc/LinuxTime/LinuxTime.hpp"
With the new more streamlined definition:
instance posixTime: Svc.PosixTime base id 0x4500
Usages of
linuxTime
in your C++ code will also need to be renamed toposixTime
.
Implementers of the
Svc.Time
model must switch to using theSvc.Time
interface. This is done by:
- Creating a new FPP model
- Including the
Svc.Time
fppi file- Ensuring the port interfaces are implemented in C++
FPP v2.0: Unit Test Changes
With the upgrade to FPP v2.0 and the new C++ generation back-end, users must update their unit tests include statements as all files are now fully named (no longer generic names like "GTestBase.hpp").
Here is a sample update. The old include names:
#include "GTestBase.hpp"
Must be replaced with the new names:
#include "SignalGenGTestBase.hpp"
Additionally, useages of the Tester
class must be renamed to the qualified class. i.e. Tester
-> SignalGenTester
.
Users may choose to update the filenames as well, although this is not strictly required.
TcpServer Startup and Shutdown Methods Optional
Drv.TcpServer
startup and shutdown methods are now optional, and will be called automatically within the read thread. Users are encouraged to remove explicit calls to these methods, but are not required to do so.
Drv.ByteStreamDriverModel
Has Been Made Into an Interface
The byte stream driver model has been refined into an interface. This means that users need not instantiate it with a "type" defined somewhere else, but instead instantiate a real type that "drops in" to support a byte steam driver.
To upgrade, replace the following in your topology instance definitions:
instance comm: Drv.ByteStreamDriverModel base id 0x4000 \
type "Drv::TcpClient" \ # type specified to select implementor of ByteStreamDriverModel
at "../../Drv/TcpClient/TcpClient.hpp" # location of above implementor must also be specified
With the new more streamlined definition:
instance comm: Drv.TcpClient base id 0x4500
This applies to the
TcpServer
as well.
Implementers of the
Drv.ByteStreamDriverModel
model must switch to using theDrv.ByteStreamDriverModel
interface. This is done by:
- Creating a new FPP model
- Including the
Drv.ByteStreamDriverModel
fppi file- Ensuring the port interfaces are implemented in C++
Svc.RateGroupDriver
Now Accepts Offsets
The rate group driver component had a flaw where all rate groups would be invoked on the same cycle. This causes spikes in system load when all rate groups lined up. We added the ability to specify an offset such that these may be mitigated if a user chooses. However, this means the configuration block for the component has changed.
Replace the older configuration:
NATIVE_INT_TYPE rateGroupDivisors[Svc::RateGroupDriver::DIVIDER_SIZE] = {1, 2, 4};
...
rateGroupDriverComp.configure(rateGroupDivisors, FW_NUM_ARRAY_ELEMENTS(rateGroupDivisors));
With the new configuration:
Svc::RateGroupDriver::DividerSet rateGroupDivisorsSet{{{1, 0}, {2, 0}, {4, 0}}};
...
rateGroupDriverComp.configure(rateGroupDivisorsSet);
In the above example all offsets are set to
0
to maintain the old behavior only with the new configuration interface.
What's Changed
- Added sleep to avoid test failing because of execution too fast by @SMorettini in #2197
- Add tutorial builds to CI by @thomas-bc in #2221
- Adding simple landing page for F´ by @LeStarch in #2254
- Cross-link Installation Guide with troubleshooting Tips by @LeStarch in #2259
- Add upcoming events by @LeStarch in #2260
- Add support for additional baud rates by @SMorettini in #2217
- Converting ByteStreamDriverModel into an interface by @LeStarch in #2252
- Update cross-compilation Appendix I by @thomas-bc in #2267
- Fixing undefined behavior in lib CRC by @LeStarch in #2269
- Update/arrayiffy cmd split by @LeStarch in #2287
- FPP v2.0 integration by @tiffany1618 in #2181
- Add nav bar 3/3: add _includes/toc.md by @Chr1st1anSears in #2271
- Table of Contents update by @thomas-bc in #2294
- Formalize PR process for breaking changes by @thomas-bc in #2289
- Integrate/fpp v2 by @LeStarch in #2293
- Split fpp-input-list to import and source by @thomas-bc in #2305
- Update FPP version to 2.0.0 by @bocchino in #2304
- Fix relative links in TOC by @thomas-bc in #2307
- Adding scalar type test to type demo by @LeStarch in #2313
- Add deployment to arm-linux paths. Fixes #2248. by @LeStarch in #2315
- Fixes #2146 by correcting #if by @LeStarch in #2314
- Added startup, shutdown methods to IpSocket and added startup as a re… by @LeStarch in #2261
- Convert Svc.Time into An Interface by @LeStarch in #2317
- Run RPI integration tests for LedBlinker by @thomas-bc in #2264
- Fix minor build settings issues by @LeStarch in #2339
- Adding gcda clean-up script that works with ctest by @LeStarch in #2331
- Upgrade to check-spelling v0.0.22 by @jsoref in #2316
- Implementation of the offsets in the RateGroupDriver by @SMorettini in #2166
- Updating fprime-tools and fprime-gds versions by @LeStarch in #2344
- Remove Python 3.7 support by @thomas-bc in #2351
- Add F´ Software Architecture links by @thomas-bc in #2357
- Rename noop target to refresh_cache by @thomas-bc in #2361
- Improve linkage of CMake documentation by @thomas-bc in #2355
- Refactor locs, dependencies into generic sub build by @LeStarch in #2360
- Removing join after task failed creation. Fixes #1955 by @LeStarch in #2367
- Update/sloc cache by @LeStarch in #2366
- Update FPP version by @bocchino in #2374
- Remove .dockerignore by @thomas-bc in #2377
- Use GoogleTest as a submodule by @thomas-bc in https:...
Release v3.3.2: New Deployment Hot Fix
This release fixes an issue where deployments created with fprime-util new --deployment
choosing to use TcpServer
as a communication driver did not call .shutdown()
.
What's Changed
- Add missing include by @SMorettini in #2205
- Update ArmLinuxTutorial.md to rework for TcpServer by @LeStarch in #2214
- Update Windows.md to remove firewall stuff by @LeStarch in #2215
- Release/v3.3.2 by @LeStarch in #2216
Full Changelog: v3.3.1...v3.3.2
Release v3.3.1
What's Changed
- The installation guide's instructions have been revised to improve the clarity of virtual environment usage for new users.
F´ Tooling changes
- F´ Tools'
new --deployment
now allows for selection of the comDriver type between TcpClient, TcpServer and LinuxUART. - F´ GDS ships with the UART adapter for all installations.
- F´ GDS is able to run as the TCP client when using the IP adapter, allowing comms with a FSW using TcpServer.
Full Changelog: v3.3.0...v3.3.1
Release v3.3.0
Latest: https://github.com/nasa/fprime/releases/tag/v3.3.2 fixes issues with
fprime-util new --deployment
and using theTcpServer
component for uplink and downlink.
Breaking Changes
- fprime-arm-linux is now shipped in the core F´ framework. Users of the fprime-arm-linux external package should switch to using the toolchains shipped within F´.
What's Changed
- New recommended CMake build structure, new projects are encouraged to use
fprime-util new --project
New Features
fprime-util visualize
: visualize an F´ topology with a single command
New Contributors
- @sobkulir made their first contribution in #1985
- @jwest115 made their first contribution in #1987
- @kubiak-jpl made their first contribution in #1944
- @NoahBraasch made their first contribution in #2024
- @ethancheez made their first contribution in #2070
- @hAkselS made their first contribution in #2095
- @mohitsingh999 made their first contribution in #2097
- @Boehm-Michael made their first contribution in #2098
- @dkogan made their first contribution in #2143
- @John-P-Cargille made their first contribution in #2147
Full Changelog: v3.2.0...v3.3.0
Release v3.3.0-RC1
What's Changed
- Update/streamlined int tests by @LeStarch in #1974
- Remove unneeded f-string formatting by @ThibFrgsGmz in #1978
- Fix FPP syntax in HelloWorld docs by @sobkulir in #1985
- Update fprime-gds doc screenshots by @jwest115 in #1987
- Update BufferAccumulator to FPv3 by @kubiak-jpl in #1944
- Add sourcing the virtual environment to the right spot by @LeStarch in #1993
- Added a name only constructor to ComLogger by @kubiak-jpl in #1983
- Update fprime cli documentation by @SMorettini in #2025
- Adds telemetry packet definition step. by @NoahBraasch in #2024
- Removed ActiveRateGroupImpl (#1920) by @SMorettini in #2023
- Adding prevent_prescan to CMake API by @LeStarch in #2021
- Removes 1-to-1 relation of deployments and projects by @LeStarch in #1994
- Fix missing coverage compilations for unit-test files by @LeStarch in #2013
- History sync (#2024) by @thomas-bc in #2032
- Fix CMake
-P
argument by @pcrosemurgy in #2031 - Rework tutorial index by @LeStarch in #2035
- Fixes main.cpp references in MathComponent tutorial by @NoahBraasch in #2042
- Made assert clickable (#1847) by @SMorettini in #2022
- Add missing dependency for XML generation by @sobkulir in #2044
- Make
Framer.comStatusIn
portsync
, avoid mutual exclusion locking by @pcrosemurgy in #2045 - Adding guard to buffer accumulator by @LeStarch in #2046
- Removing ITAR from expect.txt; References to ITAR should be caught by @LeStarch in #2047
- Fixes some minor F´ issues by @LeStarch in #2052
- Update/passive rg by @LeStarch in #2051
- Add Comm Adapter design to ToC by @thomas-bc in #2057
- Build fprime-community projects as part of CI checks by @thomas-bc in #2049
- Allow prevent prescan to be re-entrant by @LeStarch in #2058
- Remove ctor and dtor from IntervalTimer implementation for Baremetal by @LeStarch in #2067
- Updated startIntTask in LinuxGpioDriver to take a stack size argument by @kubiak-jpl in #2068
- Disable some CI checks on docs updates by @thomas-bc in #2076
- Add stream crossover component by @ethancheez in #2070
- Adding telemetry and event automatic processing for GenericHub by @LeStarch in #2078
- Initial commit for Svc::CmdSplitter by @LeStarch in #2081
- Referencing FPP docs in User Guide by @thomas-bc in #2099
- Include fprime-arm-linux toolchain files by @jwest115 in #2101
- Migrated HelloWorld tutorial to F' community by @hAkselS in #2095
- Add SPI Mode Enum to LinuxSpiDriver by @mohitsingh999 in #2097
- Adding NaN, Infinity, and negative Infinity by @LeStarch in #2131
- Cross-Compiler Documentation Update + Minor CodeQL Alert Resolutions by @Boehm-Michael in #2098
- Migrate MathComponent tutorial to fprime-community by @thomas-bc in #2119
- Fix bug in Fw::Buffer by @bocchino in #2136
- Update STest by @bocchino in #2137
- Clarify valid buffers by @bocchino in #2138
- Reference cross-compilation in tutorial index by @thomas-bc in #2155
- FPP v1.3.0 integration by @tiffany1618 in #2103
- EVR output: we print 6 digits worth of microseconds by @dkogan in #2143
- Updating the "Data Constructs: Commands, Events, Channels, and Parameters" Page in the F' User's Guide by @John-P-Cargille in #2147
- Include member array size in dictionary by @Kronos3 in #2165
- Update FPP version by @bocchino in #2171
- Release 3.3.0 requirements bump by @thomas-bc in #2172
New Contributors
- @sobkulir made their first contribution in #1985
- @jwest115 made their first contribution in #1987
- @kubiak-jpl made their first contribution in #1944
- @NoahBraasch made their first contribution in #2024
- @ethancheez made their first contribution in #2070
- @hAkselS made their first contribution in #2095
- @mohitsingh999 made their first contribution in #2097
- @Boehm-Michael made their first contribution in #2098
- @dkogan made their first contribution in #2143
- @John-P-Cargille made their first contribution in #2147
Full Changelog: v3.2.0...v3.3.0-RC1
F´ Release v3.2.0
Release Notes
F´ v.3.2.0 comes with FPP, Tooling and GDS improvements. The underlying typing system has been improved to allow logical types.
Breaking Changes
- Authors of CMake toolchains should now supply a PlatformTypes.h header according to the Numerical Type design. Linux example provided here: cmake/platform/types/PlatformTypes.h.
- LinuxSerialDriver has been renamed LinuxUartDriver and has been updated to support the ByteStreamDriver model. Users will need to update their ports.
- Users should consider adding ComQueue and ComAdapter to their downlink chain.
- CAssert.hpp renamed CAssert.h
Major Changes
- GDS now supports complex types, command arguments and parameters.
- Sanitization has been added to Unit Tests.
- FPP now directly generates data types and ports.
fprime-util new
now supports generating new projects (as well as deployments and components). Users are recommended to use this new functionality moving forward.- Getting Started tutorial has been reworked and leverages the
fprime-util new
functionality.
New Contributors
- @legounicycler made their first contribution in #1558
- @SMorettini made their first contribution in #1572
- @Anirban166 made their first contribution in #1589
- @Schweinepriester made their first contribution in #1591
- @SimonWaldherr made their first contribution in #1614
- @tiffany1618 made their first contribution in #1629
- @redixin made their first contribution in #1660
- @howjmay made their first contribution in #1668
- @fchapoton made their first contribution in #1644
- @codeflight1 made their first contribution in #1699
- @EbenezerA99 made their first contribution in #1653
- @arizvi786 made their first contribution in #1718
- @gazayas made their first contribution in #1736
- @thomas-bc made their first contribution in #1739
- @kevinthegreat1 made their first contribution in #1777
- @LMPS97 made their first contribution in #1822
- @dmitri-mcguckin made their first contribution in #1854
- @usamah1 made their first contribution in #1908
- @ivanperez-keera made their first contribution in #1928
- @pcrosemurgy made their first contribution in #1935
Full Changelog: v3.1.1...v3.2.0