Coder Social home page Coder Social logo

Comments (7)

dirk-thomas avatar dirk-thomas commented on August 15, 2024

The requested change colcon/colcon-core#13 made this visible. I think letting the user know about it makes sense. Maybe we should ignore those packages on Windows (e.g. by placing an IGNORE marker file in their directories)?

from ci.

dhood avatar dhood commented on August 15, 2024

Yeah I agree that for source builds this visibility makes sense, it's just misleading in the specific case of the packaging job.

The packaging job never used to install anything in the share directory for packages that got skipped by CMake.

e.g.:

$ cd ~/Downloads/ros2-osx-beta1
$ ls share | grep pendulum
pendulum_msgs

$ cd ~/Downloads/ros2-osx-colcon-bash-fix/
$ ls share | grep pendulum
pendulum_control
pendulum_msgs

Do you think it is possible to restore that behaviour (technically)? If so I think that would be preferred over adding ignore markers (the skip in cmake is nicely self-contained and self-describing and so should be sufficient)

from ci.

dirk-thomas avatar dirk-thomas commented on August 15, 2024

Do you think it is possible to restore that behaviour (technically)?

What exact behavior do you want to "restore" / are you looking for? Revert the referenced patch and don't output a message (until COLCON_TRACE is set)?

from ci.

dhood avatar dhood commented on August 15, 2024

The behaviour I'm referring to is more about the cause of the problem, i.e. that the packaging job is installing stuff for skipped cmake packages (where it didn't with ament_tools)/that skipped cmake packages get listed in the generated prefix.bash file. If we address that, we wouldn't need to change the behaviour of outputting the message or not, because those files wouldn't be looked for to start with. But I am not sure what "underneath" has caused this change in behaviour.

from ci.

dhood avatar dhood commented on August 15, 2024

Or, put another way:

Why is the prefix.bash on OS X / the prefix.bat on Windows trying to source files that never have existed? That is my understanding of what is causing that output message. Contrary to colcon/colcon-bash#3, it is not because a directory has been deleted; the scripts it's looking for never got installed.

from ci.

dirk-thomas avatar dirk-thomas commented on August 15, 2024

So when a package specific setup file doesn't exist you want the prefix script to not complain about it. For this case that makes sense. But that will also apply to other cases: e.g. you build and install a package B but not its dependency A. Then the resulting prefix script should not print a message that A isn't present.

We can certainly change it that way - we just have to be certain that this is the way we want it to be in all the cases which have the same "state".

from ci.

dirk-thomas avatar dirk-thomas commented on August 15, 2024

Currently the build tool also checks that these files actually exist (https://github.com/colcon/colcon-core/blob/f093f0bcffe2f0d1ea66d434e40fcad95638cee0/colcon_core/shell/sh.py#L84-L96) before generating the prefix script. So I am not yet sure how this gets into the state and how we could distinguish the case described.

from ci.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.