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
35 changes: 35 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: CI

on:
push:
branches:
- "*"
pull_request:
branches:
- main

permissions:
contents: read

jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- uses: pnpm/action-setup@v2
with:
version: 10.2.1

- uses: actions/setup-node@v3
with:
node-version: 18

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build
run: pnpm build:ci

- name: Test
run: pnpm test
54 changes: 54 additions & 0 deletions COMMIT_CONVENTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Commit Message Convention

This project follows the [Conventional Commits](https://www.conventionalcommits.org/) specification for commit messages. This helps automatically determine version numbers and generate changelogs.

## Format

```
<type>(<scope>): <description>

[optional body]

[optional footer(s)]
```

### Types

- `feat!:` or `fix!:` - Breaking change (triggers major version bump)
- `feat:` - A new feature (triggers minor version bump)
- `fix:` - A bug fix (triggers patch version bump)
- `docs:` - Documentation only changes
- `style:` - Changes that do not affect the meaning of the code
- `refactor:` - A code change that neither fixes a bug nor adds a feature
- `perf:` - A code change that improves performance
- `test:` - Adding missing tests or correcting existing tests
- `chore:` - Changes to the build process or auxiliary tools

### Examples

```
feat(api): add new endpoint for user authentication

This new endpoint allows users to authenticate using OAuth2.

BREAKING CHANGE: `auth` endpoint now requires OAuth2 token
```

```
fix(database): resolve connection timeout issue

Increased connection timeout from 5s to 15s
```

```
docs: update README with new API documentation
```

## Changelog Generation

Commit messages are used to:
1. Automatically determine the next version number
2. Generate changelog entries
3. Create GitHub releases

The process is automated through GitHub Actions and uses changesets for release management.
9 changes: 5 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,16 @@ Key points:

```bash
# Clone the repository
git clone https://github.com/yourusername/mycoder.git
git clone https://github.com/bhouston/mycoder.git

# Change directory
cd mycoder

# Install dependencies
pnpm install

# Create .env file with your API keys
cp .env.example .env
# Edit .env with your API keys
# Create a .env with your API key
echo "ANTHROPIC_API_KEY=[your-api-key]" > .env
```

### Development Commands
Expand Down
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,25 @@ These examples showcase MyCoder's ability to handle complex software development

We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for our development workflow, coding guidelines, and testing procedures.

## Development Workflow

### Commit Messages

This project uses [Conventional Commits](https://www.conventionalcommits.org/) for commit messages. See [COMMIT_CONVENTION.md](COMMIT_CONVENTION.md) for detailed guidelines.

### CI/CD Pipeline

The project uses GitHub Actions for continuous integration:

- A single CI pipeline automatically builds and tests the code on all branches and pull requests to main

The release process is managed manually using [changesets](https://github.com/changesets/changesets) which:
1. Determines version bumps based on commit messages
2. Generates changelogs

Releases to GitHub and publishing to npm are performed manually after review.


## License

MIT License
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"bin": "./bin/cli.js",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"packageManager": "pnpm@8.9.0",
"packageManager": "pnpm@10.2.1",
"engines": {
"node": ">=18.0.0"
},
Expand All @@ -21,11 +21,13 @@
"scripts": {
"start": "node --no-deprecation dist/index.js",
"build": "tsc --noEmit && tsc",
"build:ci": "tsc",
"clean": "rimraf dist",
"lint": "eslint \"src/**/*.ts\" --fix",
"format": "prettier --write \"src/**/*.*\"",
"test": "vitest run",
"test:watch": "vitest",
"test:ci": "vitest --run --coverage",
"changeset": "changeset",
"version": "changeset version",
"prepublishOnly": "pnpm run clean && pnpm run build && pnpm run test"
Expand Down
Loading