livecode icon indicating copy to clipboard operation
livecode copied to clipboard

LCB: Package Specification

Open runrevmark opened this issue 10 years ago • 8 comments

The original (current) package format is specified in the script.h header file.

This is a revised package format specification which supersedes the one there which will be used for future iterations.

The current format is partially documented in sections with a (current) suffix - these will be removed when we move entirely to the new (revised) format.

Rendered version

runrevmark avatar Feb 24 '15 09:02 runrevmark

Per RFC 6838 I propose application/vnd.livecode.builder-package.

peter-b avatar Feb 24 '15 12:02 peter-b

I suggest using "Whole-archive signature" vs. "Per-file signature".

peter-b avatar Feb 24 '15 13:02 peter-b

In regards to the mime-type then we should perhaps think about these as a whole. We have the following files (currently) to think about:

  • LiveCode Builder Source Files
  • LiveCode Builder Compiled Modules
  • LiveCode Builder Packages
  • LiveCode Stacks (should script-only stacks be distinct mime-type wise?)
  • LiveCode Server Scripts

Perhaps we should have a different spec file dealing with mime-types for things in the LiveCode world?

runrevmark avatar Feb 25 '15 08:02 runrevmark

@runrevmark I agree. Let's defer MIMEtypes to a separate discussion.

  • I'd like to suggest using RFC 2119 in this spec.
  • You asked me to remind you to add a note about which hash to use.

peter-b avatar Feb 25 '15 09:02 peter-b

@runrevmark Can you add a bit about the unpacked representation? What about unpacking the ${LC_MODULE_DIR}/org.example.foo.lce package into the ${LC_MODULE_DIR}/org.example.foo.lce/ directory?

peter-b avatar Feb 25 '15 09:02 peter-b

@peter-b: Can you clarify what you mean? The unpacked representation is just the unpacked zip...

runrevmark avatar Feb 25 '15 10:02 runrevmark

Suppose we have a directory /path/to/dir/ in the module search path.

This directory is permitted to contain:

  • bare modules (.lcm files)
  • extension archives (.lce files)
  • presumably, unpacked extensions, which I'm assuming should be a directory

If the .lce file is unpacked directly, e.g. via

$ cd /path/to/dir/ && unzip org.example.foo.lce

then the contents are dumped into /path/to/dir/, which is presumably undesirable.

So the main question is: when I unpack org.example.foo.lce as an unpacked module in the search directory /path/to/dir, what should its directory be called?

peter-b avatar Feb 25 '15 11:02 peter-b

📝 Hi @runrevmark, I haven't been able to verify that you've signed our LiveCode Contributor's Agreement.

If you have previously signed the Contributor's Agreement, I may not be able to detect it because you haven't linked your GitHub account to your LiveCode account.

Please see the information for contributors for more information.

livecode-vulcan avatar Aug 31 '15 19:08 livecode-vulcan