- Added new
CONTENT_OBJECT_TAGGED
events in content_authoring.
- Remove unused
MANAGE_STUDENTS_PERMISSION_ADDED
andMANAGE_STUDENTS_PERMISSION_REMOVED
events in learning
- Fixed recursion error when consuming events on the same service that produced them.
- Adds utility function to reset application state similar to setup/teardown in Django request/response cycle.
- Added new
COURSE_ACCESS_ROLE_ADDED
andCOURSE_ACCESS_ROLE_REMOVED
events in learning
- Allow new EVENTS_SERVICE_NAME setting to override SERVICE_VARIANT for data source.
- Added new COURSE_NOTIFICATION_REQUESTED event in learning
- Added new event TRACKING_EVENT_EMITTED.
- Fixed key error in merging event producer configs. Previously, setting only one of enabled or event_key_field would result in a KeyError being thrown
- Re-licensed this repository from AGPL 3.0 to Apache 2.0
- Breaking change: Restructured EVENT_BUS_PRODUCER_CONFIG
- Added new
FORUM_THREAD_CREATED
,FORUM_THREAD_RESPONSE_CREATED
,FORUM_RESPONSE_COMMENT_CREATED
events in learning subdomain
- Added new
MANAGE_STUDENTS_PERMISSION_ADDED
andMANAGE_STUDENTS_PERMISSION_REMOVED
events in learning
- Added new
EXAM_ATTEMPT_SUBMITTED
,EXAM_ATTEMPT_REJECTED
,EXAM_ATTEMPT_VERIFIED
,EXAM_ATTEMPT_RESET
, andEXAM_ATTEMPT_ERRORED
events in learning.
- Added generic handler to allow producing to event bus via django settings.
- Added json de/serialization for EventsMetadata
- Added new
PROGRAM_CERTIFICATE_AWARDED
andPROGRAM_CERTIFICATE_REVOKED
events in learning subdomain - Added new
ProgramCertificateData
andProgramData
data classes supporting the new program certificate events
- Added new XBLOCK_CREATED and XBLOCK_UPDATED events in content_authoring.
- Added new COURSE_CREATED event in content_authoring.
- Added new CONTENT_LIBRARY_CREATED, CONTENT_LIBRARY_UPDATED and CONTENT_LIBRARY_DELETED events in content_authoring.
- Added new LIBRARY_BLOCK_CREATED, LIBRARY_BLOCK_UPDATED and LIBRARY_BLOCK_DELETED events in content_authoring.
- Added new USER_NOTIFICATION_REQUESTED event.
- Store current versions of Avro schemas and add test to ensure valid evolution
- Fixed event_type of XBLOCK_SKILL_VERIFIED signal
- Breaking change: Remove
signal
argument from consume_events and make_single_consumer
- Made signal argument optional in consume_events in preparation for removal
- Added event type as namespace to generated Avro schemas
- Configurable loader for consumer side of Event Bus in
openedx_events.event_bus
. - Added management command to load configured consumer and start worker.
- Switch from
edx-sphinx-theme
tosphinx-book-theme
since the former is deprecated. See https://github.com/openedx/edx-sphinx-theme/issues/184 for more details.
- Breaking change: Moved serialize_event_data_to_bytes from openedx_events.event_bus.avro.tests.test_utilities to openedx_events.event_bus.avro.serializer
- Breaking change: Moved deserialize_bytes_to_event_data from openedx_events.event_bus.avro.tests.test_utilities to openedx_events.event_bus.avro.deserializer
- Breaking change: Moved load_all_events() from openedx_events.tests.utils to openedx_events.tooling
- Added support for array type.
- Added new XBLOCK_SKILL_VERIFIED event.
- Added XBlockSkillVerificationData classes.
- Breaking change:
send_event_with_custom_metadata
changes to accept a single EventsMetadata object rather than all of the fields that go into one. This only directly affects event bus consumer libraries.
- Added
COURSE_CERTIFICATE_CONFIG_CHANGED
andCOURSE_CERTIFICATE_CONFIG_DELETED
signals for when a course's certificate configuration is updated or deleted
- Added
send_event_with_custom_metadata
. This will enable event bus consumers to send the event signal with the same metadata fields that were used when the event was produced.
- Updated time metadata to include UTC timezone. The original implementation used utcnow(), which could give different results if the time were ever interpreted to be local time. See https://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow
- EventsMetadata minorversion is now fully optional, and doesn't need to be supplied when initializing to get the default of 0.
- Updated send_event with an optional time argument to be used as metadata.
- Use collections.abc import to use with python 3.8 and 3.10.
- Added new XBLOCK_PUBLISHED, XBLOCK_DUPLICATED and XBLOCK_DELETED signals in content_authoring.
- Added XBlockData and DuplicatedXBlockData classes
- Added custom UsageKeyAvroSerializer for opaque_keys UsageKey.
- Breaking change Make event_metadata parameter in EventBusProducer send API required
- Add event_metadata parameter to EventBusProducer send API. Note: Calling this method with the new argument will throw an exception with older versions of this library that don't yet support the parameter.
- Configurable loader for producer side of Event Bus in
openedx_events.event_bus
.
- Fix default value for optional fields from "null" to None
- Breaking change: Removed (optional) field
effort
fromCourseCatalogData.
Nothing should be relying on this field as it is not used by Course Discovery in Publisher-enabled setups.
- Breaking change: Removed signal
SUBSCRIPTION_LICENSE_MODIFIED
and corresponding data classSubscriptionLicenseData
. This should only affect experimental event-bus code (which should also have been deleted by now).
- Breaking Change: Updated from
Django 2.0
toDjango 3.0
. - Bump version to 1.x to acknowledge that this is in use in production
- Breaking change: Removed
short_description
fromCourseCatalogData
- Added new event PERSISTENT_GRADE_SUMMARY_CHANGED.
- Improvements in make upgrade command and requirements files.
- Manually update requirements files to fix requirements bot issue with pip/setup tools.
- Change GitHub workflow to community maintained repository health file.
- Breaking change: Removed
org
andnumber
fields fromCourseCatalogData
(should only affect unreleased event-bus code, though)
- Handle optional (None) values for custom serializers
- Added new content_authoring module with new COURSE_CATALOG_INFO_CHANGED signal
- BREAKING CHANGE: Split AvroAttrsBridge into schema, serialization, and deserialization phases
- Remove assigned_email from SubscriptionLicenseData
- Updated AvroAttrsBridge to handle optional/nullable fields
- Updated AvroAttrsBridge to create schemas from signal data dict rather than individual attrs classes
- Changed openedx_events.learning.data.DiscussionTopicContext to make the group id optional
- Changed DiscussionTopicContext to add a context attribute
- Added missing field for event COURSE_DISCUSSIONS_CHANGED
- Added COURSE_DISCUSSIONS_CHANGED for discussion event
- Changed openedx_events/enterprise/LicenseLifecycle class to openedx_events/enterprise/SubscriptionLicenseData
- Changed LicenseCreated signal class to SUBSCRIPTION_LICENSE_MODIFIED signal class
- Added data definition for enterprise/LicenseLifecycle
- Added LicenseCreated signal definition
- Added AvroAttrsBridge class to convert between avro standard and attrs classes
- Add custom formatting class for events responses.
- Add a way to use send method instead of send_robust while testing.
- Remove unnecessary InstantiationError exception.
- Default is send_robust instead of send unless specified otherwise.
- Remove TestCase inheritance from OpenEdxTestMixin.
- Utilities to use while testing in other platforms.
- Remove raise_exception assignment in events metadata.
- Preliminary Open edX events definitions.
- Add tooling needed to create and trigger events in Open edX platform.
- Add Data Attribute classes used as arguments by Open edX Events.
- Update repository purpose.
- Changed max-doc-length from 79 to 120 following community recommendation.
- Update setup.cfg with complete bumpversion configuration.
- Update documentation with current organization info.
- Add Django testing configuration.
- First release on PyPI.