Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Oct 31, 2025

Upgrades Django from 4.2.25 to 5.2.1 LTS (4.2 EOL April 2026). Django 5 requires Python 3.10+ and drops PostgreSQL <14 support.

Dependency Updates

  • Django: 4.2.25 → 5.2.1
  • djangorestframework: 3.12.4 → 3.16.1 (Django 5 support starts at 3.13+)
  • django-oauth-toolkit: 1.7.0 → 3.1.0 (Django 5 support starts at 3.0+)

Migration Fixes

Django 5.2 strictly validates indexes during RenameIndex operations with old_fields, causing migration failures:

# Before (fails Django 5 validation)
migrations.RenameIndex(
    model_name="programrequirement",
    old_fields=("course", "program"),  # Django 5 can't find unnamed index
    new_name="courses_pro_course__fdcdb6_idx",
)

# After (explicit index management)
migrations.RemoveIndex(
    model_name="programrequirement",
    name="courses_pro_course__temp_idx",
)
migrations.AddIndex(
    model_name="programrequirement",
    index=models.Index(fields=["course", "program"], name="courses_pro_course__fdcdb6_idx"),
)

Modified migrations: 0022, 0055, 0064. Updated ProgramRequirement model to use matching named indexes.

Test Configuration

Added SECRET_KEY and MITX_ONLINE_ADMIN_EMAIL to pytest.ini (required for Django app initialization).

Breaking Changes

  • PostgreSQL 13 no longer supported (minimum: 14)
  • Some mitol-django packages may need updates for full compatibility
Original prompt

This section details on the original issue you should resolve

<issue_title>Upgrade to django 5</issue_title>
<issue_description>### Description/Context

Django 4 is end of life in 2026 I believe.

</issue_description>

<agent_instructions>Upgrade django to 5.2. Update any code if deprecated features or breaking changes.</agent_instructions>

Comments on the Issue (you are @copilot in this section)

  • Fixes mitodl/hq#8953

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI changed the title [WIP] Upgrade Django to version 5.2 Upgrade Django to 5.2.1 and fix migration compatibility Oct 31, 2025
Copilot AI requested a review from annagav October 31, 2025 21:30
Copilot finished work on behalf of annagav October 31, 2025 21:30
@blarghmatey
Copy link
Member

blarghmatey commented Nov 3, 2025

pre-commit.ci autofix

@annagav annagav marked this pull request as ready for review November 3, 2025 19:58
@annagav annagav force-pushed the copilot/upgrade-django-to-5-2 branch from fa0950d to d68a48b Compare November 4, 2025 15:24
@annagav
Copy link
Contributor

annagav commented Nov 4, 2025

Resolved conflicts. I think someone else other than me needs to review this. Thanks!

@annagav annagav force-pushed the copilot/upgrade-django-to-5-2 branch from d68a48b to eef9cf9 Compare November 6, 2025 19:11
@github-actions
Copy link

github-actions bot commented Nov 6, 2025

OpenAPI Changes

Show/hide ## Changes for v0.yaml:
## Changes for v0.yaml:
64 changes: 23 error, 40 warning, 1 info
error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		the 'items/items/program_details/requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		the 'items/items/program_details/requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		the 'items/items/program_details/requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		the 'items/items/program_details/requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/{id}/
		the '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/{id}/
		the '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/{id}/
		the '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/{id}/
		the '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		the 'program/requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		the 'program/requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		the 'program/requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		the 'program/requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[api-path-removed-without-deprecation] at base/openapi/specs/v0.yaml	
	in API GET /api/v2/program_enrollments/
		api path removed without deprecation

error	[api-path-removed-without-deprecation] at base/openapi/specs/v0.yaml	
	in API DELETE /api/v2/program_enrollments/{id}/
		api path removed without deprecation

error	[api-path-removed-without-deprecation] at base/openapi/specs/v0.yaml	
	in API GET /api/v2/program_enrollments/{id}/
		api path removed without deprecation

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/
		the 'results/items/requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/
		the 'results/items/requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/
		the 'results/items/requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/
		the 'results/items/requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/{id}/
		the 'requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/{id}/
		the 'requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/{id}/
		the 'requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/{id}/
		the 'requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/programs/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/programs/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/programs/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v0.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/programs/required/items/readable_id' from the response with the '200' status

