Enforce code quality — snake_case renames, linting, type checking, and CI pipeline#262
Closed
domino-blake wants to merge 14 commits intomasterfrom
Closed
Enforce code quality — snake_case renames, linting, type checking, and CI pipeline#262domino-blake wants to merge 14 commits intomasterfrom
domino-blake wants to merge 14 commits intomasterfrom
Conversation
- Add .github/workflows/ci.yml with lint, typecheck, and test jobs
gating every PR and push to master
- Rewrite tox.ini to run full suite across Python 3.10/3.11/3.12
- Add coverage config to pytest.ini
- Update CHANGELOG
…both theheading and parameter list - Documented all 7 parameters (including the 4 that were already there but undocumented: environment_id, external_volume_mount_ids, commit_id, branch, app_id) - Added code examples showing the three common new use cases (branch, commit, specific app ID) - Added a deprecation note pointing callers from the old camelCase names to the new ones - Updated app_unpublish() to document its app_id parameter (which was also previously undocumented) - Updated app_publish() to include branch and commit_id when publishing
Contributor
|
Can we split this PR apart into 3 different PRs? It has a mixture of changes which fall into different categories that should be separated to make it easier to review and merge:
Thanks! |
ddl-ebrown
requested changes
Apr 22, 2026
Contributor
ddl-ebrown
left a comment
There was a problem hiding this comment.
Left a comment about breaking this up more sensibly
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Link to JIRA
(no ticket — internal housekeeping)
What issue does this pull request solve?
The codebase had no automated quality gates on PRs: no CI, no enforced formatting, 38 mypy type errors, and public API parameters that mixed camelCase and snake_case (violating PEP 8). Contributors could merge broken or inconsistently styled code with no automated feedback.
What is the solution?
API cleanup (backward-compatible)
snake_caseacrossruns_start,runs_start_blocking,run_stop,runs_status,get_run_log,runs_stdout,files_list,endpoint_publish,app_publish, andapp_unpublishDeprecationWarningvia a**kwargsshim pointing callers to the new nameapp_publish()also gainsbranchandcommit_idparameters to launch from a specific git ref, and an explicitapp_idparameterLinting & type safety
scripts/check_snake_case.py— an AST-based checker that prevents new camelCase parameter names from being introducedmypyerrors across 9 files (implicitOptional, wrong return types, invalid type annotations,anyvsAny, etc.)flake8,isort, andblackformatting violationscheck-snake-case,mypy, andblackto the hook setpyproject.tomlwithisort/blackconfig to ensure they agree on formattingCI / CD
.github/workflows/ci.ymlwith three gating jobs:lint(black, isort, flake8, snake_case),typecheck(mypy), andtest(pytest matrix across Python 3.10/3.11/3.12 with coverage upload)tox.inito run the full test suite across all supported Python versions (previously only ran 2 files on Python 3.9)Testing
177 unit tests pass, 55 skipped (require live Domino deployment)
18 new tests in
tests/test_deprecations.pycover every renamed parameter — both that the warning is raised with the old name and that the new name is accepted silentlyAll pre-commit checks pass locally:
check-snake-case,flake8,isort,black,mypyCI jobs validated locally by running each step in sequence
Unit test(s)
Pull Request Reminders