Skip to content
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

Improve test coverage #462

Open
wants to merge 128 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
c4a2886
pkg: Add `py.typed` file
tony Mar 9, 2025
250e891
py(deps) Add `pydantic` for typed, intuitive validation
tony Mar 8, 2025
8003954
notes(about[2025-03-08]) Add about
tony Mar 8, 2025
975eaff
notes(test-audit[2025-03-08]) Add test-audit file
tony Mar 8, 2025
1120a84
notes(test-audit[2025-03-08]) More notes
tony Mar 8, 2025
16891c2
cursor(rules[notes-llms-txt]) Add rules for note generation
tony Mar 8, 2025
1d78a74
notes(test-audit[2025-03-08]) Add test-audit test plan file
tony Mar 8, 2025
eb0e433
!squash more examples for test plan
tony Mar 8, 2025
4f2c179
!squash more
tony Mar 8, 2025
debe969
!squash
tony Mar 8, 2025
032ff5a
notes(test-audit[2025-03-08]) Update test-audit test plan file
tony Mar 8, 2025
0451a55
notes(TODO) Add file
tony Mar 8, 2025
1311283
feat(models): Add Pydantic models and update validator to use them
tony Mar 8, 2025
e03e0fd
!squash more
tony Mar 8, 2025
5437546
!squash More
tony Mar 8, 2025
98f4a74
!squash remove notes for pydantic
tony Mar 8, 2025
ebef559
notes(TODO) Update to most recent
tony Mar 8, 2025
835ff25
notes(test-audit[2025-03-08]) Update test-audit plan file
tony Mar 8, 2025
013e4a8
notes(test-audit): Update test plan and TODO to reflect Pydantic impl…
tony Mar 8, 2025
38d40b9
Update todo
tony Mar 8, 2025
1fcb518
notes: Add test-coverage
tony Mar 8, 2025
52d0111
!squash notes test-coverage.md
tony Mar 8, 2025
a777565
!squash more test-coverage notes
tony Mar 8, 2025
6aeec87
!squash more test-coverage notes
tony Mar 8, 2025
61ad186
!squash more
tony Mar 9, 2025
5758994
!squash
tony Mar 9, 2025
06f5db9
!squash more
tony Mar 9, 2025
709012b
!squash
tony Mar 9, 2025
6fe58f7
!squash more
tony Mar 9, 2025
23c7609
notes: Add pydantic-overhaul.md
tony Mar 9, 2025
e105c70
!squash pydantic overhaul
tony Mar 9, 2025
75893dd
!squash notes pydantic-overhaul.md
tony Mar 9, 2025
6221ea4
!squash pydantic overhaul
tony Mar 9, 2025
b6b7703
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
e72cae8
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
72f9162
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
e7a64c7
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
947916a
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
bfbe358
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
5eaf182
notes(pydantic-v2) Add document
tony Mar 9, 2025
ffac1e2
notes(pydantic-v2) Update document
tony Mar 9, 2025
a17feef
notes(pydantic-v2) Update document
tony Mar 9, 2025
fa99f7c
notes(pydantic-v2) Update document
tony Mar 9, 2025
0889a06
notes(pydantic-v2) Update document
tony Mar 9, 2025
29bdc12
notes(pydantic-v2) Update document
tony Mar 9, 2025
0b86149
notes(pydantic-v2) Update document
tony Mar 9, 2025
32850d4
notes(pydantic-v2) Update document
tony Mar 9, 2025
1e70594
notes(pydantic-v2) Update document
tony Mar 9, 2025
260d3b5
notes(pydantic-v2) Update document
tony Mar 9, 2025
3dfd677
notes(pydantic-v2) Update document
tony Mar 9, 2025
7258053
notes(pydantic-v2) Update document
tony Mar 9, 2025
c5fcffb
notes(pydantic-v2) Update document
tony Mar 9, 2025
0c1af5e
notes(pydantic-v2) Update document
tony Mar 9, 2025
40cbd7f
notes(pydantic-v2) Update document
tony Mar 9, 2025
b441620
!squash pydantic v2 notes
tony Mar 9, 2025
34e3331
notes/pydantic-overhaul.md
tony Mar 9, 2025
d3d09c8
!squash more
tony Mar 9, 2025
3ced3ba
!squash more
tony Mar 9, 2025
6d83241
!squash more
tony Mar 9, 2025
4a86acb
!squash more
tony Mar 9, 2025
08b7da5
!squash more
tony Mar 9, 2025
1dd7f81
!squash more
tony Mar 9, 2025
6a3ef16
!squash
tony Mar 9, 2025
fb72376
!squash more updates
tony Mar 9, 2025
cfc4a1f
!squash more
tony Mar 9, 2025
b2ec685
!squash more
tony Mar 9, 2025
101cbf3
!squash tests
tony Mar 9, 2025
7525c5b
!squash more ruff strict
tony Mar 9, 2025
4cec74c
!squash more
tony Mar 9, 2025
0efc6f0
notes(2025-03-09) audit
tony Mar 9, 2025
140e800
!squash more audit
tony Mar 9, 2025
3c8a879
!squash more audit
tony Mar 9, 2025
e36ee33
!squash more audit
tony Mar 9, 2025
a81e853
!squash audit
tony Mar 9, 2025
ee82abd
notes: proposals
tony Mar 9, 2025
bcf664f
notes: More
tony Mar 9, 2025
05279e8
!squash more proposals
tony Mar 9, 2025
1b0343a
!squash more notes
tony Mar 9, 2025
3a53b51
!squash more notes
tony Mar 9, 2025
d6a46c8
!squash notes
tony Mar 9, 2025
9978749
!squash proposals
tony Mar 9, 2025
c414d9c
notes: Add TODO.md
tony Mar 9, 2025
204a1d6
notes: Move TODO.md -> TODO-old.md
tony Mar 9, 2025
de0f9ed
notes: 00 summary update
tony Mar 9, 2025
9465ae6
notes: Add new TODO
tony Mar 9, 2025
93dbcc2
notes: Remove test audit
tony Mar 9, 2025
29caf42
notes: Remove TODO-old.md
tony Mar 9, 2025
d0d37c8
tests,src: Move to *_old dirs
tony Mar 9, 2025
3f628a3
config(feat[models,loader]): Implement modern configuration system wi…
tony Mar 9, 2025
900a338
!squash ruff and mypy fixes
tony Mar 9, 2025
ae775af
pyproject: Pack src/vcspull/py.typed
tony Mar 9, 2025
eec0575
notes: Update TODO
tony Mar 9, 2025
ed7ac08
py(deps[docs]) Add autodoc_pydantic
tony Mar 9, 2025
36c07e9
types+docs(feat[configuration]): Add py.typed marker and Pydantic mod…
tony Mar 9, 2025
1f436cf
notes: Update TODO
tony Mar 9, 2025
1baf3f6
docs: Remove old pages
tony Mar 9, 2025
354b192
docs: New pages
tony Mar 9, 2025
51070db
vcspull(feat[operations]): Implement repository operations API and VC…
tony Mar 9, 2025
67bc30c
notes: Update TODO
tony Mar 9, 2025
b33bf95
vcs(feat[lock]): Implement version locking for repositories
tony Mar 10, 2025
0c69309
notes: Update TODO
tony Mar 10, 2025
fd92aaf
py(deps[test]) Add `hypothesis`
tony Mar 10, 2025
d4fc471
tests(feat[property]): Add property-based testing for configuration m…
tony Mar 10, 2025
2ad9b24
notes: Update notes (progress)
tony Mar 15, 2025
9a04f5e
tests/config(test[loader]): Add property-based tests for configuratio…
tony Mar 15, 2025
4208293
!squash tests/config(test[loader]): Add property-based
tony Mar 15, 2025
031f8d8
!squash tests/config(test[loader]): Add property-based
tony Mar 15, 2025
4d2420c
!squash tests/config(test[loader]): Add property-based
tony Mar 15, 2025
c7c4052
!squash tests(feat[property]): Add property-based testin
tony Mar 15, 2025
3bdae46
!squash pyproject: Pack src/vcspull/py.typed
tony Mar 15, 2025
c109d4b
!squash config(feat[models,loader]): Implement modern
tony Mar 15, 2025
ea51a20
!squash tests(feat[property]): Add property-based testin
tony Mar 15, 2025
3e9ac0c
!squsah config(feat[models,loader]): Implement modern configuration s…
tony Mar 15, 2025
ae73156
!squash pyproject: Pack src/vcspull/py.typed
tony Mar 15, 2025
cd6f03e
squash config(feat[models,loader]): Implement modern co
tony Mar 15, 2025
4c51fc7
!squash !squash tests/config(test[loader]): Add property
tony Mar 15, 2025
adeedf5
!squash tests(feat[property]): Add property-based testing for configu…
tony Mar 15, 2025
6fa5286
!squash config(feat[models,loader]): Implement modern co
tony Mar 15, 2025
06fdc1f
!squash tests(feat[property]): Add property-based testing for configu…
tony Mar 15, 2025
7935506
notes: Update notes
tony Mar 15, 2025
a8f2414
notes: Update notes
tony Mar 15, 2025
3c55281
notes: Update notes
tony Mar 15, 2025
6a19f38
notes: Update notes
tony Mar 15, 2025
3f9e9d4
pyproject(mypy) Ignore scripts/ and examples/ for now
tony Mar 15, 2025
e8e0a94
notes: Update notes
tony Mar 15, 2025
f1f7599
tests(cli): Implement CLI testing framework
tony Mar 15, 2025
4b2d491
config(feat[migration]): Add configuration migration tool
tony Mar 15, 2025
32f5564
docs: Add migration notes for configuration changes
tony Mar 15, 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
42 changes: 42 additions & 0 deletions .cursor/rules/notes-llms-txt.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
description: LLM-friendly markdown format for notes directories
globs: notes/**/*.md,**/notes/**/*.md
alwaysApply: true
---

