Skip to content

Commit 0815fbc

Browse files
authored
Merge branch 'devel' into patch-27
2 parents f281f84 + 060f0e1 commit 0815fbc

70 files changed

Lines changed: 2363 additions & 446 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/fpp-tests.yml

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
name: Run FppTest
2222
runs-on: ubuntu-22.04
2323
steps:
24-
- name: "Checkout F´ Repository"
24+
- name: "Checkout F´ Repository"
2525
uses: actions/checkout@v4
2626
with:
2727
fetch-depth: 0
@@ -52,3 +52,39 @@ jobs:
5252
name: FppTest-Logs
5353
path: ./FppTestProject/build-fprime-automatic-native-ut/Testing/Temporary/*.log
5454
retention-days: 5
55+
56+
fpptest-direct-port-calls:
57+
name: Run FppTest (Direct Port Calls)
58+
runs-on: ubuntu-22.04
59+
steps:
60+
- name: "Checkout F´ Repository"
61+
uses: actions/checkout@v4
62+
with:
63+
fetch-depth: 0
64+
submodules: true
65+
- name: "Install requirements.txt"
66+
run: |
67+
pip3 install -r ./requirements.txt
68+
shell: bash
69+
- name: "Generate UT build cache"
70+
working-directory: ./FppTestProject
71+
run: |
72+
fprime-util generate --ut -DFPRIME_ENABLE_DIRECT_PORT_CALLS=ON -DFPRIME_ENABLE_JSON_MODEL_GENERATION=ON
73+
shell: bash
74+
- name: "Build UTs"
75+
working-directory: ./FppTestProject/FppTest
76+
run: |
77+
fprime-util build --ut
78+
shell: bash
79+
- name: "Run UTs"
80+
working-directory: ./FppTestProject/FppTest
81+
run: |
82+
fprime-util check --pass-through --output-on-failure
83+
shell: bash
84+
- name: "Archive Logs"
85+
uses: actions/upload-artifact@v4
86+
if: always()
87+
with:
88+
name: FppTest-DirectPortCalls-Logs
89+
path: ./FppTestProject/build-fprime-automatic-native-ut/Testing/Temporary/*.log
90+
retention-days: 5

.github/workflows/pip-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
runs-on: ${{ matrix.runner }}
2121
strategy:
2222
matrix:
23-
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
23+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
2424
# Purposefully test on both ARM and Intel macOS (macos-latest is ARM)
2525
runner: [macos-15-intel, macos-latest, ubuntu-22.04, ubuntu-latest]
2626
steps:

AI_POLICY.md

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,18 @@
22

33
We're excited about the potential of generative AI to help make [](https://github.com/nasa/fprime) development more productive, enjoyable, and accessible! Whether you're using AI to write code, improve documentation, or learn about complex systems, we welcome the thoughtful use of these powerful tools in your F´ contributions.
44

5-
This guide shares our community's approach to using generative AI effectively and responsibly. You'll find practical tips, best practices, and simple guidelines to help you get the most out of AI tools while maintaining the quality standards that make F´ great.
5+
This guide shares our community's approach to using generative AI effectively and responsibly.
66

77
## Our Position on Generative AI
88

9-
F´ embraces technological advancement and innovation. Generative AI tools can assist with:
10-
11-
- Code generation and refactoring
12-
- Documentation creation and improvement
13-
- Test case development
14-
- Debugging assistance
15-
- Design pattern suggestions
16-
- Learning and understanding our codebases
17-
9+
F´ embraces technological advancement and innovation, including the use of Generative AI tools.
1810
However, the use of generative AI must align with our commitment to high technical standards, quality, and the collaborative nature of open source development.
1911

2012
## Disclosure
2113

22-
To maintain transparency and enable effective code review, contributors **must disclose all generative AI usage**.
23-
This includes contributions in the forms of **Pull Requests**, **Issues** or **Discussions**.
14+
To maintain transparency and enable effective code review, contributors **must disclose all generative AI usage**.
15+
This is not meant to discourage AI use, but to ensure that maintainers and reviewers have the necessary context to evaluate contributions effectively.
16+
This includes contributions in the forms of **Pull Requests**, **Issues**, **Security Advisories**, **Discussions**, or any other communication channels.
2417

2518
### Pull Request Submissions for Contributors
2619

@@ -36,15 +29,6 @@ Include information about:
3629
- **Tool(s) used**: Name of the AI system(s) employed (e.g., GitHub Copilot, ChatGPT, etc.)
3730
- **Level of modification**: Whether AI-generated content was used as-is, modified, or used as inspiration
3831

39-
40-
### What AI Cannot Replace
41-
42-
- **Domain expertise** in flight software and embedded systems
43-
- **Understanding of F Prime architecture** and design patterns
44-
- **Critical thinking** about system requirements and constraints
45-
- **Human judgment** on safety-critical decisions
46-
- **Community collaboration** and peer review processes
47-
4832
## Best Practices
4933

5034
### Providing Guidelines to AI Tools

CONTRIBUTING.md

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Specific Ways to Contribute:
1616
- [Ask a Question or Suggest Improvements](https://github.com/nasa/fprime/discussions/new)
1717
- [Report a Bug or Mistake](https://github.com/nasa/fprime/issues/new/choose)
1818
- [Review Contributions](https://github.com/nasa/fprime/pulls)
19-
- Submit a Pull Request see: [Code Contribution Process](#cod-ontribution-process)
19+
- Submit a Pull Request see: [Code Contribution Process](#code-contribution-process)
2020
- Contribute to Ongoing Discussions and Reviews
2121

2222
Feel free to contribute any way that suits your skills and enjoy.
@@ -37,9 +37,28 @@ development process, and helpful tips sections below.
3737

3838
## Code Contribution Process
3939

40-
All code contributions to F´ begin with an issue. Whether you're fixing a bug, adding a feature, or improving documentation, please start by opening an issue describing your proposal. The Change Control Board (CCB) reviews and approves issues before work begins to ensure alignment with project goals and standards. Once approved, you can proceed with implementation and submit a pull request (PR).
40+
All code contributions to F´ begin with an issue. Whether you're fixing a bug, adding a feature, or improving documentation, start by opening an issue describing your proposal. The Change Control Board (CCB) reviews and approves issues before work begins to ensure alignment with project goals, roadmap priorities, and review capacity. Once approved, you can proceed with implementation and submit a pull request (PR).
4141

42-
If a PR is opened for work that does not correspond to an approved issue, the PR will be routed through the CCB process first—reviewed on a best-effort basis—and may be delayed or declined depending on CCB decisions.You can read more about how this process works in the [F´ Governance document](https://github.com/nasa/fprime/blob/devel/GOVERNANCE.md).
42+
For non-trivial changes, opening an issue is not just a notification step. It is an approval gate. Please do not invest significant implementation effort until maintainers confirm that the work is in scope for F´ and appropriate for this repository.
43+
44+
### What We Prioritize
45+
46+
Maintainer review time is limited. We prioritize work that is approved by our [Change Control Board (CCB)](./GOVERNANCE.md) and aligned with project and community needs.
47+
48+
If a PR is opened for work that does not correspond to an approved issue, the PR will be routed through the CCB process first, reviewed on a best-effort basis, and may be delayed or declined. You can read more about how this process works in the [F´ Governance document](./GOVERNANCE.md).
49+
50+
### When Maintainers May Close a PR
51+
52+
To keep review bandwidth focused on the work that benefits the community the most, maintainers may close a pull request without
53+
extended review when any of the following apply:
54+
55+
- The PR does not correspond to an approved issue per our [CCB process](./GOVERNANCE.md)
56+
- The PR is too large, too cross-cutting, or combines multiple independent changes
57+
- The contribution appears to be generated by AI without clear author understanding
58+
- The PR lacks a clear rationale or explanation of the changes
59+
- The contributor has not responded to review comments after a reasonable amount of time
60+
61+
Closing a PR in these cases is a scope and capacity decision, not a judgment on the contributor. We encourage follow-up through Discussions, smaller issue-backed changes, or work on areas maintainers have identified as needed.
4362

4463
### Development Process
4564

Drv/Ports/DataTypes/DataBuffer.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class DataBuffer : public Fw::LinearBufferBase {
1111
enum {
1212
DATA_BUFFER_SIZE = 256,
1313
SERIALIZED_TYPE_ID = 1010,
14-
SERIALIZED_SIZE = DATA_BUFFER_SIZE + sizeof(FwBuffSizeType)
14+
SERIALIZED_SIZE = STATIC_SERIALIZED_SIZE(DATA_BUFFER_SIZE)
1515
};
1616

1717
DataBuffer(const U8* args, FwSizeType size);

Fw/Cmd/CmdArgBuffer.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ namespace Fw {
2121
class CmdArgBuffer final : public LinearBufferBase {
2222
public:
2323
enum {
24-
SERIALIZED_TYPE_ID = FW_TYPEID_CMD_BUFF, //!< type id for CmdArgBuffer
25-
SERIALIZED_SIZE = FW_CMD_ARG_BUFFER_MAX_SIZE + sizeof(I32) //!< size when serialized. Buffer + size of buffer
24+
SERIALIZED_TYPE_ID = FW_TYPEID_CMD_BUFF, //!< type id for CmdArgBuffer
25+
SERIALIZED_SIZE =
26+
STATIC_SERIALIZED_SIZE(FW_CMD_ARG_BUFFER_MAX_SIZE) //!< size when serialized. Buffer + size of buffer
2627
};
2728

2829
CmdArgBuffer(const U8* args, FwSizeType size); //!< buffer source constructor

Fw/Com/ComBuffer.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class ComBuffer final : public LinearBufferBase {
2121
public:
2222
enum {
2323
SERIALIZED_TYPE_ID = 1010,
24-
SERIALIZED_SIZE = FW_COM_BUFFER_MAX_SIZE + sizeof(FwBuffSizeType) // size of buffer + storage of size word
24+
SERIALIZED_SIZE = STATIC_SERIALIZED_SIZE(FW_COM_BUFFER_MAX_SIZE) // size of buffer + storage of size word
2525
};
2626

2727
ComBuffer(const U8* args, FwSizeType size);

Fw/Fpy/StatementArgBuffer.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class StatementArgBuffer : public LinearBufferBase {
1111
public:
1212
enum {
1313
SERIALIZED_TYPE_ID = FW_TYPEID_TLM_BUFF,
14-
SERIALIZED_SIZE = FW_STATEMENT_ARG_BUFFER_MAX_SIZE + sizeof(FwBuffSizeType)
14+
SERIALIZED_SIZE = STATIC_SERIALIZED_SIZE(FW_STATEMENT_ARG_BUFFER_MAX_SIZE)
1515
};
1616

1717
StatementArgBuffer(const U8* args, FwSizeType size);

Fw/Log/LogBuffer.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace Fw {
2020

2121
class LogBuffer final : public LinearBufferBase {
2222
public:
23-
enum { SERIALIZED_TYPE_ID = FW_TYPEID_LOG_BUFF, SERIALIZED_SIZE = FW_LOG_BUFFER_MAX_SIZE + sizeof(FwBuffSizeType) };
23+
enum { SERIALIZED_TYPE_ID = FW_TYPEID_LOG_BUFF, SERIALIZED_SIZE = STATIC_SERIALIZED_SIZE(FW_LOG_BUFFER_MAX_SIZE) };
2424

2525
LogBuffer(const U8* args, FwSizeType size);
2626
LogBuffer();

Fw/Prm/PrmBuffer.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class ParamBuffer final : public LinearBufferBase {
2727
public:
2828
enum {
2929
SERIALIZED_TYPE_ID = FW_TYPEID_PRM_BUFF,
30-
SERIALIZED_SIZE = FW_PARAM_BUFFER_MAX_SIZE + sizeof(FwBuffSizeType)
30+
SERIALIZED_SIZE = STATIC_SERIALIZED_SIZE(FW_PARAM_BUFFER_MAX_SIZE)
3131
};
3232

3333
ParamBuffer(const U8* args, FwSizeType size);

0 commit comments

Comments
 (0)