๐Ÿ“ฆ threepointone / aywson

๐Ÿ“„ CONTRIBUTING.md ยท 103 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103# Contributing to aywson

Thanks for your interest in contributing to aywson! This document provides guidelines and instructions for contributing.

## Development Setup

1. **Clone the repository**

   ```bash
   git clone https://github.com/threepointone/aywson.git
   cd aywson
   ```

2. **Install dependencies**

   ```bash
   npm install
   ```

3. **Run tests**

   ```bash
   npm test
   ```

4. **Build the project**

   ```bash
   npm run build
   ```

## Project Structure

```
src/
โ”œโ”€โ”€ index.ts       # Main library exports (parse, get, set, merge, etc.)
โ”œโ”€โ”€ index.test.ts  # Library tests
โ”œโ”€โ”€ cli.ts         # CLI entry point
โ”œโ”€โ”€ cli-lib.ts     # CLI implementation
โ””โ”€โ”€ cli.test.ts    # CLI tests
```

## Code Style

This project uses [Biome](https://biomejs.dev/) for linting and formatting. Before submitting a PR, run:

```bash
npm run check
```

This will run both Biome and TypeScript type checking.

## Running Tests

Tests are written with [Vitest](https://vitest.dev/):

```bash
# Run tests once
npm test

# Run tests in watch mode
npm test -- --watch
```

## Submitting Changes

1. **Fork the repository** and create a new branch for your changes.

2. **Make your changes** with clear, focused commits.

3. **Add tests** for any new functionality or bug fixes.

4. **Run the checks** to ensure everything passes:

   ```bash
   npm run check
   npm test
   ```

5. **Submit a pull request** with a clear description of your changes.

## Changesets

This project uses [Changesets](https://github.com/changesets/changesets) for versioning and changelogs. If your PR includes user-facing changes:

1. Run `npx changeset` to create a changeset
2. Select the appropriate semver bump (patch, minor, major)
3. Write a brief description of the change
4. Commit the generated changeset file with your PR

## Reporting Issues

Found a bug or have a feature request? Please [open an issue](https://github.com/threepointone/aywson/issues) with:

- A clear description of the problem or suggestion
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- JSONC input/output examples if applicable

## License

By contributing to aywson, you agree that your contributions will be licensed under the MIT License.