# Instructions for Generating LLM-Optimized Markdown Content

When creating or editing markdown files within the specified directories, adhere to the following guidelines to ensure the content is optimized for LLM understanding and efficient token usage:

1. **Conciseness and Clarity**:
- **Be Brief**: Present information succinctly, avoiding unnecessary elaboration.
- **Use Clear Language**: Employ straightforward language to convey ideas effectively.

2. **Structured Formatting**:
- **Headings**: Utilize markdown headings (`#`, `##`, `###`, etc.) to organize content hierarchically.
- **Lists**: Use bullet points (`-`) or numbered lists (`1.`, `2.`, etc.) to enumerate items clearly.
- **Code Blocks**: Enclose code snippets within triple backticks (```) to distinguish them from regular text.

3. **Semantic Elements**:
- **Emphasis**: Use asterisks (`*`) or underscores (`_`) for italicizing text to denote emphasis.
- **Strong Emphasis**: Use double asterisks (`**`) or double underscores (`__`) for bold text to highlight critical points.
- **Inline Code**: Use single backticks (`) for inline code references.

4. **Linking and References**:
- **Hyperlinks**: Format links using `[Link Text](mdc:URL)` to provide direct access to external resources.
- **References**: When citing sources, use footnotes or inline citations to maintain readability.

