[Scilab-users] ATOMS packages manager: missing packages in categories => FIXED!

Samuel Gougeon sgougeon at free.fr
Mon May 29 23:19:16 CEST 2017


Hello,

Since the ATOMS package manager exists (Scilab 5.2), its client 
interface launched with atomsGui() has some weird and rather annoying 
troubles about categories: While a package is tagged in one or several 
categories on the ATOMS website, and while the package is well compiled 
and available for the OS and the Scilab version we use, it can be 
missing -- i.e. not listed / proposed to install -- in the given 
categories. Actually, it can be listed in one of its categories, and 
missing in another one. This puzzling behavior impedes a lot the 
interest in using the ATOMS GUI rather than the atoms functions. A pity !

Considering the number of hours passed to try to understand why, 
noticeably when trying to publish on the ATOMS system a new package or a 
new version of a package that commonly refuses to appear in the manager, 
i have managed to analyze and track this issue up to a solution. I've 
got it ! There was a thread that it was on the server (so private) side, 
but it is not the case.

The solution is committed here, aiming to make it available in Scilab 
6.0.1, when it will find a reviewer:
https://codereview.scilab.org/19273

*This fix works for all Scilab versions since 5.2 and up to Scilab 5.5.2 
*and 6.
Everybody can apply the patch on his/her Scilab, provided that one has 
/write access/ to the Scilab's installation directory.
*The how-to apply the patch is the following*:

  * --> oldd = pwd();  // save your current directory
  * --> edit("atomsDESCRIPTIONcat.sci", 114)
  * In the /categor//ies_flat/ section, replace

for i=1:size(category_names,"*")
if~isfield(categories_flat_out,category_names(i))then
categories_flat_out(category_names(i))=categories_flat_in_2(category_names(i));
end
end
         with

for i=1:size(category_names,"*")
if~isfield(categories_flat_out,category_names(i))then
categories_flat_out(category_names(i))=categories_flat_in_2(category_names(i));
else
// If the category is already registered, we concatenate the master
// and the new incoming lists of packages registered in it:
tmp_out=categories_flat_out(category_names(i))("packages");
tmp_in_2=categories_flat_in_2(category_names(i))("packages");
categories_flat_out(category_names(i))("packages")=[tmp_out;tmp_in_2];
end
end
         Then :

  * save the modification. In the console:
    --> predef clear        // unprotect the library name
    --> genlib atomsinternalslib  // recompile the library
    --> cd(oldd)            // go back to your working dir
    --> atomsSystemUpdate   // refresh your atoms list
    --> atomsGui()          // launch the manager, and enjoy, for ever :)

The issue was that as soon as a first package was installed from a 
category, it canceled the listing of all other packages proposed in its 
categories. So, the bug appeared or not for a category depending on 
packages already installed.

Hope this can save hours to other ATOMS users and authors

Samuel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20170529/275b51a9/attachment.htm>


More information about the users mailing list