Skip to content
Closed
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
90 changes: 90 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: "\U0001FAB2 Bug report"
description: "Bug or test failure in ExaGO code"
#title: "Bug: "
labels: [bug]
body:
# CHECKBOX:
- type: checkboxes
id: issue_relates_to
attributes:
label: "Issue applies to:"
description: You may select more than one.
options:
- label: pflow
- label: OPFLOW
- label: TCOPFLOW
- label: SCOPFLOW
- label: SOPFLOW
- label: CMake and build system
- label: Spack
- label: Visualization
- label: Documentation
- label: Other
validations:
required: true

- type: textarea
id: summary
attributes:
label: "Summary"
description: "Please provide detailed description of the issue."
validations:
required: true

- type: textarea
id: reproduce
attributes:
label: "Description how to reproduce the issue"
description: "Please provide launch command and the output when you encounter the issue (if applicable)."
value: |
<!-- Include short error output here. -->
```console
$ ./opflow
(...)
```
<!-- If the error output is long, attach a file
or write it in a block that can be closed as below: -->
<details>

```
$ ./opflow
(...)
```
</details>
validations:
required: false

- type: input
id: exago_version
attributes:
label: "ExaGO version"
description: |
Please include the version of ExaGO™ which demonstrates the problem.
If building from source on a non-tagged version, please include the commit hash.
validations:
required: true

- type: textarea
id: system_info
attributes:
label: "System and environment details"
description: |
Please include details about your system, such as:
- Operating system
- Compilers
- Hardware backends (CUDA, HIP)
- Dependencies and package versions
validations:
required: true

- type: textarea
id: additional_information
attributes:
label: "Additional information"
description: "Upload additional information such as debugging backtraces, logs and screenshots, when applicable."

- type: textarea
id: possible_fix
attributes:
label: "Possible fix or workaround"
description: "Describe your proposed fix, when applicable."
55 changes: 55 additions & 0 deletions .github/ISSUE_TEMPLATE/discussion.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: "❓ Discussion"
description: "A question or discussion about ExaGO code, design, or development process."
#title: "Bug: "
labels: [question]
body:
# CHECKBOX:
- type: checkboxes
id: issue_relates_to
attributes:
label: "Issue applies to:"
description: You may select more than one.
options:
- label: PFLOW
- label: OPFLOW
- label: TCOPFLOW
- label: SCOPFLOW
- label: SOPFLOW
- label: CMake and build system
- label: Spack
- label: Visualization
- label: Documentation
- label: Other
validations:
required: true

- type: textarea
id: summary
attributes:
label: "Summary"
description: "Please pose question or the description of the discussion topic."
validations:
required: true

- type: textarea
id: objective
attributes:
label: "Objective"
description: "Please provide the objective of the discussion. What question do you want to answer? What do you want to achieve?"
validations:
required: true

- type: input
id: exago_version
attributes:
label: "ExaGO version"
description: |
Please include the relevant version of ExaGO™, if applicable.
validations:
required: false

- type: textarea
id: additional_information
attributes:
label: "Additional information"
description: "Add references or examples relevant to the discussion."
19 changes: 2 additions & 17 deletions .github/ISSUE_TEMPLATE/exago_issue.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,8 @@
name: "Issue Report"
description: "Issue in ExaGO code"
name: "⚒️ Other"
description: "An issue in ExaGO code that does not fit into other categories"
#title: "Bug: "
#labels: [bug]
body:
# DROPDOWN:
- type: dropdown
id: issue_type
attributes:
label: Issue type
description: Please select from pulldown menu.
options:
- ""
- Bug
- Feature Request
- Discussion
- Other
validations:
required: true

# CHECKBOX:
- type: checkboxes
id: issue_relates_to
Expand Down
75 changes: 75 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: "\U0001F38A Feature request"
description: "Suggest adding a feature that is not yet in ExaGO."
#title: "Bug: "
labels: [enhancement]
body:
# CHECKBOX:
- type: checkboxes
id: issue_relates_to
attributes:
label: "Issue applies to:"
description: You may select more than one.
options:
- label: PFLOW
- label: OPFLOW
- label: TCOPFLOW
- label: SCOPFLOW
- label: SOPFLOW
- label: CMake and build system
- label: Spack
- label: Visualization
- label: Documentation
- label: Other
validations:
required: true

