Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
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
101 changes: 101 additions & 0 deletions .github/ISSUE_TEMPLATE/mvp-tasks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
---
name: MVP Final Tasks
about: Tracking the final tasks needed for MVP release
title: 'MVP: Final Tasks for Initial Release'
labels: enhancement, MVP
assignees: ''
---

## Description
This issue tracks the final tasks needed to prepare Dev Session Buddy for its initial MVP release. These tasks focus on ensuring the package is well-tested, documented, and ready for publication on npm.

## Tasks

### 1. Add Comprehensive Test Suite
- [ ] Unit Tests
- [ ] Template manager functionality
- [ ] Utility functions
- [ ] Configuration management
- [ ] Version checking
- [ ] Integration Tests
- [ ] CLI commands (`doctor`, `init`)
- [ ] Project creation workflow
- [ ] Template application
- [ ] Error handling
- [ ] Shell Tests
- [ ] Session start scripts
- [ ] Environment setup
- [ ] Tool validation
- [ ] Test Coverage
- [ ] Set up coverage reporting
- [ ] Achieve >80% coverage

### 2. Add Detailed Documentation
- [ ] API Documentation
- [ ] CLI command reference
- [ ] Configuration options
- [ ] Template structure
- [ ] User Guides
- [ ] Getting started guide
- [ ] Template customization
- [ ] Framework integration
- [ ] Contributing Guidelines
- [ ] Development setup
- [ ] Code style guide
- [ ] Pull request process
- [ ] Package Documentation
- [ ] Update README.md
- [ ] Add examples
- [ ] Document installation options

### 3. Set up Continuous Integration
- [ ] GitHub Actions Workflow
- [ ] Automated testing
- [ ] Code linting
- [ ] Coverage reporting
- [ ] Release Management
- [ ] Version bumping
- [ ] Changelog generation
- [ ] Tag creation
- [ ] Package Publishing
- [ ] npm publish automation
- [ ] Package verification

### 4. Prepare for npm Publication
- [ ] Package Configuration
- [ ] Update package.json metadata
- [ ] Add keywords
- [ ] Set up package scope
- [ ] Access Control
- [ ] Configure package access
- [ ] Set up maintainers
- [ ] Release Planning
- [ ] Create release checklist
- [ ] Plan version strategy
- [ ] Document release process

## Technical Details
- Test Framework: Jest for unit/integration tests, BATS for shell tests
- Documentation: Markdown files in `/docs` directory
- CI/CD: GitHub Actions
- Package Manager: npm

## Dependencies
- Node.js >=16.0.0
- npm >=8.0.0
- Git for version control
- GitHub Actions for CI/CD

## Success Criteria
- All tests passing with >80% coverage
- Documentation complete and reviewed
- CI/CD pipeline operational
- Package successfully published to npm
- Sample projects working with published package

## Additional Notes
- Focus on maintainability and extensibility
- Ensure clear error messages and user feedback
- Document all breaking changes
- Consider backward compatibility
- Plan for future enhancements
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/task.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: Task
about: A development task that needs to be completed
title: ''
labels: task
assignees: ''
---

## Description
<!-- A clear and concise description of what needs to be done -->

## Acceptance Criteria
<!-- List the requirements that must be met for this task to be considered complete -->

- [ ] Requirement 1
- [ ] Requirement 2
- [ ] Requirement 3

## Technical Details
<!-- Any technical details, implementation notes, or considerations -->

## Dependencies
<!-- List any dependencies or blockers -->

## Additional Context
<!-- Add any other context about the task here -->
54 changes: 54 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Tests

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

jobs:
test:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [16.x, 18.x]

steps:
- uses: actions/checkout@v3

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}

- name: Install dependencies
run: npm ci

- name: Install BATS
run: npm install -g bats

- name: Install shellcheck
run: sudo apt-get install -y shellcheck

- name: Install yq
run: |
wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq
chmod +x /usr/local/bin/yq

- name: Run shell script linting
run: npm run lint:shell

- name: Run unit tests
run: npm run test:unit

- name: Run shell tests
run: npm run test:shell

- name: Upload coverage reports
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage/lcov.info
flags: unittests
name: codecov-umbrella
30 changes: 30 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Development files
tests/
docs/
scripts/
.github/
.git/
.gitignore
.eslintrc*
.prettierrc*
jest.config.js

