View Single Post
Old 11-25-2015, 08:01 AM   #41
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 6,092
Default

The header version showcased by mpl is actually not the last version I proposed.

Here the last one:
ReaScript: Template Script, Header and Loops & ReaScript Updater Idea (step 1) - Cockos Confederated Forums

The difference is that versions infos is not in the header but in the changelog below,
and there is screenshots and instruction usage

Note that this header is based on WordPress plugins and and Themes header, a way to internally write metas which have proven to be efficient on more than 20% on the websites wolrdwibe.
It is humanly readable and can be easily parse by applications.
WordPress use this header to determine the version of the plugins you use, and check against the official repo to see if there was an update.

Because I wanted the changelog to be part of scripts, and to avoid information redondance, the changelog is written below the header, an efficient way (with YYYY-MM-DD iso date format.

I already build a scripts that can analyse this header.



So we can say it works, and it is eel/lua friendly. I use it in all my 270 scripts.

As you can see, I use a script to populate an spreadsheet that list all my scripts.
With spreadheets you can do things you can't easily do from a github repo, like building a responsive/searchable/filterable table from all your scripts database, and having a RSS feed for your updates.
This is things that are printed on my ReaScript Pack page. (The last updates section is printed from the RSS feed of my spreadsheet).

Also note that checking a script collection against a simple spreadsheet may be easier than checking against a full repo, which would require to check individual files header for a potential script update (unless you plan to make it redownload all files everytime).

Having a resource library as spreadsheet have some advantages:
  • Low maintenance needs (anyone who as branch conflict in git knows what I'm takling about). It is just a spreadsheet.
  • Coders free to choose their distribution platform (an individual link page could be added, with a link to the raw file for downloading the ressource - tssi can also be applied in script header) / gitlab / github / stash / ftp. This means independence.
  • No need to learn git for those who don't want to, or to be part of the team.

Having a git based resource repo do have an avantage:
  • A nice download zip button
The spreadsheet format (or at least XML format) resource based libraries is actually what most system I checked used. It worth taking a look at how code editor are doing it because there do it prettey well (Atom, Bracket, Notepad++)...



In order to see how an updater can be reproduced, I also tried to make some investigation about Lua Socket library.


Q: Lua Socket Installation - Cockos Confederated Forums


Indeed, we in fact already have a way to analyse a script header, it would be easy to make it scan a whole folder with subfolder and so the next step is just to access the spreadsheet with FTP. But sure if the project goes beyond a scripts updater, having an extension / third party program with more advanced GUI libraries would be far better.
But having an extension so that we can withing REAPER check, download, and install scripts without restart would be far more user-friendly.


Sorry if my answer is poorly construct, I lack of time to be fully invested, and this thread is going pretty fast.


In resume:
  • Common scripts header ?
  • Common integrated changelog format ?
  • Common GitHub or simple Spreadsheet ?
  • Udpater, Browser with individual ressource download or Full Pack Downloader ?
  • Focus on JSFX/ReaScripts or all kind of ressource ?
For the moment, I choose independence, but I'll follow this discussion with a lot of interest.


Note: IMO, individual download would be the best if this thing is meant to evolves with other kind of resource such as projects templates, configzip and theme. and because these doesn't have header to be parsed, spreadsheets, with the last version colum, seems the only way to push updates.


I wish installing resource for REAPER would be as easy as within Atom. Package Browsing, individual download, auto-updates... This is cool


But once again, individual download may not be very nice for scripts and JSFX.


Waiting for your thought about all this !


--
can you remind me what is wrong with underscore in scripts names ?
X-Raym is offline   Reply With Quote