- type: textarea
id: summary
attributes:
label: "Summary"
description: "Please add a concise summary of your suggestion here."
validations:
required: true

- type: textarea
id: reproduce
attributes:
label: "Rationale"
description: "Is your feature request related to a problem? Please describe it!."
validations:
required: true

- type: input
id: exago_version
attributes:
label: "ExaGO version"
description: |
Please include the relevantversion of ExaGO™.
If building from source on a non-tagged version, please include the commit hash.
validations:
required: true

- type: textarea
id: system_info
attributes:
label: "System and environment details"
description: |
Is your feature system specific? If so, please include relevant details, such as:
- Operating system
- Compilers
- Hardware backends (CUDA, HIP)
- Dependencies and package versions
validations:
required: false

- type: textarea
id: proposed_solution
attributes:
label: "Proposed solution"
description: "Describe your proposed feature and highlight implementation details, when applicable."

- type: textarea
id: additional_information
attributes:
label: "Additional information"
description: "Add any relevant references or examples."
2 changes: 1 addition & 1 deletion .gitlab/pnnl/base.gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ stages:
git commit -m "Update ${MY_CLUSTER} spack built tcl modules - [${MY_CLUSTER}-test]"

# Re-target GitHub as our remote
git remote set-url origin https://gitlab-ci-token:${SPACK_GIT_TOKEN}@github.com/pnnl/ExaGO.git
git remote set-url origin https://gitlab-ci-token:${SPACK_GIT_TOKEN}@github.com/ornl/ExaGO.git

# Do a rebase incase another pipeline has pushed since build started
git pull --rebase origin ${CI_COMMIT_REF_NAME}
Expand Down
6 changes: 3 additions & 3 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ The rest of this document assumes you want to install with CMake and you already
### Acquiring the Source Code

```console
git clone https://github.com/pnnl/ExaGO.git
git clone https://github.com/ornl/ExaGO.git

# Or if you have SSH keys set up:
git clone git@github.com:pnnl/ExaGO.git
git clone git@github.com:ornl/ExaGO.git
```

### Dependencies
Expand Down Expand Up @@ -84,7 +84,7 @@ If you are using the HiOp solver, HiOp must be built with the same RAJA and Umpi
### CMake Workflow

```console
git clone git@github.com:pnnl/ExaGO.git
git clone git@github.com:ornl/ExaGO.git
cd ExaGO
git submodule update --init --recursive
mkdir build
Expand Down
2 changes: 1 addition & 1 deletion SUPPORT.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Please submit issues at [ExaGO's GitLab issues page](https://gitlab.pnnl.gov/exasgd/frameworks/exago/-/issues) for support.
Please submit issues at [ExaGO's GitHub issues page](https://github.com/ORNL/ExaGO/issues) for support.
18 changes: 9 additions & 9 deletions docs/developer_guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
**If you don't have direct write access to the ExaGO repository:**

1. Fork the repository on GitHub:
- Navigate to https://github.com/pnnl/ExaGO
- Navigate to https://github.com/ornl/ExaGO
- Click the "Fork" button in the top right
- This creates your fork at `https://github.com/yourusername/ExaGO`

Expand All @@ -29,7 +29,7 @@
**If you have direct write access:**

```bash
$ git clone https://github.com/pnnl/ExaGO.git
$ git clone https://github.com/ornl/ExaGO.git
$ cd ExaGO
```

Expand All @@ -38,7 +38,7 @@ $ cd ExaGO
After cloning, configure the `upstream` remote to point to the original repository:

```bash
$ git remote add upstream https://github.com/pnnl/ExaGO.git
$ git remote add upstream https://github.com/ornl/ExaGO.git
$ git fetch upstream
```

Expand All @@ -49,7 +49,7 @@ $ git remote -v
```

You should see:
- `upstream` pointing to `https://github.com/pnnl/ExaGO.git` (the original repository)
- `upstream` pointing to `https://github.com/ornl/ExaGO.git` (the original repository)
- `origin` pointing to your fork (if you forked) or the original repository (if you have direct access)

