View Issue Details

IDProjectCategoryView StatusLast Update
0005319Talerwallet (WebExtension)public2021-08-24 14:23
ReporterFlorian Dold Assigned ToFlorian Dold Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionnot fixable 
Product Versiongit (master) 
Target Version0.7.1Fixed in Version0.7.1 
Summary0005319: compilation of wallet pulls in a ridiculous number of dependencies
DescriptionWhile the *runtime* dependencies of the wallet are relatively small, the compile time dependencies are numerous, due to the way that the JS ecosystem works (multiple compilers for transpilation, multiple build tools required, tiniest / single function packages).

The node_modules of the wallet thus contains 738 (!!!) dependencies right now, we should eventually aim to lower that number (possibly by switching out some of the biggest offending tools that we use), so that the wallet becomes more auditable.

Essentially every single of these dependencies has the potential to contain some malicious code, even it it is not at runtime it might (maliciously) mess up compilation.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Florian Dold

2020-04-07 15:17

manager   ~0015556

After gathering some more experience with the JavaScript ecosystem, I can say that fixing this is not really feasible.

Some dependencies of the wallet have been simplified though. Instead of using webpack (for the WebExtension), rollup (for Android) and gulp (with all its plugins), we now only use rollup.

Other dependencies we use are not actively involved in compilation, such as eslint (linter), nyc/istanbul (coverage), ava (unit tests), and so on. We need these, and the way that the JS works is to pull these in as devDependencies for every project that needs them.

Issue History

Date ModifiedUsernameFieldChange
2018-04-09 00:37Florian DoldNew Issue
2018-04-09 00:37Florian DoldStatusnew => assigned
2018-04-09 00:37Florian DoldAssigned To => Florian Dold
2018-11-17 23:52Christian GrothoffTarget Version => 0.8
2020-04-07 15:17Florian DoldStatusassigned => informing
2020-04-07 15:17Florian DoldResolutionopen => not fixable
2020-04-07 15:17Florian DoldNote Added: 0015556
2020-04-11 16:53Christian GrothoffProduct Version => git (master)
2020-04-11 16:53Christian GrothoffFixed in Version => 0.7.1
2020-04-11 16:53Christian GrothoffTarget Version0.8 => 0.7.1
2021-08-24 14:23Christian GrothoffStatusinforming => closed
2023-04-13 18:37Florian DoldCategorywallet (WebExtensions) => wallet (WebExtension)