florisboard icon indicating copy to clipboard operation
florisboard copied to clipboard

Participation in official Addons Store Beta Test

Open patrickgold opened this issue 1 year ago • 6 comments

Hi, my team and I are currently finishing up the preparations for the beta test launch of the official FlorisBoard Addons Store, and I wanted to ask if you want your Catppuccin themes to be part of the initial launch?

patrickgold avatar Jun 23 '24 13:06 patrickgold

Hey :wave: Thank you for reaching out, congrats on reaching the finishing stages of your beta test launch!

We'd be happy to have our themes be part of the initial launch.

One thing from me, is there any documentation on how to design a floris-board theme with the .flex format? I can see that you have a Wiki page but it specifies at the top that "This wiki is not valid anymore beginning from 0.3.14-beta09 and greater"

I'd quite like to publish a new version of the theme fixing the typo in the filename/extension ID (catpuccin.themes.1659370514314 -> catppuccin.themes.1659370514314) and improve the maintainability of this repository but I'm unsure if changing the extension ID without changing the numbers at the end would automatically break things elsewhere.

Would greatly appreciate your insights, thank you!

sgoudham avatar Jun 23 '24 13:06 sgoudham

Great to hear! I will provide you with the publishing instructions once we are ready on our end, atm we are still fixing some important issues.

Regarding the wiki you make a good point, the existing wiki is completely outdated, we will work on that. Is your current repo state compatible with the latest beta release or do you still use the old old stylesheet syntax? (Can be checked by importing the theme and checking it out inthe theme editor)

Generally though the extension ID requirements have changed, so that will ne a breaking change anyways. Basically sumarized: The id must be a Java-like package name, and start with either io.github.<username>.**** Or if you have an official domain and add a TXT record you can use that for publishing. It will be explained in more detail in the revised wiki.

patrickgold avatar Jun 23 '24 14:06 patrickgold

I'm not sure on the specifics as I'm not the original author of the theme, (maybe @skinatro can chime in if they are free), but from unzipping the .flex file, I can see that we have the following directory structure:

image

And the file content looks like the following:

image

I think this might be the old stylesheet syntax? I'll need to download floris-board myself to check :sweat_smile:)

With regards to the extension ID requirements. We currently have catppuccin.themes.1659370514314. As per your comment, I hope we can change it to io.github.catppuccin.florisboard or something similar if we decide to use our domain catppuccin.com.

Please let me know if we need to make any immediate changes to allow the theme to be included in the initial launch and when the revised wiki is in place, thank you!

sgoudham avatar Jun 23 '24 14:06 sgoudham

I will check later if your stylesheets are compatible, but from the looks of it you are already on the new syntax, which would be perfect.

patrickgold avatar Jun 23 '24 16:06 patrickgold

Ok from the looks of it it generally works but there are some minor color issues, probably due to name changes

patrickgold avatar Jun 23 '24 16:06 patrickgold

I'm happy to download floris-board and try to fix some issues myself, it's been a long while since this repository has had any activity so I'd imagine things on the UI have changed too.

Thank you for checking!

sgoudham avatar Jun 23 '24 16:06 sgoudham

I am really sorry I have been inactive, is all the required work done or is there anything pending? I can help out to iron out some issues

skinatro avatar Aug 04 '24 20:08 skinatro

Took us longer than expected but the Addons Store is finally ready! It can be accessed at https://beta.addons.florisboard.org

This wiki entry is a good guide for publishing, if you need assistance don't hesitate to ask me!

For your specific theme the flex file uploaded in your repo is correct, the committed json theme is the old one though, so just use the flex file from now on.

patrickgold avatar Aug 09 '24 22:08 patrickgold

Thanks for letting us know @patrickgold! Unfortunately I believe @skinatro's phone is broken so they may not be able to help out at the moment.

I see that you're only accepting GitHub as a form of authentication. For scenarios like this, we'd use our holdings account (@Catppuccin-Holdings) which multiple staff members have access to and ensures that the theme can be published by multiple people.

I'll be tidying up the repository most likely in the next few days to get in a state where it can be uploaded and I hope it's able to pass the manual review, thanks again for reaching out!

My one feature request to you would be that you either allow shared ownership of themes/plugins going forward or implement a model where themes can be transferred from one account to another if both parties agree to it.

sgoudham avatar Aug 09 '24 23:08 sgoudham

Using your Catppuccin-Holdings account is perfectly fine.

I'll be tidying up the repository most likely in the next few days to get in a state where it can be uploaded and I hope it's able to pass the manual review

Sounds good to me, let me know if you hit any roadblocks or if should check if the meta data/structure is correct.

My one feature request to you would be that you either allow shared ownership of themes/plugins going forward or implement a model where themes can be transferred from one account to another if both parties agree to it.

That's not possible in the currently deployed state but we really like the idea and it makes sense. I'll pass the idea on to the team!

patrickgold avatar Aug 09 '24 23:08 patrickgold

That's not possible in the currently deployed state but we really like the idea and it makes sense. I'll pass the idea on to the team!

Thanks! Fwiw, my preference is strongly towards the former as it allows for the traditional organisation hierarchy and the opportunity to define roles/privileges to its members.

NPM has quite a nice model if you're looking for some prior art:

sgoudham avatar Aug 09 '24 23:08 sgoudham

hey guys sorry for the delay my phone is fixed now

I changed the ID to io.github.catppuccin and updated the semver to 1.0.0 I also removed the legacy or 1.0 theme

I will push the updated flex file now Please let me know of any more changes i must do before the theme can be published @patrickgold @sgoudham

skinatro avatar Aug 11 '24 07:08 skinatro

@patrickgold can you help me recompress the file? I tried to make it compress to flex using bash but whenever i import it into florisboard it says it could not parse the zip

this is what i used

zip -r9 -Z deflate floris100.flex ./floris/

I even tried it with python but the same result

import os
import zipfile
from datetime import datetime

def compress_to_flex_file(input_folder_path, output_flex_file_path):
    with zipfile.ZipFile(output_flex_file_path, 'w', compression=zipfile.ZIP_DEFLATED, compresslevel=9) as zip_file:
        for root, dirs, files in os.walk(input_folder_path):
            for file in files:
                file_path = os.path.join(root, file)
                zip_file.write(file_path)

input_folder_path = './floris'
output_flex_file_path = os.path.join(
    os.path.dirname(__file__),
    '../floris',
    f'ctp.flex'
)


print('Compressing to Flex file...')
compress_to_flex_file(input_folder_path, output_flex_file_path)

print('Folder compressed to Flex')

skinatro avatar Aug 11 '24 08:08 skinatro

What does the folder structure look like after ziping?

lm41 avatar Aug 11 '24 09:08 lm41

Hmm interesting, we use Java ZipFile for unzipping, so as long as the zip file is zipped using a supported compression by that it should be good to go.

Also make sure you don't have a direct parent folder inside the archive, basically the extension MUST look like this inside the archive:

catppuccin.flex/ (archive file)
    extension.json
    stylesheets/
        theme1.json
        ...

and NOT like this:

catppuccin.flex/ (archive file)
    catppuccin/
        extension.json
        stylesheets/
            theme1.json
            ...

patrickgold avatar Aug 11 '24 12:08 patrickgold

Thanks for clarifying @patrickgold, we discussed on our discord server and confirmed that the issue was the directory structure. We've verified that the format can be imported into the application and I'll be following the process outlined in the wiki for uploading to the marketplace soon, thanks again for your help!

sgoudham avatar Aug 11 '24 14:08 sgoudham

Hey @patrickgold,

Unfortunately I think I've hit an issue that's entirely my fault :smile:

I tested out creating a project earlier in the day with the extension id com.catppuccin.florisboard and then later on deleted it as I still had to finish up some refactors and thought I could recreate it without much hassle.

I'm now trying to create the project again with the same details as I did beforehand but now I'm running into this error below: image

I believe the package with the id com.catppuccin.florisboard is now a "ghost" project where I can't see the project on my profile but the system still thinks it exists, could you fix this on your end easily or would it require code changes first?

Sorry for the extra hassle!

sgoudham avatar Aug 11 '24 20:08 sgoudham

It was indeed a ghost project, I force deleted the draft project so you should be able to recreate the project now

patrickgold avatar Aug 11 '24 21:08 patrickgold

Thanks @patrickgold!

I've created a release on the page now - I'm guessing I can publish the page/project once the initial release has been manually verified?

sgoudham avatar Aug 11 '24 22:08 sgoudham

Basically every time you edit project meta data this needs to be sent to review and published, same for each release. For initial release both needs manual verification, but after that if you do not edit meta data only the release itself gets reviewed.

patrickgold avatar Aug 11 '24 22:08 patrickgold

Ahhh that might explain why I'm not seeing immediate updates to some of my project information. Apologies, I wasn't aware updates to any project metadata is sent for manual review on the initial publish!

Sorry if I've spammed some stuff on your end!

sgoudham avatar Aug 11 '24 22:08 sgoudham

You did not press publish yet so your whole project is still in draft, which does not trigger a review, so no spamming from your side :)

patrickgold avatar Aug 11 '24 22:08 patrickgold

Your project has been approved and is live here, thanks a lot for your work and being one of the first to publish on the addons store!

patrickgold avatar Aug 11 '24 23:08 patrickgold

Great! Thanks to you too for reaching out and getting us involved. I'm sure there are some new theme keys outlined in your wiki that we'll need to have a go at theming too.

I'll be closing this issue as resolved now, best of luck with future development of FlorisBoard!

sgoudham avatar Aug 11 '24 23:08 sgoudham