5. **Avoid Redundancy**:
- **Eliminate Repetition**: Ensure that information is not unnecessarily repeated within the document.
- **Use Summaries**: Provide brief summaries where detailed explanations are not essential.

6. **Standard Compliance**:
- **llms.txt Conformance**: Structure the document in alignment with the `llms.txt` standard, which includes:
- An H1 heading with the project or site name.
- A blockquote summarizing the project's purpose.
- Additional markdown sections providing detailed information.
- H2-delimited sections containing lists of URLs for further details.

By following these guidelines, the markdown files will be tailored for optimal LLM processing, ensuring that the content is both accessible and efficiently tokenized for AI applications.

For more information on the `llms.txt` standard, refer to the official documentation: https://llmstxt.org/
10 changes: 9 additions & 1 deletion docs/api/cli/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
:caption: General commands
:maxdepth: 1

sync
```

## vcspull CLI - `vcspull.cli`
Expand All @@ -19,3 +18,12 @@ sync
:show-inheritance:
:undoc-members:
```

## Commands - `vcspull.cli.commands`

```{eval-rst}
.. automodule:: vcspull.cli.commands
:members:
:show-inheritance:
:undoc-members:
```
8 changes: 0 additions & 8 deletions docs/api/cli/sync.md

This file was deleted.

