How to properly release something out to the wild

The place for any Hollywood tutorials
Post Reply
User avatar
lazi
Posts: 330
Joined: Thu Feb 24, 2011 11:08 pm

How to properly release something out to the wild

Post by lazi » Fri Mar 01, 2019 10:20 am

As I can see, there is a frequent problem of Hollywood programmers to make a release that works on clean systems.
At least the forums which I read often has posts about Hollywood programs which don't start because of missing files, plugins, etc.

The question is: How could we help Hollywood developers to release more fail safe programs?

Should we create a guide with a checklist?
Should we develop a tool that check dependencies?

What do think about this?

A possible checklist may start like this, just for example:

1. You should not assume user has already installed any plugin .
- Check what plugins your script requires.
- Link plugins at compile time or copy plugin files beside the program file.

2. You should not assume user has the font you used,
- Check what font your script using statically.
- Has that font got the targeted OS distributions?
- Can you link that font without copyright issues?

...

p-OS
Posts: 103
Joined: Mon Nov 01, 2010 11:56 pm

Re: How to properly release something out to the wild

Post by p-OS » Fri Mar 01, 2019 11:31 am

Good approach !

Indeed the quality of deployments could be better. And regarding Amiga Software not only Hollywood programs, but other SW , too.

Within the last few years the quality decreased for:

1. deployment itself:
Missing Docs, missing dependant files, no Icons, no Install-Scipt (if necessary), no Readme

2. fine tuning the application. Often it is realeased as soon as the desired functionality works at all.
tags: Tooltip Help ; contextsensitive Help (calling external Help Files); ready for localization; start script (if necessary) ; properly tested

Bugala
Posts: 742
Joined: Sun Feb 14, 2010 7:11 pm

Re: How to properly release something out to the wild

Post by Bugala » Fri Mar 01, 2019 10:09 pm

Agree with this post it would be good to have something like a checklist for example. I have more than once forgot to link the font and things have failed on other end due to that. Especially when in middle of project sending something for someone to test something.

User avatar
airsoftsoftwair
Posts: 2968
Joined: Fri Feb 12, 2010 2:33 pm
Location: Germany
Contact:

Re: How to properly release something out to the wild

Post by airsoftsoftwair » Sun Mar 03, 2019 12:48 pm

I think a good idea is to have a plain test system that has neither Hollywood nor any other 3rd party software installed. Then you'll easily see if things are missing.

bitRocky
Posts: 105
Joined: Fri Nov 14, 2014 6:01 pm

Re: How to properly release something out to the wild

Post by bitRocky » Sun Mar 03, 2019 1:51 pm

How about if Hollywood would let the user choose to install a missing plugin?

What I mean is, if a Hollywood compiled executable (or an applet) is started but a required plugin isn't available, a requester could pop up asking the user to download and install the missing plugin?

So not each developer has to add a check for the plugin, or has to link each required plugins into the executable, but Hollywood itself would handle this.

This would be the easiest for the developers AND the users!

User avatar
jPV
Posts: 237
Joined: Sat Mar 26, 2016 10:44 am
Location: RNO
Contact:

Re: How to properly release something out to the wild

Post by jPV » Sun Mar 03, 2019 2:30 pm

I have taken an approach to bundle all the required plugins in the program directory that I distribute. Hollywood finds them there and no installation is needed.

I personally don't want the plugins to be installed globally, because then they get loaded by all Hollywood programs even though they won't need the plugins. It's just waste to get them loaded by programs that don't actually need them for anything. The automatic loading can be prevented by the "skipplugins" option, but it has to be defined separately for each program, and can't be assumed that users would use the option when they launch programs from the shell etc.

So, if the program contains the required plugins in its directory, you don't need any installation scripts and user doesn't need to worry about the installed plugins. Might waste some HD space because several programs may contain the same plugins, but I don't think that's a problem nowadays. And the same waste would happen if the plugins would be linked in the executable... actually when plugins are just distributed in the program directory, users can remove/update it easily too if they know what they're doing.

bitRocky
Posts: 105
Joined: Fri Nov 14, 2014 6:01 pm

Re: How to properly release something out to the wild

Post by bitRocky » Sun Mar 03, 2019 3:21 pm

jPV wrote:
Sun Mar 03, 2019 2:30 pm
I personally don't want the plugins to be installed globally, because then they get loaded by all Hollywood programs even though they won't need the plugins. It's just waste to get them loaded by programs that don't actually need them for anything.
Ok, I didn't knew that, I thought they are loaded when needed.

Then your way to put all needed plugins in the same directory is indeed better.

zylesea
Posts: 198
Joined: Tue Feb 16, 2010 12:50 am
Location: Westfalen/Germany
Contact:

Re: How to properly release something out to the wild

Post by zylesea » Sat Mar 09, 2019 12:46 am

Maybe we should approach Andreas to change Hollywoods plug in loader to a behaviour that Hollywood only loads the plugins actually listed by @require? Or is there a reason Hollywood loads them all?

User avatar
jPV
Posts: 237
Joined: Sat Mar 26, 2016 10:44 am
Location: RNO
Contact:

Re: How to properly release something out to the wild

Post by jPV » Sat Mar 09, 2019 11:24 am

zylesea wrote:
Sat Mar 09, 2019 12:46 am
Maybe we should approach Andreas to change Hollywoods plug in loader to a behaviour that Hollywood only loads the plugins actually listed by @require?
That wouldn't be good, because some of the plugins are like datatypes, and user can add them to get programs support new formats without having to get recompiled versions of the programs (which might be difficult or even impossible).

Quickly thinking I would like that Hollywood would only load plugins defined with @REQUIRE, but then load other plugins automatically in run-time if a script would try to load some data that might benefit from certain plugins. But I guess that could get complicated and Hollywood should internally know somehow for what the plugins are made for etc. I bet Andreas has thought of these things much better than me now :)

BTW. Hollywood documentation states it like this:
When distributing a compiled Hollywood program, plugins required by your program must simply be put into the same directory as your program.
If anything bigger won't be changed, I would like to have some preprocessor command to skip plugins loading and make program only load the plugins defined with the @REQUIRE... SKIPPLUGINS as a tooltype or cli option isn't that reliable and is easy to lose.

User avatar
airsoftsoftwair
Posts: 2968
Joined: Fri Feb 12, 2010 2:33 pm
Location: Germany
Contact:

Re: How to properly release something out to the wild

Post by airsoftsoftwair » Sun Mar 10, 2019 4:02 pm

I've indeed thought about this issue but haven't made up my mind about it yet. Of course the automatic plugin loader on Amigaoids is somewhat unique because on all other platforms there is no such thing except when running scripts from the Hollywood GUI or IDE but not for compiled programs so the Amiga behaviour is somewhat inconsistent which is something I'm normally trying to avoid. But of course the datatype-like functionality of the format plugins is quite a nice feature... it's all a little complicated ;)

Post Reply