Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

recommend catkin build over catkin_make #611

Closed
wjwwood opened this issue Mar 31, 2014 · 18 comments
Closed

recommend catkin build over catkin_make #611

wjwwood opened this issue Mar 31, 2014 · 18 comments

Comments

@wjwwood
Copy link
Member

wjwwood commented Mar 31, 2014

Once the catkin build command (part of https://github.com/catkin/catkin_tools) has become stable, we should document the differences in workflow for catkin_make and catkin build and print a message at the end of each catkin_make invocation to this effect:

We recommend that you use the `catkin build` command instead of `catkin_make`.

http://catkin-tools.readthedocs.org/en/latest/migration/from-catkin_make.html

Set the CATKIN_MAKE_NO_CATKIN_BUILD_WARNING environment variable
in order to suppress this warning.

This will require that the referenced documentation exists: catkin/catkin_tools#22

We should target this for Indigo.

@jbohren
Copy link
Member

jbohren commented Mar 31, 2014

We should target this for Indigo.

+1

@dirk-thomas
Copy link
Member

Please ensure that all current use cases are covered with the new tool before recommending its use.

@wjwwood
Copy link
Member Author

wjwwood commented Mar 31, 2014

Please ensure that all current use cases are covered with the new tool before recommending its use.

Of course, that was what I was implying with the "Once the catkin build command (...) has become stable" part.

@dirk-thomas
Copy link
Member

I was referring especially to all the special use cases which have been added in the past (jusy some recent examples):

  • building in locations with white spaces
  • using DESTDIR
  • use underlay workspaces when calculating topological order
  • completion for options like -DCMAKE_BUILD_TYPE and -DCATKIN_ENABLE_TESTING

@wjwwood
Copy link
Member Author

wjwwood commented Mar 31, 2014

I understand, and I could use help collecting all of these outstanding issues, for instance white space in folders seems to trip it up: catkin/catkin_tools#23

@wjwwood
Copy link
Member Author

wjwwood commented Apr 12, 2014

W.r.t. the underlay workspaces: catkin/catkin_tools#30

@linas
Copy link

linas commented Feb 19, 2015

Any forward progress? I note several (minor) problems:

  • Saying catkin build after catkin_make causes a crash that is fixable by catkin clean -a
  • Tutorials still recommend catkin_make
  • if distutils setup has a setup.py with entry_points = { whatever: xx} in it, then catkin build silently ignores it, while catkin_make at least told me not to do that ...

@wjwwood
Copy link
Member Author

wjwwood commented Feb 19, 2015

Any forward progress? I note several (minor) problems:

You might be interested in catkin/catkin_tools#135. As I stated there I haven't had time to spend finishing up the remaining outstanding issues with catkin build, captured here: catkin/catkin_tools#90

Saying catkin build after catkin_make causes a crash that is fixable by catkin clean -a

According to @jbohren that was covered in catkin/catkin_tools#80: catkin/catkin_tools#11 (comment)

It might be worth opening another issue on catkin/catkin_tools if you believe it is not preventing you from mixing catkin_make and catkin build.

Tutorials still recommend catkin_make

I do not believe we would change tutorials which use catkin_make, at least not at first. The first step would be to replace the usage of catkin_make_isolated, since it is much more similar to catkin build conceptually. catkin_make and catkin build/catkin_make_isolated are conceptually different and some developers might choose to use catkin_make in some scenarios for performance reasons. But eventually I think it would be nice to use catkin build in all documentation aimed at novice users, since it is a little bit less error prone.

if distutils setup has a setup.py with entry_points = { whatever: xx} in it, then catkin build silently ignores it, while catkin_make at least told me not to do that ...

That's new to me. Since the setup.py is used from within the cmake call to each package, I do not believe the tool you are using should make a difference. Is it possible that you just didn't see the warning output? You can check the logs for the package in question in the build/build_logs/<package_name>.log file. There is an open issue to detect warnings and notify users about them in catkin build: catkin/catkin_tools#1

If you think that something else is going on, then you can open an issue on catkin/catkin_tools about it.

@mryellow
Copy link

Just a drive-by note, by no means a compilation wizard so likely something I missed...

I was having issues with python_orocos_kdl using catkin_make_isolated, crashing with mutliple cannot convert ‘PyObject* on Debian jessie.

catkin clean --all + catkin build found a way through and managed to build everything.

I think it would be nice to use catkin build in all documentation aimed at novice users, since it is a little bit less error prone.

Would have saved me a few hours.... Maybe just a few links showing that this tool exists.

@jbohren
Copy link
Member

jbohren commented Mar 15, 2015

@linas

  • Saying catkin build after catkin_make causes a crash that is fixable by catkin clean -a

Do you mean the error message? It should look something like:

[build] Runtime: 0.0 seconds 
Error: Build space `/home/jbohren/ws/grid/build` exists but appears to have previously been created by the `catkin_make` or `catkin_make_isolated` tool. Please choose a different directory to use with `catkin build` or clean the build space.

If not, then you just need to update to the latest version.

@dirk-thomas
Copy link
Member

It looks like the Hydro installation instructions for Trusty already recommend using catkin build (http://wiki.ros.org/hydro/Installation/Trusty#Building_the_catkin_Packages). From my understanding we are not yet recommending to use catkin_tools and therefore these instructions should be changed to mention catkin_make_isolated.

@jbohren
Copy link
Member

jbohren commented Jun 10, 2015

@dirk-thomas If you want to verify that that works to build Hydro on Trusty, then feel free to change it. The tutorial that you linked to has this message at the top for a reason:

NOTE: This is an unsupported tutorial, but is intended to help anyone trying to build hydro from source on Ubuntu 14.04

@dirk-thomas
Copy link
Member

I noticed the message at the top of the page but I still don't think this page should recommend the use of catkin_tools. Not until we want to officially recommend it. It leads users into the wrong direction.

@jbohren Since you have created the page in the first place I would ask you to update the page. I won't have the time to try a Hydro build on Trusty for this which would be necessary before changing the instructions.

@jbohren
Copy link
Member

jbohren commented Jun 10, 2015

@jbohren Since you have created the page in the first place I would ask you to update the page. I won't have the time to try a Hydro build on Trusty for this which would be necessary before changing the instructions.

I also don't have time to do this. What I can do is delete the wiki page and make a blog post about it instead.

@wjwwood
Copy link
Member Author

wjwwood commented Jun 10, 2015

@jbohren please don't do that.

@dirk-thomas lets not waste everyone's time on this, the tutorial is noted to be unsupported, catkin tools is in pretty decent shape (especially for building the base workspace like this), and in the grand scheme of things we many more important things to be doing/worrying about.

@dirk-thomas
Copy link
Member

I brought it up because users are using these instructions and asking questions about it: http://answers.ros.org/question/210924/ros-hydro-build-fails-on-camera_info_manager/

If you both think that is fine to use the tool in the instructions and it does not confuse users then keep it as-is.

@wjwwood
Copy link
Member Author

wjwwood commented Jun 10, 2015

I don't think the users problem in that question has anything to do with catkin tools. It seems from the question that they're talking about trying catkin_make, in which case using catkin_make_isolated would not have helped in any obvious way. If you don't know how to suggest setting the CMake variable with catkin tools or something like that, then you can just link the user to the docs or ask someone else to explain how to do it with catkin tools. This isn't your burden to support unless you want it, feel free to pass it along.

I agree with you that in our "supported" install docs we can stick to catkin_make_isolated for now.

@dirk-thomas
Copy link
Member

I will close this ticket for now since this is not a task which can be acted on in this repo. Once a different build tool is being recommended it can be followed up on and the information in this repo can be updated accordingly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants