diff --git a/.github/workflows/bump_libraries.yaml b/.github/workflows/bump_libraries.yaml index 79c256159..76dcab07c 100644 --- a/.github/workflows/bump_libraries.yaml +++ b/.github/workflows/bump_libraries.yaml @@ -9,7 +9,7 @@ on: - 'requirements/**' env: - PYTHON_VERSION: "3.8" + PYTHON_VERSION: "3.12" jobs: bump-changelog: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1aed35359..35979f282 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,7 @@ on: branches: [ main ] env: - PYTHON_VERSION: "3.10" + PYTHON_VERSION: "3.12" PIPELINE_FAMILY: "general" jobs: diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 5a39d6bad..6d54bbecc 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -11,7 +11,7 @@ env: PACKAGE: "unstructured-api" PIPELINE_FAMILY: "general" PIP_VERSION: "25.1.1" - PYTHON_VERSION: "3.10" + PYTHON_VERSION: "3.12" jobs: setup: diff --git a/CHANGELOG.md b/CHANGELOG.md index cd37b437c..ec9dff316 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,10 @@ +## 0.0.87 +* Bump Python to 3.12 + ## 0.0.86 * Patch various CVEs -## 0.0.86 +## 0.0.85 * Patch various CVEs * Bump Python version to 3.12, some packages no longer support 3.9 diff --git a/Dockerfile b/Dockerfile index 31cd453dc..7f5df05e4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,27 +1,30 @@ # syntax=docker/dockerfile:experimental -FROM quay.io/unstructured-io/base-images:wolfi-base-latest as base +FROM cgr.dev/chainguard/python as base # NOTE(crag): NB_USER ARG for mybinder.org compat: # https://mybinder.readthedocs.io/en/latest/tutorials/dockerfile.html ARG NB_USER=notebook-user ARG NB_UID=1000 -ARG PIP_VERSION + +# Create the user +USER root +RUN adduser -D -u ${NB_UID} ${NB_USER} +ENV HOME=/home/${NB_USER} + ARG PIPELINE_PACKAGE -ARG PYTHON_VERSION="3.11" +ARG PYTHON_VERSION="3.12" # Set up environment ENV PYTHON python${PYTHON_VERSION} ENV PIP ${PYTHON} -m pip WORKDIR ${HOME} -USER ${NB_USER} ENV PYTHONPATH="${PYTHONPATH}:${HOME}" ENV PATH="/home/${NB_USER}/.local/bin:${PATH}" FROM base as python-deps COPY --chown=${NB_USER}:${NB_USER} requirements/base.txt requirements-base.txt -RUN ${PIP} install pip==${PIP_VERSION} RUN ${PIP} install --no-cache -r requirements-base.txt FROM python-deps as model-deps diff --git a/README.md b/README.md index 3bee3ae48..285b5a3ff 100644 --- a/README.md +++ b/README.md @@ -289,12 +289,12 @@ curl -X 'POST' * Using `pyenv` to manage virtualenv's is recommended * Mac install instructions. See [here](https://github.com/Unstructured-IO/community#mac--homebrew) for more detailed instructions. * `brew install pyenv-virtualenv` - * `pyenv install 3.10.12` + * `pyenv install 3.12` * Linux instructions are available [here](https://github.com/Unstructured-IO/community#linux). * Create a virtualenv to work in and activate it, e.g. for one named `document-processing`: - `pyenv virtualenv 3.10.12 unstructured-api`
+ `pyenv virtualenv 3.12 unstructured-api`
`pyenv activate unstructured-api` See the [Unstructured Quick Start](https://github.com/Unstructured-IO/unstructured#eight_pointed_black_star-quick-start) for the many OS dependencies that are required, if the ability to process all file types is desired. diff --git a/prepline_general/api/app.py b/prepline_general/api/app.py index 26380bfba..5868797dd 100644 --- a/prepline_general/api/app.py +++ b/prepline_general/api/app.py @@ -13,7 +13,7 @@ app = FastAPI( title="Unstructured Pipeline API", summary="Partition documents with the Unstructured library", - version="0.0.86", + version="0.0.87", docs_url="/general/docs", openapi_url="/general/openapi.json", servers=[ diff --git a/prepline_general/api/general.py b/prepline_general/api/general.py index 176197026..736c7c917 100644 --- a/prepline_general/api/general.py +++ b/prepline_general/api/general.py @@ -600,7 +600,7 @@ def return_content_type(filename: str): @router.get("/general/v0/general", include_in_schema=False) -@router.get("/general/v0.0.86/general", include_in_schema=False) +@router.get("/general/v0.0.87/general", include_in_schema=False) async def handle_invalid_get_request(): raise HTTPException( status_code=status.HTTP_405_METHOD_NOT_ALLOWED, detail="Only POST requests are supported." @@ -615,7 +615,7 @@ async def handle_invalid_get_request(): description="Description", operation_id="partition_parameters", ) -@router.post("/general/v0.0.86/general", include_in_schema=False) +@router.post("/general/v0.0.87/general", include_in_schema=False) def general_partition( request: Request, # cannot use annotated type here because of a bug described here: diff --git a/preprocessing-pipeline-family.yaml b/preprocessing-pipeline-family.yaml index 039aef554..a7c2dac93 100644 --- a/preprocessing-pipeline-family.yaml +++ b/preprocessing-pipeline-family.yaml @@ -1,2 +1,2 @@ name: general -version: 0.0.86 +version: 0.0.87