From f81262577c1af548e08560606a90cb5698c77778 Mon Sep 17 00:00:00 2001 From: "Gabriel J. Soto" Date: Wed, 19 Jun 2024 10:42:19 -0600 Subject: [PATCH 1/3] adding templates for issues and pull requests based on RAVEN templates --- .github/ISSUE_TEMPLATE.md | 35 ++++++++ .github/ISSUE_TEMPLATE/defect-report.yml | 95 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 42 ++++++++++ .github/ISSUE_TEMPLATE/under-discussion.md | 37 +++++++++ .github/PULL_REQUEST_TEMPLATE.md | 20 +++++ 5 files changed, 229 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/ISSUE_TEMPLATE/defect-report.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/under-discussion.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..284d8c2f --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,35 @@ +-------- +Issue Description +-------- +##### What did you expect to see happen? + + +##### What did you see instead? + + +##### Do you have a suggested fix for the development team? + + +##### Please attach the input file(s) that generate this error. The simpler the input, the faster we can find the issue. + + + +---------------- +For Change Control Board: Issue Review +---------------- +This review should occur before any development is performed as a response to this issue. +- [ ] 1. Is it tagged with a type: defect or task? +- [ ] 2. Is it tagged with a priority: critical, normal or minor? +- [ ] 3. If it will impact requirements or requirements tests, is it tagged with requirements? +- [ ] 4. If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users. +- [ ] 5. Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.) + +------- +For Change Control Board: Issue Closure +------- +This review should occur when the issue is imminently going to be closed. +- [ ] 1. If the issue is a defect, is the defect fixed? +- [ ] 2. If the issue is a defect, is the defect tested for in the regression test system? (If not explain why not.) +- [ ] 3. If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)? +- [ ] 4. If the issue is a defect, does it impact the latest release branch? If yes, is there any issue tagged with release (create if needed)? +- [ ] 5. If the issue is being closed without a pull request, has an explanation of why it is being closed been provided? diff --git a/.github/ISSUE_TEMPLATE/defect-report.yml b/.github/ISSUE_TEMPLATE/defect-report.yml new file mode 100644 index 00000000..6b3ba65b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/defect-report.yml @@ -0,0 +1,95 @@ +name: Defect Report +description: Report a DEFECT you experienced using the code +title: "[DEFECT] " +labels: defect, priority_normal +body: + - type: checkboxes + id: requirements + attributes: + label: Thank you for the defect report + description: Please check the suggestions below before proceeding + options: + - label: I am using the latest version of `FORCE`. + required: true + - label: | + I have created a [minimum, reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) + that demonstrates the defect. + - type: textarea + id: defect-description + attributes: + label: Defect Description + description: A clear and concise description of what the defect is. + validations: + required: true + - type: textarea + id: steps-to-reproduce + attributes: + label: Steps to Reproduce + description: Describe how to reproduce the defect. + validations: + required: true + - type: textarea + id: expected-behavior + attributes: + label: Expected Behavior + description: A clear and concise description of what you expected to happen. + validations: + required: true + - type: textarea + id: additional-info + attributes: + label: Screenshots and Input Files + description: Please attach any additional information like input files, screenshots, recordings and logs, etc. + validations: + required: false + - type: dropdown + id: which-os + attributes: + label: OS + description: Which OS are you using? + options: + - Linux + - MacOS + - Windows + validations: + required: true + - type: input + id: which-version + attributes: + label: OS Version + description: Which OS version are you using? + placeholder: "10.15.5" + validations: + required: false + - type: dropdown + id: which-package-manager + attributes: + label: Dependency Manager + description: Which Dependency Manager are you using? + options: + - PIP + - CONDA + validations: + required: true + - type: checkboxes + id: issue-review + attributes: + label: "For Change Control Board: Issue Review" + description: "This review should occur before any development is performed as a response to this issue." + options: + - label: "Is it tagged with a type: defect or task?" + - label: "Is it tagged with a priority: critical, normal or minor?" + - label: "If it will impact requirements or requirements tests, is it tagged with requirements?" + - label: "If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users." + - label: "Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.)" + - type: checkboxes + id: issue-closure + attributes: + label: "For Change Control Board: Issue Closure" + description: "This review should occur when the issue is imminently going to be closed." + options: + - label: "If the issue is a defect, is the defect fixed?" + - label: "If the issue is a defect, is the defect tested for in the regression test system? (If not explain why not.)" + - label: "If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)?" + - label: "If the issue is a defect, does it impact the latest release branch? If yes, is there any issue tagged with release (create if needed)?" + - label: "If the issue is being closed without a pull request, has an explanation of why it is being closed been provided?" diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..173c8d55 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,42 @@ +--- +name: Feature request +about: Suggest a new capability or addition you would like to see +title: "[TASK] Title here" +labels: priority_minor, task +assignees: + + +--- + +-------- +Issue Description +-------- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +---------------- +For Change Control Board: Issue Review +---------------- +This review should occur before any development is performed as a response to this issue. +- [ ] 1. Is it tagged with a type: defect or task? +- [ ] 2. Is it tagged with a priority: critical, normal or minor? +- [ ] 3. If it will impact requirements or requirements tests, is it tagged with requirements? +- [ ] 4. If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users. +- [ ] 5. Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.) + +------- +For Change Control Board: Issue Closure +------- +This review should occur when the issue is imminently going to be closed. +- [ ] 1. If the issue is a defect, is the defect fixed? +- [ ] 2. If the issue is a defect, is the defect tested for in the regression test system? (If not explain why not.) +- [ ] 3. If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)? +- [ ] 4. If the issue is a defect, does it impact the latest release branch? If yes, is there any issue tagged with release (create if needed)? +- [ ] 5. If the issue is being closed without a pull request, has an explanation of why it is being closed been provided? diff --git a/.github/ISSUE_TEMPLATE/under-discussion.md b/.github/ISSUE_TEMPLATE/under-discussion.md new file mode 100644 index 00000000..f3987459 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/under-discussion.md @@ -0,0 +1,37 @@ +--- +name: Under Discussion +about: This issue template is aimed to propose an item of discussion for new features + or similar +title: "[UNDER-DISCUSSION] New Topic" +labels: under-discussion +assignees: + + +--- + +-------- +Under Discussion Topic +-------- + +**Summary of the topic to be discussed with the development team** +A clear and concise description of the topic to be discusses + +**Describe the solution you'd like to be implemented** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +---------------- +For Change Control Board: Issue Review +---------------- +This review should occur before any development is performed as a response to this issue. +- [ ] 1. Is it tagged with the under_discussion type? +- [ ] 2. If implemented, it will add a new requirement? +- [ ] 3. Is a rationale provided? (Such as explaining why the improvement is needed ) + +------- +For Change Control Board: Issue Closure +------- +This review should occur when the issue is imminently going to be closed. +- [ ] 1. The discussion determined the addition of a new ```task``` issue? diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..e2c38a88 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,20 @@ +-------- +Pull Request Description +-------- +##### What issue does this change request address? (Use "#" before the issue to link it, i.e., #42.) + + +##### What are the significant changes in functionality due to this change request? + + +---------------- +For Change Control Board: Change Request Review +---------------- +The following review must be completed by an authorized member of the Change Control Board. +- [ ] 1. Review all computer code. +- [ ] 2. Make sure the Python code and commenting standards are respected (camelBack, etc.) - See on the [wiki](https://github.com/idaholab/raven/wiki/RAVEN-Code-Standards#python) for details. +- [ ] 3. Automated Tests should pass, including run_tests, pylint, and manual building tests. +- [ ] 4. If significant functionality is added, there must be tests added to check this. Tests should cover all possible options. Multiple short tests are preferred over one large test. +- [ ] 5. If the change modifies or adds a requirement or a requirement based test case, the Change Control Board's Chair or designee also needs to approve the change. The requirements and the requirements test shall be in sync. +- [ ] 6. The merge request must reference an issue. If the issue is closed, the issue close checklist shall be done. + From be84894a96b0005e7ac3b2f25328e68938bd37a8 Mon Sep 17 00:00:00 2001 From: Caleb Sitton Date: Thu, 20 Jun 2024 09:39:03 -0600 Subject: [PATCH 2/3] Fixed function to create components node if missing --- src/heron.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/heron.py b/src/heron.py index 9ebd3949..102f8242 100644 --- a/src/heron.py +++ b/src/heron.py @@ -40,15 +40,18 @@ def create_componentsets_in_HERON(comp_sets_folder, heron_input_xml): HERON_inp_tree = ET.parse(heron_input_xml) components_list = HERON_inp_tree.findall("Components") # The "components" node + # if the "components" node is not found if not components_list: - print("\n", f"The 'Components' node is not found in the HERON input xml file: {heron_input_xml}") - else: - for components in components_list: - component = components.findall("Component") - heron_comp_list = [] # The list of compoenents - for comp in component: - heron_comp_list.append(comp.attrib["name"]) # The list of components found in the HERON input XML file - # print(f" \n The following components are already in the HERON input XML file:'{heron_comp_list}'") + print("\n", f"The 'Components' node is not found in the HERON input xml file {heron_input_xml} and a new 'Components' node is created") + new_comps_node = ET.SubElement(HERON_inp_tree.getroot(), 'Components') + components_list = [new_comps_node] + + for components in components_list: + component = components.findall("Component") + heron_comp_list = [] # The list of components + for comp in component: + heron_comp_list.append(comp.attrib["name"]) # The list of components found in the HERON input XML file + # print(f" \n The following components are already in the HERON input XML file:'{heron_comp_list}'") comp_set_files_list = os.listdir(comp_sets_folder) From 5070b1d985c22e7bbc2ce23fe114081045e2dd54 Mon Sep 17 00:00:00 2001 From: Caleb Sitton Date: Mon, 24 Jun 2024 10:23:09 -0600 Subject: [PATCH 3/3] Cosmetic changes --- src/heron.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/heron.py b/src/heron.py index 102f8242..9b2704fe 100644 --- a/src/heron.py +++ b/src/heron.py @@ -31,9 +31,9 @@ def create_componentsets_in_HERON(comp_sets_folder, heron_input_xml): """ - Create/update components (componnet-sets) in HERON input file + Create/update components (component-sets) in HERON input file @ In, comp_sets_folder, str, The path of the folder that includes several files of the user-input files - These user-input files determine the components which will be grouped together in one set + These user-input files determine the components which will be grouped together in one set @ In, heron_input_xml, str, The path of the original HERON xml file at which components will be updated/created @ Out, HERON_inp_tree, xml.etree.ElementTree.ElementTree, the updated HERON inut file (XML tree) """ @@ -51,8 +51,7 @@ def create_componentsets_in_HERON(comp_sets_folder, heron_input_xml): heron_comp_list = [] # The list of components for comp in component: heron_comp_list.append(comp.attrib["name"]) # The list of components found in the HERON input XML file - # print(f" \n The following components are already in the HERON input XML file:'{heron_comp_list}'") - + comp_set_files_list = os.listdir(comp_sets_folder) # Goin through the FORCE componentSets to extract relevant info