Aminet Release - How to

Find quick help here to get you started with Hollywood
User avatar
jPV
Posts: 600
Joined: Sat Mar 26, 2016 10:44 am
Location: RNO
Contact:

Re: Aminet Release - How to

Post by jPV »

LarsB wrote: Thu Nov 07, 2019 1:55 pmIf you have to add/install something additional it might be deterrent to the potential user. Thats why I also prefer to link plugins instead of referring to the HOLLYWOOD Mal.
I don't like to link plugins on Amiga compatibles, because:
  • There will be useless writes to the HD each time you run the program, because it "unpacks" the plugin to the temporary SYS:Storage/Hollywood directory and deletes it from there when you quit the program.
  • The "unpacked" temporary plugin only gets deleted if you quit the program in a clean way. If your machine crashes or if you reboot/shutdown the machine without first quitting the program, the temporary plugin will be left on the HD. Next time you launch the program again, a whole new temp plugin will be written to the HD, and you might end up with unlimited amount of copies of the same plugin file on the HD.
I also don't like to have the plugin files installed globally in the SYS:Libs/Hollywood, because:
  • All the plugins found in that directory will be loaded in the memory each time you launch a Hollywood application, even when it doesn't require it. Only option to disable this feature is to launch the program with the SKIPPLUGINS=* option.
  • Even though you can spread your program with the SKIPPLUGINS=* tooltype, but others don't necessarily do that with their programs and you should then remember to add this tooltype manually for the each program you use.
  • When starting programs from shell, the tooltype won't be enough, but you'll have to give a command-line argument to skip the plugins. You can't expect users would do that, or even you to remember and bother to write that argument always.
  • If a user decides to clean the global plugin directory or does a fresh install of the OS, then your program fails to start until he downloads/installs the plugin again.
So, this is why I prefer to publish my programs with the required plugin files in the same directory with the program and I don't encourage users to install them globally. Hollywood applications load them from the program's directory automatically and you don't need any global installation of the plugins. Only small disadvantage is that it consumes little more HD space if you have many Hollywood applications requiring the same plugins, but I find it the least annoying solution. Most of us have enough HD space for that nowadays anyway.

Here's my checklist for an Aminet release:
  • Create a separate program directory for each platform, and create an icon for the directory too.
  • Copy the required platform specific plugin files to the directory with the executable.
  • Add the SKIPPLUGINS=* tooltype for the executable's icon.
I've decided to go with separate archives for each platform (Classic, OS4, MorphOS, AROS), especially when I have plugin files included. Then you can use different kind of icons clean way too. For example, MorphOS has nice "graphicless" icons and I use those as directory and readme icons. They are very small by size and use the graphics user has set as his default icons... so your program icons adapt automatically to users' icon themes always.
LarsB
Posts: 72
Joined: Sat May 06, 2017 4:37 pm

Re: Aminet Release - How to

Post by LarsB »

Ahhhhh,.... :D

Lets see what I can do ;)
LarsB
Posts: 72
Joined: Sat May 06, 2017 4:37 pm

Re: Aminet Release - How to

Post by LarsB »

Hm,.. now I have the choice between glowicons and newicons. I dindt thought this becomes rocket sience ;) ;)
LarsB
Posts: 72
Joined: Sat May 06, 2017 4:37 pm

Re: Aminet Release - How to

Post by LarsB »

@jpv Thank you for the hq answer. Making thoughts about it. I have to experimentate. For now I cannot exclude that I will link the plugins. Why? One write more or less wouldnt kill the cat. And how often would it happen that the system crashes while playing? On the other hand you can spare carying about global plugins and tooltypes.

But I also see that your approach adding the plugin might work well in this sense.

@Andreas ..Is adding the ogg corbis to the program OK in the sense of copyright?
plouf
Posts: 462
Joined: Sun Feb 04, 2018 11:51 pm
Location: Athens,Greece

Re: Aminet Release - How to

Post by plouf »

