Skip to content
Merged
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
65 changes: 65 additions & 0 deletions .github/ISSUE_TEMPLATE/help_wanted.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
name: help wanted
about: >
A template issue for when you're blocked on certain lines of code.
This template has many sections to get you thinking about your problem,
you don't need to fill all of them.
labels: "help wanted"
---

<!--
Make your issue easy to find:

- labels: anything that will make this easier to filter
- assign: anyone you would like help from
-->

## The Code

<!--
The code you have a question about (it doesn't need to be your code!). This can
be shared a few ways:

- a snippet in the MD of your issue or
- a
[permalink](https://help.github.com/en/github/managing-your-work-on-github/creating-a-permanent-link-to-a-code-snippet)
or
- a [gist](https://help.github.com/en/github/writing-on-github/creating-gists)
-->

## Best Understanding

<!--
Explain the situation:

- What _does_ the code do
- What do you _want_ it to do
- How do you think it works?
- What don't you understand about how it works?
-->

## Best Efforts

<!--
If this is your code and it has a bug, explain what you've tried so far:

- Include code
- Mention everything you tried, even if it seems silly to you
- What happened with each effort?
- What brought you closer?
- What brought you farther?
-->

## Helpful Links

<!--
Videos, articles, snippets, ... anything that helped you understand or make
progress on the problem.
-->

## Hopeful Links

<!--
Links that look like they should be helpful but you just can't put all the
pieces together.
-->
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/meeting_agenda.md
Original file line number Diff line number Diff line change
@@ -1 +1,26 @@
---
name: meeting agenda
about: A template issue for planning meetings
title: "Agenda: \_\_"
labels: agenda
---


<!-- Make your issue easy to find:

- milestone: any milestones you will be addressing
- tag: tag any issues you will be discussing (#issue-number)
- labels: anything that will make this easier to filter
- assign: anyone responsible for organizing or leading the meeting

-->

<!-- meeting overview -->

<!-- agenda points -->

- [ ] item 1
- description
- [ ] item 2
- description
- [ ] ...
15 changes: 15 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
name: question
about: >
A template issue for topics you'd like to discuss or learn more about.
specific topics, general knowledge, it does not even need to be about code.
There are no bad questions!
labels: question
---

<!--
Make your issue easy to find:
- labels: anything that will make this easier to filter
- assign: anyone you would like help from
-->
40 changes: 40 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
name: General PR template
about: A template with a generic and high-level review checklist, feel free to modify the checklists based on your PR.
---

<!--
make this PR easy to find:

- assign and add reviewers
- add any helpful labels
- connect it to a milestone (if necessary)
- link it with an issue (if necessary)
-->

<!-- A clear and concise description of what the Pull Request is about. -->

## General Checks

- [ ] the branch is up to date with `main`
- [ ] the code works when pulled and run locally
- [ ] All CI checks pass (or at least discussed)
- [ ] all conflicts are resolved (if any)
- [ ] PR has a descriptive title
- [ ] PR has appropriate labels and milestones for easy identification
- [ ] PR it is assigned to the owner
- [ ] reviewers are assigned
- [ ] the PR contributes only one focused change
- [ ] It is in the appropriate column in the project board (if necessary)
- [ ] has short and clear description
- [ ] is linked to an issue (if it is related)
- [ ] feedback is addressed (if any and if it is appropriate feedback.)

## Markdown

<!-- markdown-specific checks -->

- [ ] the markdown source is formatted
- [ ] spelling and grammar is correct in all text
- [ ] The markdown looks correct when you preview the file
- [ ] all links and images work
80 changes: 80 additions & 0 deletions .github/workflows/ci-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: ET CI Checks

on: [push, pull_request, workflow_dispatch]

jobs:
ls_linting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ls-lint/action@v2.2.3

md_formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: nosborn/github-action-markdown-cli@v3.3.0
with:
files: .
config_file: .markdownlint.yml

py_formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Python - Check Formatting
uses: astral-sh/ruff-action@v1
with:
args: "format --check"

py_linting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

# passing ruff linting is required
- name: Python - Check Linting - ruff
uses: astral-sh/ruff-action@v1

# passing pylint is not required - discuss errors in code review
# adapted from https://github.com/davidslusser/actions_python_pylint/tree/main
- name: python version
run: python --version
shell: bash
if: always()
- name: install pylint
run: |
python - m pip install --upgrade pip
pip install pylint
shell: bash
- name: Python - Check Linting - pylint
run: "pylint solutions tests || echo '::warning title=Pylint Error(s)::Discuss solutions and trade-offs in code review.'"
shell: bash

py_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: python version
run: python --version
shell: bash

- name: Check for test files
id: check_tests
run: |
test_files=$(find . -type f -name "**/test_*.py")
if [ -n "$test_files" ]; then
echo "Found test files:"
echo "$test_files"
echo "has_tests=true" >> $GITHUB_OUTPUT
else
echo "No test files found matching pattern **/test_*.py"
echo "has_tests=false" >> $GITHUB_OUTPUT
fi
shell: bash

- name: Python - Run Tests
if: steps.check_tests.outputs.has_tests == 'true'
run: python -m unittest
shell: bash
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
__pycache__
*.pytest_cache
venv/
# .env
*.db
*.idea
*.ruff_cache
17 changes: 17 additions & 0 deletions .ls-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
ls:
.dir: snake_case
.*: snake_case
.md: snake_case | regex:[0-9A-Z\-]+
.txt: snake_case | kebab-case
.yml: snake_case | kebab-case

ignore:
- .git
- .github
- .vscode
- venv
- .ruff_cache
- .pytest_cache
- __pycache__
- .ls-lint.yml
- .markdownlint.yml
3 changes: 3 additions & 0 deletions .markdownlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ignore:
- venv
- .github
51 changes: 51 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"recommendations": [
// For Pair Programming
"MS-vsliveshare.vsliveshare",

// For Git & GitHub
"mhutchie.git-graph",
"eamodio.gitlens",
"GitHub.vscode-pull-request-github",
"donjayamanne.githistory",

// For programming generally
"streetsidesoftware.code-spell-checker",
"leodevbro.blockman",
"alefragnani.project-manager",
"vscode-icons-team.vscode-icons",
"alefragnani.bookmarks",
"visualstudioexptteam.vscodeintellicode",
"aaron-bond.better-comments",
"christian-kohler.path-intellisense",
"usernamehw.errorlens",
"tamasfe.even-better-toml",

// For writing Markdown
"DavidAnson.vscode-markdownlint",
"yzhang.markdown-all-in-one",
"bierner.markdown-preview-github-styles",

// For writing Python
"ms-python.python",
"ms-python.vscode-pylance",
"KevinRose.vsc-python-indent",
"njpwerner.autodocstring",
"LittleFoxTeam.vscode-python-test-adapter",
"ms-python.black-formatter",
"charliermarsh.ruff",
"ms-python.pylint",
"oderwat.indent-rainbow",
"ms-python.debugpy",
"frhtylcn.pythonsnippets",

// For writing Notebooks
"ms-toolsai.jupyter",
"ms-toolsai.jupyter-keymap",

// For working with data
"RandomFractalsInc.vscode-data-preview",
"mechatroner.rainbow-csv",
"mtxr.sqltools"
]
}
42 changes: 42 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "ET: Debug Python (unittest)",
"type": "debugpy",
"request": "launch",
"program": "-m",
"args": [
"unittest",
"${file}"
],
"console": "integratedTerminal",
"justMyCode": true
},
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "enter program name, for example ${workspaceFolder}/a.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "/path/to/gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}
Loading
Loading