[codeface] Re: Bugfixes and copyright header cleanups

  • From: Rodrigo Queiroz <rqueiroz@xxxxxxxxxxxxxxxx>
  • To: Wolfgang Mauerer <wolfgang.mauerer@xxxxxxxxxxxxxxxxx>
  • Date: Fri, 24 Jun 2016 13:46:10 -0400

Hi everyone,

Thank you very much for the updates. CPPstats problem is solved.

More details of the build:

I tested a new build from the for-upstream (using both trusty and xenial),
but the the vagrant provision fails at some point of the integration
scripts.
I tried to run the the scripts manually (the same order as the vagrantfile)
and got this error after install_codeface_python.sh

Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 209, in
main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line
317, in run
    requirement_set.prepare_files(finder)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 360, in
prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 448, in
_prepare_file
    req_to_install, finder)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 387, in
_check_skip_installed
    req_to_install.check_if_exists()
  File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line
1011, in check_if_exists
    self.req.project_name
AttributeError: 'Requirement' object has no attribute 'project_name'

But even with this error, python seems to be working without problems. The
integrations tests pass and I also tested a project with the feature
analysis (xenial box).

Maybe this error was stopping the provision, or maybe some instability in
my network was causing the problem. I will do another test once I get a
wired connection.

For now, is working :)

Best,
Rodrigo



On Thu, Jun 23, 2016 at 6:17 PM, Wolfgang Mauerer <
wolfgang.mauerer@xxxxxxxxxxxxxxxxx> wrote:

Am 23/06/2016 um 18:27 schrieb Claus Hunsen:
Am 23.06.2016 um 17:00 schrieb Wolfgang Mauerer:
Am 23/06/2016 um 16:25 schrieb Claus Hunsen:
Hi everybody,

some words from my side regarding the feature analysis. This part of
Codeface heavily depends on cppstats which should be install properly
in
the provision phase of Vagrant. But, I am sure this is where your
problem is located: If cppstats does not work properly, all calls to
cppstats consequently fail and no features are found.

There is basically one thing for cppstats that needs to be ensured:
Codeface installs cppstats and also its dependency on srcML
(http://srcml.org) for Ubuntu *precise*. [1] If you move to another
system (trusty or xenial), you also need to move srcML in the proper
version from here: http://131.123.42.38/lmcrs/ ;(not the beta!)

If there are no binaries for your environment available on the download
site, you can build it from source or install the binaries of the
system
release before yours (e.g., use the trusty release on xenial). Be sure
that all dynamically-linked libraries of srcML are installed on your
system. You can get those by calling "ldd /path/to/srcml-binary" (where
the binaries are "src2srcml" and "srcml2src"). Install anything that is
missing.

If this does not fix the problems for you, please contact me.

thanks for pointing out that cppstats has this sort of "silent" failure
mode. I just saw that the distributed srcML binaries are 32 bit; we use
a 64 bit distro, though. Since no 32 bit compatibility layer is
installed on our vagrant setup, the binary won't run at all.

I have a 64bit binary in my Vagrant machine and there are also 64bit
binaries on the website I linked (look for "-64.tar.gz"). And in the
integration script of Codeface, the right version is downloaded.

right, there's a 64 bit binary provided. Obviously staring at
provisioning output for too long causes temporary visual parsing
problems on my side.

I guess if things work after building srcML from source (I'll give
this a try asap), I need to submit a request to the cppstats
maintainers to make this failure channel explicit ;)

If you can spare a student to implement stuff for cppstats...
well played :) There should be a cppstats app. Apps make topics
attractive for students these days.

Furthermore, there are also a bunch of things caught by Codeface and
silently ignored. Additionally, if cppstats calls a non-existing srcML
binary, it breaks completely. Consequently, the error is ignored on the
Codeface side. ;)

Aborting codeface runs as early as possible when infrastructure
SW is broken/incorrectly installed/not properly started is something
I've had on my TODO list for a long while anyway. Does cppstats have any
switch or so that we could use to check for a correct installation?
Then we could add such a check to the beginning of a codeface run, and
abort early and explicitly if things fail.

Anyway, combing back to the original problem: I've updated branch
for-upstream to work with both, Ubuntu 16.04 and 14.04 as base
distributions. With the proper srcML binaries, the previously failing
feature unit tests do work again. There are still some issues with
travis, but these should be solved soon.

@Rodrigo: Can you please check if branch for-upstream solves your
current issues?

Thanks, Wolfgang




-- 
*Rodrigo Queiroz, M.Sc.*

*Ph.D. Candidate *
*Generative Software Development Lab*
*University of Waterloo*
*200 University Ave. West, *
*Waterloo, ON, N2L 3G1, **CANADA*

*Tel.: +1 519 885 1211 x35035*

*Mob:+1 226 606 2133*
*rodrigoqueiroz.skype*

Other related posts: