Skip to content

Commit 3801030

Browse files
authored
Merge pull request #81 from forefireAPI/dev
Dev
2 parents 5038f98 + 21d74f3 commit 3801030

16 files changed

Lines changed: 513 additions & 37 deletions

File tree

.gitattributes

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
*.ipynb linguist-detectable=false
1+
2+
# handles large files via git-lfs
23
*.ref filter=lfs diff=lfs merge=lfs -text
4+
5+
# handles lf and crlf for those using git on windows with wsl
36
* text=auto
4-
*.sh text eol=lf
7+
*.sh text eol=lf
8+
*.bash text eol=lf
9+
*.csv text eol=lf
10+
11+
# makes ipynb extension not detectable by linguist
12+
*.ipynb linguist-detectable=false

.github/workflows/main.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
push:
55
branches:
66
- "master"
7-
- "dev-ci"
7+
- "dev"
88
pull_request:
99
branches: [ "master" ]
1010
workflow_dispatch:
@@ -16,7 +16,7 @@ jobs:
1616
- name: Checkout repository
1717
uses: actions/checkout@v4
1818
with:
19-
lfs: true # Keep enabled as you use LFS
19+
lfs: true # we use LFS to store large files (e.g. data.nc)
2020

2121
- name: Install Dependencies (Build + Test)
2222
run: |
@@ -39,7 +39,6 @@ jobs:
3939
- name: Check ForeFire version
4040
run: ./bin/forefire -v
4141

42-
# --- KEEPING DIAGNOSTIC STEPS ---
4342
- name: Add Build/Runtime Diagnostics
4443
run: |
4544
echo "--- ForeFire Linkage ---"
@@ -49,7 +48,6 @@ jobs:
4948
# Install ncdump tool and check the format kind
5049
sudo apt-get install -y --no-install-recommends netcdf-bin
5150
ncdump -k tests/runff/data.nc || echo "Could not check data.nc format"
52-
# --- END DIAGNOSTIC STEPS ---
5351
5452
- name: Run 'runff' Test Script
5553
run: |

CITATION.cff

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
cff-version: 1.2.0
2+
message: "If you use ForeFire in your work, please cite it using the metadata below."
3+
4+
authors:
5+
- given-names: Jean-Baptiste
6+
family-names: Filippi
7+
# orcid: https://orcid.org/XXXX-XXXX-XXXX-XXXX # TODO: Add J-B's ORCID (use the full URL format)
8+
affiliation: "SPE, UMR 6134, CNRS, University of Corsica Pascal Paoli, Corte, France" # TODO: Verify exact affiliation name
9+
10+
# TODO: Add any other major contributors who should be listed as authors of the software
11+
12+
title: "ForeFire: An Open-Source C++ Engine for High-Performance Wildfire Simulation"
13+
14+
# version: Use the version number that is being submitted/reviewed.
15+
version: "2.0.0"
16+
17+
# doi: Uncomment and add the software DOI after archiving the reviewed version on Zenodo/Figshare.
18+
# Do NOT use the DOI of the 2014 paper here.
19+
# doi: 10.5281/zenodo.XXXXXXX
20+
21+
# date-released: Set this to the date of the release corresponding to the 'version'.
22+
date-released: 2025-04-29
23+
24+
url: "https://github.com/forefireAPI/forefire"
25+
license: GPL-3.0-only
26+
27+
keywords:
28+
- C++
29+
- Python
30+
- wildfire simulation
31+
- fire behavior modeling
32+
- high-performance computing
33+
- fire-atmosphere coupling
34+
- numerical modeling
35+
36+
# Optional: Add preferred-citation once the JOSS paper is accepted/published
37+
# preferred-citation:
38+
# type: article
39+
# authors:
40+
# # List authors of the JOSS paper here, matching paper.md
41+
# - given-names: Jean-Baptiste
42+
# family-names: Filippi
43+
# # orcid: https://orcid.org/XXXX-XXXX-XXXX-XXXX
44+
# affiliation: "SPE, UMR 6134, CNRS, University of Corsica Pascal Paoli, Corte, France"
45+
# title: "ForeFire: An Open-Source C++ Engine for High-Performance Wildfire Simulation" # Title of the JOSS paper
46+
# journal: "Journal of Open Source Software"
47+
# # volume: X # JOSS will assign
48+
# # issue: Y # JOSS will assign
49+
# # year: ZZZZ # Year JOSS paper published
50+
# doi: "10.21105/joss.XXXXX" # TODO: Add the JOSS paper DOI once assigned

CODE_OF_CONDUCT.md

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
2+
# Contributor Covenant Code of Conduct
3+
4+
## Our Pledge
5+
6+
We as members, contributors, and leaders pledge to make participation in our
7+
community a harassment-free experience for everyone, regardless of age, body
8+
size, visible or invisible disability, ethnicity, sex characteristics, gender
9+
identity and expression, level of experience, education, socio-economic status,
10+
nationality, personal appearance, race, caste, color, religion, or sexual
11+
identity and orientation.
12+
13+
We pledge to act and interact in ways that contribute to an open, welcoming,
14+
diverse, inclusive, and healthy community.
15+
16+
## Our Standards
17+
18+
Examples of behavior that contributes to a positive environment for our
19+
community include:
20+
21+
* Demonstrating empathy and kindness toward other people
22+
* Being respectful of differing opinions, viewpoints, and experiences
23+
* Giving and gracefully accepting constructive feedback
24+
* Accepting responsibility and apologizing to those affected by our mistakes,
25+
and learning from the experience
26+
* Focusing on what is best not just for us as individuals, but for the overall
27+
community
28+
29+
Examples of unacceptable behavior include:
30+
31+
* The use of sexualized language or imagery, and sexual attention or advances of
32+
any kind
33+
* Trolling, insulting or derogatory comments, and personal or political attacks
34+
* Public or private harassment
35+
* Publishing others' private information, such as a physical or email address,
36+
without their explicit permission
37+
* Other conduct which could reasonably be considered inappropriate in a
38+
professional setting
39+
40+
## Enforcement Responsibilities
41+
42+
Community leaders are responsible for clarifying and enforcing our standards of
43+
acceptable behavior and will take appropriate and fair corrective action in
44+
response to any behavior that they deem inappropriate, threatening, offensive,
45+
or harmful.
46+
47+
Community leaders have the right and responsibility to remove, edit, or reject
48+
comments, commits, code, wiki edits, issues, and other contributions that are
49+
not aligned to this Code of Conduct, and will communicate reasons for moderation
50+
decisions when appropriate.
51+
52+
## Scope
53+
54+
This Code of Conduct applies within all community spaces, and also applies when
55+
an individual is officially representing the community in public spaces.
56+
Examples of representing our community include using an official email address,
57+
posting via an official social media account, or acting as an appointed
58+
representative at an online or offline event.
59+
60+
## Enforcement
61+
62+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
63+
reported to the community leaders responsible for enforcement at filippi_j@univ-corse.fr.
64+
All complaints will be reviewed and investigated promptly and fairly.
65+
66+
All community leaders are obligated to respect the privacy and security of the
67+
reporter of any incident.
68+
69+
## Enforcement Guidelines
70+
71+
Community leaders will follow these Community Impact Guidelines in determining
72+
the consequences for any action they deem in violation of this Code of Conduct:
73+
74+
### 1. Correction
75+
76+
**Community Impact**: Use of inappropriate language or other behavior deemed
77+
unprofessional or unwelcome in the community.
78+
79+
**Consequence**: A private, written warning from community leaders, providing
80+
clarity around the nature of the violation and an explanation of why the
81+
behavior was inappropriate. A public apology may be requested.
82+
83+
### 2. Warning
84+
85+
**Community Impact**: A violation through a single incident or series of
86+
actions.
87+
88+
**Consequence**: A warning with consequences for continued behavior. No
89+
interaction with the people involved, including unsolicited interaction with
90+
those enforcing the Code of Conduct, for a specified period of time. This
91+
includes avoiding interactions in community spaces as well as external channels
92+
like social media. Violating these terms may lead to a temporary or permanent
93+
ban.
94+
95+
### 3. Temporary Ban
96+
97+
**Community Impact**: A serious violation of community standards, including
98+
sustained inappropriate behavior.
99+
100+
**Consequence**: A temporary ban from any sort of interaction or public
101+
communication with the community for a specified period of time. No public or
102+
private interaction with the people involved, including unsolicited interaction
103+
with those enforcing the Code of Conduct, is allowed during this period.
104+
Violating these terms may lead to a permanent ban.
105+
106+
### 4. Permanent Ban
107+
108+
**Community Impact**: Demonstrating a pattern of violation of community
109+
standards, including sustained inappropriate behavior, harassment of an
110+
individual, or aggression toward or disparagement of classes of individuals.
111+
112+
**Consequence**: A permanent ban from any sort of public interaction within the
113+
community.
114+
115+
## Attribution
116+
117+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118+
version 2.1, available at
119+
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
120+
121+
Community Impact Guidelines were inspired by
122+
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
123+
124+
For answers to common questions about this code of conduct, see the FAQ at
125+
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
126+
[https://www.contributor-covenant.org/translations][translations].
127+
128+
[homepage]: https://www.contributor-covenant.org
129+
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
130+
[Mozilla CoC]: https://github.com/mozilla/diversity
131+
[FAQ]: https://www.contributor-covenant.org/faq
132+
[translations]: https://www.contributor-covenant.org/translations

CONTRIBUTING.md

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# Contributing to ForeFire
2+
3+
First off, thank you for considering contributing to ForeFire! We welcome contributions from the community, whether it's reporting bugs, suggesting enhancements, improving documentation, or submitting code changes.
4+
5+
This document provides guidelines for contributing to the project.
6+
7+
## How Can I Contribute?
8+
9+
* [Reporting Bugs](#reporting-bugs)
10+
* [Suggesting Enhancements](#suggesting-enhancements)
11+
* [Contributing Code](#contributing-code)
12+
* [Improving Documentation](#improving-documentation)
13+
14+
## Reporting Bugs
15+
16+
If you encounter a bug while using ForeFire, please help us by reporting it! Good bug reports are essential for improving the software.
17+
18+
1. **Check Existing Issues:** Before submitting a new issue, please search the [GitHub Issues](https://github.com/forefireAPI/forefire/issues) to see if the bug has already been reported.
19+
2. **Gather Information:** If the bug hasn't been reported, please gather the following information:
20+
* ForeFire version (`forefire -v`).
21+
* Operating System (e.g., Ubuntu 22.04, macOS Sonoma, WSL on Windows 11).
22+
* Compiler used (if built from source).
23+
* A clear and concise description of the bug.
24+
* Steps to reproduce the bug reliably. Include relevant parts of your `.ff` script file, input data details, or a minimal example if possible.
25+
* What you expected to happen.
26+
* What actually happened (include any error messages or incorrect output).
27+
3. **Submit the Issue:** Create a new issue on the [GitHub Issues](https://github.com/forefireAPI/forefire/issues) page, providing the information gathered above. Use a descriptive title.
28+
29+
## Suggesting Enhancements
30+
31+
We are open to suggestions for new features or improvements to existing functionality.
32+
33+
1. **Check Existing Issues/Discussions:** Search the [GitHub Issues](https://github.com/forefireAPI/forefire/issues) (look for "enhancement" or "feature request" labels) and potentially [GitHub Discussions](https://github.com/forefireAPI/forefire/discussions) (if enabled) to see if your idea has already been discussed.
34+
2. **Submit the Suggestion:** If your idea is new, create a new issue on the [GitHub Issues](https://github.com/forefireAPI/forefire/issues) page.
35+
* Use a clear and descriptive title.
36+
* Explain the enhancement you would like to see.
37+
* Describe the motivation or use case for the enhancement (why it would be valuable).
38+
* Provide examples or details on how you envision the feature working, if applicable.
39+
40+
## Contributing Code
41+
42+
We welcome code contributions, from bug fixes to new features.
43+
44+
1. **Discuss First (for major changes):**
45+
46+
If you plan to implement a significant new feature or make major changes to the architecture, please open an issue first to discuss your proposal with the development team. This helps ensure your contribution aligns with the project's goals and avoids duplicated effort. For smaller bug fixes, feel free to proceed directly to a Pull Request.
47+
48+
2. **Set Up Development Environment:**
49+
50+
Follow the instructions in the [Installation Guide](https://forefire.readthedocs.io/en/latest/getting_started/installation.html) to build ForeFire from source. *(Update link if RTD URL changes)*
51+
52+
3. **Fork the Repository:**
53+
54+
Create your own fork of the `forefireAPI/forefire` repository on GitHub.
55+
56+
4. **Create a Branch:**
57+
58+
Create a new branch in your fork for your changes. Use a descriptive name (e.g., `fix-rothermel-bug`, `feature-add-new-model`).
59+
```bash
60+
git checkout -b my-feature-branch
61+
```
62+
5. **Make Changes:**
63+
64+
Implement your code changes, following existing coding style and conventions where possible.
65+
6. **Add Tests (if applicable):**
66+
67+
For new features or significant bug fixes, please add corresponding tests or update existing ones. See the [Testing Documentation](https://forefire.readthedocs.io/en/latest/developer_guide/testing.html) *(Placeholder: Link to testing section once created)* for details on how to run tests. Ensure all tests pass locally.
68+
```bash
69+
# Example command to run tests (adjust as needed)
70+
cd tests && bash run.bash
71+
```
72+
7. **Commit Changes:**
73+
74+
Commit your changes with clear and concise commit messages.
75+
```bash
76+
git add .
77+
git commit -m "feat: Implement new flux model calculation"
78+
```
79+
8. **Push to Your Fork:**
80+
81+
Push your branch to your GitHub fork.
82+
```bash
83+
git push origin my-feature-branch
84+
```
85+
9. **Open a Pull Request (PR):**
86+
87+
Go to the `forefireAPI/forefire` repository on GitHub and open a Pull Request from your branch to the `dev` branch (or `master` if that's the target).
88+
* Provide a clear description of the changes in the PR.
89+
* Link any relevant issues (e.g., "Fixes #123").
90+
* Ensure the CI checks pass on your PR. The maintainers will review your code, provide feedback, and merge it once approved.
91+
92+
## Improving Documentation
93+
94+
Good documentation is crucial! If you find errors, areas that are unclear, or sections that could be expanded, please help improve it.
95+
96+
* Documentation source files are located in the `docs/source/` directory.
97+
* They are written in reStructuredText (`.rst`).
98+
* You can follow the same Fork -> Branch -> Edit -> Pull Request workflow as for code contributions to suggest changes to the documentation files.
99+
100+
## Code of Conduct
101+
102+
All contributors are expected to adhere to the project's [Code of Conduct](CODE_OF_CONDUCT.md). Please be respectful and considerate in all interactions.
103+
104+
Thank you for contributing to ForeFire!

README.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
1010
![Language](https://img.shields.io/badge/C++-00599C?logo=c%2B%2B&logoColor=white)
1111
![Language](https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white)
12-
[![Documentation Status](https://readthedocs.org/projects/firefront/badge/?version=latest)](https://firefront.readthedocs.io/en/latest/?badge=latest)
12+
[![Documentation Status](https://readthedocs.org/projects/forefire/badge/?version=latest)](https://forefire.readthedocs.io/en/latest/?badge=latest)
1313
[![DOI](https://img.shields.io/badge/DOI-10.14195/978--989--26--0884--6_29-blue)](https://www.researchgate.net/publication/278769168_ForeFire_open-source_code_for_wildland_fire_spread_models) <!-- Or use Zenodo DOI if available -->
1414

1515

16-
**ForeFire** is an open-source **wildfire simulation engine** written in C++. Developed by CNRS at the [Université de Corse Pascal Paoli](https://www.univ-corse.fr/), it is used for research and operational forecasting. The engine implements various fire behavior models, handles complex geospatial data, and enables high-fidelity coupled fire-atmosphere simulations.
16+
**ForeFire** is an open-source **wildfire simulation engine** written in C++. Developed by CNRS at the [Université de Corse Pascal Paoli](https://www.univ-corse.fr/), it is used for research and operational forecasting. The engine implements various fire behavior models and enables high-fidelity coupled fire-atmosphere simulations, aiming to improve wildfire prediction and understanding for complex environments.
1717

1818

1919
**Key Links:**
20-
- 📚 **Full Documentation:** [forefire.readthedocs.io](https://firefront.readthedocs.io/en/latest/)
20+
- 📚 **Full Documentation:** [forefire.readthedocs.io](https://forefire.readthedocs.io/en/latest/)
2121
- 🚀 **Live Demo:** [forefire.univ-corse.fr/sim](http://forefire.univ-corse.fr/sim)
2222
- 🌍 **Website:** [forefire.univ-corse.fr](https://forefire.univ-corse.fr/)
2323

@@ -46,7 +46,7 @@ The easiest way to get started is often using Docker and the interactive console
4646
``` bash
4747
# Clone the repository
4848
git clone https://github.com/forefireAPI/forefire.git
49-
cd firefront
49+
cd forefire
5050
```
5151

5252
2. Build the Docker image
@@ -74,7 +74,7 @@ The easiest way to get started is often using Docker and the interactive console
7474
forefire> listenHTTP[]
7575
7676
# the output should be
77-
>> HTTP command server listening at http://localhost:8000
77+
>> ForeFire HTTP command server listening at http://localhost:8000
7878
```
7979

8080
This server provides a grafical user interface that you can access on your browser at http://localhost:8000/
@@ -93,11 +93,17 @@ See the Full Documentation for more details on building from source with the `in
9393
ForeFire provides Python bindings for easier scripting and integration. See the Python Bindings [./bindings/python/README.md](./bindings/python/README.md) for details.
9494

9595
## Contributing
96-
Contributions are welcome! Whether it's reporting a bug, suggesting an enhancement, or submitting code changes. We especially appreciate help with:
96+
97+
We welcome contributions to ForeFire! We especially appreciate help with:
98+
9799
- Improving documentation and tutorials.
98100
- Python bindings
99101
- Enhancing packaging (Docker, Pip, etc.) and cross-platform compatibility.
100102

103+
Please read our **[Contributing Guidelines](CONTRIBUTING.md)** to learn how you can help, including how to report bugs, suggest features, and submit code changes.
104+
105+
All contributors are expected to adhere to our **[Code of Conduct](CODE_OF_CONDUCT.md)**.
106+
101107

102108
## License
103109
ForeFire is licensed under the GNU General Public License v3.0. See [LICENSE](./LICENSE) for full details.

0 commit comments

Comments
 (0)