Skip to content

Conversation

saerdnaer
Copy link
Member

@saerdnaer saerdnaer commented Feb 23, 2025

breaking changes to the schedule.json schema, thereby a own new version called schedule2, see 6632bbb for an comparison between the formats

  • some unused fields get dropped, e.g. public_name, daysCount, timeslot_duration, …
  • Track: color -> colors to allow multiple color values e.g. for light an dark – and to be uniform to same attribute on Conference
  • Track: gets a guid field
  • translations of abstract, description etc. get switched from Accept header "string" to object {"en": "string", "de": "string"}, but the old way is still allowed
  • Day: day_start and day_end get's unified to start and end
  • events and persons get it's own top level field, and are no longer nested
    • but events still have to be sorted by date and room.order as before by the schedule generator/serializer
    • connection from Event to Person is named Participant and has a role attribute
  • Images like logo and avatar are now an object {"url": "uri-string"} instead of "uri-string"
  • Event has now start and end instead of date and duration, fixing Clarify duration spec #129

TODOs

  • decide how the references on Event to room should look like
  • decide how the references on Event to track should look like
  • decide if Participant.role should be an enum
  • add Reference.service enum based on ucdata
  • add languages: ['en', 'de'] on Conference
  • add defaults: { theme: 'dark', language: 'en' }… on Conference?

Signed-off-by: Andreas Hubel <andreas.hubel@pub.tech>
@saerdnaer saerdnaer marked this pull request as draft February 23, 2025 19:29
@saerdnaer
Copy link
Member Author

saerdnaer commented Feb 24, 2025

@toto Sollen wir die kompletten Services hierher in schedule2 mit übernehmen?

https://github.com/toto/conference-import/blob/e51e5a35788a6735a724ece59e84018efd18dc41/src/models/link.ts#L1-L8

service: "web" | "twitter" | "facebook" | "github" | "youtube" | "vimeo" | "mastodon" | "bluesky" | "threads" | "vimeo" | "livevoice" | "activityPub"

@toto
Copy link
Collaborator

toto commented Feb 24, 2025

Not all pick: that's historical baggage. How about

  • Video: YouTube, Vimeo
  • Social: Facebook, ActivityPub, LinkedIn, GitHub and threads.
    Plus "web" as the default.

{
"guid": "3dc5daf5-ba21-4577-97e4-fb6e4b5d40e1",
"name": "Art & Beauty",
"colors": {
Copy link

Choose a reason for hiding this comment

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

If we're defining multiple colours, we should add a field for preferred colour scheme so apps know which to select in case there's no user choice.

Copy link

Choose a reason for hiding this comment

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

An additional question would be if it really makes sense to have different colours for light and dark mode here, if the Conference only defines a primary and background colour.

Copy link
Collaborator

@johnjohndoe johnjohndoe Apr 19, 2025

Choose a reason for hiding this comment

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

Not sure if a preferred color scheme property is needed. Mobile apps typically follow either the system settings or provide a way for users to customize the scheme within the app as show in the screenshot:

theme

Copy link

Choose a reason for hiding this comment

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

Keep in mind we don't always have that. For example, pretalx always uses light mode as of now, so that would be preferred. info-beamer in itself does also not know what the user preference is, so it would use the organizer preferences.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Thank you for the clarification. @saerdnaer It would be great to provide some context in the issue description up there and list all the clients which consume the JSON.

Copy link

Choose a reason for hiding this comment

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

I don't believe we have a list of all the apps that might consume the json schedule.

Copy link
Collaborator

Choose a reason for hiding this comment

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

It does not have to be complete to be valuable.

"slug": "38c3-38c3-opening-ceremony",
"title": "38C3: Opening Ceremony",
"subtitle": null,
"language": "en",
Copy link
Collaborator

Choose a reason for hiding this comment

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

Should we rename language to languages? It is not limited to one language if I remember correctly.

Copy link

Choose a reason for hiding this comment

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

Depends if we want to include the languages of possible translations. If this is the language of the talk itself, there can only ever be one i think.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I believe talks can still be hold in multiple languages, e.g. where speaker1 talks English and speaker2 talks German.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Let’s have one language the talk is held in. If we want translations that should be a different field / indicated in some way.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I did not refer to translations here. I really meant a talk which is hold in different languages and is therefore announced as such, e.g. en, de.

Copy link

Choose a reason for hiding this comment

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

Is there any system that currently supports this? AFAIK neither frab nor pretalx do; pretalx certainly assumes that a talk is in one language.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I remember seeing it in the Android app at one point. I would need to investigate to find out what the source backend was.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I could be that session with multiple languages originate from a wiki import at 38C3.

Copy link
Member Author

@saerdnaer saerdnaer May 27, 2025

Choose a reason for hiding this comment

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

for self-organized sessions created in the Hub, there is the option to select a ordered list of possible languages, via a dropdown with the options en, de, en, de, de, en.

In general I would see this field as main/original language and add an additional translations field and does not really like to force everybody to an array, only for the rare edge case that multiple languages are use in the same talk e.g. with multiple sections/speakers. That would be an complete other feature similar to chapters in a podcast episode.

Copy link
Collaborator

Choose a reason for hiding this comment

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

What does the UI for SOS look like / tell about the language selection? Are they being selected as the speakers languages or as the available translations?

"track": "CCC",
"track": {
"slug": "ccc"
},
Copy link
Member Author

@saerdnaer saerdnaer Aug 3, 2025

Choose a reason for hiding this comment

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

FYI: I changed the track reference, to be uniform with the room reference

Copy link
Collaborator

Choose a reason for hiding this comment

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

Are we missing a reference to the guid of the track here?

Copy link
Member Author

Choose a reason for hiding this comment

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

I am not yet at the point where I see a track guid as really required, a persistent slug is a good enough "ID" for me for this kind of entity... Otherwise we have to discuss if they have the same guid across each conference instance etc.

@saerdnaer
Copy link
Member Author

Hmm, should we change all enum values to UPPER_CASE?

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.

5 participants