mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
eb1cc3824c
## Why The initial public `openai-codex` beta should read and install like a normal published Python package before a release tag is created. This follows merged PR #24828, which establishes the independent SDK beta release plumbing and exact runtime dependency. ## What changed - Rewrote `sdk/python/README.md` as a compact PyPI-facing beta package page: published installation, one quickstart, short login examples, built-in help, and links to deeper guides. - Updated the getting-started guide, API reference, FAQ, and examples index to present the published beta consistently without repeating onboarding in the package landing page or reference page. - Made `pip install openai-codex` the primary install path while beta releases are the only published SDK releases, with `--pre` documented for opting into prereleases after a stable release exists. - Added curated `help()` / `pydoc` docstrings across the public API and generated public convenience methods through `scripts/update_sdk_artifacts.py`. - Declared the repository `Apache-2.0` license expression and Documentation URL in package metadata, without introducing a duplicated SDK-local license file. - Kept the source distribution focused on installable package material (`src/openai_codex`, `README.md`, and `pyproject.toml`); the repository docs and runnable examples remain linked from the PyPI README. - Built release artifacts in an Alpine container on the Ubuntu runner, matching Python SDK CI and allowing type generation to install the published `musllinux` runtime wheel. - Added `twine check --strict` to the release workflow so malformed PyPI metadata or rendered README content fails before publishing. - Added focused SDK assertions for beta metadata, the exact runtime pin, source distribution contents, and the built-in Python documentation surface. ## Validation - Ran `uv run --frozen --extra dev ruff check scripts/update_sdk_artifacts.py src/openai_codex tests/test_public_api_signatures.py tests/test_artifact_workflow_and_binaries.py` before the final README-only reductions and review-fix follow-ups. - Built `openai_codex-0.1.0b1-py3-none-any.whl` and `openai_codex-0.1.0b1.tar.gz` before the final README-only reductions and review-fix follow-ups. - Ran `python -m twine check --strict` on both built artifacts before the final README-only reductions and review-fix follow-ups. - Verified artifact metadata reports `Apache-2.0` without a duplicated SDK-local license file. - Verified `inspect.getdoc(...)` resolves documentation for the package, `Codex`, `CodexConfig`, and key generated thread methods. - Rebased the documentation/readiness change onto merged PR #24828 without changing the intended SDK or workflow file contents. - Final verification is delegated to online CI for this PR.
93 lines
2.2 KiB
TOML
93 lines
2.2 KiB
TOML
[build-system]
|
|
requires = ["hatchling>=1.27.0"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "openai-codex"
|
|
version = "0.1.0b1"
|
|
description = "Python SDK for Codex"
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
license = "Apache-2.0"
|
|
authors = [{ name = "OpenAI" }]
|
|
keywords = ["codex", "sdk", "llm", "ai", "agents"]
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Intended Audience :: Developers",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
]
|
|
dependencies = ["pydantic>=2.12", "openai-codex-cli-bin==0.132.0"]
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/openai/codex"
|
|
Repository = "https://github.com/openai/codex"
|
|
Issues = "https://github.com/openai/codex/issues"
|
|
Documentation = "https://github.com/openai/codex/tree/main/sdk/python/docs"
|
|
|
|
[project.optional-dependencies]
|
|
dev = ["pytest>=8.0", "datamodel-code-generator==0.31.2", "ruff>=0.15.8"]
|
|
|
|
[tool.hatch.build]
|
|
exclude = [
|
|
".venv/**",
|
|
".venv2/**",
|
|
".pytest_cache/**",
|
|
"dist/**",
|
|
"build/**",
|
|
]
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/openai_codex"]
|
|
include = [
|
|
"src/openai_codex/py.typed",
|
|
]
|
|
|
|
[tool.hatch.build.targets.sdist]
|
|
include = [
|
|
"src/openai_codex/**",
|
|
"README.md",
|
|
"pyproject.toml",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
addopts = "-q"
|
|
testpaths = ["tests"]
|
|
|
|
[tool.ruff]
|
|
target-version = "py310"
|
|
required-version = ">=0.15.8"
|
|
line-length = 100
|
|
extend-exclude = [
|
|
"notebooks/**",
|
|
"src/openai_codex/generated/**",
|
|
]
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "B", "C4"]
|
|
ignore = ["E501"]
|
|
preview = true
|
|
extend-safe-fixes = ["ALL"]
|
|
unfixable = ["F841"]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"examples/**/*.py" = ["E402"]
|
|
"tests/test_real_app_server_integration.py" = ["E402"]
|
|
|
|
[tool.ruff.lint.isort]
|
|
combine-as-imports = true
|
|
|
|
[tool.uv]
|
|
exclude-newer = "7 days"
|
|
exclude-newer-package = { openai-codex-cli-bin = "2026-05-20T21:00:00Z" }
|
|
index-strategy = "first-index"
|
|
|
|
[tool.uv.pip]
|
|
exclude-newer = "7 days"
|
|
exclude-newer-package = { openai-codex-cli-bin = "2026-05-20T21:00:00Z" }
|
|
index-strategy = "first-index"
|