Topic: Opinions about Update Function  (Read 1537 times)

Opinions about Update Function
« on: December 20, 2017, 01:01:52 PM »

ied206

  • Moderator,
  • Chef
  • *****
  • Location: South Korea
  • Date Registered: Jan 2014
  • Posts: 257
WinBuilder has its own update scheme (updates.ini), and BLExactServer also use that file for getting informations.
I want to put native update function in PEBakery, and these are options:

1) Compatible with WB082 updates.ini
More specifically, compatible with BLExactServer.
It will allow PEBakery to go along with WB082 while PEBakery becomes more stable.

2) New Scheme
We can design new update information format to put/get more details.
Ex) Put Revision as well as Version

Any ideas?
« Last Edit: December 20, 2017, 01:02:05 PM by ied206 »

Re: Opinions about Update Function
« Reply #1 on: December 20, 2017, 01:22:43 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 10350
Hi ied206,

Reminding BLExactServer also open source
 we can change things....

*
Update button behaviour for a single plugin should be:

Download plugin from server (a) to a default location (b)
Than If plugin already exists, copy plugin setting (interface)
Than copy from default location (b) to plugin folder (c)
Restore settings on plugin (c)

with other words:
end user have exact plugin from server a=b
end user update plugin with personal settings c before=c after as default.
=>
This Also Provides option to get default project by simply restore without personal settings.
( like smart phones -> Factory Default)


*
Yes revision will be easy,
just support standard version numbers at Version=
ex:
6.56.54.54
at the point we totally leave wb side by side with shitland behind.
 I will be very happy to use revisions on plugins.  :yahoo: :celebrate:

*
Before starting this,
Better have syntax to save and restore plugin settings (interface)
If you implement without such thing,
End users complain about not preserving default settings.
->
There are things to consider,
See sourcecodes of PluginManager .....


*
And even before that,
Better have syntax for "Refresh Plugin" button
http://theoven.org/index.php?topic=2326.0
..


See You on next post......

Re: Opinions about Update Function
« Reply #2 on: December 20, 2017, 02:20:41 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 10350
Hi ied206,

Further:

When you download a file from server:

First , Definition "download base folder"
%BaseDir%\Workbench\Common\Download_Win10PESE
( maybe an option at script.project [Main] DownloadLocation=%BaseDir%\Workbench\Common\Download_Win10PESE )

+
giving example:
http://win10se.cwcodes.net/Projects/Win10PESE/Apps/File%20Tasks/Q-Dir_Nenad.script

%BaseDir%\Workbench\Common\Download_Win10PESE\Projects\Win10PESE\Apps\File Tasks\Q-Dir_Nenad.script

If md5 do not match than plugin requires download (check mark on plugin left on "Updates screen" default enabled)


Further Plugin download:

(a) http://win10se.cwcodes.net/Projects/Win10PESE/Apps/File%20Tasks/Q-Dir_Nenad.script

(b) so default location be: %BaseDir%\Workbench\Common\Download_Win10PESE\Projects\Win10PESE\Apps\File Tasks

but first better download to a temporary folder (ex: %BaseDir%\Workbench\Common\Download_Win10PESE\Temp)

If there exist previous file:
If "Backup" option enabled (no required now but better to inform now for "Backup" option )
(
+
If md5 of both files same
%BaseDir%\Workbench\Common\Download_Win10PESE\Temp\Q-Dir_Nenad.script
%BaseDir%\Workbench\Common\Download_Win10PESE\Projects\Win10PESE\Apps\File Tasks\Q-Dir_Nenad.script

OverWrite (Copy)
%BaseDir%\Workbench\Common\Download_Win10PESE\Temp\Q-Dir_Nenad.script
%BaseDir%\Workbench\Common\Download_Win10PESE\Projects\Win10PESE\Apps\File Tasks\Q-Dir_Nenad.script

)
+
If md5 different save a copy

IniRead Version at (ex: 023)
%BaseDir%\Workbench\Common\Download_Win10PESE\Projects\Win10PESE\Apps\File Tasks\Q-Dir_Nenad.script
and check if there exists
%BaseDir%\Workbench\Common\Download_Win10PESE\Backup\Win10PESE\Projects\Apps\File Tasks\Q-Dir_Nenad_v023.script