LarsB wrote: Sun Nov 10, 2019 3:01 pm Hm,.. now I have the choice between glowicons and newicons. I dindt thought this becomes rocket sience ;) ;)
but thats the purpose of using newicons... (neiwcon icon format not necessary new look),
no choose only 1 option fit all
Christos
User avatar
airsoftsoftwair
Posts: 5425
Joined: Fri Feb 12, 2010 2:33 pm
Location: Germany
Contact:

Re: Aminet Release - How to

Post by airsoftsoftwair »

jPV wrote: Sun Nov 10, 2019 11:00 am I also don't like to have the plugin files installed globally in the SYS:Libs/Hollywood, because:
  • All the plugins found in that directory will be loaded in the memory each time you launch a Hollywood application, even when it doesn't require it. Only option to disable this feature is to launch the program with the SKIPPLUGINS=* option.
  • Even though you can spread your program with the SKIPPLUGINS=* tooltype, but others don't necessarily do that with their programs and you should then remember to add this tooltype manually for the each program you use.
  • When starting programs from shell, the tooltype won't be enough, but you'll have to give a command-line argument to skip the plugins. You can't expect users would do that, or even you to remember and bother to write that argument always.
  • If a user decides to clean the global plugin directory or does a fresh install of the OS, then your program fails to start until he downloads/installs the plugin again.
This behaviour might be changed in the future so that plugins from LIBS:Hollywood will only be loaded if a script explicitly requests it. But I'm still making up my mind about this. Thoughts on this are always welcome.

My reasons for changing the behaviour:
  • if newer versions of plugins introduce some incompatibilities to older versions, this can break existing applications loading plugins from LIBS:Hollywood -- this is quite a significant point because RapaGUI 2.0 has some incompatibilities to RapaGUI 1.x
  • it takes lots of time and memory to load all the plugins, especially on OS3
  • on other platforms, there is no global storage for plugins either; they have to be in the program's directory (or linked to the executable) on other platforms
...
plouf
Posts: 462
Joined: Sun Feb 04, 2018 11:51 pm
Location: Athens,Greece

Re: Aminet Release - How to

Post by plouf »

[*] if newer versions of plugins introduce some incompatibilities to older versions, this can break existing applications loading plugins from
however a script is unable to know if a possible future version will break it
logically future "broking" plugins must be called diffirent
i.e. in you example polybios 2 must be called polybios2.hwp
since traditional libraries and plugins are future proof
you can install new reqtools.library to fix issues of older version etc
Christos
User avatar
airsoftsoftwair
Posts: 5425
Joined: Fri Feb 12, 2010 2:33 pm
Location: Germany
Contact:

Re: Aminet Release - How to

Post by airsoftsoftwair »

plouf wrote: Tue Nov 12, 2019 5:05 am however a script is unable to know if a possible future version will break it
logically future "broking" plugins must be called diffirent
i.e. in you example polybios 2 must be called polybios2.hwp
since traditional libraries and plugins are future proof
you can install new reqtools.library to fix issues of older version etc
Strictly speaking you're right, but I still don't plan this for RapaGUI 2.0 because there's an incompatibility only in very special cases which probably doesn't affect any of the RapaGUI apps around.
plouf
Posts: 462
Joined: Sun Feb 04, 2018 11:51 pm
Location: Athens,Greece

Re: Aminet Release - How to

Post by plouf »

this decision in even worse

so usually everythink will work, and some very special case something will broke, and develeper of this script
will blow its mind to found the bug, which
a) not mentiom anyware
b) must have this conversation in its mind !!!

additional (maybe) a proper scirpt work perfect, and sudenly somethink will not work
so the user, (maybe after a fresh install of the OS) will have somethink broken !

considering that everything usually will work, will make bug hunting even more difficult !
Christos
User avatar
airsoftsoftwair
Posts: 5425
Joined: Fri Feb 12, 2010 2:33 pm
Location: Germany
Contact:

Re: Aminet Release - How to

Post by airsoftsoftwair »

Of course it'll be properly documented. So whenever someone installs RapaGUI 2.0, there'll be a warning what exactly the incompatibility is about so scripts can be adapted (although that won't be necessary in most of the cases)
Post Reply