Skip to content

docs(README) Overhaul README #592

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 36 commits into
base: master
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
2d40e6c
docs(test-helpers) Update to existing modules
tony Feb 27, 2025
e8b5d7a
docs(test-helpers) Add retry page
tony Feb 27, 2025
76326f3
py(deps[dev]) Bump dev packages
tony Feb 27, 2025
1668b45
chore: Add `__init__.py` for tests/examples
tony Feb 27, 2025
fc3dec2
chore: Add `__init__.py` for tests/examples/test
tony Feb 26, 2025
a438f2d
chore: Add `__init__.py` for tests/examples/_internal/waiter
tony Feb 27, 2025
aa260f2
fix(retry): Improve retry_until_extended function with better error m…
tony Feb 26, 2025
10a37e5
feat(waiter): Enhance terminal content waiting utility with fluent AP…
tony Feb 26, 2025
0c74d33
test(waiter): Fix test cases and improve type safety
tony Feb 26, 2025
a10493a
docs(waiter): Add comprehensive documentation for terminal content wa…
tony Feb 26, 2025
6bdbb5c
pyproject(mypy[exceptions]): examples to ignore `no-untyped-def`
tony Feb 26, 2025
d436d75
test: add conftest.py to register example marker
tony Feb 26, 2025
17d2967
refactor(tests[waiter]): Add waiter test examples into individual files
tony Feb 26, 2025
50081b5
docs(CHANGES) Note `Waiter`
tony Feb 27, 2025
afaa68b
cursor(rules[git-commits]) Use component name first
tony Feb 28, 2025
87bfeb7
cursor(rules[git-commits]) Standardize further
tony Feb 28, 2025
24dc049
cursor(rules[dev-loop]) Use `--show-fixes` in `ruff check`
tony Feb 28, 2025
ed09b06
tests(test_waiter[capture_pane]): Add resiliency for CI test grid
tony Feb 28, 2025
52816d5
tests(test_waiter[exact_match]): Skip flaky exact match test on tmux …
tony Feb 28, 2025
f4046c6
test(waiter): Replace assertions with warning-based checks in detaile…
tony Feb 28, 2025
808f978
cursor(rules[dev-loop]): Format, Test, then Typecheck and Lint
tony Feb 28, 2025
11dbe65
py(deps[dev]) Bump dev packages
tony Feb 28, 2025
e10c38d
cursor(rules[dev-loop]) add Python docstring and doctest guidelines t…
tony Feb 28, 2025
eca28f6
cursor(rules[dev-loop]) add pytest-watcher commands for continuous te…
tony Mar 1, 2025
2d1f60d
cursor(rules[dev-loop]) add project stack to development guidelines
tony Mar 1, 2025
3e059d6
.windsurfrules: Create file based on dev-loop
tony Mar 1, 2025
a3f1ff8
.windsurfrules: Create file based on git-commit.msc
tony Mar 1, 2025
5aefaa5
cursor,windsurf(rules): Add pytest testing guidelines to project rules
tony Mar 1, 2025
fd231cf
cursor(rules[avoid-debug-loops]) Prevent AI digging us a hole
tony Mar 2, 2025
4f12f02
tests(waiter) Rerun flaky test a few times
tony Mar 2, 2025
526e091
py(deps[dev]) Bump dev packages
tony Mar 2, 2025
f8c2646
tests(waiter) Eliminate `test_wait_for_pane_content_exact_match`
tony Mar 2, 2025
4975ed8
tests(waiter) Bump reruns for `wait_for_pane_content_regex_line_match`
tony Mar 2, 2025
3d8cdd9
docs(README) Overhaul README
tony Mar 2, 2025
db84b74
docs(README) Rephrasing
tony Mar 2, 2025
e4d09ef
docs(README) Examples
tony Mar 2, 2025
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
Prev Previous commit
Next Next commit
cursor(rules[git-commits]) Standardize further
  • Loading branch information
