Quo vadis, LibreOffice extensions?
Tietze, Heiko
The way how users can extend Libreoffice underperform the known usability from the office suite by a special kind of storage and a cumbersome way to load it. The talk will present one possible solution, open collaboration service, and show the improvements on both sides, the contributors who upload as well ideas on how users may easier customize and enhance the program. Our extensions are hosted on a Plone-based content management site. The procedure to upload an extension is cumbersome as neither a wizard nor clear steps are provided. And also because the administration is hard work and a one-person show. Furthermore, the site lacks on good search and filter capabilities for the users and has no categories beyond Extensions and Templates. The talk will present two aspects: The first is how the open collaboration service works on and the second part gives an idea how a tight integration into LibreOffice similar to GetHotNewStuff known from KDE might substantially improve the usability with also benefits for the development.
 I prepared a number of slides with a lot of pictures and I think I have to go quite quickly through it. The idea for the talk was to give you an idea, an impression, how our extension website works today and where we can move to in the future. There is one example, one option out of a couple and that's the basic idea. We have two views to the extension. One is from the people who upload an extension to the site. The other is for people who download and the first part is about the developers, the uploader of an extension and there we have also two separate kind of users. One is the average person, our person as if here in this term who uploads simple stuff. Let's say the gallery item. Gallery is just images and we have more difficult stuff or more sensitive things like macros or real code. Two options here which are not so relevant for this part but you will see later that I have a particular view on it. Bonus, our CMS for the extension site and it starts with this page and when you click on log in you get this dialogue which is not SSO compatible so you need a different account. After logging in you face this site and it has just a dark sidebar which is a little bit weird. How do you continue? Any idea? No, it is here. Here is uploaded new extension below this section that is a list of my extension that I uploaded before I can open it via links. Our design is not optimal in this regard because we show links as green text, green font, just green font without underlining. After clicking on new extension you get a page at extension project. You get a title, probably you cannot read it, a title, a short description, a long description and below you get a number of options for what module it can work. You get also an email reference and a home page and you can enter and you have to enter some more data that are more or less relevant for you to create the extension. After pressing save at the bottom you get this screen and now the site bar is filled. Is the extension online? It is not. The point here is that you create a project and not you do not upload an extension. It is a very special workflow that users likely do not expect and many people to whom I talk to do not understand the workflow, including me. It took me years to understand it. Okay, what do you have to do now? You get a site bar, I cannot read it myself, a couple of options that are also not self-explaining. Let's ignore the info, the blue info section here and go to the first option. This is some apparently editing feature. You get additional information to the project that you created, including a delete button. It is not what we want. So the second part is edit extension project. No. The next one is a submenu where you can create a linked release. Because it looks not that bad, but a linked release is also not what you want because it is not the release, the actual extension file that goes into an extension project and when you link it, you do not upload that file to our site. So what you actually are looking for is the extension release. That is the next point on the submenu on the site bar at extension release. It gives you again a lot of options to input. It is not optional, it is a mandatory input. You have to enter the name of the extension again. You have again to enter some description and when you scroll down you get more. You have a number of, in this part where the cursor is, a number of possible licenses. You have to check it, what license extension is released under. Below you get all the LibreOffice releases and you have to check the releases where your extension is working because extension might not work in all older releases or are not compatible with the new one. If you scroll down you get a large disclaimer and you get more input fields and including a field where the source code is. In our page if you do not include the source code you have to add a reference to it. I think we can come later to it. And the last point is about the platform where this extension works. You press save and here is a little bit of feedback. If you do a mistake, if you do not enter certain information you get a little bit of feedback but hard to read it is not really self-explaining so I added everything and after that I added some file. We can only deal with OXT files, you get again an error, it says error, cannot read it but it is a very generic error message that does not tell you what is wrong. So we would have rooms for improvement. When you have done everything you created the project, you uploaded a file, you understood the process. Then you end up at this page and again there is a green bar and it tells you remember the status of your extension is not in the proper mode. Okay, status. It is in the sidebar, there is again a menu with a lot of options. What you have to do, I cannot read through everything, what you have to do is to set it to active or to publish, it is one point here in the list and you send a message to the admin of our site to release the project including the extension to make it public. The admin is responsible for checking it to make sure that the license is set, that the extension is containing all the files that are needed and all these stuff. What you get as a developer is exactly this message. You get it from the admin of the office, the extension site, the status has changed and you get it again if it is not accepted. So you do not know why things are not working in a way that you expected. What else do you have? A couple of menus more. You can change the project here again, you can change the maintainer, the rights to deal with it and finally you can of course also delete it after deleting the project is still there. So if you not understood so far that a project is not an extension file, then you realize there is some weird things are ongoing. Actually going back, I had it on the first slide of this, on this set, there is one button, one big red button where you can delete this project itself. So you cannot download the Ponyhoff anymore. How does it look with open collaboration service? It is a website, it has developed for a number of years, it was before GNOME iCandy, I am not perfectly sure, but it is one website that hosts extension for different projects, mostly for KDE and GNOME but also a large number of different sites. The project itself is called open collaboration service but the website is open desktop so you can take a look at that. From my perspective it looks like a modern page, you have on the top some kind of lock in button in your back. I wanted to tell you before, it is not necessary to have one look and feel of the open desktop site, you can also personalize the start site. Videoland Client has the add-ons on this page and has created an own start site that looks different to the main page but it is on the same site. After logging in you get a screen, it works with SSO and you see again the page, you get a menu where you can create a new extension. It starts similarly with the input of the name of your extension with a longer description, you have also some information about small print, let's say the license and some categorization information, you get logos there, I uploaded the same logo here and you can finally add some social media references for your project. After saving this you get to the next step or in this case I missed the point to categorize the ponyhoff and you get an error message, quite close to what we did, categorization is done with the standard format, so you go to let's say apps, office and liberal office maybe. When you have done everything then you need to upload the files and this platform has a cool feature of the Git integration which means an extension project could have all the fancy stuff which Git offers. I didn't do it here, I stepped over and said I want to upload a file and this is how the file uploading works, you say you load the file to the platform then you set up a version number where it works on what system and the architecture, that's all, after that your extension is online. This is really online meaning the user can download it. If you have as a contributor, if you want to participate in the project and you do some design related stuff, some small not really hard things you still want, your stuff being shown in the project and actually that's what you want. You want to upload it and immediately get feedback and share these things on social media, that's what is working here. There are also some additional really fancy features. The company is called Plink and they give Plinks for download. I uploaded for testing purpose one application and one extension here to the site and it got downloaded in total by 15 times so I earned 15 Plinks which makes it 15 cent, who has sent that I earned from the company. This is a cool thing, the yellow disclaimer tells you the company is probably stopping this survey at some point. I think when you get a million downloads you don't earn 100,000 from the Plink company, but the idea is pretty nice to give the people a way to monetize their work. It has also a cool feature that is relevant for the user perspective. User means how do you get the extension, how do you download? Probably you have a couple of requests, in this case I listed a theme, maybe you also want a new font or you want to download the help files. Today you have to go to a certain page, you need to know where the stuff is, you need to download it and in case when it's an extension it is placed at the right position, but not when you do these things with help files or whatever, or when it's not possible right now like the personalization themes. If we stick to, makes a combination with Murmets presentation, if we stick to this Mozilla, everything remains at Mozilla, but when we consider to dump it and do our own themes, then themes would be part of the extension or could be part of the system. User wants to download it and it is possible, of course it's possible on both sides, they list it, they have an opportunity to filter things, you can go through the categories, what type of application it is, you can list on this main page only the LibreOffice themes, but you can also search for it, miss it, and you can filter all this stuff. That's possible, I think it's pretty much clear how it works, but I wonder if a user really wants to go to some weird website and load it from a website, that's actually not true, but say you want to use a specific font that's in a process while you edit a document, you create a text and you see, okay I do not want to use a Zerry font, I want something fancy, some monotype font. This case you don't want to go, exit the application, load a font, put it on the right page, start the application, load the font, no, you want to go to the, within the workflow, at the point where the object is being used, there you want to load it, and that's what is known from KDE as get hot new stuff, in this case it is some background image or the like, I don't know, but you get these filtered pieces of apps, I would call it better, not extension, but apps, it's a nice term, you get the type of additional features here listed, you click on it and you download and you can use it. We can do the same, we can provide similar dialogue, it is a very easy thing to download the extension, let's say the font and whatever we need in the program and put it at the right place. It could be for instance in the properties dialogue below the font list, if you see I'm missing a font, it could be written in, if you get a document from a Windows user and you don't have the, or Mac user, you don't have the Helvetica font, then you can just click on the load font button at the dialogue, you get another connection dialogue to the extension platform and you download it. Developers are concerned about security in that regards and the nice thing of these get hot new stuff features that it is known from KDE and you have the flex access platform to put it into this workflow or to have it as a separate type of extension. I think we can do it only for, we shouldn't do it for macros, going back to the first slide when I said we have users who want to contribute with simple design add-ons, those should be integrated very closely in the program but others like macros that are safe to element, maybe privacy relevant that could be excluded from this workflow. What type of extension could be possible? So we have right now, we have dictionaries, we have templates, we have language tools, we could also have color schemes, that's what we have today, color schemes, gallery content clip art, but we could add menu configuration. Why? The design team is continuously trying to improve the menus, this improvement is not an improvement for many people and we get a lot of complaints, where is my function? And we could upload the menu from, let's say version 5.4 and the user just loads the menu configuration with one click and gets the behavior that is known to him or her. That's true also for shortcuts, we could provide shortcuts, let's say localized shortcuts, you load a shortcut definition for English or for French or for German, Spanish, whatever that fits into your system, makes a lot of sense to me. Icons seams, it is ridiculous that we ship four or five different icons seams, those have to be placed in some external things. I don't go through the rest of the ideas here, the last point, the least in my opinion is macros. With macros we get some people who are experts in the programming, but most contributors start with simple things. Of course, when I talk about macros we can also make the application even more broader, more lean and let's say exclude all filters from the program and provide only the basic ODT features, but put everything which is a filter, let's say OXML, into one extension and you load the filters into the program. That allows to be way more faster in updating the interaction. Of course it is a big scale change. Why not hard code as stuff? It is pretty clear. We clutter our system with requests, here it is about notebook bars, we have a million request to change the notebook bar. How should we as a QA team or design team deal with a request of one user saying, why do you not include this button in your notebook bar? It might make sense, of course it is a good request, but in my opinion we should exclude all these requests from the core system and put it into the design of this particular look and feel layout. The same is true for what is it icon seems. We have many requests about icons and this one is about the menu bar. The point is QA should focus on the core product. We want to encourage people to contribute, that should be as easy as possible. We want to allow crazy ideas if someone shows up and presents a notebook bar with just three buttons on it and thinks it is a good thing. I have no means to allow him to share it or I would refuse it, of course, but why not? We have to duplicate stuff, we update, for example, fonts. The Liberation font got into a new release recently, so we have to think or to remember to update the font from one place, copy it to our place, upload to our platform and create a hash sum and put it into our release. That is not necessary and finally, I think keeping the code clean is also a good thing and it improves usability, of course, when you get things into the program. If you can download dictionaries and help and let's say also localization in the same way how you deal with everything, it is easy to understand. I don't have to say anything more, so it's a funny closing slide. Thank you. Eight minutes or seven minutes are left, five minutes on my watch, so if there is no question. It is work in progress, it is not the only option we have to think in the team about different ways to improve our extension site. It was one few how we could deal with it, one existing and we will see how it turns out in the future. Thank you. Absolutely. Thank you.
 I prepared a number of slides with a lot of pictures and I think I have to go quite quickly  through it.  The idea for the talk was to give you an idea, an impression, how our extension website works  today and where we can move to in the future.  There is one example, one option out of a couple and that's the basic idea.  We have two views to the extension.  One is from the people who upload an extension to the site.  The other is for people who download and the first part is about the developers, the uploader  of an extension and there we have also two separate kind of users.  One is the average person, our person as if here in this term who uploads simple stuff.  Let's say the gallery item.  Gallery is just images and we have more difficult stuff or more sensitive things like macros  or real code.  Two options here which are not so relevant for this part but you will see later that  I have a particular view on it.  Bonus, our CMS for the extension site and it starts with this page and when you click  on log in you get this dialogue which is not SSO compatible so you need a different account.  After logging in you face this site and it has just a dark sidebar which is a little  bit weird.  How do you continue?  Any idea?  No, it is here.  Here is uploaded new extension below this section that is a list of my extension that  I uploaded before I can open it via links.  Our design is not optimal in this regard because we show links as green text, green font, just  green font without underlining.  After clicking on new extension you get a page at extension project.  You get a title, probably you cannot read it, a title, a short description, a long description  and below you get a number of options for what module it can work.  You get also an email reference and a home page and you can enter and you have to enter  some more data that are more or less relevant for you to create the extension.  After pressing save at the bottom you get this screen and now the site bar is filled.  Is the extension online?  It is not.  The point here is that you create a project and not you do not upload an extension.  It is a very special workflow that users likely do not expect and many people to whom I talk  to do not understand the workflow, including me.  It took me years to understand it.  Okay, what do you have to do now?  You get a site bar, I cannot read it myself, a couple of options that are also not self-explaining.  Let's ignore the info, the blue info section here and go to the first option.  This is some apparently editing feature.  You get additional information to the project that you created, including a delete button.  It is not what we want.  So the second part is edit extension project.  No.  The next one is a submenu where you can create a linked release.  Because it looks not that bad, but a linked release is also not what you want because  it is not the release, the actual extension file that goes into an extension project and  when you link it, you do not upload that file to our site.  So what you actually are looking for is the extension release.  That is the next point on the submenu on the site bar at extension release.  It gives you again a lot of options to input.  It is not optional, it is a mandatory input.  You have to enter the name of the extension again.  You have again to enter some description and when you scroll down you get more.  You have a number of, in this part where the cursor is, a number of possible licenses.  You have to check it, what license extension is released under.  Below you get all the LibreOffice releases and you have to check the releases where your  extension is working because extension might not work in all older releases or are not  compatible with the new one.  If you scroll down you get a large disclaimer and you get more input fields and including  a field where the source code is.  In our page if you do not include the source code you have to add a reference to it.  I think we can come later to it.  And the last point is about the platform where this extension works.  You press save and here is a little bit of feedback.  If you do a mistake, if you do not enter certain information you get a little bit of feedback  but hard to read it is not really self-explaining so I added everything and after that I added  some file.  We can only deal with OXT files, you get again an error, it says error, cannot read it but  it is a very generic error message that does not tell you what is wrong.  So we would have rooms for improvement.  When you have done everything you created the project, you uploaded a file, you understood  the process.  Then you end up at this page and again there is a green bar and it tells you remember the  status of your extension is not in the proper mode.  Okay, status.  It is in the sidebar, there is again a menu with a lot of options.  What you have to do, I cannot read through everything, what you have to do is to set it  to active or to publish, it is one point here in the list and you send a message to the  admin of our site to release the project including the extension to make it public.  The admin is responsible for checking it to make sure that the license is set, that the  extension is containing all the files that are needed and all these stuff.  What you get as a developer is exactly this message.  You get it from the admin of the office, the extension site, the status has changed and  you get it again if it is not accepted.  So you do not know why things are not working in a way that you expected.  What else do you have?  A couple of menus more.  You can change the project here again, you can change the maintainer, the rights to deal  with it and finally you can of course also delete it after deleting the project is still  there.  So if you not understood so far that a project is not an extension file, then you realize  there is some weird things are ongoing.  Actually going back, I had it on the first slide of this, on this set, there is one button,  one big red button where you can delete this project itself.  So you cannot download the Ponyhoff anymore.  How does it look with open collaboration service?  It is a website, it has developed for a number of years, it was before GNOME iCandy, I am  not perfectly sure, but it is one website that hosts extension for different projects,  mostly for KDE and GNOME but also a large number of different sites.  The project itself is called open collaboration service but the website is open desktop so  you can take a look at that.  From my perspective it looks like a modern page, you have on the top some kind of lock  in button in your back.  I wanted to tell you before, it is not necessary to have one look and feel of the open desktop  site, you can also personalize the start site.  Videoland Client has the add-ons on this page and has created an own start site that looks  different to the main page but it is on the same site.  After logging in you get a screen, it works with SSO and you see again the page, you get  a menu where you can create a new extension.  It starts similarly with the input of the name of your extension with a longer description,  you have also some information about small print, let's say the license and some categorization  information, you get logos there, I uploaded the same logo here and you can finally add  some social media references for your project.  After saving this you get to the next step or in this case I missed the point to categorize  the ponyhoff and you get an error message, quite close to what we did, categorization  is done with the standard format, so you go to let's say apps, office and liberal office  maybe.  When you have done everything then you need to upload the files and this platform has  a cool feature of the Git integration which means an extension project could have all  the fancy stuff which Git offers.  I didn't do it here, I stepped over and said I want to upload a file and this is how the  file uploading works, you say you load the file to the platform then you set up a version  number where it works on what system and the architecture, that's all, after that your  extension is online.  This is really online meaning the user can download it.  If you have as a contributor, if you want to participate in the project and you do some  design related stuff, some small not really hard things you still want, your stuff being  shown in the project and actually that's what you want.  You want to upload it and immediately get feedback and share these things on social  media, that's what is working here.  There are also some additional really fancy features.  The company is called Plink and they give Plinks for download.  I uploaded for testing purpose one application and one extension here to the site and it  got downloaded in total by 15 times so I earned 15 Plinks which makes it 15 cent, who has  sent that I earned from the company.  This is a cool thing, the yellow disclaimer tells you the company is probably stopping  this survey at some point.  I think when you get a million downloads you don't earn 100,000 from the Plink company,  but the idea is pretty nice to give the people a way to monetize their work.  It has also a cool feature that is relevant for the user perspective.  User means how do you get the extension, how do you download?  Probably you have a couple of requests, in this case I listed a theme, maybe you also  want a new font or you want to download the help files.  Today you have to go to a certain page, you need to know where the stuff is, you need  to download it and in case when it's an extension it is placed at the right position, but not  when you do these things with help files or whatever, or when it's not possible right  now like the personalization themes.  If we stick to, makes a combination with Murmets presentation, if we stick to this Mozilla,  everything remains at Mozilla, but when we consider to dump it and do our own themes,  then themes would be part of the extension or could be part of the system.  User wants to download it and it is possible, of course it's possible on both sides, they  list it, they have an opportunity to filter things, you can go through the categories,  what type of application it is, you can list on this main page only the LibreOffice themes,  but you can also search for it, miss it, and you can filter all this stuff.  That's possible, I think it's pretty much clear how it works, but I wonder if a user  really wants to go to some weird website and load it from a website, that's actually not  true, but say you want to use a specific font that's in a process while you edit a document,  you create a text and you see, okay I do not want to use a Zerry font, I want something  fancy, some monotype font.  This case you don't want to go, exit the application, load a font, put it on the right  page, start the application, load the font, no, you want to go to the, within the workflow,  at the point where the object is being used, there you want to load it, and that's what  is known from KDE as get hot new stuff, in this case it is some background image or the  like, I don't know, but you get these filtered pieces of apps, I would call it better, not  extension, but apps, it's a nice term, you get the type of additional features here listed,  you click on it and you download and you can use it.  We can do the same, we can provide similar dialogue, it is a very easy thing to download  the extension, let's say the font and whatever we need in the program and put it at the right  place.  It could be for instance in the properties dialogue below the font list, if you see I'm  missing a font, it could be written in, if you get a document from a Windows user and  you don't have the, or Mac user, you don't have the Helvetica font, then you can just  click on the load font button at the dialogue, you get another connection dialogue to the  extension platform and you download it.  Developers are concerned about security in that regards and the nice thing of these get  hot new stuff features that it is known from KDE and you have the flex access platform  to put it into this workflow or to have it as a separate type of extension.  I think we can do it only for, we shouldn't do it for macros, going back to the first  slide when I said we have users who want to contribute with simple design add-ons, those  should be integrated very closely in the program but others like macros that are safe to element,  maybe privacy relevant that could be excluded from this workflow.  What type of extension could be possible?  So we have right now, we have dictionaries, we have templates, we have language tools,  we could also have color schemes, that's what we have today, color schemes, gallery content  clip art, but we could add menu configuration.  Why?  The design team is continuously trying to improve the menus, this improvement is not  an improvement for many people and we get a lot of complaints, where is my function?  And we could upload the menu from, let's say version 5.4 and the user just loads the menu  configuration with one click and gets the behavior that is known to him or her.  That's true also for shortcuts, we could provide shortcuts, let's say localized shortcuts,  you load a shortcut definition for English or for French or for German, Spanish, whatever  that fits into your system, makes a lot of sense to me.  Icons seams, it is ridiculous that we ship four or five different icons seams, those  have to be placed in some external things.  I don't go through the rest of the ideas here, the last point, the least in my opinion is  macros.  With macros we get some people who are experts in the programming, but most contributors  start with simple things.  Of course, when I talk about macros we can also make the application even more broader,  more lean and let's say exclude all filters from the program and provide only the basic  ODT features, but put everything which is a filter, let's say OXML, into one extension  and you load the filters into the program.  That allows to be way more faster in updating the interaction.  Of course it is a big scale change.  Why not hard code as stuff?  It is pretty clear.  We clutter our system with requests, here it is about notebook bars, we have a million  request to change the notebook bar.  How should we as a QA team or design team deal with a request of one user saying, why  do you not include this button in your notebook bar?  It might make sense, of course it is a good request, but in my opinion we should exclude  all these requests from the core system and put it into the design of this particular  look and feel layout.  The same is true for what is it icon seems.  We have many requests about icons and this one is about the menu bar.  The point is QA should focus on the core product.  We want to encourage people to contribute, that should be as easy as possible.  We want to allow crazy ideas if someone shows up and presents a notebook bar with just three  buttons on it and thinks it is a good thing.  I have no means to allow him to share it or I would refuse it, of course, but why not?  We have to duplicate stuff, we update, for example, fonts.  The Liberation font got into a new release recently, so we have to think or to remember  to update the font from one place, copy it to our place, upload to our platform and create  a hash sum and put it into our release.  That is not necessary and finally, I think keeping the code clean is also a good thing  and it improves usability, of course, when you get things into the program.  If you can download dictionaries and help and let's say also localization in the same  way how you deal with everything, it is easy to understand.  I don't have to say anything more, so it's a funny closing slide.  Thank you.  Eight minutes or seven minutes are left, five minutes on my watch, so if there is no question.  It is work in progress, it is not the only option we have to think in the team about  different ways to improve our extension site.  It was one few how we could deal with it, one existing and we will see how it turns out  in the future.  Thank you.  Absolutely.  Thank you.
Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_0_167.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_168_803.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_804_3227.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_3228_4331.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_4332_5903.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_5904_6563.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_6564_7247.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_7248_7643.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_7644_9323.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_9324_9875.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_9876_11987.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_11988_12191.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_12192_12611.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_12612_15755.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_15756_16007.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_16008_16475.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_16476_17723.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_17724_19139.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_19140_20831.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_20832_22523.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_22524_25751.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_25752_27875.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_27876_32471.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_32472_32795.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_32796_32903.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_32904_34955.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_34956_35639.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_35640_36275.png Quo_vadis__LibreOffice_extensions__uD3lgalMF-E_36276_36388.png
I prepared a number of slides with a lot of pictures and I think I have to go quite quickly through it. The idea for the talk was to give you an idea, an impression, how our extension website works today and where we can move to in the future. There is one example, one option out of a couple and that's the basic idea. We have two views to the extension. One is from the people who upload an extension to the site. The other is for people who download and the first part is about the developers, the uploader of an extension and there we have also two separate kind of users. One is the average person, our person as if here in this term who uploads simple stuff. Let's say the gallery item. Gallery is just images and we have more difficult stuff or more sensitive things like macros or real code. Two options here which are not so relevant for this part but you will see later that I have a particular view on it. Bonus, our CMS for the extension site and it starts with this page and when you click on log in you get this dialogue which is not SSO compatible so you need a different account. After logging in you face this site and it has just a dark sidebar which is a little bit weird. How do you continue? Any idea? No, it is here. Here is uploaded new extension below this section that is a list of my extension that I uploaded before I can open it via links. Our design is not optimal in this regard because we show links as green text, green font, just green font without underlining. After clicking on new extension you get a page at extension project. You get a title, probably you cannot read it, a title, a short description, a long description and below you get a number of options for what module it can work. You get also an email reference and a home page and you can enter and you have to enter some more data that are more or less relevant for you to create the extension. After pressing save at the bottom you get this screen and now the site bar is filled. Is the extension online? It is not. The point here is that you create a project and not you do not upload an extension. It is a very special workflow that users likely do not expect and many people to whom I talk to do not understand the workflow, including me. It took me years to understand it. Okay, what do you have to do now? You get a site bar, I cannot read it myself, a couple of options that are also not self-explaining. Let's ignore the info, the blue info section here and go to the first option. This is some apparently editing feature. You get additional information to the project that you created, including a delete button. It is not what we want. So the second part is edit extension project. No. The next one is a submenu where you can create a linked release. Because it looks not that bad, but a linked release is also not what you want because it is not the release, the actual extension file that goes into an extension project and when you link it, you do not upload that file to our site. So what you actually are looking for is the extension release. That is the next point on the submenu on the site bar at extension release. It gives you again a lot of options to input. It is not optional, it is a mandatory input. You have to enter the name of the extension again. You have again to enter some description and when you scroll down you get more. You have a number of, in this part where the cursor is, a number of possible licenses. You have to check it, what license extension is released under. Below you get all the LibreOffice releases and you have to check the releases where your extension is working because extension might not work in all older releases or are not compatible with the new one. If you scroll down you get a large disclaimer and you get more input fields and including a field where the source code is. In our page if you do not include the source code you have to add a reference to it. I think we can come later to it. And the last point is about the platform where this extension works. You press save and here is a little bit of feedback. If you do a mistake, if you do not enter certain information you get a little bit of feedback but hard to read it is not really self-explaining so I added everything and after that I added some file. We can only deal with OXT files, you get again an error, it says error, cannot read it but it is a very generic error message that does not tell you what is wrong. So we would have rooms for improvement. When you have done everything you created the project, you uploaded a file, you understood the process. Then you end up at this page and again there is a green bar and it tells you remember the status of your extension is not in the proper mode. Okay, status. It is in the sidebar, there is again a menu with a lot of options. What you have to do, I cannot read through everything, what you have to do is to set it to active or to publish, it is one point here in the list and you send a message to the admin of our site to release the project including the extension to make it public. The admin is responsible for checking it to make sure that the license is set, that the extension is containing all the files that are needed and all these stuff. What you get as a developer is exactly this message. You get it from the admin of the office, the extension site, the status has changed and you get it again if it is not accepted. So you do not know why things are not working in a way that you expected. What else do you have? A couple of menus more. You can change the project here again, you can change the maintainer, the rights to deal with it and finally you can of course also delete it after deleting the project is still there. So if you not understood so far that a project is not an extension file, then you realize there is some weird things are ongoing. Actually going back, I had it on the first slide of this, on this set, there is one button, one big red button where you can delete this project itself. So you cannot download the Ponyhoff anymore. How does it look with open collaboration service? It is a website, it has developed for a number of years, it was before GNOME iCandy, I am not perfectly sure, but it is one website that hosts extension for different projects, mostly for KDE and GNOME but also a large number of different sites. The project itself is called open collaboration service but the website is open desktop so you can take a look at that. From my perspective it looks like a modern page, you have on the top some kind of lock in button in your back. I wanted to tell you before, it is not necessary to have one look and feel of the open desktop site, you can also personalize the start site. Videoland Client has the add-ons on this page and has created an own start site that looks different to the main page but it is on the same site. After logging in you get a screen, it works with SSO and you see again the page, you get a menu where you can create a new extension. It starts similarly with the input of the name of your extension with a longer description, you have also some information about small print, let's say the license and some categorization information, you get logos there, I uploaded the same logo here and you can finally add some social media references for your project. After saving this you get to the next step or in this case I missed the point to categorize the ponyhoff and you get an error message, quite close to what we did, categorization is done with the standard format, so you go to let's say apps, office and liberal office maybe. When you have done everything then you need to upload the files and this platform has a cool feature of the Git integration which means an extension project could have all the fancy stuff which Git offers. I didn't do it here, I stepped over and said I want to upload a file and this is how the file uploading works, you say you load the file to the platform then you set up a version number where it works on what system and the architecture, that's all, after that your extension is online. This is really online meaning the user can download it. If you have as a contributor, if you want to participate in the project and you do some design related stuff, some small not really hard things you still want, your stuff being shown in the project and actually that's what you want. You want to upload it and immediately get feedback and share these things on social media, that's what is working here. There are also some additional really fancy features. The company is called Plink and they give Plinks for download. I uploaded for testing purpose one application and one extension here to the site and it got downloaded in total by 15 times so I earned 15 Plinks which makes it 15 cent, who has sent that I earned from the company. This is a cool thing, the yellow disclaimer tells you the company is probably stopping this survey at some point. I think when you get a million downloads you don't earn 100,000 from the Plink company, but the idea is pretty nice to give the people a way to monetize their work. It has also a cool feature that is relevant for the user perspective. User means how do you get the extension, how do you download? Probably you have a couple of requests, in this case I listed a theme, maybe you also want a new font or you want to download the help files. Today you have to go to a certain page, you need to know where the stuff is, you need to download it and in case when it's an extension it is placed at the right position, but not when you do these things with help files or whatever, or when it's not possible right now like the personalization themes. If we stick to, makes a combination with Murmets presentation, if we stick to this Mozilla, everything remains at Mozilla, but when we consider to dump it and do our own themes, then themes would be part of the extension or could be part of the system. User wants to download it and it is possible, of course it's possible on both sides, they list it, they have an opportunity to filter things, you can go through the categories, what type of application it is, you can list on this main page only the LibreOffice themes, but you can also search for it, miss it, and you can filter all this stuff. That's possible, I think it's pretty much clear how it works, but I wonder if a user really wants to go to some weird website and load it from a website, that's actually not true, but say you want to use a specific font that's in a process while you edit a document, you create a text and you see, okay I do not want to use a Zerry font, I want something fancy, some monotype font. This case you don't want to go, exit the application, load a font, put it on the right page, start the application, load the font, no, you want to go to the, within the workflow, at the point where the object is being used, there you want to load it, and that's what is known from KDE as get hot new stuff, in this case it is some background image or the like, I don't know, but you get these filtered pieces of apps, I would call it better, not extension, but apps, it's a nice term, you get the type of additional features here listed, you click on it and you download and you can use it. We can do the same, we can provide similar dialogue, it is a very easy thing to download the extension, let's say the font and whatever we need in the program and put it at the right place. It could be for instance in the properties dialogue below the font list, if you see I'm missing a font, it could be written in, if you get a document from a Windows user and you don't have the, or Mac user, you don't have the Helvetica font, then you can just click on the load font button at the dialogue, you get another connection dialogue to the extension platform and you download it. Developers are concerned about security in that regards and the nice thing of these get hot new stuff features that it is known from KDE and you have the flex access platform to put it into this workflow or to have it as a separate type of extension. I think we can do it only for, we shouldn't do it for macros, going back to the first slide when I said we have users who want to contribute with simple design add-ons, those should be integrated very closely in the program but others like macros that are safe to element, maybe privacy relevant that could be excluded from this workflow. What type of extension could be possible? So we have right now, we have dictionaries, we have templates, we have language tools, we could also have color schemes, that's what we have today, color schemes, gallery content clip art, but we could add menu configuration. Why? The design team is continuously trying to improve the menus, this improvement is not an improvement for many people and we get a lot of complaints, where is my function? And we could upload the menu from, let's say version 5.4 and the user just loads the menu configuration with one click and gets the behavior that is known to him or her. That's true also for shortcuts, we could provide shortcuts, let's say localized shortcuts, you load a shortcut definition for English or for French or for German, Spanish, whatever that fits into your system, makes a lot of sense to me. Icons seams, it is ridiculous that we ship four or five different icons seams, those have to be placed in some external things. I don't go through the rest of the ideas here, the last point, the least in my opinion is macros. With macros we get some people who are experts in the programming, but most contributors start with simple things. Of course, when I talk about macros we can also make the application even more broader, more lean and let's say exclude all filters from the program and provide only the basic ODT features, but put everything which is a filter, let's say OXML, into one extension and you load the filters into the program. That allows to be way more faster in updating the interaction. Of course it is a big scale change. Why not hard code as stuff? It is pretty clear. We clutter our system with requests, here it is about notebook bars, we have a million request to change the notebook bar. How should we as a QA team or design team deal with a request of one user saying, why do you not include this button in your notebook bar? It might make sense, of course it is a good request, but in my opinion we should exclude all these requests from the core system and put it into the design of this particular look and feel layout. The same is true for what is it icon seems. We have many requests about icons and this one is about the menu bar. The point is QA should focus on the core product. We want to encourage people to contribute, that should be as easy as possible. We want to allow crazy ideas if someone shows up and presents a notebook bar with just three buttons on it and thinks it is a good thing. I have no means to allow him to share it or I would refuse it, of course, but why not? We have to duplicate stuff, we update, for example, fonts. The Liberation font got into a new release recently, so we have to think or to remember to update the font from one place, copy it to our place, upload to our platform and create a hash sum and put it into our release. That is not necessary and finally, I think keeping the code clean is also a good thing and it improves usability, of course, when you get things into the program. If you can download dictionaries and help and let's say also localization in the same way how you deal with everything, it is easy to understand. I don't have to say anything more, so it's a funny closing slide. Thank you. Eight minutes or seven minutes are left, five minutes on my watch, so if there is no question. It is work in progress, it is not the only option we have to think in the team about different ways to improve our extension site. It was one few how we could deal with it, one existing and we will see how it turns out in the future. Thank you. Absolutely. Thank you.
through it. The idea for the talk was to give you an idea, an impression, how our extension website who upload an extension to the site. The other is for people who download and the first part is kind of users. One is the average person, our not upload an extension. It is a very special couple of options that are also not what we want. So the second part is edit working because extension might not work in all office, the extension site, the status has with open collaboration service? It is a website, want to upload a file and this is how the file it works on what system and the architecture, is pretty nice to give the people a way to course it's possible on both sides, they list it, search for it, miss it, and you can filter all you want to load it, and that's what is known stuff features that it is known from KDE and you continuously trying to improve the menus, this let's say exclude all filters from the program into one extension and you load the filters into scale change. Why not hard code as stuff? It is