#### P022: Branch Off Of `develop` Unless You Have a Good Reason Not To
Expand Down Expand Up @@ -85,18 +85,18 @@ $ git push --force-with-lease origin develop
```

**Note on remotes:**
- `upstream` refers to the original ExaGO repository (`https://github.com/pnnl/ExaGO.git`) - you **pull** from here to stay up to date
- `upstream` refers to the original ExaGO repository (`https://github.com/ornl/ExaGO.git`) - you **pull** from here to stay up to date
- `origin` refers to your fork (if you forked) or the original repository (if you have direct access) - you **push** to here

**Submitting a Pull Request:**

If working with a fork, after pushing your feature branch to `origin`, create a Pull Request on GitHub:
1. Navigate to the original ExaGO repository at https://github.com/pnnl/ExaGO
1. Navigate to the original ExaGO repository at https://github.com/ornl/ExaGO
2. GitHub will typically show a banner to create a PR from your recently pushed branch
3. **Ensure a corresponding feature branch exists on upstream**: Coordinate with maintainers to confirm that a feature branch (e.g., `my-cool-feature`) has been created on the upstream repository. This allows CI tests to run on the upstream feature branch before merging to `develop`
4. Create a PR from `yourusername:my-cool-feature` → `pnnl:my-cool-feature`
4. Create a PR from `yourusername:my-cool-feature` → `ornl:my-cool-feature`

