Re: Update mechanism for standalone app/ Delta Updates

"Bastian Eicher" <[email protected]> Thu, 23 Feb 2017 18:45:05 +0100
Newsgroups gmane.comp.file-systems.zero-install.devel
Message-ID <[email protected]>
Hi Thomas,

I would suggest something like <copy-from id='sha256=...'/> instead of <copy-from sha256='...'/> where the ID must exactly match the ID used by one of the implementations in the same feed. This way, if an implementation specified multiple manifest digests the <copy-from> step could "know" about all of them without having to repeat them all.

I can implement support for this in the Windows version of Zero Install. I'll also poke around in the OCaml code to see if I can manage a Linux implementation, but no promises.

Regards
Bastian


-----Original Message-----
From: Thomas Leonard [mailto:[email protected]] 
Sent: Mittwoch, 22. Februar 2017 21:00
To: The Zero Install system <[email protected]>
Subject: Re: [Zero-install-devel] Update mechanism for standalone app/ Delta Updates

On 22 February 2017 at 08:35, Bastian Eicher <[email protected]> wrote:
[...]
> Zero Install also has the concept of “recipes” that allow 
> implementations to combine multiple archives or other steps like 
> renames or removals. For
> example:
>
> <implementation version="1" id="sha256=abc">
>   <archive href=".../myapp-v1.zip"/>
> </implementation>
>
> <implementation version="2" id="sha256=xyz">
>   <recipe>
>     <archive href=".../myapp-v1.zip"/>
>     <archive href=".../myapp-v2-delta.zip"/>
>   </recipe>
> </implementation>
>
> However, this would only save you from having to upload large updates. 
> When downloading v2 Zero Install would still need to re-download v1 as 
> well because it does not know that the existing sha256=abc 
> implementation corresponds to the myapp-v1.zip archive recipe step.
>
> @Thomas: Perhaps we could introduce a new recipe step to handle this, 
> for
> example:
>
> <recipe>
>   <implementation id="sha256=abc"/>
>   <archive href=".../myapp-v2-delta.zip"/> </recipe>
>
> What do you think?

I think that's exactly the right way to do it. I can't remember if we agreed a syntax (gmane still isn't fully back up so the link on the roadmap page is broken). Possibly we shouldn't create any more elements called <implementation>, to avoid confusion. Maybe something like this:

<recipe>
  <copy-from sha256='...'/>
  <archive href=".../myapp-v2-delta.zip"/> </recipe>

I'm not finding I have a lot of free time these days, but if someone wants to try it shouldn't be much work. Older versions of 0install will automatically skip <recipe>s with unknown elements.


-- 
talex5 (GitHub/Twitter)        http://roscidus.com/blog/
GPG: 5DD5 8D70 899C 454A 966D  6A51 7513 3C8F 94F6 E0CC
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________
Zero-install-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/zero-install-devel


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Zero-install-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/zero-install-devel