aws-test-plugin 0.1.1__tar.gz → 0.1.2__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.
Files changed (47) hide show
  1. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/.claude-plugin/marketplace.json +1 -1
  2. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/.claude-plugin/plugin.json +1 -1
  3. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/.github/workflows/publish.yml +2 -24
  4. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/CONTRIBUTING.md +4 -4
  5. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/PKG-INFO +2 -2
  6. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/README.md +1 -1
  7. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/pyproject.toml +1 -1
  8. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/src/aws_test_plugin/__init__.py +1 -1
  9. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/tests/test_cli.py +0 -16
  10. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/uv.lock +2 -2
  11. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/.gitattributes +0 -0
  12. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/.github/CODEOWNERS +0 -0
  13. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/.github/pull_request_template.md +0 -0
  14. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/.github/workflows/ci.yml +0 -0
  15. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/.github/workflows/codeql.yml +0 -0
  16. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/.gitignore +0 -0
  17. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/.python-version +0 -0
  18. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/LICENSE +0 -0
  19. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/PLAN.md +0 -0
  20. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/agents/aws-test-engineer.md +0 -0
  21. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-contract-testing/SKILL.md +0 -0
  22. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-contract-testing/references/openapi-patterns.md +0 -0
  23. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-e2e-testing/SKILL.md +0 -0
  24. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-e2e-testing/references/api-gateway-patterns.md +0 -0
  25. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-e2e-testing/references/batch-patterns.md +0 -0
  26. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-e2e-testing/references/step-function-patterns.md +0 -0
  27. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-integration-testing/SKILL.md +0 -0
  28. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-integration-testing/references/lambda-dynamodb-patterns.md +0 -0
  29. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-integration-testing/references/lambda-eventbridge-patterns.md +0 -0
  30. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-integration-testing/references/lambda-kinesis-patterns.md +0 -0
  31. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-integration-testing/references/lambda-rds-patterns.md +0 -0
  32. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-integration-testing/references/lambda-s3-patterns.md +0 -0
  33. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-integration-testing/references/lambda-sns-patterns.md +0 -0
  34. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-integration-testing/references/lambda-sqs-patterns.md +0 -0
  35. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-perf-load-testing/SKILL.md +0 -0
  36. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-perf-load-testing/references/benchmark-patterns.md +0 -0
  37. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-perf-load-testing/references/locust-patterns.md +0 -0
  38. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-test-orchestrator/SKILL.md +0 -0
  39. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-test-orchestrator/references/secrets-and-config.md +0 -0
  40. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-unit-testing/SKILL.md +0 -0
  41. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-unit-testing/references/boundary-branch-patterns.md +0 -0
  42. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/skills/aws-unit-testing/references/edge-case-patterns.md +0 -0
  43. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/src/aws_test_plugin/AGENTS.md +0 -0
  44. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/src/aws_test_plugin/cli.py +0 -0
  45. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/src/aws_test_plugin/scripts/analyze_results.py +0 -0
  46. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/src/aws_test_plugin/scripts/run_tests.py +0 -0
  47. {aws_test_plugin-0.1.1 → aws_test_plugin-0.1.2}/src/aws_test_plugin/scripts/scaffold.py +0 -0
@@ -11,7 +11,7 @@
11
11
  "name": "claude-aws-test-plugin",
12
12
  "source": "./",
13
13
  "description": "Generates E2E, integration, contract, performance, and load tests by reading actual handler code.",
14
- "version": "0.1.1"
14
+ "version": "0.1.2"
15
15
  }
16
16
  ]
17
17
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "aws-test-plugin",
3
3
  "description": "AI-powered test generation skills for AWS Python projects — Lambda, API Gateway, Step Functions, and Batch. Generates E2E, integration, contract, performance, and load tests by reading actual handler code.",
4
- "version": "0.1.1",
4
+ "version": "0.1.2",
5
5
  "author": {
6
6
  "name": "whitewhiteqq"
7
7
  },
@@ -1,38 +1,16 @@
1
1
  name: Publish to PyPI
2
2
 
3
3
  on:
4
- push:
5
- tags:
6
- - "v*"
4
+ release:
5
+ types: [published]
7
6
 
8
7
  permissions:
9
8
  contents: read
10
9
  id-token: write # Required for trusted publishing
11
10
 
12
11
  jobs:
13
- verify-release-tag:
14
- name: Verify release tag is on main
15
- runs-on: ubuntu-latest
16
-
17
- steps:
18
- - name: Checkout
19
- uses: actions/checkout@v4
20
- with:
21
- fetch-depth: 0
22
-
23
- - name: Verify tag commit is reachable from main
24
- shell: bash
25
- run: |
26
- git fetch origin main --depth=1
27
- release_commit=$(git rev-list -n 1 "$GITHUB_REF")
28
- if ! git merge-base --is-ancestor "$release_commit" "origin/main"; then
29
- echo "Release tags must point to a commit on origin/main."
30
- exit 1
31
- fi
32
-
33
12
  build:
34
13
  name: Build distribution
35
- needs: verify-release-tag
36
14
  runs-on: ubuntu-latest
37
15
 
38
16
  steps:
@@ -130,7 +130,7 @@ Principles:
130
130
  - Default to `Rebase and merge` for pull requests into `develop` so that every individual commit — and its reasoning — is preserved in the public history. Use `Squash and merge` only when the branch contains exploratory or fixup commits that add no lasting value; when squashing, the single merge commit must capture all essential context from the branch (see Commit Message Style).
131
131
  - Avoid GitHub merge commits for routine pull requests because they create noisy branch divergence and a less readable graph.
132
132
  - Promote releases from `develop` to `main` with a maintainer-run fast-forward update so both branches share identical history.
133
- - Tag every release on `main` with an annotated tag (`git tag -a v0.1.0 -m "..."`). Pushing that tag is the PyPI publish trigger, so releases follow one path only: feature branch -> `develop` -> `main` -> version tag -> PyPI. The tag message should summarize what shipped, key decisions made since the prior release, and any known limitations. Annotated tags are git objects — they survive cloning and forking, unlike GitHub-only release notes.
133
+ - Tag every release on `main` with an annotated tag (`git tag -a v0.1.0 -m "..."`). Then create a GitHub Release targeting that tag — creating the Release is the PyPI publish trigger. Releases follow one path only: feature branch -> `develop` -> `main` -> version tag -> GitHub Release -> PyPI. The tag message should summarize what shipped, key decisions made since the prior release, and any known limitations. Annotated tags are git objects — they survive cloning and forking, unlike GitHub-only release notes.
134
134
 
135
135
  ## Commit Message Style
136
136
 
@@ -267,7 +267,7 @@ must also land in the commit messages that enter `develop`.
267
267
  6. Submit a pull request to `develop` using `.github/pull_request_template.md`
268
268
  7. Merge pull requests with `Rebase and merge` (preferred — preserves individual commit reasoning) or `Squash and merge` (only when intermediate commits are noise); do not use merge commits
269
269
  8. Release `develop` to `main` with a maintainer-run fast-forward update after CI passes on `develop`; use `git merge --ff-only develop` from a local checkout of `main` so `main` advances without rewriting or duplicating commit history
270
- 9. Create and push an annotated version tag from `main`; this tag is the only supported trigger for publishing to PyPI
270
+ 9. Create and push an annotated version tag from `main`, then create a GitHub Release targeting that tag; the Release is the PyPI publish trigger
271
271
  10. Review responsibility is assigned through `.github/CODEOWNERS`
272
272
 
273
273
  ## Maintainer Notes
@@ -275,12 +275,12 @@ must also land in the commit messages that enter `develop`.
275
275
  - Protect `main` and `develop` against direct pushes.
276
276
  - Enable `Rebase and merge` (preferred) and `Squash and merge` (fallback) for contributor pull requests into `develop`. Disable `Create a merge commit` to enforce linear history.
277
277
  - Do not rely on GitHub merge buttons for release promotion to `main`; use a local `git merge --ff-only develop` followed by `git push origin main`.
278
- - Do not publish to PyPI from a feature branch or from `develop`. PyPI releases are created only after `develop` has been fast-forwarded into `main` and an annotated `v*` tag has been pushed from that `main` commit.
278
+ - Do not publish to PyPI from a feature branch or from `develop`. PyPI releases are triggered only by creating a GitHub Release after `develop` has been fast-forwarded into `main` and an annotated `v*` tag has been pushed from that `main` commit.
279
279
  - Configure `develop` branch protection or rulesets to require linear history and the CI checks `Test (Python 3.10)`, `Test (Python 3.11)`, `Test (Python 3.12)`, `Test (Python 3.13)`, `Lint`, `Type Check`, and `Security`.
280
280
  - Configure `main` so only maintainers can update it, with no force pushes or deletions.
281
281
  - Keep release updates focused. Avoid mixing repository governance, experiments, and product changes in the same release.
282
282
  - Do not rewrite shared branch history unless there is a clear operational reason and the change is communicated.
283
- - After each fast-forward update to `main`, create an annotated tag and push it to publish that version to PyPI:
283
+ - After each fast-forward update to `main`, create an annotated tag, push it, and then create a GitHub Release targeting that tag to publish to PyPI:
284
284
  ```bash
285
285
  git tag -a v<VERSION> -m "v<VERSION>: <one-line theme>
286
286
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aws-test-plugin
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: AI-powered test generation skills for AWS Python projects — works with Claude Code, GitHub Copilot, and Codex
5
5
  Project-URL: Homepage, https://github.com/whitewhiteqq/aws-test-plugin
6
6
  Project-URL: Repository, https://github.com/whitewhiteqq/aws-test-plugin
@@ -329,7 +329,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
329
329
  ## Review Flow
330
330
 
331
331
  - Pull requests should target `develop`; maintainers promote `develop` to `main` with a fast-forward release update.
332
- - PyPI publishing happens only from an annotated `v*` tag pushed from `main` after that promotion.
332
+ - PyPI publishing is triggered by creating a GitHub Release targeting an annotated `v*` tag on `main`.
333
333
  - Review ownership is defined in `.github/CODEOWNERS`.
334
334
  - Pull request expectations are defined in `.github/pull_request_template.md`.
335
335
 
@@ -267,7 +267,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
267
267
  ## Review Flow
268
268
 
269
269
  - Pull requests should target `develop`; maintainers promote `develop` to `main` with a fast-forward release update.
270
- - PyPI publishing happens only from an annotated `v*` tag pushed from `main` after that promotion.
270
+ - PyPI publishing is triggered by creating a GitHub Release targeting an annotated `v*` tag on `main`.
271
271
  - Review ownership is defined in `.github/CODEOWNERS`.
272
272
  - Pull request expectations are defined in `.github/pull_request_template.md`.
273
273
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "aws-test-plugin"
3
- version = "0.1.1"
3
+ version = "0.1.2"
4
4
  description = "AI-powered test generation skills for AWS Python projects — works with Claude Code, GitHub Copilot, and Codex"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -1,3 +1,3 @@
1
1
  """aws-test-plugin — AI-powered test generation for AWS Python projects."""
2
2
 
3
- __version__ = "0.1.1"
3
+ __version__ = "0.1.2"
@@ -102,22 +102,6 @@ def test_skill_description_under_1024_chars():
102
102
  assert len(desc) <= 1024, f"{skill.name}: description is {len(desc)} chars (max 1024)"
103
103
 
104
104
 
105
- def test_skill_has_license():
106
- """Every SKILL.md should have a license field."""
107
- skills_dir = _get_data_dir() / "skills"
108
- for skill in skills_dir.iterdir():
109
- if not skill.is_dir():
110
- continue
111
- skill_md = skill / "SKILL.md"
112
- if not skill_md.exists():
113
- continue
114
-
115
- content = skill_md.read_text(encoding="utf-8")
116
- parts = content.split("---", 2)
117
- if len(parts) >= 3:
118
- assert "license:" in parts[1], f"{skill.name}/SKILL.md missing license"
119
-
120
-
121
105
  def test_skill_reference_links_resolve():
122
106
  """Reference file links in SKILL.md must point to existing files."""
123
107
  skills_dir = _get_data_dir() / "skills"
@@ -1,5 +1,5 @@
1
1
  version = 1
2
- revision = 2
2
+ revision = 3
3
3
  requires-python = ">=3.10"
4
4
  resolution-markers = [
5
5
  "python_full_version >= '3.11'",
@@ -76,7 +76,7 @@ wheels = [
76
76
 
77
77
  [[package]]
78
78
  name = "aws-test-plugin"
79
- version = "0.1.0"
79
+ version = "0.1.1"
80
80
  source = { editable = "." }
81
81
  dependencies = [
82
82
  { name = "defusedxml" },
File without changes
File without changes