PrefectHQ / prefect

Prefect is a workflow orchestration framework for building resilient data pipelines in Python.
https://prefect.io
Apache License 2.0
17.75k stars 1.66k forks source link

Fix documentation build failures #10128

Closed jawnsy closed 1 year ago

jawnsy commented 1 year ago

First check

Description

Our docs builds started failing after the merge of #10098, but the changes appear unrelated to the breakage. It seems likely that one of the libraries used to generate documentation had a change in behavior that caused this, so we just got unlucky with timing.

image

The build has the following stack trace:

3:24:09 PM:   Attempting uninstall: mkdocs-material
3:24:09 PM:     Found existing installation: mkdocs-material 9.1.17
3:24:09 PM:     Uninstalling mkdocs-material-9.1.17:
3:24:09 PM:       Successfully uninstalled mkdocs-material-9.1.17
3:24:11 PM: Successfully installed babel-2.12.1 beautifulsoup4-4.12.2 cssselect-1.2.0 lxml-4.9.2 markdown2-2.4.9 mkdocs-material-9.1.17+insiders.4.36.1 paginate-0.5.6 pipdeptree-2.9.3 pyquery-2.0.0 readtime-2.0.0 soupsieve-2.4.1
3:24:13 PM: Traceback (most recent call last):
3:24:13 PM:   File "/opt/build/repo/src/prefect/cli/_utilities.py", line 41, in wrapper
3:24:13 PM:     return fn(*args, **kwargs)
3:24:13 PM:   File "/opt/build/repo/src/prefect/cli/dev.py", line 125, in build_docs
3:24:13 PM:     schema = create_app(ephemeral=True).openapi()
3:24:13 PM:   File "/opt/build/repo/src/prefect/server/api/server.py", line 592, in openapi
3:24:13 PM:     partial_schema = get_openapi(
3:24:13 PM:   File "/opt/buildhome/python3.8/lib/python3.8/site-packages/fastapi/openapi/utils.py", line 466, in get_openapi
3:24:13 PM:     return jsonable_encoder(OpenAPI(**output), by_alias=True, exclude_none=True)  # type: ignore
3:24:13 PM:   File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
3:24:13 PM: pydantic.error_wrappers.ValidationError: 224 validation errors for OpenAPI
3:24:13 PM: components -> schemas -> ArtifactCollectionFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactCollectionFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ArtifactCollectionFilterFlowRunId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactCollectionFilterFlowRunId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ArtifactCollectionFilterKey -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactCollectionFilterKey -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ArtifactCollectionFilterLatestId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactCollectionFilterLatestId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ArtifactCollectionFilterTaskRunId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactCollectionFilterTaskRunId -> $ref
3:24:14 PM: Failed during stage 'building site': Build script returned non-zero exit code: 2 (https://ntl.fyi/exit-code-2)
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ArtifactCollectionFilterType -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactCollectionFilterType -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ArtifactCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ArtifactFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ArtifactFilterFlowRunId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactFilterFlowRunId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ArtifactFilterId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactFilterId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ArtifactFilterKey -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactFilterKey -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ArtifactFilterTaskRunId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactFilterTaskRunId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ArtifactFilterType -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactFilterType -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ArtifactUpdate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ArtifactUpdate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockDocumentCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockDocumentCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockDocumentFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockDocumentFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockDocumentFilterBlockTypeId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockDocumentFilterBlockTypeId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockDocumentFilterId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockDocumentFilterId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockDocumentFilterIsAnonymous -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockDocumentFilterIsAnonymous -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockDocumentFilterName -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockDocumentFilterName -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockDocumentUpdate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockDocumentUpdate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockSchemaCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockSchemaCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockSchemaFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockSchemaFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockSchemaFilterBlockTypeId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockSchemaFilterBlockTypeId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockSchemaFilterCapabilities -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockSchemaFilterCapabilities -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockSchemaFilterId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockSchemaFilterId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockSchemaFilterVersion -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockSchemaFilterVersion -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockTypeCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockTypeCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockTypeFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockTypeFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockTypeFilterName -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockTypeFilterName -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockTypeFilterSlug -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockTypeFilterSlug -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> BlockTypeUpdate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> BlockTypeUpdate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> ConcurrencyLimitCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> ConcurrencyLimitCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> CronSchedule -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> CronSchedule -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> DeploymentCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> DeploymentCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> DeploymentFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> DeploymentFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> DeploymentFilterId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> DeploymentFilterId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> DeploymentFilterIsScheduleActive -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> DeploymentFilterIsScheduleActive -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> DeploymentFilterName -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> DeploymentFilterName -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> DeploymentFilterTags -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> DeploymentFilterTags -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> DeploymentFilterWorkQueueName -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> DeploymentFilterWorkQueueName -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> DeploymentFlowRunCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> DeploymentFlowRunCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> DeploymentUpdate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> DeploymentUpdate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowFilterId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowFilterId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowFilterName -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowFilterName -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowFilterTags -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowFilterTags -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterDeploymentId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterDeploymentId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterExpectedStartTime -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterExpectedStartTime -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterFlowVersion -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterFlowVersion -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterIdempotencyKey -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterIdempotencyKey -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterName -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterName -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterNextScheduledStartTime -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterNextScheduledStartTime -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterParentTaskRunId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterParentTaskRunId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterStartTime -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterStartTime -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterState -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterState -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterStateName -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterStateName -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterStateType -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterStateType -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterTags -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterTags -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunFilterWorkQueueName -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunFilterWorkQueueName -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunNotificationPolicyCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunNotificationPolicyCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunNotificationPolicyFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunNotificationPolicyFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunNotificationPolicyFilterIsActive -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunNotificationPolicyFilterIsActive -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunNotificationPolicyUpdate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunNotificationPolicyUpdate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowRunUpdate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowRunUpdate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> FlowUpdate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> FlowUpdate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> IntervalSchedule -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> IntervalSchedule -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> LogCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> LogCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> LogFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> LogFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> LogFilterFlowRunId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> LogFilterFlowRunId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> LogFilterLevel -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> LogFilterLevel -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> LogFilterTaskRunId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> LogFilterTaskRunId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> LogFilterTimestamp -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> LogFilterTimestamp -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> RRuleSchedule -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> RRuleSchedule -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> SavedSearchCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> SavedSearchCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> Settings -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> Settings -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> StateCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> StateCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> TaskRunCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> TaskRunCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> TaskRunFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> TaskRunFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> TaskRunFilterId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> TaskRunFilterId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> TaskRunFilterName -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> TaskRunFilterName -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> TaskRunFilterStartTime -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> TaskRunFilterStartTime -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> TaskRunFilterState -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> TaskRunFilterState -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> TaskRunFilterStateName -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> TaskRunFilterStateName -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> TaskRunFilterStateType -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> TaskRunFilterStateType -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> TaskRunFilterSubFlowRuns -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> TaskRunFilterSubFlowRuns -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> TaskRunFilterTags -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> TaskRunFilterTags -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> TaskRunUpdate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> TaskRunUpdate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> VariableCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> VariableCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> VariableFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> VariableFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> VariableFilterId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> VariableFilterId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> VariableFilterName -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> VariableFilterName -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> VariableFilterTags -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> VariableFilterTags -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> VariableFilterValue -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> VariableFilterValue -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> VariableUpdate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> VariableUpdate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> WorkPoolCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> WorkPoolCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> WorkPoolFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> WorkPoolFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> WorkPoolFilterId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> WorkPoolFilterId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> WorkPoolFilterName -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> WorkPoolFilterName -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> WorkPoolFilterType -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> WorkPoolFilterType -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> WorkPoolUpdate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> WorkPoolUpdate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> WorkQueueCreate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> WorkQueueCreate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> WorkQueueFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> WorkQueueFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> WorkQueueFilterId -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> WorkQueueFilterId -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> WorkQueueFilterName -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> WorkQueueFilterName -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> WorkQueueUpdate -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> WorkQueueUpdate -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> WorkerFilter -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> WorkerFilter -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: components -> schemas -> WorkerFilterLastHeartbeatTime -> additionalProperties
3:24:13 PM:   value is not a valid dict (type=type_error.dict)
3:24:13 PM: components -> schemas -> WorkerFilterLastHeartbeatTime -> $ref
3:24:13 PM:   field required (type=value_error.missing)
3:24:13 PM: An exception occurred.
3:24:14 PM: ​
3:24:14 PM: "build.command" failed                                        
3:24:14 PM: ────────────────────────────────────────────────────────────────
3:24:14 PM: ​
3:24:14 PM:   Error message
3:24:14 PM:   Command failed with exit code 1: pip install --upgrade pip && pip install --upgrade --upgrade-strategy eager  -e ".[dev]" && pip install git+https://oauth:${MKDOCS_MATERIAL_INSIDERS_REPO_RO}@github.com/PrefectHQ/mkdocs-material-insiders.git@master && prefect dev build-docs && mkdocs build --config-file mkdocs.insiders.yml (https://ntl.fyi/exit-code-1)
3:24:14 PM: ​
3:24:14 PM:   Error location
3:24:14 PM:   In build.command from netlify.toml:
3:24:14 PM:   pip install --upgrade pip && pip install --upgrade --upgrade-strategy eager  -e ".[dev]" && pip install git+https://oauth:${MKDOCS_MATERIAL_INSIDERS_REPO_RO}@github.com/PrefectHQ/mkdocs-material-insiders.git@master && prefect dev build-docs && mkdocs build --config-file mkdocs.insiders.yml
3:24:14 PM: ​
3:24:14 PM:   Resolved config
3:24:14 PM:   build:
3:24:14 PM:     command: 'pip install --upgrade pip && pip install --upgrade --upgrade-strategy eager  -e ".[dev]" && pip install git+https://oauth:${MKDOCS_MATERIAL_INSIDERS_REPO_RO}@github.com/PrefectHQ/mkdocs-material-insiders.git@master && prefect dev build-docs && mkdocs build --config-file mkdocs.insiders.yml '
3:24:14 PM:     commandOrigin: config
3:24:14 PM:     edge_functions: /opt/build/repo/netlify/edge-functions
3:24:14 PM:     environment:
3:24:14 PM:       - AMPLITUDE_API_KEY
3:24:14 PM:       - AMPLITUDE_URL
3:24:14 PM:       - MKDOCS_MATERIAL_INSIDERS_REPO_RO
3:24:14 PM:     publish: /opt/build/repo/site
3:24:14 PM:     publishOrigin: config
3:24:14 PM:   headers:
3:24:14 PM: Build failed due to a user error: Build script returned non-zero exit code: 2
3:24:14 PM: Failing build: Failed to build site
3:24:15 PM: Finished processing build request in 1m10.98s

Impact

Docs will not update until this is resolved

Additional context

No response

jawnsy commented 1 year ago

Interestingly, the builds in our private docs repo are working fine:

OpenAPI schema written to 
/home/runner/work/docs/docs/prefect_source/docs/api-ref/schema.json
Newest release is 2.10.18. Version being built is unreleased.
Updating previous docs version with unreleased.
15:14:29.645 | WARNING | mkdocs.config - Config value 'plugins': Plugin 'material/social' option 'cards_color': Deprecated, use 'cards_layout_options.background_color' and 'cards_layout_options.color' with 'default' layout
INFO     -  DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  File "/opt/hostedtoolcache/Python/3.10.12/x64/lib/python3.10/site-packages/mike/mkdocs_plugin.py", line 6, in <module>
    from pkg_resources import iter_entry_points
  File "/opt/hostedtoolcache/Python/3.10.12/x64/lib/python3.10/site-packages/pkg_resources/__init__.py", line 118, in <module>
    warnings.warn(

INFO     -  DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('google')`.
Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages
  File "/opt/hostedtoolcache/Python/3.10.12/x64/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2871, in activate
    declare_namespace(pkg)
  File "/opt/hostedtoolcache/Python/3.10.12/x64/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2339, in declare_namespace
    warnings.warn(msg, DeprecationWarning, stacklevel=2)

WARNING  -  Config value 'plugins': Plugin 'material/social' option 'cards_color': Deprecated, use 'cards_layout_options.background_color' and 'cards_layout_options.color' with 'default' layout
INFO     -  Cleaning site directory
INFO     -  Building documentation to directory: /home/runner/work/docs/docs/docs/site
INFO     -  The following pages exist in the docs directory, but are not included in the "nav" configuration:
  - faq.md
  - api-ref/prefect/packaging.md
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/artifacts.py:82: Confusing indentation for continuation line 7 in docstring, should be 4 * 2 = 8 spaces, not 6
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/artifacts.py:83: Confusing indentation for continuation line 8 in docstring, should be 4 * 2 = 8 spaces, not 6
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/artifacts.py:113: Confusing indentation for continuation line 6 in docstring, should be 4 * 2 = 8 spaces, not 6
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/artifacts.py:114: Confusing indentation for continuation line 7 in docstring, should be 4 * 2 = 8 spaces, not 6
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/artifacts.py:142: Confusing indentation for continuation line 6 in docstring, should be 4 * 2 = 8 spaces, not 6
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/artifacts.py:143: Confusing indentation for continuation line 7 in docstring, should be 4 * 2 = 8 spaces, not 6
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/context.py:106: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/context.py:468: No type or annotation for parameter 'override_environment_variable'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/context.py:468: Parameter 'override_environment_variable' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/context.py:476: No type or annotation for yielded value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/engine.py:1077: No type or annotation for parameter 'flow_run_id'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/flows.py:309: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/flows.py:681: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/flows.py:682: No type or annotation for returned value 2
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/settings.py:1835: No type or annotation for parameter 'include_keys'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/settings.py:1835: Parameter 'include_keys' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/task_runners.py:144: No type or annotation for parameter 'task_run'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/task_runners.py:144: Parameter 'task_run' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/task_runners.py:145: No type or annotation for parameter 'task_key'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/task_runners.py:145: Parameter 'task_key' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/task_runners.py:148: No type or annotation for parameter 'run_kwargs'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/task_runners.py:148: Parameter 'run_kwargs' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/tasks.py:371: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/tasks.py:1004: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/blocks/core.py:775: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/blocks/core.py:776: No type or annotation for returned value 2
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/client/orchestration.py:715: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/client/orchestration.py:748: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/client/orchestration.py:927: No type or annotation for parameter '**kwargs'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/client/orchestration.py:1302: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/client/orchestration.py:1340: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/client/orchestration.py:1376: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:254: No type or annotation for parameter 'name'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:254: Parameter 'name' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:255: No type or annotation for parameter 'version'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:255: Parameter 'version' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:256: No type or annotation for parameter 'description'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:256: Parameter 'description' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:258: No type or annotation for parameter 'tags'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:258: Parameter 'tags' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:261: No type or annotation for parameter 'schedule'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:261: Parameter 'schedule' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:262: No type or annotation for parameter 'is_schedule_active'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:262: Parameter 'is_schedule_active' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:263: No type or annotation for parameter 'work_queue_name'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:263: Parameter 'work_queue_name' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:264: No type or annotation for parameter 'flow_name'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:264: Parameter 'flow_name' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:265: No type or annotation for parameter 'parameters'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:265: Parameter 'parameters' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:267: No type or annotation for parameter 'infrastructure'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:267: Parameter 'infrastructure' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:270: No type or annotation for parameter 'infra_overrides'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:270: Parameter 'infra_overrides' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:273: No type or annotation for parameter 'storage'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:273: Parameter 'storage' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:276: No type or annotation for parameter 'path'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:276: Parameter 'path' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:278: No type or annotation for parameter 'entrypoint'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:278: Parameter 'entrypoint' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:280: No type or annotation for parameter 'parameter_openapi_schema'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:280: Parameter 'parameter_openapi_schema' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/deployments.py:777: No type or annotation for parameter '**kwargs'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/deployments/steps/utility.py:191: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/utilities/collections.py:390: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/utilities/hashing.py:42: No type or annotation for parameter 'hash_algo'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/utilities/hashing.py:24: No type or annotation for parameter 'hash_algo'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/deployments.py:68: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/deployments.py:198: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/deployments.py:216: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/deployments.py:321: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/flow_run_states.py:26: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/flow_run_states.py:44: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/flow_runs.py:49: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/flow_runs.py:157: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/flow_runs.py:272: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/flows.py:29: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/flows.py:92: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/flows.py:107: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/flows.py:1[96](https://github.com/PrefectHQ/docs/actions/runs/5424382678/jobs/9863663171#step:10:97): No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/flows.py:70: No type or annotation for returned value 'bool'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/saved_searches.py:31: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/saved_searches.py:71: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/saved_searches.py:89: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/saved_searches.py:110: No type or annotation for parameter 'limit(int)'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/saved_searches.py:110: Parameter 'limit(int)' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/saved_searches.py:113: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/task_run_states.py:26: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/task_run_states.py:44: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/task_runs.py:44: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/task_runs.py:130: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/models/task_runs.py:225: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:86: No type or annotation for parameter 'session'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:86: Parameter 'session' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:87: No type or annotation for parameter 'initial_state'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:87: Parameter 'initial_state' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:88: No type or annotation for parameter 'proposed_state'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:88: Parameter 'proposed_state' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:133: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:207: No type or annotation for parameter 'session'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:207: Parameter 'session' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:208: No type or annotation for parameter 'run'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:208: Parameter 'run' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:209: No type or annotation for parameter 'initial_state'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:209: Parameter 'initial_state' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:210: No type or annotation for parameter 'proposed_state'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:210: Parameter 'proposed_state' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:233: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:311: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:359: No type or annotation for parameter 'session'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:359: Parameter 'session' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:360: No type or annotation for parameter 'run'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:360: Parameter 'run' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:361: No type or annotation for parameter 'initial_state'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:361: Parameter 'initial_state' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:362: No type or annotation for parameter 'proposed_state'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:362: Parameter 'proposed_state' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:385: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:467: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:[97](https://github.com/PrefectHQ/docs/actions/runs/5424382678/jobs/9863663171#step:10:98)4: No type or annotation for parameter 'context'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/orchestration/rules.py:[98](https://github.com/PrefectHQ/docs/actions/runs/5424382678/jobs/9863663171#step:10:99)5: No type or annotation for parameter 'context'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/schemas/core.py:915: No type or annotation for parameter 'late_runs'
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/schemas/core.py:915: Parameter 'late_runs' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/schemas/schedules.py:218: Parameter 'cron' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/schemas/schedules.py:219: Parameter 'timezone' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/schemas/schedules.py:221: Parameter 'day_or' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/schemas/schedules.py:60: Parameter 'interval' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/schemas/schedules.py:61: Parameter 'anchor_date' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/schemas/schedules.py:63: Parameter 'timezone' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/schemas/schedules.py:383: Parameter 'rrule' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/schemas/schedules.py:384: Parameter 'timezone' does not appear in the function signature
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/utilities/server.py:45: No type or annotation for returned value 1
WARNING  -  griffe: /home/runner/work/docs/docs/prefect_source/src/prefect/server/utilities/server.py:46: No type or annotation for returned value 2
INFO     -  Downloading external file: https://cdn.amplitude.com/libs/analytics-browser-1.9.1-min.js.gz
WARNING  -  mkdocs_autorefs.plugin: api-ref/prefect/engine.md: Could not find cross-reference target '[prefect.client.schemas.objects.State]'
WARNING  -  mkdocs_autorefs.plugin: api-ref/prefect/client/orchestration.md: Could not find cross-reference target '[prefect.client.schemas.objects.Flow]'
WARNING  -  mkdocs_autorefs.plugin: api-ref/prefect/client/orchestration.md: Could not find cross-reference target '[prefect.client.schemas.objects.Deployment]'
INFO     -  Documentation built in 39.40 seconds

From a recent build: https://github.com/PrefectHQ/docs/actions/runs/5424382678/jobs/9863663171

jawnsy commented 1 year ago

Okay, so I was able to reproduce the problem locally. The failure seems to be related to a new FastAPI release.

FastAPI version 0.99.0 causes a failure and reverting to 0.98.0 fixes the doc build. I don’t know if this is related to the introduction of OpenAPI 3.1.0 support in this version.

$ prefect dev build-docs
Traceback (most recent call last):
  File "/Users/jawnsy/projects/work/prefect/src/prefect/cli/_utilities.py", line 41, in wrapper
    return fn(*args, **kwargs)
  File "/Users/jawnsy/projects/work/prefect/src/prefect/cli/dev.py", line 125, in build_docs
    schema = create_app(ephemeral=True).openapi()
  File "/Users/jawnsy/projects/work/prefect/src/prefect/server/api/server.py", line 592, in openapi
    partial_schema = get_openapi(
  File "/opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages/fastapi/openapi/utils.py", line 466, in get_openapi
    return jsonable_encoder(OpenAPI(**output), by_alias=True, exclude_none=True)  # type: ignore
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 224 validation errors for OpenAPI
components -> schemas -> ArtifactCollectionFilter -> additionalProperties
  value is not a valid dict (type=type_error.dict)
components -> schemas -> ArtifactCollectionFilter -> $ref
  field required (type=value_error.missing)
components -> schemas -> ArtifactCollectionFilterFlowRunId -> additionalProperties

$ pip install fastapi==0.98.0
Collecting fastapi==0.98.0
  Downloading fastapi-0.98.0-py3-none-any.whl (56 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.0/57.0 kB 2.3 MB/s eta 0:00:00
Requirement already satisfied: pydantic!=1.8,!=1.8.1,<2.0.0,>=1.7.4 in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from fastapi==0.98.0) (1.10.10)
Requirement already satisfied: starlette<0.28.0,>=0.27.0 in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from fastapi==0.98.0) (0.27.0)
Requirement already satisfied: typing-extensions>=4.2.0 in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from pydantic!=1.8,!=1.8.1,<2.0.0,>=1.7.4->fastapi==0.98.0) (4.7.0)
Requirement already satisfied: anyio<5,>=3.4.0 in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from starlette<0.28.0,>=0.27.0->fastapi==0.98.0) (3.7.0)
Requirement already satisfied: idna>=2.8 in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from anyio<5,>=3.4.0->starlette<0.28.0,>=0.27.0->fastapi==0.98.0) (3.4)
Requirement already satisfied: sniffio>=1.1 in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from anyio<5,>=3.4.0->starlette<0.28.0,>=0.27.0->fastapi==0.98.0) (1.3.0)
Requirement already satisfied: exceptiongroup in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from anyio<5,>=3.4.0->starlette<0.28.0,>=0.27.0->fastapi==0.98.0) (1.1.1)
Installing collected packages: fastapi
  Attempting uninstall: fastapi
    Found existing installation: fastapi 0.97.0
    Uninstalling fastapi-0.97.0:
      Successfully uninstalled fastapi-0.97.0
Successfully installed fastapi-0.98.0

$ prefect dev build-docs
OpenAPI schema written to /Users/jawnsy/projects/work/prefect/docs/api-ref/schema.json

$ pip install fastapi==0.99.0
Collecting fastapi==0.99.0
  Using cached fastapi-0.99.0-py3-none-any.whl (58 kB)
Requirement already satisfied: pydantic!=1.8,!=1.8.1,<2.0.0,>=1.7.4 in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from fastapi==0.99.0) (1.10.10)
Requirement already satisfied: starlette<0.28.0,>=0.27.0 in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from fastapi==0.99.0) (0.27.0)
Requirement already satisfied: typing-extensions>=4.5.0 in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from fastapi==0.99.0) (4.7.0)
Requirement already satisfied: anyio<5,>=3.4.0 in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from starlette<0.28.0,>=0.27.0->fastapi==0.99.0) (3.7.0)
Requirement already satisfied: idna>=2.8 in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from anyio<5,>=3.4.0->starlette<0.28.0,>=0.27.0->fastapi==0.99.0) (3.4)
Requirement already satisfied: sniffio>=1.1 in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from anyio<5,>=3.4.0->starlette<0.28.0,>=0.27.0->fastapi==0.99.0) (1.3.0)
Requirement already satisfied: exceptiongroup in /opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages (from anyio<5,>=3.4.0->starlette<0.28.0,>=0.27.0->fastapi==0.99.0) (1.1.1)
Installing collected packages: fastapi
  Attempting uninstall: fastapi
    Found existing installation: fastapi 0.98.0
    Uninstalling fastapi-0.98.0:
      Successfully uninstalled fastapi-0.98.0
Successfully installed fastapi-0.99.0

$ prefect dev build-docs
Traceback (most recent call last):
  File "/Users/jawnsy/projects/work/prefect/src/prefect/cli/_utilities.py", line 41, in wrapper
    return fn(*args, **kwargs)
  File "/Users/jawnsy/projects/work/prefect/src/prefect/cli/dev.py", line 125, in build_docs
    schema = create_app(ephemeral=True).openapi()
  File "/Users/jawnsy/projects/work/prefect/src/prefect/server/api/server.py", line 592, in openapi
    partial_schema = get_openapi(
  File "/opt/homebrew/Caskroom/miniconda/base/envs/prefect2-dev/lib/python3.10/site-packages/fastapi/openapi/utils.py", line 466, in get_openapi
    return jsonable_encoder(OpenAPI(**output), by_alias=True, exclude_none=True)  # type: ignore
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 224 validation errors for OpenAPI
components -> schemas -> ArtifactCollectionFilter -> additionalProperties
  value is not a valid dict (type=type_error.dict)
components -> schemas -> ArtifactCollectionFilter -> $ref
  field required (type=value_error.missing)
components -> schemas -> ArtifactCollectionFilterFlowRunId -> additionalProperties
  value is not a valid dict (type=type_error.dict)
components -> schemas -> ArtifactCollectionFilterFlowRunId -> $ref
  field required (type=value_error.missing)
jawnsy commented 1 year ago

Possibly related to:

I created a discussion item with a minimal reproduction example here: OpenAPI validation errors after upgrading from FastAPI 0.98.0 to 0.99.0

discdiver commented 1 year ago

It looks like FastAPI resolved the issue.

Thank you for the thorough report! It's greatly appreciated!

I fixed it at https://github.com/tiangolo/fastapi/pull/9781, you can read there for more details if you want to know > what happened.

This fix is available in FastAPI 0.99.1, just released. 🎉

Once we get mkdocs build working, this should be resolved. The latest FastAPI version installed in a dev build on my machine is 0.100.0

discdiver commented 1 year ago

Closing as 2.10.20 docs (latest) has all API doc builds working.