Skip to content

Commit

Permalink
Initial implementation (#1)
Browse files Browse the repository at this point in the history
Initial implementation of zppy-interfaces
  • Loading branch information
forsyth2 authored Nov 22, 2024
1 parent aed6738 commit 46f0ff9
Show file tree
Hide file tree
Showing 25 changed files with 2,492 additions and 0 deletions.
24 changes: 24 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[flake8]
# https://pep8.readthedocs.io/en/latest/intro.html#error-codes
ignore =
# whitespace before ‘:’
E203
# line too long (82 > 79 characters)
E501
# line break before operator
W503
# Max width of Github code review is 119 characters
max-line-length = 119
max-complexity = 18
exclude =
.tox,
.git,
*/migrations/*,
*/static/CACHE/*,
docs,
node_modules,
.idea,
.mypy_cache,
.pytest_cache,
*__init__.py,
venv,
82 changes: 82 additions & 0 deletions .github/DISCUSSION_TEMPLATE/questions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
labels: [question]
body:
- type: markdown
attributes:
value: |
Thanks for your interest in zppy-interfaces! Please follow the template below to ensure the development team and community can help you effectively.
- type: checkboxes
id: checks
attributes:
label: Question criteria
description: Please confirm and check all the following options.
options:
- label: I added a descriptive title here.
required: true
- label: I searched the [zppy-interfaces GitHub Discussions](https://github.com/E3SM-Project/zppy-interfaces/discussions) to find a similar question and didn't find it.
required: true
- label: I searched the [zppy-interfaces documentation](https://e3sm-project.github.io/zppy-interfaces).
required: true

- type: textarea
id: deadline
attributes:
label: What is the deadline?
description: |
How urgently do you need a response to this question? Is there a day you need a resolution by? Knowing these constraints helps zppy-interfaces developers properly priortize user questions.
validations:
required: true

- type: textarea
id: your-question
attributes:
label: Describe your question
description: |
Please help the community help you. The more specific you can be, the easier it will be to help.
validations:
required: true

- type: textarea
id: possible-answers
attributes:
label: Are there are any possible answers you came across?
description: |
This will help others determine if you're on the right track. Include links to pages you've researched (e.g., software docs, Stack Overflow posts).
- type: textarea
id: machine
attributes:
label: What machine were you running on?
description: |
List the machine(s) you encounter the issue on (e.g., Chrysalis, Compy, Perlmutter).
validations:
required: true

- type: textarea
id: zi-version
attributes:
label: Environment
description: |
Paste your zppy-interfaces version here (e.g., `zppy-interfaces v0.0.1`).
validations:
required: true

- type: textarea
id: zi-command
attributes:
label: What command did you run?
description: |
Copy the command causing the issue (e.g., `zi-global-time-series ...`). This will be automatically formatted into code, so no need for markdown backticks.
render: bash
validations:
required: true

- type: textarea
id: stack-trace
attributes:
label: What stack trace are you encountering?
description: |
Copy a stack trace from one of your failing jobs. This will be automatically formatted into code, so no need for markdown backticks.
render: bash
validations:
required: false
53 changes: 53 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Bug Report
description: File a bug report to help us improve zppy-interfaces
title: "[Bug]: "
labels: ["semver: bug"]
assignees: []
body:
- type: textarea
id: what-happened
attributes:
label: What happened?
description: |
Thanks for reporting a bug! Please describe what you were trying to get done.
Tell us what happened and what went wrong.
validations:
required: true

- type: textarea
id: machine
attributes:
label: What machine were you running on?
description: |
List the machine(s) you encounter the issue on (e.g., Chrysalis, Compy, Perlmutter).
validations:
required: true

- type: textarea
id: zi-version
attributes:
label: Environment
description: |
Paste your zppy-interfaces version here (e.g., `zppy-interfaces v0.0.1`).
validations:
required: true

- type: textarea
id: zi-command
attributes:
label: What command did you run?
description: |
Copy the command causing the issue (e.g., `zi-global-time-series ...`). This will be automatically formatted into code, so no need for markdown backticks.
render: bash
validations:
required: true

- type: textarea
id: stack-trace
attributes:
label: What stack trace are you encountering?
description: |
Copy a stack trace from one of your failing jobs. This will be automatically formatted into code, so no need for markdown backticks.
render: bash
validations:
required: false
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
blank_issues_enabled: false
contact_links:
- name: Questions (zppy-interfaces)
url: https://github.com/E3SM-Project/zppy-interfaces/discussions/categories/questions
about: |
Ask questions and discuss with other zppy-interfaces community members here. Please
browse the zppy-interfaces Discussions Forum or zppy-interfaces documentation first before asking a
question to make sure it is not already answered. If you can't find an
answer, please include a self-contained reproducible example with your
question if possible. Thanks!
15 changes: 15 additions & 0 deletions .github/ISSUE_TEMPLATE/documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Documentation Update
description: Update zppy-interfaces documentation
title: "[Doc]: "
labels: ["Documentation"]
assignees: []
body:
- type: textarea
id: description
attributes:
label: Describe your documentation update
description: |
Concise description of why the documentation is being updated (e.g., missing content for new feature, typo)
If this is related to an issue or PR, please mention it.
validations:
required: true
57 changes: 57 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Feature Request
description: Suggest an idea for zppy-interfaces
title: "[Feature]: "
labels: []
assignees: []
body:
- type: dropdown
id: semver-level
attributes:
label: How will this affect the next version number?
description: |
`zppy-interfaces` uses semantic versioning (https://semver.org/). Bug fixes and small improvements will increment the PATCH version. New features will increment the MINOR version. Incompatible API changes will increment the MAJOR version. The amount of work required to implement a request typically increases with each level. (For bug fixes, use the "Bug Report" template).
multiple: false
options:
- Small improvement (increment PATCH version)
- New feature (increment MINOR version)
- Incompatibile API change (increment MAJOR version)
default: 1
validations:
required: true

- type: textarea
id: description
attributes:
label: Is your feature request related to a problem?
description: |
Please do a quick search of existing issues to make sure that this has not been asked before.
Please provide a clear and concise description of what the problem is. E.g., I'm always frustrated when [...]
validations:
required: true

- type: textarea
id: solution
attributes:
label: Describe the solution you'd like
description: |
A clear and concise description of what you want to happen.
validations:
required: false

- type: textarea
id: alternatives
attributes:
label: Describe alternatives you've considered
description: |
A clear and concise description of any alternative solutions or features you've considered.
validations:
required: false

- type: textarea
id: additional-context
attributes:
label: Additional context
description: |
Add any other context about the feature request here.
validations:
required: false
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/other_issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Other Issue
description: Report an issue not covered by the other templates.
body:
- type: checkboxes
id: checks
attributes:
label: Request criteria
description: Please confirm and check all the following options.
options:
- label: I searched the [zppy-interfaces GitHub Discussions](https://github.com/E3SM-Project/zppy-interfaces/discussions) to find a similar question and didn't find it.
required: true
- label: I searched the [zppy-interfaces documentation](https://e3sm-project.github.io/zppy-interfaces).
required: true
- label: This issue does not match the other templates (i.e., it is not a bug report, documentation request, feature request, or a question.)
required: true

- type: textarea
id: issue-description
attributes:
label: Issue description
description: |
Please describe the issue.
validations:
required: true
42 changes: 42 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
## Issue resolution
- Closes #<ISSUE_NUMBER_HERE>

Select one: This pull request is...
- [ ] a bug fix: increment the patch version
- [ ] a small improvement: increment the minor version
- [ ] an incompatible (non-backwards compatible) API change: increment the major version

## 1. Does this do what we want it to do?

Objectives:
- Objective 1
- Objective 2
- ...
- Objective n

Required:
- [ ] Product Management: I have confirmed with the stakeholders that the objectives above are correct and complete.
- [ ] Testing: I have considered likely and/or severe edge cases and have included them in testing.

## 2. Are the implementation details accurate & efficient?

Required:
- [ ] Logic: I have visually inspected the entire pull request myself.
- [ ] Logic: I have left GitHub comments highlighting important pieces of code logic. I have had these code blocks reviewed by at least one other team member.

If applicable:
- [ ] Dependencies: This pull request introduces a new dependency. I have discussed this requirement with at least one other team member. The dependency is noted in `zppy-interfaces/conda`, not just an `import` statement.

## 3. Is this well documented?

Required:
- [ ] Documentation: by looking at the docs, a new user could easily understand the functionality introduced by this pull request.

## 4. Is this code clean?

Required:
- [ ] Readability: The code is as simple as possible and well-commented, such that a new team member could understand what's happening.
- [ ] Pre-commit checks: All the pre-commits checks have passed.

If applicable:
- [ ] Software architecture: I have discussed relevant trade-offs in design decisions with at least one other team member. It is unlikely that this pull request will increase tech debt.
Loading

0 comments on commit 46f0ff9

Please sign in to comment.