info	[api-schema-removed] 	
	in components/schemas
		removed the schema 'V2UserProgramEnrollmentDetail'



## Changes for v1.yaml:
64 changes: 23 error, 40 warning, 1 info
error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		the 'items/items/program_details/requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		the 'items/items/program_details/requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		the 'items/items/program_details/requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		the 'items/items/program_details/requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/{id}/
		the '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/{id}/
		the '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/{id}/
		the '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/{id}/
		the '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		the 'program/requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		the 'program/requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		the 'program/requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		the 'program/requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[api-path-removed-without-deprecation] at base/openapi/specs/v1.yaml	
	in API GET /api/v2/program_enrollments/
		api path removed without deprecation

error	[api-path-removed-without-deprecation] at base/openapi/specs/v1.yaml	
	in API DELETE /api/v2/program_enrollments/{id}/
		api path removed without deprecation

error	[api-path-removed-without-deprecation] at base/openapi/specs/v1.yaml	
	in API GET /api/v2/program_enrollments/{id}/
		api path removed without deprecation

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/
		the 'results/items/requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/
		the 'results/items/requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/
		the 'results/items/requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/
		the 'results/items/requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/{id}/
		the 'requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/{id}/
		the 'requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/{id}/
		the 'requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/{id}/
		the 'requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/programs/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/programs/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/programs/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v1.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/programs/required/items/readable_id' from the response with the '200' status

info	[api-schema-removed] 	
	in components/schemas
		removed the schema 'V2UserProgramEnrollmentDetail'



## Changes for v2.yaml:
64 changes: 23 error, 40 warning, 1 info
error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		the 'items/items/program_details/requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		the 'items/items/program_details/requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		the 'items/items/program_details/requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		the 'items/items/program_details/requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/{id}/
		the '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/{id}/
		the '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/{id}/
		the '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/{id}/
		the '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		the 'program/requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		the 'program/requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		the 'program/requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		the 'program/requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[api-path-removed-without-deprecation] at base/openapi/specs/v2.yaml	
	in API GET /api/v2/program_enrollments/
		api path removed without deprecation

error	[api-path-removed-without-deprecation] at base/openapi/specs/v2.yaml	
	in API DELETE /api/v2/program_enrollments/{id}/
		api path removed without deprecation

error	[api-path-removed-without-deprecation] at base/openapi/specs/v2.yaml	
	in API GET /api/v2/program_enrollments/{id}/
		api path removed without deprecation

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/
		the 'results/items/requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/
		the 'results/items/requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/
		the 'results/items/requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/
		the 'results/items/requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/{id}/
		the 'requirements/courses/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/{id}/
		the 'requirements/courses/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/{id}/
		the 'requirements/programs/electives/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

error	[response-property-type-changed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/{id}/
		the 'requirements/programs/required/items/' response's property type/format changed from 'object'/'' to 'integer'/'' for status '200'

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/?fields=*&type=cms.programpage
		removed the optional property 'items/items/program_details/requirements/programs/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/pages/{id}/
		removed the optional property '/oneOf[#/components/schemas/ProgramPageItem]/program_details/requirements/programs/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/program_certificates/{cert_uuid}/
		removed the optional property 'program/requirements/programs/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/
		removed the optional property 'results/items/requirements/programs/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/courses/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/courses/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/courses/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/courses/required/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/programs/electives/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/programs/electives/items/readable_id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/programs/required/items/id' from the response with the '200' status

warning	[response-optional-property-removed] at head/openapi/specs/v2.yaml	
	in API GET /api/v2/programs/{id}/
		removed the optional property 'requirements/programs/required/items/readable_id' from the response with the '200' status

info	[api-schema-removed] 	
	in components/schemas
		removed the schema 'V2UserProgramEnrollmentDetail'



Unexpected changes? Ensure your branch is up-to-date with main (consider rebasing).

@cp-at-mit
Copy link
Contributor

@annagav this looks good to me

@annagav annagav force-pushed the copilot/upgrade-django-to-5-2 branch from eef9cf9 to f13944a Compare November 12, 2025 16:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants