Build 126+ : / Linux native port - Predictable batch file order merging

Hello,

Order of creating/merging plugin modules as batch is currently unpredictable. Sort order is defined in JSFilesComparator which only reflects file categorization (module, service, other..). Filename itself is not part of comparison.

Depending on OS directory enumeration which by nature is random is very likely  to get random merging order of batch files within same group. That's unpredictable behavior and uncertain/untested behavior. While on Windows it can be considered stable, enumeration on Linux platforms shuffles batch file and creating total chaos.

Proposed fixes:

1) Plugins handle change of load order correctly (hard to implement on existing code)
2) Extend JSFilesComparator to consider filename (for example) as secondary sorting condition (uppercase?). That would almost "fix" ordering of batch files but not completely eliminate issue.
3) Extend plugin definition to have a relative load priority number. A simple file? within plugin dir module.pri, whatever ?

Combination of 2&3 will fix merging order once and forever..

Thank you.

Enyx


Attachments
No attachments
  • Votes +1
  • Project StrategyQuant X
  • Type Feature
  • Status Moved
  • Priority Normal
  • Assignee None

History

DB
#1

Enyx

02.07.2020 14:26

Task created

DB
#2

Enyx

02.07.2020 14:44

2) Extend JSFilesComparator to consider filename (for example) as secondary sorting condition (uppercase?). That would almost "fix" ordering of batch files but not completely eliminate issue.


Addendum: As most plugins files (ex: modules.js) have same name, it might be good idea to include directory name or some other predictable condition.

MF
#3

Mark Fric

03.07.2020 07:57

Type changed from Bug to Feature

reclasifying to feature. Linux is not yet supported for SQ
MF
#4

Mark Fric

16.07.2020 13:12
Task moved to project SQX Linux/Mac support, new link to task: https://sq.projectpanel.com/tasks/sqxlinmac_0006

Votes: +1

Drop files to upload

or

choose files

Max size: 5MB

Not allowed: exe, msi, application, reg, php, js, htaccess, htpasswd, gitignore

...
Wait please