Hi Christian,

Thanks for trying out. I also did some debugging to see if I can find any 
information. I added some print in the settings.py  

PIPELINE_LESS_BINARY = os.path.join(NODE_PATH, 'less', 'bin', 'lessc')
PIPELINE_UGLIFYJS_BINARY = os.path.join(NODE_PATH, 'uglifyjs', 'bin',
                                        'uglifyjs')
print 'PIPELINE_UGLIFYJS_BINARY = {}'.format(PIPELINE_UGLIFYJS_BINARY)
print 'PIPELINE_LESS_BINARY = {}'.format(PIPELINE_LESS_BINARY)



And this is what I see in the log:

[Mon Jun 12 14:47:50.821618 2017] [:error] [pid 12918:tid 140227234481920] 
PIPELINE_UGLIFYJS_BINARY = 
/usr/local/lib/python2.7/dist-packages/ReviewBoard-2.5.12-py2.7.egg/reviewboard/../node_modules/uglifyjs/bin/uglifyjs
[Mon Jun 12 14:47:50.821692 2017] [:error] [pid 12918:tid 140227234481920] 
PIPELINE_LESS_BINARY = 
/usr/local/lib/python2.7/dist-packages/ReviewBoard-2.5.12-py2.7.egg/reviewboard/../node_modules/less/bin/lessc



