Skip to content

Commit bc8f490

Browse files
authored
Merge branch 'devel' into fix/dp-catalog-static-analysis-4521
2 parents fac345d + fed7efe commit bc8f490

230 files changed

Lines changed: 3045 additions & 1195 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/actions/spelling/allow.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
AUTOGEN
22
atype
3+
deinit
34
github
45
https
56
ssh

.github/actions/spelling/excludes.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,4 @@
102102
ignore$
103103
mlc-config.json
104104
Autocoders/
105+
local-website-build.sh

.github/actions/spelling/expect.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@ initstate
352352
inkscape
353353
inorder
354354
installable
355+
interoperate
355356
intlimits
356357
inttypes
357358
INVALIDBUFFER

.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:

.github/workflows/reusable-project-builder.yml

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ jobs:
4848
env:
4949
FPRIME_LOCATION: ${{ inputs.fprime_location }}
5050
TARGET_PLATFORM: ${{ inputs.target_platform }}
51-
VERBOSE_FLAG: ${{ runner.debug == '1' && '--verbose' || '' }}
5251
steps:
5352
- name: "Checkout target repository"
5453
uses: actions/checkout@v4
@@ -68,11 +67,21 @@ jobs:
6867
- name: "Generate build cache"
6968
working-directory: ${{ inputs.build_location }}
7069
run: |
70+
if [ "${RUNNER_DEBUG:-0}" = "1" ]; then
71+
VERBOSE_FLAG=--verbose
72+
else
73+
VERBOSE_FLAG=
74+
fi
7175
fprime-util generate ${VERBOSE_FLAG} ${TARGET_PLATFORM}
7276
shell: bash
7377
- name: "Build"
7478
working-directory: ${{ inputs.build_location }}
7579
run: |
80+
if [ "${RUNNER_DEBUG:-0}" = "1" ]; then
81+
VERBOSE_FLAG=--verbose
82+
else
83+
VERBOSE_FLAG=
84+
fi
7685
fprime-util build -j8 ${VERBOSE_FLAG} ${TARGET_PLATFORM}
7786
shell: bash
7887

@@ -83,7 +92,6 @@ jobs:
8392
env:
8493
FPRIME_LOCATION: ${{ inputs.fprime_location }}
8594
TARGET_PLATFORM: ${{ inputs.target_platform }}
86-
VERBOSE_FLAG: ${{ runner.debug == '1' && '--verbose' || '' }}
8795
steps:
8896
- name: "Checkout target repository"
8997
uses: actions/checkout@v4
@@ -103,16 +111,31 @@ jobs:
103111
- name: "Generate UT build cache"
104112
working-directory: ${{ inputs.build_location }}
105113
run: |
114+
if [ "${RUNNER_DEBUG:-0}" = "1" ]; then
115+
VERBOSE_FLAG=--verbose
116+
else
117+
VERBOSE_FLAG=
118+
fi
106119
fprime-util generate --ut ${VERBOSE_FLAG} ${TARGET_PLATFORM}
107120
shell: bash
108121
- name: "Build UTs"
109122
working-directory: ${{ inputs.build_location }}
110123
run: |
124+
if [ "${RUNNER_DEBUG:-0}" = "1" ]; then
125+
VERBOSE_FLAG=--verbose
126+
else
127+
VERBOSE_FLAG=
128+
fi
111129
fprime-util build --ut -j8 ${VERBOSE_FLAG} ${TARGET_PLATFORM}
112130
shell: bash
113131
- name: "Run Unit Tests"
114132
working-directory: ${{ inputs.build_location }}
115133
run: |
134+
if [ "${RUNNER_DEBUG:-0}" = "1" ]; then
135+
VERBOSE_FLAG=--verbose
136+
else
137+
VERBOSE_FLAG=
138+
fi
116139
fprime-util check -j8 ${VERBOSE_FLAG} ${TARGET_PLATFORM} --pass-through --output-on-failure
117140
shell: bash
118141

.github/workflows/spelling.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ jobs:
7777
contents: read
7878
pull-requests: read
7979
actions: read
80-
security-events: write
8180
outputs:
8281
followup: ${{ steps.spelling.outputs.followup }}
8382
runs-on: ubuntu-24.04
@@ -89,7 +88,7 @@ jobs:
8988
steps:
9089
- name: check-spelling
9190
id: spelling
92-
uses: check-spelling/check-spelling@v0.0.24
91+
uses: check-spelling/check-spelling@v0.0.26
9392
with:
9493
suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }}
9594
checkout: true
@@ -99,8 +98,8 @@ jobs:
9998
use_magic_file: 1
10099
report-timing: 1
101100
warnings: bad-regex,binary-file,deprecated-feature,ignored-expect-variant,large-file,limited-references,no-newline-at-eof,noisy-file,non-alpha-in-dictionary,token-is-substring,unexpected-line-ending,whitespace-in-dictionary,minified-file,unsupported-configuration,no-files-to-check,unclosed-block-ignore-begin,unclosed-block-ignore-end
102-
use_sarif: ${{ (!github.event.pull_request || (github.event.pull_request.head.repo.full_name == github.repository)) && 1 }}
103-
check_extra_dictionaries: ''
101+
use_sarif: 0
102+
check_extra_dictionaries: ""
104103
dictionary_source_prefixes: >
105104
{
106105
"cspell": "https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20241114/dictionaries/"

.nav.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ nav:
2525
- Framework: docs/user-manual/framework/
2626
- FPP: 'https://nasa.github.io/fpp/fpp-users-guide.html'
2727
- GDS: docs/user-manual/gds
28-
- Design Pattens: docs/user-manual/design-patterns/
28+
- Design Patterns: docs/user-manual/design-patterns/
2929
- Build System: docs/user-manual/build-system/
3030
- Security: docs/user-manual/security/
3131
- How To: docs/how-to

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

0 commit comments

Comments
 (0)