Opened on 08/29/2018 at 08:04:20 PM
Closed on 08/30/2018 at 12:51:41 AM
Last modified on 08/30/2018 at 01:40:24 AM
#6909 closed defect (fixed)
ensure_dependencies.py fails to install npm dependencies when subfolders aren't repositories
Reported by: | sebastian | Assignee: | sebastian |
---|---|---|---|
Priority: | P1 | Milestone: | |
Module: | Automation | Keywords: | |
Cc: | tlucas | Blocked By: | |
Blocking: | Platform: | Unknown / Cross platform | |
Ready: | yes | Confidential: | no |
Tester: | Unknown | Verified working: | no |
Review URL(s): |
Description (last modified by sebastian)
How to reproduce
- Download a source archive (e.g. adblockplus-3.3-chrome-gecko-source.tgz) from the downloads repository.
- Unpack the source archive.
- Run ensure_dependencies.py (or use build.py which in turn calls the former).
Observed behaviour
ensure_dependencies.py completes without running npm install for buildtools and adblockplusui, causing build.py build to fail due to the lack of required Node.js packages (and not executing the postinstall hook in adblockplusui).
This is because in source archives the dependencies are already there but they are no repositories. In turn (when using Mercurial), hg id --id will produce no output on stdout (stderr and the exit code are ignored), and ensure_dependencies.py assumes that everything is up-to-date, skipping npm install as well.
Expected behaviour
ensure_dependencies.py must call npm install if the dependency is contained in a directory that isn't a repository, so that build.py build works from an unpacked source archive.
Attachments (0)
Change History (5)
comment:1 Changed on 08/29/2018 at 08:07:20 PM by sebastian
- Review URL(s) modified (diff)
- Status changed from new to reviewing
comment:3 Changed on 08/30/2018 at 12:50:43 AM by abpbot
comment:4 Changed on 08/30/2018 at 12:51:41 AM by sebastian
- Resolution set to fixed
- Status changed from reviewing to closed
A commit referencing this issue has landed:
Issue 6909 - Make ensure_dependencies.py call "npm install" for non-repositories