On Saturday, June 10, 2017 at 1:43:26 AM UTC-7, Christian Hammond wrote:
>
> Right. We override this though in djblets/extensions/packaging.py in 
> install_pipeline_deps(). We compute the path to the extension's 
> node_modules and its lessc, and we set that in settings.
>
> I tested locally and it's performing as expected for me. Review Board's 
> lessc isn't being used, but the extension's is. So something's going wrong 
> here with the paths.
>
> How comfortable are you debugging Python? I'm curious as to whether 
> pipeline_settings.LESS_BINARY in install_pipeline_deps() is being correctly 
> set.
>
> Christian
>
> On Fri, Jun 9, 2017 at 5:51 PM, Kevin Yu <[email protected] <javascript:>> 
> wrote:
>
>> Looks like the path to the npm_modules are prepopulated based on the 
>> following code in settings.py:
>> # Static media setup
>> if RUNNING_TEST:
>>    PIPELINE_COMPILERS = []
>> else:
>>    PIPELINE_COMPILERS = [
>>        'djblets.pipeline.compilers.es6.ES6Compiler',
>>        'djblets.pipeline.compilers.less.LessCompiler',
>>    ]
>>
>> NODE_PATH = os.path.join(REVIEWBOARD_ROOT, '..', 'node_modules')
>>
>>
>>
>> On Friday, June 9, 2017 at 5:44:51 PM UTC-7, Kevin Yu wrote:
>>>
>>> Thanks Christian for the quick reply! much appreciated.
>>>
>>> It was installed using easy_install under Ubuntu.
>>>
>>> On Friday, June 9, 2017 at 5:38:11 PM UTC-7, Christian Hammond wrote:
>>>>
>>>> Hi Kevin,
>>>>
>>>> I actually don't believe this is related in this case. It looks like 
>>>> the extension packaging stage is trying to locate the lessc path relative 
>>>> to Review Board, which is not correct. It should be locating it from the 
>>>> extension package. It sets the path prior to building the extension to the 
>>>> place in your tree, which, based on that output, should be populated...
>>>>
>>>> I have to run right now, but let me play around with this when I get 
>>>> back and see if I can reproduce this.
>>>>
>>>> In the meantime, how do you install Review Board? Are you using 
>>>> easy_install or yum?
>>>>
>>>> Christian
>>>>
>>>> On Fri, Jun 9, 2017 at 5:34 PM, Kevin Yu <[email protected]> wrote:
>>>>
>>>>> I just saw on 
>>>>> https://www.reviewboard.org/docs/manual/dev/extending/extensions/static-files/,
>>>>>  
>>>>> it says
>>>>>
>>>>> Static bundles are packaged along with your extension automatically. 
>>>>> You don’t have to do anything special. You will, however, need some 
>>>>> node.js <https://nodejs.org/> dependencies in order to package static 
>>>>> media bundles.
>>>>>
>>>>> *If you’re running Review Board 2.5.7+, these dependencies will be 
>>>>> installed for you when you begin to build the package.*
>>>>>
>>>>> *If you’re running an older version, you will need to manually install 
>>>>> them yourself. First, make sure you have a modern version of node.js 
>>>>> installed and then run:*
>>>>>
>>>>> $ sudo npm install -g less uglifyjs
>>>>>
>>>>> I am wondering if this is related...
>>>>>
>>>>> On Friday, June 9, 2017 at 4:41:10 PM UTC-7, Kevin Yu wrote:
>>>>>>
>>>>>> On our server, we had reviewboard core 2.5.6.1 running with our own 
>>>>>> extension. it was all fine until we recently upgraded reviewboard core 
>>>>>> to 
>>>>>> 2.5.12. After the upgrade, we can't run python setup.py -v build 
>>>>>> anymore... 
>>>>>> The error is as follows:
>>>>>> devops@Reviewboard-Test-trunk:/tmp/ReviewBoardExt$ python setup.py -v 
>>>>>> build
>>>>>> running build
>>>>>> running build_py
>>>>>> running build_static_files
>>>>>> Installing node packages...
>>>>>> npm http GET https://registry.npmjs.org/uglifyjs/2.4.10
>>>>>> npm http GET https://registry.npmjs.org/less/2.7.1
>>>>>> npm http 304 https://registry.npmjs.org/less/2.7.1
>>>>>> npm http 304 https://registry.npmjs.org/uglifyjs/2.4.10
>>>>>> npm WARN deprecated [email protected]: uglifyjs is deprecated - use 
>>>>>> uglify-js instead.
>>>>>> npm WARN engine [email protected]: wanted: {"node":">=0.12"} (current: 
>>>>>> {"node":"v0.10.25","npm":"1.3.10"})
>>>>>> npm http GET https://registry.npmjs.org/source-map/0.1.34
>>>>>> npm http GET https://registry.npmjs.org/yargs
>>>>>> npm http GET https://registry.npmjs.org/async
>>>>>> npm http GET https://registry.npmjs.org/uglify-to-browserify
>>>>>> npm http 304 https://registry.npmjs.org/source-map/0.1.34
>>>>>> npm http 304 https://registry.npmjs.org/yargs
>>>>>> npm http 304 https://registry.npmjs.org/async
>>>>>> npm http 304 https://registry.npmjs.org/uglify-to-browserify
>>>>>> npm http GET https://registry.npmjs.org/amdefine
>>>>>> npm http 304 https://registry.npmjs.org/amdefine
>>>>>> npm http GET https://registry.npmjs.org/errno
>>>>>> npm http GET https://registry.npmjs.org/graceful-fs
>>>>>> npm http GET https://registry.npmjs.org/image-size
>>>>>> npm http GET https://registry.npmjs.org/mime
>>>>>> npm http GET https://registry.npmjs.org/mkdirp
>>>>>> npm http GET https://registry.npmjs.org/promise
>>>>>> npm http GET https://registry.npmjs.org/source-map
>>>>>> npm http 304 https://registry.npmjs.org/errno
>>>>>> npm http 304 https://registry.npmjs.org/graceful-fs
>>>>>> npm http 304 https://registry.npmjs.org/image-size
>>>>>> npm http 304 https://registry.npmjs.org/mime
>>>>>> npm http 304 https://registry.npmjs.org/promise
>>>>>> npm http 304 https://registry.npmjs.org/source-map
>>>>>> npm http 304 https://registry.npmjs.org/mkdirp
>>>>>> npm http GET https://registry.npmjs.org/prr
>>>>>> npm http 304 https://registry.npmjs.org/prr
>>>>>> npm http GET https://registry.npmjs.org/minimist/0.0.8
>>>>>> npm http 304 https://registry.npmjs.org/minimist/0.0.8
>>>>>> npm http GET https://registry.npmjs.org/asap
>>>>>> npm http 304 https://registry.npmjs.org/asap
>>>>>> [email protected] node_modules/uglifyjs
>>>>>> ├── [email protected]
>>>>>> ├── [email protected]
>>>>>> ├── [email protected]
>>>>>> └── [email protected] ([email protected])
>>>>>>
>>>>>> [email protected] node_modules/less
>>>>>> ├── [email protected]
>>>>>> ├── [email protected]
>>>>>> ├── [email protected]
>>>>>> ├── [email protected] ([email protected])
>>>>>> ├── [email protected] ([email protected])
>>>>>> ├── [email protected] ([email protected])
>>>>>> └── [email protected]
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/css/rev_req_det.less'
>>>>>> Copying 
>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/account_handler.js'
>>>>>> Copying 
>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/branch_builds.js'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/js/views/bootstrap.js'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/js/views/apprreqView.js'
>>>>>> Copying 
>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/test_cvrg_rprt.js'
>>>>>> Copying 
>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/ftnchkHoldItView.js'
>>>>>> Copying 
>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/sel_rqst_4_det_copy.js'
>>>>>> Copying 
>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/approval_status_View.js'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/js/views/dashboard.js'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/js/views/rqst_descr.js'
>>>>>> Copying 
>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/cm_portalView.js'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/Remove.png'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/fortinet.png'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/teamlead.png'
>>>>>> Copying 
>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/favicon_notify.png'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/Create.png'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/ftnt.ico'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/shipit-grey.png'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/Up.png'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/Bottom.png'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/stop16.png'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/shipit.png'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/Down.png'
>>>>>> Copying 
>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>> Traceback (most recent call last):
>>>>>>   File "setup.py", line 27, in <module>
>>>>>>     'evolutions/*.*',
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/ReviewBoard-2.5.12-py2.7.egg/reviewboard/extensions/packaging.py",
>>>>>>  
>>>>>> line 48, in setup
>>>>>>     setuptools_setup(**setup_kwargs)
>>>>>>   File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
>>>>>>     dist.run_commands()
>>>>>>   File "/usr/lib/python2.7/distutils/dist.py", line 953, in 
>>>>>> run_commands
>>>>>>     self.run_command(cmd)
>>>>>>   File "/usr/lib/python2.7/distutils/dist.py", line 972, in 
>>>>>> run_command
>>>>>>     cmd_obj.run()
>>>>>>   File "/usr/lib/python2.7/distutils/command/build.py", line 128, in 
>>>>>> run
>>>>>>     self.run_command(cmd_name)
>>>>>>   File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
>>>>>>     self.distribution.run_command(command)
>>>>>>   File "/usr/lib/python2.7/distutils/dist.py", line 972, in 
>>>>>> run_command
>>>>>>     cmd_obj.run()
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/Djblets-0.9.7-py2.7.egg/djblets/extensions/packaging.py",
>>>>>>  
>>>>>> line 422, in run
>>>>>>     self.run_command('build_static_files')
>>>>>>   File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
>>>>>>     self.distribution.run_command(command)
>>>>>>   File "/usr/lib/python2.7/distutils/dist.py", line 972, in 
>>>>>> run_command
>>>>>>     cmd_obj.run()
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/Djblets-0.9.7-py2.7.egg/djblets/extensions/packaging.py",
>>>>>>  
>>>>>> line 290, in run
>>>>>>     self._build_static_media(extension)
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/Djblets-0.9.7-py2.7.egg/djblets/extensions/packaging.py",
>>>>>>  
>>>>>> line 360, in _build_static_media
>>>>>>     call_command('collectstatic', interactive=False, verbosity=2)
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/Django-1.6.11-py2.7.egg/django/core/management/__init__.py",
>>>>>>  
>>>>>> line 159, in call_command
>>>>>>     return klass.execute(*args, **defaults)
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/Django-1.6.11-py2.7.egg/django/core/management/base.py",
>>>>>>  
>>>>>> line 285, in execute
>>>>>>     output = self.handle(*args, **options)
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/Django-1.6.11-py2.7.egg/django/core/management/base.py",
>>>>>>  
>>>>>> line 415, in handle
>>>>>>     return self.handle_noargs(**options)
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/Django-1.6.11-py2.7.egg/django/contrib/staticfiles/management/commands/collectstatic.py",
>>>>>>  
>>>>>> line 173, in handle_noargs
>>>>>>     collected = self.collect()
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/Django-1.6.11-py2.7.egg/django/contrib/staticfiles/management/commands/collectstatic.py",
>>>>>>  
>>>>>> line 119, in collect
>>>>>>     for original_path, processed_path, processed in processor:
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/storage.py",
>>>>>>  
>>>>>> line 32, in post_process
>>>>>>     packager.pack_stylesheets(package)
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/packager.py",
>>>>>>  
>>>>>> line 94, in pack_stylesheets
>>>>>>     variant=package.variant, **kwargs)
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/packager.py",
>>>>>>  
>>>>>> line 103, in pack
>>>>>>     paths = self.compile(package.paths, force=True)
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/packager.py",
>>>>>>  
>>>>>> line 97, in compile
>>>>>>     return self.compiler.compile(paths, force=force)
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/compilers/__init__.py",
>>>>>>  
>>>>>> line 55, in compile
>>>>>>     return list(executor.map(_compile, paths))
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/futures-3.0.5-py2.7.egg/concurrent/futures/_base.py",
>>>>>>  
>>>>>> line 581, in result_iterator
>>>>>>     yield future.result()
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/futures-3.0.5-py2.7.egg/concurrent/futures/_base.py",
>>>>>>  
>>>>>> line 405, in result
>>>>>>     return self.__get_result()
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/futures-3.0.5-py2.7.egg/concurrent/futures/thread.py",
>>>>>>  
>>>>>> line 55, in run
>>>>>>     result = self.fn(*self.args, **self.kwargs)
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/compilers/__init__.py",
>>>>>>  
>>>>>> line 40, in _compile
>>>>>>     outdated=outdated, force=force)
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/compilers/less.py",
>>>>>>  
>>>>>> line 22, in compile_file
>>>>>>     return self.execute_command(command, cwd=dirname(infile))
>>>>>>   File 
>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/compilers/__init__.py",
>>>>>>  
>>>>>> line 99, in execute_command
>>>>>>     raise CompilerError(stderr)
>>>>>> pipeline.exceptions.CompilerError: /bin/sh: 1: 
>>>>>> /usr/local/lib/python2.7/dist-packages/ReviewBoard-2.5.12-py2.7.egg/reviewboard/../node_modules/less/bin/lessc:
>>>>>>  
>>>>>> not found
>>>>>>
>>>>>> The path it tries to find lessc seems wrong as well. the lessc should 
>>>>>> be in /usr/local/bin/lessc.
>>>>>>
>>>>>> Has anyone run into the same issue?
>>>>>>
>>>>> -- 
>>>>> Supercharge your Review Board with Power Pack: 
>>>>> https://www.reviewboard.org/powerpack/
>>>>> Want us to host Review Board for you? Check out RBCommons: 
>>>>> https://rbcommons.com/
>>>>> Happy user? Let us know! https://www.reviewboard.org/users/
>>>>> --- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "reviewboard" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>>
>>>> -- 
>>>> Christian Hammond
>>>> President/CEO of Beanbag <https://www.beanbaginc.com/>
>>>> Makers of Review Board <https://www.reviewboard.org/>
>>>>
>>> -- 
>> Supercharge your Review Board with Power Pack: 
>> https://www.reviewboard.org/powerpack/
>> Want us to host Review Board for you? Check out RBCommons: 
>> https://rbcommons.com/
>> Happy user? Let us know! https://www.reviewboard.org/users/
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "reviewboard" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> -- 
> Christian Hammond
> President/CEO of Beanbag <https://www.beanbaginc.com/>
> Makers of Review Board <https://www.reviewboard.org/>
>

-- 
Supercharge your Review Board with Power Pack: 
https://www.reviewboard.org/powerpack/
Want us to host Review Board for you? Check out RBCommons: 
https://rbcommons.com/
Happy user? Let us know! https://www.reviewboard.org/users/
--- 
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to