Tackle issues#264
Closed
domino-blake wants to merge 20 commits into
Closed
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
ddl-bira-ignacio
requested changes
Apr 23, 2026
Contributor
ddl-bira-ignacio
left a comment
There was a problem hiding this comment.
I think we can split this up in a few ways. Maybe like this
- CI: GitHub Actions, tox, pytest/coverage, pre-commit bumps (config only)
- Format: black/isort/flake8/ruff mechanical fixes, no behavior change
- Types: all the mypy fixes only
- Deprecations: camelCase, snake_case + shims + test_deprecations.py
- linting: – check_snake_case.py, hooks
- Bugfixes: also split by file download, jobs, apps
- Documentation
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.
PR: SDK improvements, type safety, CI, and issue fixes
Summary
This branch consolidates a broad set of improvements across the SDK: code quality
(mypy, lint, formatting), CI/CD infrastructure, deprecation warnings for renamed
parameters, new user-facing features, a bug fix, and documentation updates.
What changed
CI / tooling
.github/workflows/ci.yml) with lint, typecheck,and test jobs that gate PRs to
mastertox.iniwith Python 3.10/3.11/3.12 envs and anosdkenv for data-sourcetests without the optional SDK
pytest.iniscripts/check_snake_case.pyand corresponding pre-commit hook to catchcamelCase public identifiers
Type safety
domino/domino.py,domino/datasets.py,domino/_custom_metrics.py,domino/airflow/_operator.py,domino/agents/— no new errors introduced)Deprecation warnings
snake_casewith backwards-compatibleshims that emit
DeprecationWarningat call time:isDirect→is_direct,commitId→commit_id,publishApiEndpoint→publish_api_endpoint(runs API)unpublishRunningApps→unpublish_running_apps,hardwareTierId→hardware_tier_id,environmentId→environment_id,externalVolumeMountIds→external_volume_mount_ids,appId→app_id(app API)includeSetupLog→include_setup_log(runs stdout)tests/test_deprecations.pywith full coverage of all shimsNew features
job_start(branch=...)— launch a job from a named branch without needing toconstruct a
mainRepoGitRefdict manually. Mutually exclusive withcommit_idandmain_repo_git_ref. Closes Request: Allow job_start to specify the job's git repo branch to run on #231.app_publish(branch=..., commit_id=...)— same ergonomic branch/commit targetingfor app publishing.
app_get_status(app_id)— previously private (__app_get_status), now a publicmethod so callers can check app status without name-mangled access. Closes Can we make Domino._Domino__app_get_status(app_id) a public API #128.
app_idproperty — previously private (_app_id), now a public read-onlyproperty returning the ID of the project's first app. Closes Can we make Domino._app_id a public API? #127.
files_download(path, commit_id=None)— convenience wrapper overblobs_get_v2that defaults
commit_idto the latest commit, eliminating the need to callcommits_list()manually before downloading a file. Closes Make a method to download a file without having to get the blob id first #24, Blob Get By File Name #31.Bug fix
_validate_hardware_tier_iddict input — some call paths (e.g.compute_cluster_properties["workerHardwareTierId"]) pass a dict like{"value": "small-k8s"}instead of a plain string, causingHardwareTierNotFoundExceptioneven when the tier exists. The method now extracts the string value from the dict
before comparing. Closes BUG: in _validate_hardware_tier_id #174.
Documentation
runs_startvsjob_startcomparison table to bothREADME.mdandREADME.adocexplaining API version, feature support, and when to use each. Closes Document The Differnce Between domino.runs_start() and domino.job_start() #122.README.mdandREADME.adocwith full documentation for all new methodsand properties:
files_download,app_get_status,app_id, and thebranchparam on
job_start.CHANGELOG.md.Issues closed
runs_startvsjob_start_app_ida public property__app_get_statuspublic_validate_hardware_tier_idreceives a dictjob_startbranch supportTest plan
toxpasses across py310, py311, py312 (188 passed, 55 skipped)black,isort,flake8,mypy,check_snake_casetests/test_jobs.py— branch param,_validate_hardware_tier_iddict inputtests/test_app.py—app_get_status(status present and missing)tests/test_apps.py—app_idproperty (app exists, no app)tests/test_files.py—files_download(explicit commit, latest commit default)tests/test_deprecations.py— all camelCase shims