Skip to content

Draft: add additional flag for do_not_stream / recording optout enum#130

Draft
saerdnaer wants to merge 2 commits into
masterfrom
dev
Draft

Draft: add additional flag for do_not_stream / recording optout enum#130
saerdnaer wants to merge 2 commits into
masterfrom
dev

Conversation

@saerdnaer

@saerdnaer saerdnaer commented Dec 22, 2023

Copy link
Copy Markdown
Member

relates to #117

schedule.json schedule.xml
missing, or
"do_not_record": false or
"do_not_record": false, "do_not_stream": false,
<recording>…<optout>false</optout></recording> We enable the live stream and create a recording, which we publish without any additional approval by speaker
"do_not_record": true, "do_not_stream": true, <recording>…<optout>true</optout></recording> The speaker does not want a recording of any kind. We will remove all personnel, and maybe even switch off all cameras
"do_not_record": null, "do_not_stream": false, <recording>…<optout>maybe</optout></recording> NEW: We are allowed to create a recording / enable the live stream; but the speaker can decide afterwards if we can publish it
"do_not_record": null, "do_not_stream": null, <recording>…<optout>unknown</optout></recording> NEW: We don't know if a recording will exist and recommend all on-premise participants to attend the event in person

<!-- Recording optout status 'true' means: The speaker does not want a recording of any kind. We will remove all personnel, and maybe even switch off all cameras -->
<xs:enumeration value="true"/>
<!-- Recording optout status 'maybe': We are allowed to create a recording / enable the live stream; but the speaker can decide afterwards if we can publish it -->
<xs:enumeration value="maybe"/>

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

How about undecided instead of maybe?

@saerdnaer saerdnaer Dec 24, 2023

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Suggested change
<xs:enumeration value="maybe"/>
<xs:enumeration value="undecided"/>

Comment thread validator/xsd/schedule.xml.xsd Outdated

<xs:simpleType name="optoutEnum">
<xs:restriction base="xs:string">
<!-- Recording optout status 'false' is the normal case: We enable the live stream and create a recording, which we publish without and feedback from the speaker -->

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Readability/understanding: which we publish without and feedback from the speaker could be which we publish without or with feedback from the speaker

"do_not_stream": {
"type": ["string", "null"]
"type": ["string", "boolean", "null"],
"description": "If this value is set to boolean `false`, the speaker is okay with a live stream of the event; and is aware that somebody in the internet might create third party recording"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Should with a live stream be with a recording but not with a live stream?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

for the schedule.json, I would propose following assignment for a talk without recording + live-stream:

"do_not_record": true,
"do_not_stream": true,

The following assignment is a talk without a recording, but with a livestream:

"do_not_record": false,
"do_not_stream": true,

</xs:simpleContent>
</xs:complexType>

<xs:simpleType name="optoutEnum">

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

My understanding of recording and streaming is that both are independent from each other. As a user I would expect to see these flags in the schedule being presented as separate icon or similar. Is that possible with the enum or should it be split up?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

For the XML schedule variant: I think we should try to combine both...

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

What is the reasoning for combining both?

@saerdnaer

Copy link
Copy Markdown
Member Author

@johnjohndoe It's complicated... For a proper solution we should first think about the UI in which the speakers performs this choices... See https://git.cccv.de/hub/hub/-/issues/373#note_18383 for more information.

This PR was thougth as a first step for 37C3 Saal E (SoS Lightning)... but we probably won't find the time to do it properly this round...

@saerdnaer

Copy link
Copy Markdown
Member Author

I added a table with a first mapping between the JSON and XML variants to the pull request description

@johnjohndoe

Copy link
Copy Markdown
Collaborator

I am still struggling with the negation (do_not_..) and the combination of recording and streaming. I feel this makes it unnecessary complicated for users of this API. Even if other related infrastructure parts handle these entities different I would decouple the API from these aspects (especially UI). Here is a proposal:

schedule.json schedule.xml Meaning
"has_recording": true, "has_live_stream": true <has_recording>true</has_recording>, <has_live_stream>true</has_live_stream> We enable the live stream and create a recording, which we publish without any additional approval by the speaker
"has_recording": false, "has_live_stream": false <has_recording>false</has_recording>, <has_live_stream>false</has_live_stream> The speaker does not want a recording of any kind. We will remove all personnel, and maybe even switch off all cameras
"has_recording": maybe, "has_live_stream": true <has_recording>maybe</has_recording>, <has_live_stream>true</has_live_stream> NEW: We are allowed to create a recording / enable the live stream; but the speaker can decide afterwards if we can publish it
"has_recording": unknown, "has_live_stream": unknown <has_recording>unknown</has_recording>, <has_live_stream>unknown</has_live_stream> NEW: We don't know if a recording will exist and recommend all on-premise participants to attend the event in person

As these fields would be new to the json/xml API clients could migrate at their own pace without being broken.

@saerdnaer

Copy link
Copy Markdown
Member Author

The problem is that we already have 'do_not_record': Boolean in schedule.json and <recording><optout>true</optout></recording> in schedule.xml – so we have/should somehow to be compatible with these exiting fields.

But yeah, we should stop with this asymmetry between the json and xml variants.

@johnjohndoe

Copy link
Copy Markdown
Collaborator

I imagine that adding semantic versioning to the schema, json, xml would allow to introduce new fields and also to deprecate and remove old fields.

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.

2 participants