Dumb deployment question

Trevor DeVore lists at mangomultimedia.com
Wed Jan 25 18:19:08 EST 2017


On Wed, Jan 25, 2017 at 2:49 PM, Malte Brill via use-livecode <
use-livecode at lists.runrev.com> wrote:

> Now, I would really like to make the first serious standalone using 8.x
> (final might be using 9.x). This is still a bit ahead, but I want to
> prepare. I would really like to work with script only stacks. But what do
> we need to do to have them available as library in a standalone. Right now
> I am being lazy with my project and make regular stacks a substack of my
> mainstack, which I then start using. How would I go about this with a
> Script only stack, which appears to be only a text file, right? Upside
> until now was quasi single file distribution, but I could very well live
> with breaking that. Any good tips on deployment?
>

Hi Monte,

I bit the bullet in early November and started moving ScreenSteps over to
script only stacks. My goal was to store my files in a VCS-friendly way (as
much as possible). I moved all code over 3-5 lines out stacks and into
script only stacks. To facilitate this I added some utilities to the PI in
LC 9 that make it easy to create script only stacks from stacks you have
open in the IDE. If you are going to convert an existing app over then I
would suggest doing the conversion in LC 9. You can then go back to LC 8 if
you want for working on the app.

I’ll describe the basics of what I did.

All of my libraries are individual script only stack files. When I package
up the application I create a “Libraries” stack and make all script script
only stacks that are libraries a sub stack of this stack. The standalone
just loads a single stack file. I do the same for front and back scripts as
well.

For script only stacks used as behaviors it depends. For behaviors that are
used generally I treat them as library stacks and package them up into a
single stack. Every stack used for UI was moved into its own folder with a
“behaviors” folder that sits alongside the stack file. All code related to
the UI stack goes into script only stack files in that “behaviors” folder.
These behaviors are just converted to regular stack files when I package up
for distribution. The behavior stack files are assigned to the stackfiles
property of the UI stack using relative paths. They are automatically
loaded by the engine when the UI stack opens.

Having all of the code in text files has worked really well so far. Working
with git has become really easy for scripts and I have been keeping an
exact history of changes through git commits. Having everything in git
makes it really easy to move between computers as well. Just checkout the
latest and I’m ready to get to work. The stack files are another story but
that is a problem for another day. Script only stacks also allowed me to
move over to Sublime Text for all of my script editing. I put together a
LiveCode plugin and linter and coding is much faster as I can jump around
in the code really quickly. The plugin also communicates with my LiveCode
app and refreshes scripts whenever I save in Sublime Text so I can edit
while editing my app in LiveCode.

In order to make managing a script only stack-centric application easier I
created a new application framework - Levure. You can see what I’ve done so
far here:

https://github.com/trevordevore/levure

It use YAML for configuration and has a modular design. It manages building
standalones and packaging everything up for deployment. I’ve been refining
it over the last 2 1/2 months and there is still more work to do. I will be
building an app to distribute to customers before the end of January though.

Let me know if you have any further questions.

-- 
Trevor DeVore
Outcome & ScreenSteps
www.outcomeapp.io     -     www.screensteps.com



More information about the use-livecode mailing list