Skip to content

Improve test coverage #462

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

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
1225314
pkg: Add `py.typed` file
tony Mar 9, 2025
105a1b6
py(deps) Add `pydantic` for typed, intuitive validation
tony Mar 8, 2025
90c6c80
notes(about[2025-03-08]) Add about
tony Mar 8, 2025
c5ce495
notes(test-audit[2025-03-08]) Add test-audit file
tony Mar 8, 2025
173f3df
notes(test-audit[2025-03-08]) More notes
tony Mar 8, 2025
6bc9624
cursor(rules[notes-llms-txt]) Add rules for note generation
tony Mar 8, 2025
ae0f614
notes(test-audit[2025-03-08]) Add test-audit test plan file
tony Mar 8, 2025
a9e87c3
!squash more examples for test plan
tony Mar 8, 2025
4dbab51
!squash more
tony Mar 8, 2025
d9d1561
!squash
tony Mar 8, 2025
f308c41
notes(test-audit[2025-03-08]) Update test-audit test plan file
tony Mar 8, 2025
d92946f
notes(TODO) Add file
tony Mar 8, 2025
e645f31
feat(models): Add Pydantic models and update validator to use them
tony Mar 8, 2025
26c37a0
!squash more
tony Mar 8, 2025
fa617f2
!squash More
tony Mar 8, 2025
581d997
!squash remove notes for pydantic
tony Mar 8, 2025
bb879cd
notes(TODO) Update to most recent
tony Mar 8, 2025
fc4cea3
notes(test-audit[2025-03-08]) Update test-audit plan file
tony Mar 8, 2025
4a699be
notes(test-audit): Update test plan and TODO to reflect Pydantic impl…
tony Mar 8, 2025
9e3e610
Update todo
tony Mar 8, 2025
cd7beef
notes: Add test-coverage
tony Mar 8, 2025
2cfb459
!squash notes test-coverage.md
tony Mar 8, 2025
4f3a888
!squash more test-coverage notes
tony Mar 8, 2025
6f382c3
!squash more test-coverage notes
tony Mar 8, 2025
0f1f6b5
!squash more
tony Mar 9, 2025
a0fb77d
!squash
tony Mar 9, 2025
50e6a09
!squash more
tony Mar 9, 2025
14eb3ed
!squash
tony Mar 9, 2025
279923d
!squash more
tony Mar 9, 2025
3bf1846
notes: Add pydantic-overhaul.md
tony Mar 9, 2025
4575c57
!squash pydantic overhaul
tony Mar 9, 2025
1f0329f
!squash notes pydantic-overhaul.md
tony Mar 9, 2025
fb4c69f
!squash pydantic overhaul
tony Mar 9, 2025
a3aa5e4
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
73bee29
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
5a0485b
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
2207edb
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
d05862b
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
8108447
notes(pydantic-overhaul) Update document
tony Mar 9, 2025
be39738
notes(pydantic-v2) Add document
tony Mar 9, 2025
9dadb13
notes(pydantic-v2) Update document
tony Mar 9, 2025
ac5d131
notes(pydantic-v2) Update document
tony Mar 9, 2025
bc393d3
notes(pydantic-v2) Update document
tony Mar 9, 2025
c49cd44
notes(pydantic-v2) Update document
tony Mar 9, 2025
0bc8fa0
notes(pydantic-v2) Update document
tony Mar 9, 2025
f1de885
notes(pydantic-v2) Update document
tony Mar 9, 2025
4971074
notes(pydantic-v2) Update document
tony Mar 9, 2025
2242a5a
notes(pydantic-v2) Update document
tony Mar 9, 2025
de2ff23
notes(pydantic-v2) Update document
tony Mar 9, 2025
835b861
notes(pydantic-v2) Update document
tony Mar 9, 2025
0c5c652
notes(pydantic-v2) Update document
tony Mar 9, 2025
ad3af4b
notes(pydantic-v2) Update document
tony Mar 9, 2025
ba63d61
notes(pydantic-v2) Update document
tony Mar 9, 2025
73c07e4
notes(pydantic-v2) Update document
tony Mar 9, 2025
d8a6f8d
!squash pydantic v2 notes
tony Mar 9, 2025
1ad57a1
notes/pydantic-overhaul.md
tony Mar 9, 2025
99028e3
!squash more
tony Mar 9, 2025
76563cd
!squash more
tony Mar 9, 2025
57a7d08
!squash more
tony Mar 9, 2025
d937ee6
!squash more
tony Mar 9, 2025
78e9d54
!squash more
tony Mar 9, 2025
d0c69e7
!squash more
tony Mar 9, 2025
1fefcec
!squash
tony Mar 9, 2025
7647ad8
!squash more updates
tony Mar 9, 2025
c0932fc
!squash more
tony Mar 9, 2025
ece359a
!squash more
tony Mar 9, 2025
ad7af19
!squash tests
tony Mar 9, 2025
8c7459a
!squash more ruff strict
tony Mar 9, 2025
8b16cce
!squash more
tony Mar 9, 2025
d64f424
notes(2025-03-09) audit
tony Mar 9, 2025
b16cf30
!squash more audit
tony Mar 9, 2025
72cb23d
!squash more audit
tony Mar 9, 2025
1c471d3
!squash more audit
tony Mar 9, 2025
1203329
!squash audit
tony Mar 9, 2025
086d4a7
notes: proposals
tony Mar 9, 2025
7a86cb0
notes: More
tony Mar 9, 2025
6334d81
!squash more proposals
tony Mar 9, 2025
6a46fdd
!squash more notes
tony Mar 9, 2025
8ced00f
!squash more notes
tony Mar 9, 2025
f4b249b
!squash notes
tony Mar 9, 2025
0e35cef
!squash proposals
tony Mar 9, 2025
8443c7d
notes: Add TODO.md
tony Mar 9, 2025
be67a2a
notes: Move TODO.md -> TODO-old.md
tony Mar 9, 2025
2488c5d
notes: 00 summary update
tony Mar 9, 2025
7f4f241
notes: Add new TODO
tony Mar 9, 2025
0d4ba9e
notes: Remove test audit
tony Mar 9, 2025
4b483b0
notes: Remove TODO-old.md
tony Mar 9, 2025
88372c9
tests,src: Move to *_old dirs
tony Mar 9, 2025
ca26a38
config(feat[models,loader]): Implement modern configuration system wi…
tony Mar 9, 2025
370440f
!squash ruff and mypy fixes
tony Mar 9, 2025
b70ab82
pyproject: Pack src/vcspull/py.typed
tony Mar 9, 2025
f1dc905
notes: Update TODO
tony Mar 9, 2025
9142dad
py(deps[docs]) Add autodoc_pydantic
tony Mar 9, 2025
ff6e554
types+docs(feat[configuration]): Add py.typed marker and Pydantic mod…
tony Mar 9, 2025
fd777bb
notes: Update TODO
tony Mar 9, 2025
3942005
docs: Remove old pages
tony Mar 9, 2025
506c971
docs: New pages
tony Mar 9, 2025
8ae82dc
vcspull(feat[operations]): Implement repository operations API and VC…
tony Mar 9, 2025
50947dd
notes: Update TODO
tony Mar 9, 2025
bf86ea2
vcs(feat[lock]): Implement version locking for repositories
tony Mar 10, 2025
f7a4f78
notes: Update TODO
tony Mar 10, 2025
9f223c8
py(deps[test]) Add `hypothesis`
tony Mar 10, 2025
1af1250
tests(feat[property]): Add property-based testing for configuration m…
tony Mar 10, 2025
106586e
notes: Update notes (progress)
tony Mar 15, 2025
bd059a2
tests/config(test[loader]): Add property-based tests for configuratio…
tony Mar 15, 2025
6a1d19e
!squash tests/config(test[loader]): Add property-based
tony Mar 15, 2025
8881f29
!squash tests/config(test[loader]): Add property-based
tony Mar 15, 2025
29f6fdc
!squash tests/config(test[loader]): Add property-based
tony Mar 15, 2025
ad36b58
!squash tests(feat[property]): Add property-based testin
tony Mar 15, 2025
9ddc8ac
!squash pyproject: Pack src/vcspull/py.typed
tony Mar 15, 2025
d8357b4
!squash config(feat[models,loader]): Implement modern
tony Mar 15, 2025
71057d3
!squash tests(feat[property]): Add property-based testin
tony Mar 15, 2025
2a4f9ed
!squsah config(feat[models,loader]): Implement modern configuration s…
tony Mar 15, 2025
1f036a5
!squash pyproject: Pack src/vcspull/py.typed
tony Mar 15, 2025
d17af4a
squash config(feat[models,loader]): Implement modern co
tony Mar 15, 2025
31be7f3
!squash !squash tests/config(test[loader]): Add property
tony Mar 15, 2025
dd2e882
!squash tests(feat[property]): Add property-based testing for configu…
tony Mar 15, 2025
c4eef7e
!squash config(feat[models,loader]): Implement modern co
tony Mar 15, 2025
d2020b6
!squash tests(feat[property]): Add property-based testing for configu…
tony Mar 15, 2025
db0e617
notes: Update notes
tony Mar 15, 2025
e0a7994
notes: Update notes
tony Mar 15, 2025
f6f8390
notes: Update notes
tony Mar 15, 2025
6aa5795
notes: Update notes
tony Mar 15, 2025
90e36c8
pyproject(mypy) Ignore scripts/ and examples/ for now
tony Mar 15, 2025
2cf02c2
notes: Update notes
tony Mar 15, 2025
eef166c
tests(cli): Implement CLI testing framework
tony Mar 15, 2025
82a8748
config(feat[migration]): Add configuration migration tool
tony Mar 15, 2025
b0522cc
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