podojo-cli 0.4.2__tar.gz → 0.4.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/CHANGELOG.md +5 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/CLAUDE.md +1 -1
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/PKG-INFO +1 -1
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/pyproject.toml +1 -1
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/commands/usertests.py +11 -3
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/uv.lock +1 -1
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/.github/workflows/publish.yml +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/.gitignore +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/README.md +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/__init__.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/client.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/commands/__init__.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/commands/auth.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/commands/gdrive.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/commands/projects.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/commands/showreel.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/commands/transcripts.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/commands/videos.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/config.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/gdrive/__init__.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/gdrive/list.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/gdrive/upload.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/main.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/video/__init__.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/src/podojo_cli/video/showreel.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/tests/conftest.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/tests/test_auth.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/tests/test_gdrive.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/tests/test_projects.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/tests/test_showreel.py +0 -0
- {podojo_cli-0.4.2 → podojo_cli-0.4.3}/tests/test_usertests.py +0 -0
|
@@ -5,6 +5,11 @@ All notable changes to the Podojo CLI will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org).
|
|
7
7
|
|
|
8
|
+
## [0.4.3] - 2026-04-14
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Support `instruction` step variant for usertests (briefing screen with a "Continue" button, useful before prototype steps)
|
|
12
|
+
|
|
8
13
|
## [0.4.2] - 2026-04-05
|
|
9
14
|
|
|
10
15
|
### Changed
|
|
@@ -39,7 +39,7 @@ podojo usertests validate usertest.yaml # validate without creating
|
|
|
39
39
|
|
|
40
40
|
User test configs are YAML files. Run `podojo usertests example` for the full template.
|
|
41
41
|
Required fields: `usertest_id`, `client`, `title`, `logo`, `prototype_url`, `steps`.
|
|
42
|
-
Each step needs `type` ("screen" or "prototype") and `title`. Screen steps should have `variant` ("question" or "
|
|
42
|
+
Each step needs `type` ("screen" or "prototype") and `title`. Screen steps should have `variant` ("question", "task", or "instruction" — instruction screens render a "Continue" button instead of "Done with Step", useful as a briefing before a prototype step).
|
|
43
43
|
|
|
44
44
|
## Configuration
|
|
45
45
|
|
|
@@ -13,7 +13,7 @@ console = Console()
|
|
|
13
13
|
|
|
14
14
|
REQUIRED_FIELDS = ["usertest_id", "title", "logo", "prototype_url", "steps"]
|
|
15
15
|
VALID_STEP_TYPES = {"screen", "prototype"}
|
|
16
|
-
VALID_STEP_VARIANTS = {"question", "task", "intro", "feedback"}
|
|
16
|
+
VALID_STEP_VARIANTS = {"question", "task", "intro", "feedback", "instruction"}
|
|
17
17
|
REQUIRED_STEP_FIELDS = ["type", "title"]
|
|
18
18
|
|
|
19
19
|
EXAMPLE_YAML = """\
|
|
@@ -53,7 +53,8 @@ project_name: checkout-redesign-q1
|
|
|
53
53
|
|
|
54
54
|
# Steps define what participants see and do
|
|
55
55
|
# Each step requires: type ("screen" or "prototype") and title
|
|
56
|
-
# Screen steps should have a variant: "question" (open-ended)
|
|
56
|
+
# Screen steps should have a variant: "question" (open-ended), "task" (action-based),
|
|
57
|
+
# or "instruction" (briefing screen shown before a prototype step — uses a "Continue" button)
|
|
57
58
|
# Optional per step: text (markdown), image (URL)
|
|
58
59
|
steps:
|
|
59
60
|
- type: screen
|
|
@@ -64,6 +65,13 @@ steps:
|
|
|
64
65
|
What stands out to you first?
|
|
65
66
|
image: https://example.com/screenshots/homepage.png
|
|
66
67
|
|
|
68
|
+
- type: screen
|
|
69
|
+
variant: instruction
|
|
70
|
+
title: Next, you'll try the prototype
|
|
71
|
+
text: |
|
|
72
|
+
On the next screen you'll see a working prototype.
|
|
73
|
+
Try to buy a pair of running shoes, and think aloud as you go.
|
|
74
|
+
|
|
67
75
|
- type: prototype
|
|
68
76
|
title: Complete a Purchase
|
|
69
77
|
text: |
|
|
@@ -115,7 +123,7 @@ def validate_usertest_data(data: dict) -> list[str]:
|
|
|
115
123
|
variant = step.get("variant")
|
|
116
124
|
if step_type == "screen" and variant is not None and variant not in VALID_STEP_VARIANTS:
|
|
117
125
|
errors.append(
|
|
118
|
-
f"Step {i}: 'variant' must be
|
|
126
|
+
f"Step {i}: 'variant' must be one of {sorted(VALID_STEP_VARIANTS)}, got '{variant}'"
|
|
119
127
|
)
|
|
120
128
|
return errors
|
|
121
129
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|