# Editor files
.vscode/
.idea/
*.swp
*.swo

# Build and coverage
coverage/
.nyc_output/
*.log

# Environment
.env*
.env.local
.env.*.local

# Misc
*.tgz
.DS_Store
182 changes: 182 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
# Contributing to Dev Session Buddy 🤝

Thank you for your interest in contributing to Dev Session Buddy! This document provides guidelines and workflows for contributing to the project.

## Table of Contents
- [Code of Conduct](#code-of-conduct)
- [GitFlow Workflow](#gitflow-workflow)
- [Getting Started](#getting-started)
- [Development Process](#development-process)
- [Pull Request Guidelines](#pull-request-guidelines)
- [Commit Message Guidelines](#commit-message-guidelines)
- [Code Style Guidelines](#code-style-guidelines)

## Code of Conduct

By participating in this project, you agree to maintain a respectful and inclusive environment for all contributors.

## GitFlow Workflow

We follow the GitFlow branching strategy:

### Main Branches
- `main`: Production-ready code
- `develop`: Integration branch for features

### Supporting Branches
- `feature/*`: New features
- `fix/*`: Bug fixes
- `refactor/*`: Code refactoring
- `docs/*`: Documentation changes
- `release/*`: Release preparation
- `hotfix/*`: Urgent production fixes

### Branch Naming Convention
- Features: `feature/descriptive-name`
- Bug fixes: `fix/descriptive-name`
- Refactoring: `refactor/descriptive-name`
- Documentation: `docs/descriptive-name`

## Getting Started

1. Fork the repository
2. Clone your fork:
```bash
git clone https://github.com/your-username/dev-session-buddy.git
```
3. Add upstream remote:
```bash
git remote add upstream https://github.com/codevalve/dev-session-buddy.git
```
4. Create a feature branch from `develop`:
```bash
git checkout develop
git pull upstream develop
git checkout -b feature/your-feature-name
```

## Development Process

1. **Start from Develop**
```bash
git checkout develop
git pull upstream develop
```

2. **Create Feature Branch**
```bash
git checkout -b feature/your-feature-name
```

3. **Make Changes**
- Write code
- Add tests if applicable
- Update documentation

4. **Commit Changes**
```bash
git add .
git commit -m "type(scope): description"
```

5. **Push Changes**
```bash
git push origin feature/your-feature-name
```

6. **Create Pull Request**
- Target the `develop` branch
- Fill out PR template
- Link related issues

## Pull Request Guidelines

1. **Title Format**
- Use the format: `type: description`
- Example: `feat: add new template for React projects`

2. **Description**
- Explain the changes made
- List any breaking changes
- Reference related issues

3. **Checklist**
- [ ] Tests added/updated (if applicable)
- [ ] Documentation updated
- [ ] Follows code style guidelines
- [ ] Commit messages follow guidelines

4. **Review Process**
- At least one approval required
- All discussions resolved
- CI checks passing

## Commit Message Guidelines

Follow the Conventional Commits specification:

```
type(scope): description

[optional body]

[optional footer]
```

### Types
- `feat`: New feature
- `fix`: Bug fix
- `docs`: Documentation changes
- `style`: Code style changes (formatting, etc.)
- `refactor`: Code refactoring
- `test`: Adding or updating tests
- `chore`: Maintenance tasks

### Scopes
- `core`: Core functionality
- `templates`: Template-related changes
- `docs`: Documentation
- `deps`: Dependencies
- `ci`: CI/CD changes

Example:
```
feat(templates): add React project template

- Add basic React template
- Include React-specific configuration
- Update documentation

Closes #123
```

## Code Style Guidelines

1. **Shell Scripts**
- Use shellcheck for linting
- Add comments for complex logic
- Use meaningful variable names

2. **JavaScript/Node.js**
- Follow ESLint configuration
- Use meaningful variable names
- Add JSDoc comments for functions

3. **YAML Configuration**
- Use consistent indentation (2 spaces)
- Add comments for clarity
- Keep files organized by section

4. **Documentation**
- Use clear, concise language
- Include code examples
- Keep formatting consistent

## Questions or Need Help?

Feel free to:
- Open an issue for questions
- Join discussions in existing issues
- Reach out to maintainers

Thank you for contributing to Dev Session Buddy! 🎉
Loading
Loading