This will ensure you are rebased on the most recent development branch. If you see [open pull requests on ExaGO's repository](https://github.com/pnnl/ExaGO/pulls) that touch the same lines of code that you are working on, please coordinate with the developers of that merge request so your work doesn't conflict.
This will ensure you are rebased on the most recent development branch. If you see [open pull requests on ExaGO's repository](https://github.com/ornl/ExaGO/pulls) that touch the same lines of code that you are working on, please coordinate with the developers of that merge request so your work doesn't conflict.

#### P001: Don't Run Continuous Integration Pipelines If You Only Changed Documentation

Expand Down Expand Up @@ -272,7 +272,7 @@ You may also run `buildsystem/tools/cmake_format.pl -i`.

1. [LLVM Flang's style guide](https://github.com/llvm/llvm-project/blob/main/flang/docs/C%2B%2Bstyle.md)
1. [Google's style guide](https://google.github.io/styleguide/cppguide.html)
1. [ExaGO's public repository](https://github.com/pnnl/ExaGO)
1. [ExaGO's public repository](https://github.com/ornl/ExaGO)
1. [Chris Beams's blog post on writing commit messages](https://chris.beams.io/posts/git-commit)
1. [Pablo Ariasblog post on cmake best practices](https://pabloariasal.github.io/2018/02/19/its-time-to-do-cmake-right/)
1. [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
Expand Down
8 changes: 4 additions & 4 deletions docs/exago_policy_compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ and should be considered when filling out this form.
Please, provide information on your compability status for each mandatory policy, and if possible also for recommended policies.
If you are not compatible, state what is lacking and what are your plans on how to achieve compliance.

**Website:** https://github.com/pnnl/ExaGO
**Website:** https://github.com/ornl/ExaGO

### Mandatory Policies

Expand All @@ -16,12 +16,12 @@ If you are not compatible, state what is lacking and what are your plans on how
|**M2.** Provide a comprehensive test suite for correctness of installation verification. |Full|Comprehensive test suite with 21 unit tests and 94 integration/funcitonality tests (depending on the branch). See the `tests` directory for the full test suite. `tests/unit` contains unit tests, `tests/functionality` contains full end-to-end tests of the ExaGO applications libraries (eg OPFLOW and SOPFLOW). `tests/interfaces` contains tests for the Python bindings, which are a work in progress.|
|**M3.** Employ user-provided MPI communicator (no `MPI_COMM_WORLD`). Don't assume a full MPI 3 implementation without checking. Provide an option to prevent any changes to MPI error-handling if it is changed by default. |Full| ExaGO is built on PETSc, and uses PETSc's APIs for interacting with MPI. All application structures (eg OPFLOW) are constructed with an MPI communicator, and `MPI_COMM_WORLD`. `grep`ing for `MPI_COMM_WORLD` in ExaGO's repository will identify the test drivers, example application drivers, and an initialization utility as using `MPI_COMM_WORLD`. The utility (`src/utils/utils.cpp`) will only use the global communicator if no communicator is given, and the drivers use the global communicator as examples.|
|**M4.** Give best effort at portability to key architectures (standard Linux distributions, GNU, Clang, vendor compilers, and target machines at ALCF, NERSC, OLCF). |Full| Continuous integration tests each branch on multiple platforms, including IBM Power9 at ORNL and PNNL, and x86 at PNNL. CI on an AMD platform is in progress. |
|**M5.** Provide a documented, reliable way to contact the development team. |Full|[Submit issues on Github page linked here.](https://github.com/pnnl/ExaGO/issues) The SUPPORT file in the top-level directory points users to this location as well.|
|**M5.** Provide a documented, reliable way to contact the development team. |Full|[Submit issues on Github page linked here.](https://github.com/ornl/ExaGO/issues) The SUPPORT file in the top-level directory points users to this location as well.|
|**M6.** Respect system resources and settings made by other previously called packages (e.g. signal handling). |Full| No signal hanlders are overridden. |
|**M7.** Come with an open source (BSD style) license. |Full|See [LICENSE](/LICENSE) file in root of source directory. ExaGO uses PNNL/Battelle's BSD-style license.|
|**M8.** Provide a runtime API to return the current version number of the software. |Full|Header `exago_config.h` defines version and configuration information, and we expose various runtime APIs for software information, such as `ExaGOVersionGetVersion` and `ExaGOVersionGetReleaseDate`.|
|**M9.** Use a limited and well-defined symbol, macro, library, and include file name space. |Full| All macros are prefixed with `EXAGO_` and headers installed under `exago/` directory. |
|**M10.** Provide an xSDK team accessible repository (not necessarily publicly available). |Full|[Public Github repository linked here](https://github.com/pnnl/ExaGO). |
|**M10.** Provide an xSDK team accessible repository (not necessarily publicly available). |Full|[Public Github repository linked here](https://github.com/ornl/ExaGO). |
|**M11.** Have no hardwired print or IO statements that cannot be turned off.
|Full|Logging may be disabled with `ExaGOLogSetMinLogLevel(EXAGO_LOG_DISABLE)`
or by enabling the CMake option `EXAGO_ENABLE_LOGGING=OFF` to ensure the logger is fully disabled.|
Expand All @@ -39,7 +39,7 @@ M2 details <a id="m2-details"></a>: optional: provide more details about approac

| Policy |Support| Notes |
|------------------------|-------|-------------------------|
|**R1.** Have a public repository. |Full| [Public GitHub repository linked here](https://github.com/pnnl/ExaGO). |
|**R1.** Have a public repository. |Full| [Public GitHub repository linked here](https://github.com/ornl/ExaGO). |
|**R2.** Possible to run test suite under valgrind in order to test for memory corruption issues. |Full| It is possible to run any of the application drivers and test drivers under Valgrind. This has only been test with the leakcheck tool, and not any of the other tools from Valgrind. |
|**R3.** Adopt and document consistent system for error conditions/exceptions. |Full| ExaGO makes thorough use of return codes and error checking, particularly the PETSc macros such as `ERRCHKQ`. |
|**R4.** Free all system resources acquired as soon as they are no longer needed. |Full| Memory for the model is allocated at the beginning of the program and freed at the end. ExaGO also allows for using an external solver, in which case the memory is used by a thrid-party library. These libraries (PETSc, Ipopt, and HiOp) also adequately free memory they allocate. |
Expand Down
2 changes: 1 addition & 1 deletion docs/python_bindings.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ API. Failure to do so will cause segmentation faults or other memory
errors.

***If you identify components of the C++ API that you need to call from Python,
please [open an issue on our issues page](https://github.com/pnnl/ExaGO/issues).***
please [open an issue on our issues page](https://github.com/ornl/ExaGO/issues).***

### Building with MPI

Expand Down
Loading
Loading