Comments (4)
Colcon-core generates multiple scripts in the install directory such as:
install.bash install.sh
The install.bash
is generated by colcon-bash
, not colcon-core
. The only "native" shells that colcon supports are "sh" and "bat". There are extensions to enable Powershell, Bash and Zsh. All three of the additional shells are part of colcon-common-extensions
.
Developers can easily make assumptions that certain commands are always available, such as
head
.
This might be nitpicky, but I'm not sure what this particular example has to do with the shell. head
and cut
are both standalone executables provided by coreutils
on both Fedora and Debian. What and how busybox chooses to implement these "core" executables doesn't seem like something we should be concerned with here, no?
We can't declare dependencies on system packages from pure python packages, but we could probably add the dependency to the debs. From the sounds of it, that won't help the other (minimalistic) Linux distros you're discussing though.
For this specific case, if there's a clean way to switch from head
to cut
to appease busybox without regressing other platforms, I'd love to see a PR.
from colcon-core.
Would it be OK to request that
colcon-core
be modified to work better on busybox that does not come with the same form ofcoreutils
as long as functionality to other distros is not impacted?
I see no reason to reject a change that doesn't regress existing platforms and doesn't unnecessarily increase maintenance burden.
... the OE working group doesn't have CI for anything yet, but this is something that could be contributed to
colcon-core
...
I think we could consider adding another platform if it integrates cleanly into GitHub Actions. All colcon extensions in this org use https://github.com/colcon/ci.
Rob hinted he found a clean solution for the
head
tocut
issue.
Great, looking forward to it.
from colcon-core.
Tangent: If your intent is truly to generate a minimal build environment, you should consider dropping colcon-common-extensions
in favor of the specific colcon extensions you need to complete the build.
For example, this is the set of extensions present on ci.ros2.org builds: https://github.com/ros2/ci/blob/403b3445ee7e7253dd6c24b042feb3ae584dce76/ros2_batch_job/__main__.py#L86-L109
from colcon-core.
Great information! Thank you for the speedy feedback.
I understand colcon is intended to be more portable than ROS which is focused mainly on the tier 1 distributions.
Would it be OK to request that colcon-core
be modified to work better on busybox that does not come with the same form of coreutils
as long as functionality to other distros is not impacted? We can do the PR's as needed.
For long term maintenance, the OE working group doesn't have CI for anything yet, but this is something that could be contributed to colcon-core
to support longer-term maintenance on busybox systems once we figure out how to do it.
Rob hinted he found a clean solution for the head
to cut
issue. We're not sure how many more changes there would be, but this kind of support to colcon would help it be used in more minimal OS's.
from colcon-core.
Related Issues (20)
- `colcon build` uses the wrong Python version when inside a virtualenvironment on Windows HOT 2
- [bug] additional cmake args after CMAKE_TOOLCHAIN_FILE will clear it HOT 2
- Cache get_extension_points output
- empy version incompatibility HOT 4
- [Question] Correct way to build a ros driver which depends on a library without having to run 'sudo make install' on the library. HOT 6
- Why can data_files destinations not be absolute for ament_python packages? HOT 4
- [Question] Recommended way to invoke colcon on ubuntu noble? / request for release recent colcon in ROS APT ubuntu noble repos HOT 2
- Feature Request: Multiple `build-base` and `install-base` for multiple `base-paths`
- Colcon hangs when stdout / stderr is redirected and output line is longer than default buffer size HOT 2
- Colcon extends LD_LIBARAY_PATH with cross compiled libraries HOT 4
- Package includes directory has subdir of subdir of package name HOT 1
- Install colcon on x86 to cross compile ros2 HOT 4
- Error building after deleting a file: can't copy '<deleted-file> doesn't exist or not a regular file HOT 3
- colcon list Traceback (most recent call last): File "/usr/bin/colcon", line 33, in <module> sys.exit(load_entry_point('colcon-core==0.16.0', 'console_scripts', 'colcon')()) File "/usr/lib/python3/dist-packages/colcon_core/command.py", line 118, in main return _main(command_name=command_name, argv=argv) File "/usr/lib/python3/dist-packages/colcon_core/command.py", line 185, in _main create_log_path(args.verb_name) File "/usr/lib/python3/dist-packages/colcon_core/location.py", line 186, in create_log_path os.makedirs(str(path)) File "/usr/lib/python3.10/os.py", line 225, in makedirs mkdir(name, mode) PermissionError: [Errno 13] Permission denied: 'log/list_2024-04-06_02-45-22' HOT 2
- colcon returns with success when extension loading fails
- No executable found for scripts when using --symlink-install and install(PROGRAMS) HOT 2
- Torch shared library: libc10.so: cannot open shared object file HOT 4
- Several lines from _local_setup_util_sh.py contain this: E501 line too long
- Request to transfer `colcon-lint` extension repository
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from colcon-core.