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
8d4e71f
pkg: Add `py.typed` file
tony Mar 9, 2025
3a20fad
py(deps) Add `pydantic` for typed, intuitive validation
tony Mar 8, 2025
967f527
notes(about[2025-03-08]) Add about
tony Mar 8, 2025
a4f44e4
notes(test-audit[2025-03-08]) Add test-audit file
tony Mar 8, 2025
95854d2
notes(test-audit[2025-03-08]) More notes
tony Mar 8, 2025
691dadc
cursor(rules[notes-llms-txt]) Add rules for note generation
tony Mar 8, 2025
3df6192
notes(test-audit[2025-03-08]) Add test-audit test plan file
tony Mar 8, 2025
845e08d
!squash more examples for test plan
tony Mar 8, 2025
ee397a4
!squash more
tony Mar 8, 2025
95dde35
!squash
tony Mar 8, 2025
e0ef852
notes(test-audit[2025-03-08]) Update test-audit test plan file
tony Mar 8, 2025
0145beb
notes(TODO) Add file
tony Mar 8, 2025
4f0f12b
feat(models): Add Pydantic models and update validator to use them
tony Mar 8, 2025
0b1e384
!squash more
tony Mar 8, 2025
e9cb064
!squash More
tony Mar 8, 2025
a79c4e0
!squash remove notes for pydantic
tony Mar 8, 2025
dfa3e6e
notes(TODO) Update to most recent
tony Mar 8, 2025
c93a941
notes(test-audit[2025-03-08]) Update test-audit plan file
tony Mar 8, 2025
2e77614
notes(test-audit): Update test plan and TODO to reflect Pydantic impl…
tony Mar 8, 2025
4a34464
Update todo
tony Mar 8, 2025
d6bb66a
notes: Add test-coverage
tony Mar 8, 2025
b6617ee
!squash notes test-coverage.md
tony Mar 8, 2025
ad48988
!squash more test-coverage notes
tony Mar 8, 2025
5aa606f
!squash more test-coverage notes
tony Mar 8, 2025
28d4c1c
!squash more
tony Mar 9, 2025
3ca9505
!squash
tony Mar 9, 2025
fd45a16
!squash more
tony Mar 9, 2025
fb4df18
!squash
tony Mar 9, 2025
49ac316
!squash more
tony Mar 9, 2025
e3ef50d
notes: Add pydantic-overhaul.md
tony Mar 9, 2025
0b5ef4f
!squash pydantic overhaul
tony Mar 9, 2025
e75f209
!squash notes pydantic-overhaul.md
tony Mar 9, 2025
a2fd69d
!squash pydantic overhaul
tony Mar 9, 2025
aff4ce9
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
64474cd
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
d441993
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
ec86b25
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
066c4ab
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
aaeabda
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
9cf8aeb
notes(pydantic-v2) Add document
tony Mar 9, 2025
dd0e6ff
notes(pydantic-v2) Update document
tony Mar 9, 2025
8bcb53d
notes(pydantic-v2) Update document
tony Mar 9, 2025
36128bc
notes(pydantic-v2) Update document
tony Mar 9, 2025
c58bab4
notes(pydantic-v2) Update document
tony Mar 9, 2025
0a3d537
notes(pydantic-v2) Update document
tony Mar 9, 2025
17d48ee
notes(pydantic-v2) Update document
tony Mar 9, 2025
a476a62
notes(pydantic-v2) Update document
tony Mar 9, 2025
182cd0d
notes(pydantic-v2) Update document
tony Mar 9, 2025
1e65e8a
notes(pydantic-v2) Update document
tony Mar 9, 2025
3c032df
notes(pydantic-v2) Update document
tony Mar 9, 2025
787e6e3
notes(pydantic-v2) Update document
tony Mar 9, 2025
815998d
notes(pydantic-v2) Update document
tony Mar 9, 2025
281f162
notes(pydantic-v2) Update document
tony Mar 9, 2025
63e9597
notes(pydantic-v2) Update document
tony Mar 9, 2025
0fdabef
!squash pydantic v2 notes
tony Mar 9, 2025
4961128
notes/pydantic-overhaul.md
tony Mar 9, 2025
6a26512
!squash more
tony Mar 9, 2025
8dc6079
!squash more
tony Mar 9, 2025
ede53a4
!squash more
tony Mar 9, 2025
cf7cc9b
!squash more
tony Mar 9, 2025
06442f7
!squash more
tony Mar 9, 2025
dd401eb
!squash more
tony Mar 9, 2025
14399a1
!squash
tony Mar 9, 2025
d89dc9a
!squash more updates
tony Mar 9, 2025
a35511d
!squash more
tony Mar 9, 2025
37d7eda
!squash more
tony Mar 9, 2025
485b596
!squash tests
tony Mar 9, 2025
f919361
!squash more ruff strict
tony Mar 9, 2025
511fa04
!squash more
tony Mar 9, 2025
46b3696
notes(2025-03-09) audit
tony Mar 9, 2025
2d38d61
!squash more audit
tony Mar 9, 2025
2b6c5fc
!squash more audit
tony Mar 9, 2025
20a5057
!squash more audit
tony Mar 9, 2025
490d2cc
!squash audit
tony Mar 9, 2025
c8612d8
notes: proposals
tony Mar 9, 2025
7fa9bd3
notes: More
tony Mar 9, 2025
8687e5c
!squash more proposals
tony Mar 9, 2025
0bdafc3
!squash more notes
tony Mar 9, 2025
b40b0d8
!squash more notes
tony Mar 9, 2025
4a90e50
!squash notes
tony Mar 9, 2025
786de35
!squash proposals
tony Mar 9, 2025
022e467
notes: Add TODO.md
tony Mar 9, 2025
175341b
notes: Move TODO.md -> TODO-old.md
tony Mar 9, 2025
c4393be
notes: 00 summary update
tony Mar 9, 2025
e4c8f97
notes: Add new TODO
tony Mar 9, 2025
c3d75fe
notes: Remove test audit
tony Mar 9, 2025
18bce72
notes: Remove TODO-old.md
tony Mar 9, 2025
9abaaee
tests,src: Move to *_old dirs
tony Mar 9, 2025
f8a7d1b
config(feat[models,loader]): Implement modern configuration system wi…
tony Mar 9, 2025
7a0ebd4
!squash ruff and mypy fixes
tony Mar 9, 2025
4ba0644
pyproject: Pack src/vcspull/py.typed
tony Mar 9, 2025
7ad620a
notes: Update TODO
tony Mar 9, 2025
da6c265
py(deps[docs]) Add autodoc_pydantic
tony Mar 9, 2025
3b9b3f9
types+docs(feat[configuration]): Add py.typed marker and Pydantic mod…
tony Mar 9, 2025
c925090
notes: Update TODO
tony Mar 9, 2025
55479cc
docs: Remove old pages
tony Mar 9, 2025
5e0a853
docs: New pages
tony Mar 9, 2025
cbc8b93
vcspull(feat[operations]): Implement repository operations API and VC…
tony Mar 9, 2025
cfad495
notes: Update TODO
tony Mar 9, 2025
4daa670
vcs(feat[lock]): Implement version locking for repositories
tony Mar 10, 2025
7e1731a
notes: Update TODO
tony Mar 10, 2025
9846d3e
py(deps[test]) Add `hypothesis`
tony Mar 10, 2025
d961d20
tests(feat[property]): Add property-based testing for configuration m…
tony Mar 10, 2025
28cc679
notes: Update notes (progress)
tony Mar 15, 2025
d6ca3d1
tests/config(test[loader]): Add property-based tests for configuratio…
tony Mar 15, 2025
75afd3f
!squash tests/config(test[loader]): Add property-based
tony Mar 15, 2025
4f7e26f
!squash tests/config(test[loader]): Add property-based
tony Mar 15, 2025
d1e5abf
!squash tests/config(test[loader]): Add property-based
tony Mar 15, 2025
f22e167
!squash tests(feat[property]): Add property-based testin
tony Mar 15, 2025
d226a44
!squash pyproject: Pack src/vcspull/py.typed
tony Mar 15, 2025
48a8285
!squash config(feat[models,loader]): Implement modern
tony Mar 15, 2025
1a225c5
!squash tests(feat[property]): Add property-based testin
tony Mar 15, 2025
c50f5a1
!squsah config(feat[models,loader]): Implement modern configuration s…
tony Mar 15, 2025
9c53bbc
!squash pyproject: Pack src/vcspull/py.typed
tony Mar 15, 2025
9986971
squash config(feat[models,loader]): Implement modern co
tony Mar 15, 2025
8e9d4ff
!squash !squash tests/config(test[loader]): Add property
tony Mar 15, 2025
456abb3
!squash tests(feat[property]): Add property-based testing for configu…
tony Mar 15, 2025
7f2c630
!squash config(feat[models,loader]): Implement modern co
tony Mar 15, 2025
37f71b4
!squash tests(feat[property]): Add property-based testing for configu…
tony Mar 15, 2025
706b281
notes: Update notes
tony Mar 15, 2025
2d684ab
notes: Update notes
tony Mar 15, 2025
5d64f1d
notes: Update notes
tony Mar 15, 2025
c9a3a80
notes: Update notes
tony Mar 15, 2025
1086961
pyproject(mypy) Ignore scripts/ and examples/ for now
tony Mar 15, 2025
685b900
notes: Update notes
tony Mar 15, 2025
c27e08c
tests(cli): Implement CLI testing framework
tony Mar 15, 2025
1af35b3
config(feat[migration]): Add configuration migration tool
tony Mar 15, 2025
98e5e92
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