Skip to content

Release 0.53.8#2947

Closed
odlbot wants to merge 10 commits intoreleasefrom
release-candidate
Closed

Release 0.53.8#2947
odlbot wants to merge 10 commits intoreleasefrom
release-candidate

Conversation

@odlbot
Copy link
Contributor

@odlbot odlbot commented Feb 11, 2026

Ahtesham Quraish

Matt Bertrand

Tobias Macey

Carey P Gumaer

Chris Chudzicki

Jon Kafton

Nathan Levesque

ChristopherChudzicki and others added 10 commits February 10, 2026 10:52
* update smoot-design for new alerts

* more smoot bumps

* whoopsie-daisy

* whooooopsie

* remove an unnecessary element

* fix a test

* pin smoot to a real version
* Switch to v3 for program enrollments

* Feedback

* Feedback

* Fix tests
* Do not use desctructing for build time static replacement

* Destructuring is ok in server components, but consistency here should serve as a reminder
* reorganize UnstyledRawHtml, allow some extra tags

* require https
* add context menu items to link to product pages

* remove titleAction argument as it's not necessary anymore

* fix logic surrounding marketing urls and add tests

* program title link should go to program dashboard

* check include_in_learn_catalog before adding show course details to context menu

* remove unnecessary array wrapper

* remove unnecessary router usage

* card title should perform enrollment when applicable

* fix tests after rebase

* fix issue with getting legacy product page URL from v3 program enrollment

* use readable id to construct legacy program product page url
* fix: change byline author behaviour

---------


Co-authored-by: Ahtesham Quraish <ahtesham.quraish@192.168.1.6>
@github-actions
Copy link

OpenAPI Changes

Show/hide 11 changes: 0 error, 0 warning, 11 info
11 changes: 0 error, 0 warning, 11 info
info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/articles/
		added the optional property 'results/items/author_name' to the response with the '200' status

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/articles/
		added the new optional request property 'author_name' (media type: multipart/form-data)

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/articles/
		added the new optional request property 'author_name' (media type: application/json)

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/articles/
		added the new optional request property 'author_name' (media type: application/x-www-form-urlencoded)

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/articles/
		added the optional property 'author_name' to the response with the '201' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/articles/detail/{identifier}/
		added the optional property 'author_name' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/articles/{id}/
		added the optional property 'author_name' to the response with the '200' status

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/articles/{id}/
		added the new optional request property 'author_name' (media type: application/json)

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/articles/{id}/
		added the new optional request property 'author_name' (media type: application/x-www-form-urlencoded)

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/articles/{id}/
		added the new optional request property 'author_name' (media type: multipart/form-data)

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/articles/{id}/
		added the optional property 'author_name' to the response with the '200' status


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

Comment on lines +226 to 236
etl_source,
)
redis_cache.delete(cache_key)
except Exception:
redis_cache.delete(cache_key)
log.exception("Failed to trigger ETL for %s", etl_source)


def sync_edx_archive(
etl_source, s3_key: str, *, course_id: str | None = None, overwrite: bool = False
):
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The trigger_resource_etl function lacks a case for ETLSource.oll.name, causing it to silently fail when trying to trigger an ETL for a new OLL course archive.
Severity: HIGH

Suggested Fix

Add an elif block to trigger_resource_etl to handle ETLSource.oll.name by calling the appropriate task, tasks.get_oll_data.apply_async(), similar to how other ETL sources like mit_edx and xpro are handled.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: learning_resources/etl/edx_shared.py#L192-L236

Potential issue: When a webhook for a new OLL course archive is received and no
corresponding run exists, the system calls `trigger_resource_etl` with
`ETLSource.oll.name`. However, this function is missing a handler for OLL. It falls
through to an `else` block which logs a warning "No ETL pipeline for oll, cannot sync
archive" and exits without starting the necessary ETL process. This results in a silent
failure where new OLL course archives are not ingested, contradicting the PR's
objective.

Did we get this right? 👍 / 👎 to inform future reviews.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants