Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

saerdnaer
Copy link
Member

@saerdnaer saerdnaer commented Dec 22, 2023

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
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?

Copy link
Member Author

@saerdnaer saerdnaer Dec 24, 2023

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"/>

validator/xsd/schedule.xml.xsd Outdated Show resolved Hide resolved
@@ -242,4 +242,17 @@
</xs:simpleContent>
</xs:complexType>

<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
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
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
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,

@@ -242,4 +242,17 @@
</xs:simpleContent>
</xs:complexType>

<xs:simpleType name="optoutEnum">
Copy link
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
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
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
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
Member Author

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

@johnjohndoe
Copy link
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
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
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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants