rabbibotton / clog

CLOG - The Common Lisp Omnificent GUI
Other
1.49k stars 102 forks source link

Please, move large static images out from this repository #159

Closed svetlyak40wt closed 2 years ago

svetlyak40wt commented 2 years ago

Ultralisp builds a new archive for the CLOG on each push to the GitHub.

Right now archive weight is 10 megabytes. Sometimes you push very often and this eats Ultralisp's storage at Amazon S3.

I've investigated the reason of the large weight and found – there is a few large background images in the static dir.

image

Could you please move them to some CDN or (if they should be installed via ASDF) into a separate repository with it's own asdf system CLOG-STATIC? This way you still will be able to use them and the main CLOG archive will take a lesser disk space. Also, final CLOG users will download it faster.

rabbibotton commented 2 years ago

Will work on today, sorry about that!

svetlyak40wt commented 2 years ago

Cool! Thank you!

rabbibotton commented 2 years ago

I reduced the space. I also signed up to send you something on patreon, hopefully more in future. My hopes are to encourage people to publish their CLOG custom controls and projects on UltraLisp, it is really awesome :)

Maybe you could add a feature to set frequency of updates to UltraLisp and manual override to update sooner in addition to the every update to github?

svetlyak40wt commented 2 years ago

Maybe you could add a feature to set frequency of updates to UltraLisp and manual override to update sooner in addition to the every update to github?

I'm thinking about it. Right now it triggered by a webhook, or checks repository by cron. Period of cron checks depends on the time between last update and previous check (here is the source). This way, if there is now webhook for the repository, it will be checked with interval from 1 hour to 1 week. Projects which are updated more frequently, will be checked more frequently.

I can extend this euristic and add a minimal-check-interval setting for a project source. It will influence a minimal period of a check by cron and will postpone checks caused by a webhook in case, if time since last check is less than minimal-check-interval. This way we'll be able to set this parameter to 4 hour for CLOG, and it will be updated no more than 6 times per day.

What do you think, David?

svetlyak40wt commented 2 years ago

My hopes are to encourage people to publish their CLOG custom controls and projects on UltraLisp, it is really awesome :)

Talking about CLOG extensions, I think it would be cool to have some sort of tags for projects at Ultralisp. It will allow these extensions to have a clog-plugin. And also it will be possible to make an API and use it right from CLOG to discover and install components right from it's interface!

I wanted to implement something like this for LEM editor.

rabbibotton commented 2 years ago

I think a four hour window would be ok when there are lots of updates, although admittedly I really like that changes are near instant :)

I am, either way, going to rethink the structure a bit as a good solution is needed. If I have a plugin that requires certain resources (img, js, etc) how to update them in client projects when an update is made to the plug-in etc. It is not reasonable to ask someone to manually copy to their project resources like in the clog-typeahead example.

<>

I think that is a very cool idea. I plan on adding a project facility to builder and that would be an awesome combo.

aykaramba commented 2 years ago

All of this is amazing. Alexander, love Ultralisp as well.

rabbibotton commented 1 year ago

Talking about CLOG extensions, I think it would be cool to have some sort of tags for projects at Ultralisp. It will allow these extensions to have a clog-plugin. And also it will be possible to make an API and use it right from CLOG to discover and install components right from it's interface!

Any chance you took this any further? I plan on adding a registry of add ons asap but would rather do via UltraLisp if there is interest on your part?

svetlyak40wt commented 1 year ago

I'd like to add an API, but for now I want to create a CI/CD pipeline for Ultralisp first, because otherwise releasing process takes too much effort.

I think, we could make an tags and API during the September.

rabbibotton commented 1 year ago

Fantastic :)

rabbibotton commented 1 year ago

A CLOG based CI/CD sounds also interesting ;) One of the next projects I want to tackle post Builder are efficient team tools for Lisp and figuring out the needed procedures and tools to make it work while still maintaining the style of dev that makes lisp lisp (even more than the lang itself).

svetlyak40wt commented 1 year ago

I don't think CI/CD pipeline can/should be made more lispy. However, some parts of it can be simplified using Lisp. For example, I'm using Common Lisp instead YAML to configure CI workflows of my projects. Here is small project helping to translate Common Lisp to GitHub workflows: https://40ants.com/ci/