39 changes: 39 additions & 0 deletions docs/api/config_models.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Configuration Models - `vcspull.config.models`

This page documents the Pydantic models used to configure VCSPull.

## Repository Model

The Repository model represents a single repository configuration.

```{eval-rst}
.. autopydantic_model:: vcspull.config.models.Repository
:inherited-members: BaseModel
:model-show-json: True
:model-show-field-summary: True
:field-signature-prefix: param
```

## Settings Model

The Settings model controls global behavior of VCSPull.

```{eval-rst}
.. autopydantic_model:: vcspull.config.models.Settings
:inherited-members: BaseModel
:model-show-json: True
:model-show-field-summary: True
:field-signature-prefix: param
```

## VCSPullConfig Model

The VCSPullConfig model is the root configuration model for VCSPull.

```{eval-rst}
.. autopydantic_model:: vcspull.config.models.VCSPullConfig
:inherited-members: BaseModel
:model-show-json: True
:model-show-field-summary: True
:field-signature-prefix: param
```
8 changes: 0 additions & 8 deletions docs/api/exc.md

This file was deleted.

14 changes: 8 additions & 6 deletions docs/api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@
For granular control see {ref}`libvcs <libvcs:index>`'s {ref}`Commands <libvcs:cmd>` and {ref}`Projects <libvcs:projects>`.
:::

## Configuration

```{toctree}
config
config_models
```

## Internals

:::{warning}
Expand All @@ -15,12 +22,7 @@ If you need an internal API stabilized please [file an issue](https://github.com
:::

```{toctree}
config
cli/index
exc
log
internals/index
validator
util
types
logger
```
8 changes: 0 additions & 8 deletions docs/api/log.md

This file was deleted.

8 changes: 8 additions & 0 deletions docs/api/logger.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Logging - `vcspull._internal.logger`

```{eval-rst}
.. automodule:: vcspull._internal.logger
:members:
:show-inheritance:
:undoc-members:
```
8 changes: 0 additions & 8 deletions docs/api/util.md

This file was deleted.

8 changes: 0 additions & 8 deletions docs/api/validator.md

This file was deleted.

14 changes: 14 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
"sphinxext.rediraffe",
"myst_parser",
"linkify_issues",
"sphinxcontrib.autodoc_pydantic",
]
myst_enable_extensions = [
"colon_fence",
Expand Down Expand Up @@ -122,6 +123,19 @@
autodoc_typehints = "description" # show type hints in doc body instead of signature
simplify_optional_unions = True

# autodoc_pydantic configuration
autodoc_pydantic_model_show_json = True
autodoc_pydantic_model_show_config = True
autodoc_pydantic_model_show_validator_members = True
autodoc_pydantic_model_show_field_summary = True
autodoc_pydantic_model_member_order = "bysource"
autodoc_pydantic_model_hide_paramlist = False
autodoc_pydantic_model_undoc_members = True
autodoc_pydantic_field_list_validators = True
autodoc_pydantic_field_show_constraints = True
autodoc_pydantic_settings_show_json = True
autodoc_pydantic_settings_show_config = True

# sphinx.ext.napoleon
napoleon_google_docstring = True
napoleon_include_init_with_doc = True
Expand Down
1 change: 1 addition & 0 deletions docs/configuration/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ YAML:
:hidden:

generation
schema
```

## Caveats
Expand Down
36 changes: 36 additions & 0 deletions docs/configuration/schema.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Configuration Schema

This page provides the detailed JSON Schema for the VCSPull configuration.

## JSON Schema

The following schema is automatically generated from the VCSPull configuration models.

```{eval-rst}
.. autopydantic_model:: vcspull.config.models.VCSPullConfig
:model-show-json-schema: True
:model-show-field-summary: True
:field-signature-prefix: param
```

## Repository Schema

Individual repository configuration schema:

```{eval-rst}
.. autopydantic_model:: vcspull.config.models.Repository
:model-show-json-schema: True
:model-show-field-summary: True
:field-signature-prefix: param
```

## Settings Schema

Global settings configuration schema:

```{eval-rst}
.. autopydantic_model:: vcspull.config.models.Settings
:model-show-json-schema: True
:model-show-field-summary: True
:field-signature-prefix: param
```
Loading
Loading