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
44 changes: 44 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Git files
.git
.gitignore
.github

# Python cache
__pycache__
*.py[cod]
*$py.class
*.so
.Python
build/
dist/
*.egg-info/
.eggs/

# Virtual environments
venv/
env/
ENV/

# IDE
.vscode/
.idea/
*.swp
*.swo

# Testing
.pytest_cache/
.coverage
htmlcov/
.tox/

# Data files
tasks.json
*.json
!pyproject.toml

# Documentation build
docs/_build/

# OS files
.DS_Store
Thumbs.db
53 changes: 53 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
name: Bug Report
about: Create a report to help us improve
title: '[BUG] '
labels: bug
assignees: ''
---

## Bug Description

A clear and concise description of what the bug is.

## Steps To Reproduce

1. Run command '...'
2. With arguments '...'
3. See error

## Expected Behavior

A clear and concise description of what you expected to happen.

## Actual Behavior

A clear and concise description of what actually happened.

## Error Messages

```
Paste any error messages here
```

## Environment

- OS: [e.g., Ubuntu 22.04, macOS 13.0, Windows 11]
- Python Version: [e.g., 3.11.0]
- Todo CLI Version: [e.g., 1.0.0]
- Installation Method: [e.g., pip install, direct clone]

## Task Data (if relevant)

```json
{
"example": "Paste your tasks.json if relevant to the issue"
}
```

## Additional Context

Add any other context about the problem here, such as:
- Screenshots (if applicable)
- Related issues
- Possible solutions you've considered
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: Question or Discussion
url: https://github.com/codeforgood-org/todo-list-cli/discussions
about: Ask questions or discuss ideas with the community
- name: Documentation
url: https://github.com/codeforgood-org/todo-list-cli#readme
about: Check the README for usage instructions and examples
63 changes: 63 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
name: Feature Request
about: Suggest an idea for this project
title: '[FEATURE] '
labels: enhancement
assignees: ''
---

## Feature Description

A clear and concise description of the feature you'd like to see.

## Problem It Solves

Describe the problem or limitation this feature would address.
Example: "I'm always frustrated when..."

## Proposed Solution

A clear and concise description of what you want to happen.

### Command Example

```bash
# Example of how the new feature might work
todo <new-command> [options]
```

### Expected Output

```
Example output or behavior
```

## Alternatives Considered

Describe any alternative solutions or features you've considered.

## Additional Context

Add any other context, screenshots, mockups, or examples about the feature request here.

## Use Cases

Describe specific use cases for this feature:
1. Use case 1
2. Use case 2
3. Use case 3

## Priority

How important is this feature to you?
- [ ] Nice to have
- [ ] Important
- [ ] Critical

## Willingness to Contribute

Would you be willing to contribute to implementing this feature?
- [ ] Yes, I can submit a PR
- [ ] Yes, I can help with testing
- [ ] No, but I can provide feedback
- [ ] No
100 changes: 100 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Description

Please include a summary of the changes and which issue is fixed. Include relevant motivation and context.

Fixes # (issue)

## Type of Change

Please delete options that are not relevant.

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Code refactoring
- [ ] Performance improvement
- [ ] Test coverage improvement

## Changes Made

List the specific changes made in this PR:

- Change 1
- Change 2
- Change 3

## Testing

Please describe the tests that you ran to verify your changes.

### Test Configuration

- Python Version:
- OS:
- Related test files:

### Test Commands Run

```bash
# Example
pytest tests/
python todo.py list
```

## Checklist

Please check all that apply:

- [ ] My code follows the style guidelines of this project (Black, Flake8)
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published

## Screenshots (if applicable)

If your changes include UI/output changes, please include before/after screenshots.

### Before

```
Output before changes
```

### After

```
Output after changes
```

## Additional Notes

Add any additional notes, concerns, or questions here.

## Breaking Changes

If this PR introduces breaking changes, please describe:

1. What breaks
2. How to migrate
3. Why the breaking change is necessary

## Performance Impact

If applicable, describe any performance implications:

- Does this change impact performance?
- Have you run benchmarks?
- What are the results?

## Documentation

- [ ] README.md updated (if needed)
- [ ] CHANGELOG.md updated
- [ ] Examples updated (if needed)
- [ ] Docstrings added/updated
- [ ] CONTRIBUTING.md updated (if needed)
70 changes: 70 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: CI

on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]

jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"

- name: Run tests
run: |
pytest tests/ -v --cov=todolist --cov-report=xml --cov-report=term

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
with:
file: ./coverage.xml
flags: unittests
name: codecov-umbrella

lint:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install black flake8 mypy

- name: Check code formatting with Black
run: |
black --check src/

- name: Lint with flake8
run: |
flake8 src/ --count --select=E9,F63,F7,F82 --show-source --statistics
flake8 src/ --count --exit-zero --max-complexity=10 --max-line-length=88 --statistics

- name: Type check with mypy
run: |
mypy src/todolist/ --ignore-missing-imports
continue-on-error: true
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -172,3 +172,10 @@ cython_debug/

# PyPI configuration file
.pypirc

# Project-specific files
tasks.json
tasks_export.*
example_tasks.json
*.json
!pyproject.toml
Loading
Loading