tony committed Mar 1, 2025
commit 87bfeb7d0809bbf05efd0dd73321b630221b79b4
139 changes: 72 additions & 67 deletions .cursor/rules/git-commits.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -2,88 +2,93 @@
description: git-commits: Git commit message standards and AI assistance
globs: git-commits: Git commit message standards and AI assistance | *.git/* .gitignore .github/* CHANGELOG.md CHANGES.md
---
# Git Commit Standards
# Optimized Git Commit Standards

## Format
## Commit Message Format
```
component(commit type[sub-component/method]): concise description
Component/File(commit-type[Subcomponent/method]): Concise description

why: explanation of necessity/impact
what:
- technical changes made
- keep focused on single topic
why: Explanation of necessity or impact.
what:
- Specific technical changes made
- Focused on a single topic

refs: #issue-number, breaking changes, links
refs: #issue-number, breaking changes, or relevant links
```

## Component types
- pyproject(ruff[per-file-ignores]) Ignore B010 (`set-attr-with-constant`) for `path/to/file.py`
- Pane(chore[capture_pane]): Fix typo
- Pane(tests[capture_pane]): Handle edgecase for capture pane

## Commit Types
- `feat`: New features/enhancements
- `fix`: Bug fixes
- `refactor`: Code restructuring
- `docs`: Documentation changes
- `chore`: Maintenance tasks (deps, tooling)
- `test`: Test-related changes
- `style`: Code style/formatting
- `<component-name>`: If it involves a core file or component / class, e.g.
just start with that Pane(chore)

## Guidelines
- Subject line: max 50 chars
- Body lines: max 72 chars
- Use imperative mood ("Add" not "Added")
- Single topic per commit
- Blank line between subject and body
- Mark breaking changes with "BREAKING:"
- Use "See also:" for external links

## AI Assistance in Cursor
- Stage changes with `git add`
- Use `@commit` to generate initial message
- Review and adjust the generated message
- Ensure it follows format above

## Examples

Good commit:
## Component Patterns
### General Code Changes
```
Component/File(feat[method]): Add feature
Component/File(fix[method]): Fix bug
Component/File(refactor[method]): Code restructure
```
feat(subprocess[run]): Switch to unicode-only text handling

why: Improve consistency and type safety in subprocess handling
what:
- BREAKING: Changed run() to use text=True by default
- Removed console_to_str() helper and encoding logic
- Simplified output handling
- Updated type hints for better safety
### Packages and Dependencies
| Language | Standard Packages | Dev Packages | Extras / Sub-packages |
|------------|------------------------------------|-------------------------------|-----------------------------------------------|
| General | `lang(deps):` | `lang(deps[dev]):` | |
| Python | `py(deps):` | `py(deps[dev]):` | `py(deps[extra]):` |
| JavaScript | `js(deps):` | `js(deps[dev]):` | `js(deps[subpackage]):`, `js(deps[dev{subpackage}]):` |

refs: #485
See also: https://docs.python.org/3/library/subprocess.html
#### Examples
- `py(deps[dev]): Update pytest to v8.1`
- `js(deps[ui-components]): Upgrade Button component package`
- `js(deps[dev{linting}]): Add ESLint plugin`

### Documentation Changes
Prefix with `docs:`
```
docs(Component/File[Subcomponent/method]): Update API usage guide
```

Bad commit:
### Test Changes
Prefix with `tests:`
```
updated some stuff and fixed bugs
tests(Component/File[Subcomponent/method]): Add edge case tests
```

Cursor Rules: Add development QA and git commit standards (#cursor-rules)
## Commit Types Summary
- **feat**: New features or enhancements
- **fix**: Bug fixes
- **refactor**: Code restructuring without functional change
- **docs**: Documentation updates
- **chore**: Maintenance (dependencies, tooling, config)
- **test**: Test-related updates
- **style**: Code style and formatting

## General Guidelines
- Subject line: Maximum 50 characters
- Body lines: Maximum 72 characters
- Use imperative mood (e.g., "Add", "Fix", not "Added", "Fixed")
- Limit to one topic per commit
- Separate subject from body with a blank line
- Mark breaking changes clearly: `BREAKING:`
- Use `See also:` to provide external references

## AI Assistance Workflow in Cursor
- Stage changes with `git add`
- Use `@commit` to generate initial commit message
- Review and refine generated message
- Ensure adherence to these standards

## Good Commit Example
```
Pane(feat[capture_pane]): Add screenshot capture support

- Add dev-loop.mdc: QA process for code edits
- Type checking with mypy
- Linting with ruff
- Test validation with pytest
- Ensures edits are validated before commits
why: Provide visual debugging capability
what:
- Implement capturePane method with image export
- Integrate with existing Pane component logic
- Document usage in Pane README

- Add git-commits.mdc: Commit message standards
- Structured format with why/what sections
- Defined commit types and guidelines
- Examples of good/bad commits
- AI assistance instructions
refs: #485
See also: https://example.com/docs/pane-capture
```

Note: These rules help maintain code quality and commit history
consistency across the project.
## Bad Commit Example
```
fixed stuff and improved some functions
```

See also: https://docs.cursor.com/context/rules-for-ai
These guidelines ensure clear, consistent commit histories, facilitating easier code review and maintenance.
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy