Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
231 commits
Select commit Hold shift + click to select a range
8ad1aaf
docs: start milestone v4.0 HTTPX Migration
TKIPisalegacycipher May 1, 2026
29d8b49
docs: define milestone v4.0 requirements
TKIPisalegacycipher May 1, 2026
50ab07a
docs: create milestone v4.0 roadmap (6 phases)
TKIPisalegacycipher May 1, 2026
9e5989a
docs(08): capture phase context
TKIPisalegacycipher May 1, 2026
e5b58d7
docs(state): record phase 8 context session
TKIPisalegacycipher May 1, 2026
808c1f5
docs(08): research phase domain
TKIPisalegacycipher May 1, 2026
0054c8f
docs(08): create phase 8 integration baseline plan
TKIPisalegacycipher May 2, 2026
15c9b9f
docs(08): add validation strategy and pattern map
TKIPisalegacycipher May 2, 2026
8c81322
Remove stale planning docs.
TKIPisalegacycipher May 2, 2026
2ca7302
chore(08-01): install pytest-json-report, fix conftest FILE_ORDER, cr…
TKIPisalegacycipher May 2, 2026
d7032d3
test(08-01): capture integration test baseline report (32 tests, all …
TKIPisalegacycipher May 2, 2026
98e3f07
docs(08-01): add execution summary
TKIPisalegacycipher May 2, 2026
5e80809
docs(08): add code review report
TKIPisalegacycipher May 2, 2026
4f622a8
docs(phase-08): complete phase execution
TKIPisalegacycipher May 2, 2026
4739650
docs(phase-08): evolve PROJECT.md after phase completion
TKIPisalegacycipher May 2, 2026
ceddbd2
docs(09): capture phase context
TKIPisalegacycipher May 2, 2026
56c3d38
docs(state): record phase 9 context session
TKIPisalegacycipher May 2, 2026
f31fec7
workflow config
TKIPisalegacycipher May 2, 2026
13ed17d
docs(09): research phase domain
TKIPisalegacycipher May 2, 2026
16d7099
docs(phase-9): add validation strategy
TKIPisalegacycipher May 2, 2026
a774e79
docs(09): create phase plan
TKIPisalegacycipher May 2, 2026
3d45b82
fix(09): address checker issues - add D-04/D-05 refs, resolve open qu…
TKIPisalegacycipher May 2, 2026
91a926a
state and patterns
TKIPisalegacycipher May 4, 2026
002042b
test(09-01): add failing tests for encode_meraki_params
TKIPisalegacycipher May 4, 2026
83e18a0
feat(09-01): implement encode_meraki_params with stdlib only
TKIPisalegacycipher May 4, 2026
07adcfc
docs(09-01): complete param encoding TDD plan summary
TKIPisalegacycipher May 4, 2026
fd72ef3
docs(phase-09): update tracking after wave 1
TKIPisalegacycipher May 4, 2026
20a6426
docs(09): add code review report
TKIPisalegacycipher May 4, 2026
ee7a69f
docs(phase-09): complete phase execution
TKIPisalegacycipher May 4, 2026
4f65fec
docs(phase-09): evolve PROJECT.md after phase completion
TKIPisalegacycipher May 4, 2026
7a04641
docs(10): capture phase context
TKIPisalegacycipher May 4, 2026
d439948
docs(state): record phase 10 context session
TKIPisalegacycipher May 4, 2026
dace51c
docs(10): research session refactor patterns and architecture
TKIPisalegacycipher May 4, 2026
261dadd
docs(phase-10): add validation strategy
TKIPisalegacycipher May 4, 2026
9197278
docs(10): create phase plan (2 plans, 2 waves)
TKIPisalegacycipher May 4, 2026
8a568bf
feat(10-01): add SessionBase ABC with config, retry loop, and status …
TKIPisalegacycipher May 4, 2026
0b6d2df
test(10-01): add unit tests for SessionBase ABC contract and complexity
TKIPisalegacycipher May 4, 2026
11e53dc
docs(10-01): complete SessionBase ABC plan summary
TKIPisalegacycipher May 4, 2026
b295ed8
docs(phase-10): update tracking after wave 1
TKIPisalegacycipher May 4, 2026
a2d3a3c
feat(10-02): create sync and async session subclasses
TKIPisalegacycipher May 4, 2026
be670c0
refactor(10-02): update imports to session subpackage, remove old files
TKIPisalegacycipher May 4, 2026
5aba24e
test(10-02): update all test imports to new session subpackage paths
TKIPisalegacycipher May 4, 2026
038f7a0
docs(10-02): complete session subclasses plan summary
TKIPisalegacycipher May 4, 2026
47a8715
docs(phase-10): update tracking after wave 2
TKIPisalegacycipher May 4, 2026
357dff0
docs(10): add code review report
TKIPisalegacycipher May 4, 2026
7a35b17
docs(phase-10): complete phase execution
TKIPisalegacycipher May 4, 2026
0830f48
fix(10): CR-01 trigger get_pages property setter in AsyncRestSession.…
TKIPisalegacycipher May 4, 2026
629e741
fix(10): WR-01 add fallback assignment for pageStartAt KeyError path
TKIPisalegacycipher May 4, 2026
a57a4db
fix(10): WR-02/WR-05 replace deprecated datetime.utcnow() with timezo…
TKIPisalegacycipher May 4, 2026
2f46149
fix(10): WR-03 remove httpx from runtime dependencies (only used in T…
TKIPisalegacycipher May 4, 2026
65526cd
fix(10): WR-04 use context manager for all file handles in generate_m…
TKIPisalegacycipher May 4, 2026
06500a2
docs(10): add code review fix report
TKIPisalegacycipher May 4, 2026
6dbae5c
fix(10): update async test mocks from datetime.utcnow to datetime.now
TKIPisalegacycipher May 4, 2026
cbb902b
docs(phase-10): add security threat verification
TKIPisalegacycipher May 4, 2026
ae8139a
Exclude hypothesis folder from recursion.
TKIPisalegacycipher May 4, 2026
7937264
docs(11): capture phase context
TKIPisalegacycipher May 4, 2026
6810a6c
docs(state): record phase 11 context session
TKIPisalegacycipher May 4, 2026
919fb99
docs(11): research phase domain
TKIPisalegacycipher May 4, 2026
c74017e
docs(phase-11): add validation strategy
TKIPisalegacycipher May 4, 2026
5dfaba3
docs(11): create phase plan (3 plans, 2 waves)
TKIPisalegacycipher May 4, 2026
7ab6aa5
chore(11-01): replace requests+aiohttp with httpx
TKIPisalegacycipher May 5, 2026
47206c2
feat(11-01): migrate to httpx response attributes
TKIPisalegacycipher May 5, 2026
0dac6f8
docs(11-01): complete httpx foundation plan
TKIPisalegacycipher May 5, 2026
12bf7c4
docs(phase-11): update tracking after wave 1
TKIPisalegacycipher May 5, 2026
aabdf79
feat(11-02): migrate RestSession from requests to httpx.Client
TKIPisalegacycipher May 5, 2026
c742e40
feat(11-03): migrate AsyncRestSession from aiohttp to httpx.AsyncClient
TKIPisalegacycipher May 5, 2026
2a40369
test(11-02): update sync test mocks from requests to httpx
TKIPisalegacycipher May 5, 2026
b67fbf4
docs(11-02): complete sync httpx migration plan
TKIPisalegacycipher May 5, 2026
78c88f4
test(11-03): update async test mocks from aiohttp to httpx
TKIPisalegacycipher May 5, 2026
8f88544
docs(11-03): complete async httpx migration plan
TKIPisalegacycipher May 5, 2026
07fbb3c
fix: resolve post-merge conflicts from wave 2
TKIPisalegacycipher May 5, 2026
07983d8
docs(phase-11): update tracking after wave 2
TKIPisalegacycipher May 5, 2026
fcce100
docs(11): add code review report
TKIPisalegacycipher May 5, 2026
b888a87
docs(11): add verification report
TKIPisalegacycipher May 5, 2026
2908911
docs(11): add gap closure plan for ERR-03 typed exception handling
TKIPisalegacycipher May 5, 2026
95759d5
fix(ERR-03): narrow retry exception catches to httpx.HTTPError
TKIPisalegacycipher May 5, 2026
85a1761
docs(phase-11): complete gap closure plan 11-04
TKIPisalegacycipher May 5, 2026
2a346a7
docs(phase-11): mark phase complete, verification passed
TKIPisalegacycipher May 5, 2026
5e87020
docs(12): capture phase context
TKIPisalegacycipher May 5, 2026
9c877f0
docs(state): record phase 12 context session
TKIPisalegacycipher May 5, 2026
47eb293
docs(12): research phase domain
TKIPisalegacycipher May 5, 2026
fae1e8e
docs(phase-12): add validation strategy
TKIPisalegacycipher May 5, 2026
30c1c14
docs(12): create phase plan for error handling deprecation
TKIPisalegacycipher May 5, 2026
219c0da
docs(12): fix validation task map alignment with plan
TKIPisalegacycipher May 5, 2026
c9a0eb3
test(12-01): add failing tests for AsyncAPIError deprecation behavior
TKIPisalegacycipher May 5, 2026
d52f30b
feat(12-01): make AsyncAPIError a deprecated subclass of APIError
TKIPisalegacycipher May 5, 2026
cc4f379
docs(12-01): add AsyncAPIError deprecation section to HTTPX-MIGRATION.md
TKIPisalegacycipher May 5, 2026
ac14eaa
docs(12-01): complete AsyncAPIError deprecation plan summary
TKIPisalegacycipher May 5, 2026
7f80f78
docs(phase-12): update tracking after wave 1
TKIPisalegacycipher May 5, 2026
3651092
docs(12): add code review report
TKIPisalegacycipher May 5, 2026
05fbeb7
docs(phase-12): complete phase execution
TKIPisalegacycipher May 5, 2026
720a689
docs(phase-12): evolve PROJECT.md after phase completion
TKIPisalegacycipher May 5, 2026
3b634a8
docs(13): capture phase context
TKIPisalegacycipher May 5, 2026
741a733
docs(state): record phase 13 context session
TKIPisalegacycipher May 5, 2026
ab3a727
docs(13): research test infrastructure migration
TKIPisalegacycipher May 5, 2026
81cea18
docs(13): create phase plan
TKIPisalegacycipher May 5, 2026
e5e1456
chore(13-01): upgrade respx, add pytest-benchmark, add httpx to gener…
TKIPisalegacycipher May 5, 2026
1d5c36e
feat(13-01): migrate generator scripts from requests to httpx
TKIPisalegacycipher May 5, 2026
5f86e1d
feat(13-01): migrate generator test mocks to httpx.Response
TKIPisalegacycipher May 5, 2026
39066d1
docs(13-01): complete generator httpx migration plan
TKIPisalegacycipher May 5, 2026
1f6eef7
docs(phase-13): update tracking after wave 1
TKIPisalegacycipher May 5, 2026
22960d3
feat(13-03): add benchmark job and baseline validation to CI
TKIPisalegacycipher May 5, 2026
ae75e36
docs(13-03): complete CI benchmark and baseline validation plan
TKIPisalegacycipher May 5, 2026
4fbf614
feat(13-02): add benchmark fixtures and latency tests
TKIPisalegacycipher May 5, 2026
79624f6
feat(13-02): add throughput, memory, and connection pool benchmarks
TKIPisalegacycipher May 5, 2026
e7aa5e9
docs(13-02): complete performance benchmark suite plan
TKIPisalegacycipher May 5, 2026
212f4a5
chore: merge executor worktree (worktree-agent-a3057c5c86ab7950c)
TKIPisalegacycipher May 5, 2026
75311d0
docs(phase-13): update tracking after wave 2
TKIPisalegacycipher May 5, 2026
3bea080
docs(13): add code review report
TKIPisalegacycipher May 5, 2026
a82893f
docs(phase-13): complete phase execution
TKIPisalegacycipher May 5, 2026
22d4794
docs(phase-13): evolve PROJECT.md after phase completion
TKIPisalegacycipher May 5, 2026
b722759
fix(13): WR-01 use None default instead of mutable list in parse_params
TKIPisalegacycipher May 5, 2026
2bcd8be
fix(13): WR-02 WR-03 fix file handle leak and KeyError in oasv2 gener…
TKIPisalegacycipher May 5, 2026
8e069a0
docs(13): add code review fix report
TKIPisalegacycipher May 5, 2026
babecc1
UAT
TKIPisalegacycipher May 5, 2026
fa5a918
Include meraki/session folder among generator directories
TKIPisalegacycipher May 5, 2026
c9acbc7
add option -l to generate from local static files
TKIPisalegacycipher May 5, 2026
c6d2d6f
test: add root conftest with shared fixtures
TKIPisalegacycipher May 6, 2026
0085437
test: add retry count verification to sync session tests
TKIPisalegacycipher May 6, 2026
a9b0c2f
test: add retry count verification to async session tests
TKIPisalegacycipher May 6, 2026
ba3cd10
test: fix tautological tests in test_common.py
TKIPisalegacycipher May 6, 2026
bb60628
test: add performance thresholds to benchmarks, fix tracemalloc
TKIPisalegacycipher May 6, 2026
9423951
test: add config constants validation
TKIPisalegacycipher May 6, 2026
482d3cb
test: add AsyncDashboardAPI lifecycle tests
TKIPisalegacycipher May 6, 2026
48bba4b
test: add API module smoke tests for all generated classes
TKIPisalegacycipher May 6, 2026
784f1ee
test: add property-based encoding tests with hypothesis
TKIPisalegacycipher May 6, 2026
897f11a
test: add validate_base_url edge case tests for all domains
TKIPisalegacycipher May 6, 2026
d426b1e
test: add exponential backoff strategy verification
TKIPisalegacycipher May 6, 2026
0bdd26a
test: add JSON decode retry and simulate mode edge cases
TKIPisalegacycipher May 6, 2026
66e43fa
Fix bugs, increase test coverage.
TKIPisalegacycipher May 6, 2026
23cdaae
Test overlap reduction and code deduplication.
TKIPisalegacycipher May 6, 2026
9af6805
fix(generator): fix -s flag parsing and resolve output paths from scr…
TKIPisalegacycipher May 6, 2026
98e6e3f
4.0.0b1 using httpx
TKIPisalegacycipher May 6, 2026
a01882a
Update test action for httpx
TKIPisalegacycipher May 6, 2026
74d9a5f
ci: replace flake8 with ruff, fix unused imports in tests
TKIPisalegacycipher May 6, 2026
ca6206c
ruff fixes for 3 unit tests
TKIPisalegacycipher May 6, 2026
690492f
new lifecycle tests, clean up worktrees
TKIPisalegacycipher May 6, 2026
3fc9178
Remove worktrees.
TKIPisalegacycipher May 6, 2026
fb7e938
regenerate pyproject.toml & uv.lock for 4.0.0b1
TKIPisalegacycipher May 6, 2026
904f954
Resolve node.js 20 deprecation warnings.
TKIPisalegacycipher May 6, 2026
4ab43ca
Integrate test-library changes from main.
TKIPisalegacycipher May 8, 2026
a853e06
Pull in relevant changes from main.
TKIPisalegacycipher May 8, 2026
e68addc
Make library regen httpx aware
TKIPisalegacycipher May 8, 2026
e9274f2
prep for httpx deploy automation
TKIPisalegacycipher May 8, 2026
1d63f53
Fix source file location for httpx regen.
TKIPisalegacycipher May 8, 2026
146957a
prep for httpx regen
TKIPisalegacycipher May 8, 2026
aa6c3f4
Auto-generated library v4.1.0b0 for API v1.70.0-beta.0. (#348)
meraki-release-bot[bot] May 8, 2026
8aa6e4f
Simplify OAS watcher
TKIPisalegacycipher May 13, 2026
5c774b5
Release v4.1.0b1 (API v1.70.0-beta.1) (#354)
meraki-release-bot[bot] May 14, 2026
fb1944f
Auto-generated library v4.1.0b2 for API v1.70.0-beta.2. (#362)
meraki-release-bot[bot] May 20, 2026
3c2ad8e
Skip enum assertion for nullable params in generated SDK methods.
TKIPisalegacycipher May 21, 2026
2b3a002
Merge branch 'httpx' of https://github.com/meraki/dashboard-api-pytho…
TKIPisalegacycipher May 21, 2026
a483da5
Move migration docs to docs/ and add VERSIONING.md
TKIPisalegacycipher May 21, 2026
87587dd
Add per-org smart rate limiter with token buckets and disk cache
TKIPisalegacycipher May 21, 2026
0490a43
Reorganize config.py into semantic tiers and add smart limiter settings
TKIPisalegacycipher May 21, 2026
da7581d
Wire smart limiter into session layer (sync and async)
TKIPisalegacycipher May 21, 2026
c539c24
Thread smart limiter params through DashboardAPI constructors
TKIPisalegacycipher May 21, 2026
34d09ec
Improve ssid_tool: background backups, swap fixes, smart limiting
TKIPisalegacycipher May 21, 2026
d6fe57c
Revert USE_ITERATOR_FOR_GET_PAGES default to False
TKIPisalegacycipher May 21, 2026
6b9c52a
Include beta endpoints when generating for dev (httpx) stage
TKIPisalegacycipher May 21, 2026
ba280d7
Fall back to PR base branch for integration test org routing
TKIPisalegacycipher May 21, 2026
c55474a
Run dependabot on all primary branches; auto-merge dependabot PRs.
TKIPisalegacycipher May 21, 2026
ea079c1
gitignore .coverage
TKIPisalegacycipher May 21, 2026
19dc9d6
Add new tests for smart limiter.
TKIPisalegacycipher May 21, 2026
f158096
Add new tests for meraki/__init__.py
TKIPisalegacycipher May 21, 2026
b144acd
Fix dependabot auto-merge: use pull_request_target for write access
TKIPisalegacycipher May 21, 2026
1065bcc
update unit test for smart_limiter
TKIPisalegacycipher May 21, 2026
463737c
chore(deps-dev): bump ruff from 0.15.12 to 0.15.14 (#369)
dependabot[bot] May 22, 2026
0cd6c56
chore(deps-dev): bump hypothesis from 6.152.4 to 6.152.9 (#365)
dependabot[bot] May 22, 2026
89548d7
ci: group dependabot updates into one PR per branch
TKIPisalegacycipher May 22, 2026
611f802
Merge branch 'httpx' of https://github.com/meraki/dashboard-api-pytho…
TKIPisalegacycipher May 22, 2026
27b2049
Remove legacy OASv2 scaffolding.
TKIPisalegacycipher May 22, 2026
ffca818
Update documentation for dev track (httpx branch)
TKIPisalegacycipher May 22, 2026
a967c34
chore(deps-dev): bump hypothesis in the all-deps group (#371)
dependabot[bot] May 25, 2026
4bfcb48
Integrate smart flow into benchmark tests. Improve smart flow with gl…
TKIPisalegacycipher May 26, 2026
b3aa4ee
Convert load bool to enum.
TKIPisalegacycipher May 26, 2026
1edd8f8
Refactor eager_load param for clarity.
TKIPisalegacycipher May 26, 2026
2e7213b
Correct latency benchmark flow.
TKIPisalegacycipher May 26, 2026
f6edeba
chore(deps-dev): bump the all-deps group with 2 updates (#376)
dependabot[bot] May 26, 2026
f388b97
chore(deps-dev): bump hypothesis in the all-deps group (#379)
dependabot[bot] May 27, 2026
7cc9992
Rename smart_limiter module to smart_flow
TKIPisalegacycipher May 27, 2026
341a7c7
Rename `smart_flow` param to `smart_flow_enabled`
TKIPisalegacycipher May 27, 2026
dfb2bf8
Auto-generated library v4.1.0b3 for API v1.70.0-beta.3. (#380)
meraki-release-bot[bot] May 27, 2026
4a5e984
Rename SMART_FLOW config attr for clarity: SMART_FLOW_ENABLED.
TKIPisalegacycipher May 27, 2026
e926ccc
Merge branch 'httpx' of https://github.com/meraki/dashboard-api-pytho…
TKIPisalegacycipher May 27, 2026
9361921
chore(deps-dev): bump the all-deps group with 2 updates (#383)
dependabot[bot] May 28, 2026
40bd719
fix(generator): harden codegen against PATCH endpoints, keyword param…
TKIPisalegacycipher May 29, 2026
34a179c
fix(smart_flow): async task lifecycle, lock-free throttle waits, corr…
TKIPisalegacycipher May 29, 2026
8bcd387
fix(session): 204 paginator guard, single JSON parse, prefetch cleanu…
TKIPisalegacycipher May 29, 2026
4c2b7aa
fix(dashboard): drain smart-flow tasks before client close; drop dead…
TKIPisalegacycipher May 29, 2026
4376e34
fix(common): anchor trusted-domain check to host boundary (SSRF/key-l…
TKIPisalegacycipher May 29, 2026
e7c8a69
ci: gate dependabot auto-merge to patch/minor + dev deps
TKIPisalegacycipher May 30, 2026
f5ee192
ci: least-privilege permissions, injection guard, setup-uv v7, fix ba…
TKIPisalegacycipher May 30, 2026
a1f9383
fix(ci): move generator test out of unit suite; robust baseline count…
TKIPisalegacycipher May 30, 2026
47fba4e
ci: bump dependabot/fetch-metadata v2.3.0 -> v3.1.0 (Node 24)
TKIPisalegacycipher May 30, 2026
d922e3d
ci: bump actions/upload-artifact@v5 -> @v7 (Node 24)
TKIPisalegacycipher May 30, 2026
183942c
chore(deps-dev): bump hypothesis in the all-deps group (#385)
dependabot[bot] Jun 2, 2026
12e69f2
ci: don't persist GITHUB_TOKEN in checkout for regenerate workflow
TKIPisalegacycipher Jun 4, 2026
f0fd161
ci: persist App token via checkout so regenerate push authenticates
TKIPisalegacycipher Jun 4, 2026
e53d880
feat(generator): add assistant to supported scopes
TKIPisalegacycipher Jun 4, 2026
090c94d
ci: retry gh release list in watch-openapi (transient 401)
TKIPisalegacycipher Jun 10, 2026
2027145
chore: gitignore .worktrees/ for isolated workspaces
TKIPisalegacycipher Jun 10, 2026
e8dae7b
docs: add httpx migration changelog fragment
TKIPisalegacycipher Jun 10, 2026
40b7824
docs: add towncrier changelog management
TKIPisalegacycipher Jun 10, 2026
26e4c7e
chore(deps-dev): bump the all-deps group across 1 directory with 2 up…
dependabot[bot] Jun 10, 2026
61d347d
test(integration): treat batch 'network not found' as successful delete
TKIPisalegacycipher Jun 10, 2026
ef2d265
Auto-generated library v4.1.0b1 for API v1.71.0-beta.1. (#401)
meraki-release-bot[bot] Jun 10, 2026
34c491d
fix(ci): build changelog in regeneration PR, not via protected-branch…
TKIPisalegacycipher Jun 10, 2026
08918a0
docs(ci): correct create-release header and drop unused write permission
TKIPisalegacycipher Jun 10, 2026
497065a
ci: sync create-release.yml to main (idempotency guard, app-token@v3)…
TKIPisalegacycipher Jun 10, 2026
1f84868
ci: remove unreachable release/orchestration workflows from httpx (#408)
TKIPisalegacycipher Jun 10, 2026
558f73e
Auto-generated library v4.2.0b1 for API v1.71.0-beta.1. (#410)
meraki-release-bot[bot] Jun 10, 2026
d2678ac
chore(deps-dev): bump ruff from 0.15.16 to 0.15.17 in the all-deps gr…
dependabot[bot] Jun 12, 2026
e1fe033
chore(deps-dev): bump pytest from 9.0.3 to 9.1.0 in the all-deps grou…
dependabot[bot] Jun 15, 2026
ae96cf9
chore(deps-dev): bump hypothesis in the all-deps group (#417)
dependabot[bot] Jun 16, 2026
9b68219
Auto-generated library v4.2.0b2 for API v1.71.0-beta.2. (#419)
meraki-release-bot[bot] Jun 17, 2026
5a043cd
chore(deps-dev): bump the all-deps group with 3 updates (#423)
dependabot[bot] Jun 19, 2026
5da8e29
chore(deps-dev): bump hypothesis in the all-deps group (#424)
dependabot[bot] Jun 22, 2026
1ce4178
Auto-generated library v4.2.0b3 for API v1.71.0-beta.3. (#427)
meraki-release-bot[bot] Jun 24, 2026
948ef08
chore(deps-dev): bump ruff from 0.15.18 to 0.15.19 in the all-deps gr…
dependabot[bot] Jun 24, 2026
689066a
chore(deps-dev): bump ruff from 0.15.19 to 0.15.20 in the all-deps gr…
dependabot[bot] Jun 26, 2026
b216097
Auto-generated library v4.3.0b0 for API v1.72.0-beta.0. (#437)
meraki-release-bot[bot] Jul 1, 2026
560c49c
chore(deps-dev): bump hypothesis in the all-deps group (#438)
dependabot[bot] Jul 3, 2026
805cda9
Auto-generated library v4.3.0b1 for API v1.72.0-beta.1. (#441)
meraki-release-bot[bot] Jul 8, 2026
e3f14dd
chore(deps-dev): bump hypothesis in the all-deps group (#443)
dependabot[bot] Jul 8, 2026
ec91975
feat(session): add optional Meraki app ID and bearer token headers
TKIPisalegacycipher Jul 8, 2026
6b20c2a
feat(session): add optional Meraki app ID and bearer token headers
TKIPisalegacycipher Jul 8, 2026
3d3c4d8
Merge remote-tracking branch 'origin/httpx' into migrate/httpx
TKIPisalegacycipher Jul 8, 2026
688f1f8
feat(session): log Meraki X-Request-Id on 5xx responses
TKIPisalegacycipher Jun 24, 2026
c7800d2
ci: restore GA release pipeline deleted by httpx-wins merge
TKIPisalegacycipher Jul 8, 2026
76b8283
docs: httpx-to-main migration plan + PyPI publish incident writeup
TKIPisalegacycipher Jul 8, 2026
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
Binary file removed .coverage
Binary file not shown.
87 changes: 84 additions & 3 deletions .github/workflows/test-library.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ jobs:
- name: Install dependencies
run: uv sync --python 3.13

- name: Lint with flake8
- name: Lint with ruff
run: |
uv run flake8 . --count --select=E9,F63,F7,F82 --ignore=F405,W391,W291,C901,E501,E303,W293 --exclude=examples,generator,.venv --show-source --statistics
uv run flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --exclude=examples,generator,.venv --statistics
uv run ruff check meraki/ tests/unit/ tests/integration/ tests/benchmarks/
uv run ruff format --check meraki/ tests/unit/ tests/integration/ tests/benchmarks/

unit-test:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -127,3 +127,84 @@ jobs:
VAR_NAME="ORG_${PREFIX}_${INDEX}"
ORG_ID="${!VAR_NAME}"
uv run pytest tests/integration -v --tb=short --apikey ${{ secrets.TEST_ORG_API_KEY }} --o "$ORG_ID"

- name: Validate against baseline
env:
ORG_GA_0: ${{ secrets.TEST_ORG_GA_00_ID }}
ORG_GA_1: ${{ secrets.TEST_ORG_GA_01_ID }}
ORG_GA_2: ${{ secrets.TEST_ORG_GA_02_ID }}
ORG_GA_3: ${{ secrets.TEST_ORG_GA_03_ID }}
ORG_BETA_0: ${{ secrets.TEST_ORG_BETA_00_ID }}
ORG_BETA_1: ${{ secrets.TEST_ORG_BETA_01_ID }}
ORG_BETA_2: ${{ secrets.TEST_ORG_BETA_02_ID }}
ORG_BETA_3: ${{ secrets.TEST_ORG_BETA_03_ID }}
ORG_DEV_0: ${{ secrets.TEST_ORG_DEV_00_ID }}
ORG_DEV_1: ${{ secrets.TEST_ORG_DEV_01_ID }}
ORG_DEV_2: ${{ secrets.TEST_ORG_DEV_02_ID }}
ORG_DEV_3: ${{ secrets.TEST_ORG_DEV_03_ID }}
run: |
BRANCH="${{ github.head_ref || github.ref_name }}"
BASE="${{ github.base_ref }}"
case "$BRANCH" in
main|release) PREFIX="GA" ;;
beta|beta-release) PREFIX="BETA" ;;
httpx|httpx-release) PREFIX="DEV" ;;
*)
case "$BASE" in
main) PREFIX="GA" ;;
beta) PREFIX="BETA" ;;
httpx) PREFIX="DEV" ;;
*) echo "Unknown branch: $BRANCH (base: $BASE)" && exit 1 ;;
esac
;;
esac
INDEX=$(echo '${{ needs.assign-orgs.outputs.assignments }}' | jq -r '.["${{ matrix.python-version }}"]')
VAR_NAME="ORG_${PREFIX}_${INDEX}"
ORG_ID="${!VAR_NAME}"
if [ -z "$ORG_ID" ]; then
echo "::error::No org id resolved for ${VAR_NAME}; cannot validate baseline"
exit 1
fi
EXPECTED_TOTAL=32
ACTUAL=$(uv run pytest tests/integration --co -q --apikey ${{ secrets.TEST_ORG_API_KEY }} --o "$ORG_ID" 2>/dev/null | grep -oP '^\d+(?= tests? collected)' | tail -1)
ACTUAL="${ACTUAL:-0}"
if ! [[ "$ACTUAL" =~ ^[0-9]+$ ]]; then
echo "::error::Could not parse collected test count (got '$ACTUAL')"
exit 1
fi
echo "Collected tests: $ACTUAL (baseline: $EXPECTED_TOTAL)"
if [ "$ACTUAL" -lt "$EXPECTED_TOTAL" ]; then
echo "::error::Regression: collected $ACTUAL tests, baseline expects $EXPECTED_TOTAL"
exit 1
fi

benchmark:
runs-on: ubuntu-latest
needs: [unit-test]
strategy:
fail-fast: true
matrix:
python-version: ["3.11", "3.12", "3.13", "3.14"]

steps:
- uses: actions/checkout@v6

- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}

- name: Install dependencies
run: uv sync --python ${{ matrix.python-version }}

- name: Run benchmarks
run: uv run pytest tests/benchmarks --benchmark-json=benchmark-${{ matrix.python-version }}.json

- name: Upload benchmark results
uses: actions/upload-artifact@v7
with:
name: benchmark-py${{ matrix.python-version }}
path: benchmark-${{ matrix.python-version }}.json
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ venv/

# Testing
.pytest_cache/
.coverage

# IDEs
.idea/
Expand Down
16 changes: 0 additions & 16 deletions .planning/MILESTONES.md

This file was deleted.

102 changes: 0 additions & 102 deletions .planning/PROJECT.md

This file was deleted.

45 changes: 0 additions & 45 deletions .planning/REQUIREMENTS.md

This file was deleted.

66 changes: 0 additions & 66 deletions .planning/ROADMAP.md

This file was deleted.

55 changes: 0 additions & 55 deletions .planning/STATE.md

This file was deleted.

Loading
Loading