(
-> If there not exists than
Copy
%BaseDir%\Workbench\Common\Download_Win10PESE\Projects\Win10PESE\Apps\File Tasks\Q-Dir_Nenad.script
%BaseDir%\Workbench\Common\Download_Win10PESE\Backup\Win10PESE\Projects\Apps\File Tasks\Q-Dir_Nenad_v023.script

-> If there already exist
%BaseDir%\Workbench\Common\Download_Win10PESE\Backup\Win10PESE\Projects\Apps\File Tasks\Q-Dir_Nenad_v023.script
Than
Copy
%BaseDir%\Workbench\Common\Download_Win10PESE\Projects\Win10PESE\Apps\File Tasks\Q-Dir_Nenad.script
%BaseDir%\Workbench\Common\Download_Win10PESE\Backup\Win10PESE\Projects\Apps\File Tasks\Q-Dir_Nenad_v023_20171220164743.script
(
)



==>
If you get this work, you get Update button download to "download base folder" exact same folder.
(same with blexact)

ps:
On Update screen
You can also add "check server" button to check all md5 info of "download base folder" with server

ps:
Reminding:
Projects have 2 kind of location, one with subfolder \Projects\ other without
see difference:
http://win10se.cwcodes.net/Projects/Win10PESE/Apps/File%20Tasks/Q-Dir_Nenad.script
http://yomi.cwcodes.net/Yomi/AppY/Accessibility/applemou_RH_Designs.script


ps:
See blexactserver have options to make sure all files downloaded. You can add required ones to PEBakery (retry download etc.)
Connection Attempts 5 - Wait 2 seconds
-> problems caused by server
AutoReprocess If failure
->
This can be faster with PEbakery, just again try to download same file with failure at the end of all downloads.
Failure maybe caused by active upload of a plugin etc.


ps:
blexactserver have MD5 fix option. This is not required anymore. We update servers without need for such option.


*
We can even have syntax to download all project from a server to a folder.

DownloadProject,%BaseDir%\Workbench\Common\Download_Win10PESE,http://win10se.cwcodes.net/blabla.ini,5|2|0
(
5|2|0
Connection Attempts 5
Wait 2 seconds
AutoReprocess If failure 0
)
to get exact copy of project from server.


===>
This way I can replace blexact lines with DownloadProject, syntax on Utils\Update .... plugin so we can get feedback from end users.


Too long posts, I hope It is all clear what I am after.  :wink:

:turtle:

Re: Opinions about Update Function
« Reply #3 on: December 20, 2017, 03:33:38 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 10350
Hi ied206,

one more thing :

You do not need to work "update" function for now.
There are much more things to write on updating downloading plugins and files .....

All active projects now use their own "download plugin" one way or another after we add to projects.
Even in following 5 years without you, they might have Download / Upload buttons on plugins following us.  :lol:
..


To me priority is :
1) getting rid of wb with getting PEBakery stable enough
2) faster builds with better syntax
3) missing things we feel important so many years (like warning things or some syntax we missed)

"The Day" we get rid of wb,
we can continue enhancements and features like current topic "Update Function"

And you can spend your valuable free time to get PEBakery stable and ready to replace with current builder.
- Interface Editor
- Maybe Internal Editor (to edit plugins)
---- Wand option with internal editor (hopefully fixed and better)
....

:turtle:

Re: Opinions about Update Function
« Reply #4 on: December 20, 2017, 03:56:04 PM »

Homes32

  • Code Baker
  • Chef
  • ***
  • Date Registered: Dec 2010
  • Posts: 177
A couple thoughts.

With regard to individual script updates I like the idea of having a builtin button (by the edit and plugin run buttons) that would fetch a plugin specified in the plugin similar to what lancelot suggested above.
Not all plugins are distributed in projects so this would give indi-developers a distribution channel without the need for a full blown update server. De-centralization is important, gives developers freedom, and provides better long-term support (projects and servers come and go)...
Code: [Select]
[Main]
// url to download and flag to indicate if its compressed and needs extraction
PluginUpdate=<url>, [extract]

Options for setting restore and backup of existing plugin would be nice. Obviously there will be exceptions if interface component names change, etc but that is to be understood.

User: Press download button
Dialog: The plugin will be downloaded and overwritten. Do you want to save your current settings? (Yes/No/Cancel)
Process:
  • Download plugin to temp location, extracting from .zip/.7z if required
  • read settings if needed and write them to new plugin. Give a warning if a particular setting/component was not found
  • rename old plugin to pluginName.script.<timestamp>
  • remove old pluginName.script.<timestamp> older then xx number of copies (PEBakery setting)
  • rescan the plugin



Re: Opinions about Update Function
« Reply #5 on: December 20, 2017, 04:08:12 PM »

Homes32

  • Code Baker
  • Chef
  • ***
  • Date Registered: Dec 2010
  • Posts: 177
just support standard version numbers at Version=
ex:
6.56.54.54

 I will be very happy to use revisions on plugins.  :yahoo: :celebrate:

:great: Yes to this!!!
I prefer standard versioning  Major.Minor.BugFix.Build


I see no reason to keep the old wb update method if a better one can be implemented. I prefer something that could be decentralized and specified by users and/or the project maintainer, rather then PEBakery checking a hardcoded URL for a server list. For example perhaps the update url for the project is specified in script.project.

For update checks on a server I would use version above for primary check and date as a secondary check (in the event versions are the same the most recent date is considered newer)

I'll agree with lancelot that a "download" center should be lower priority compared to an interface editor. code editor is less important to me as I prefer Notepad++

 

Powered by EzPortal