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

A template project of a minimum composite element project would be usefull #4

Open
madhephaestus opened this issue Aug 4, 2021 · 8 comments

Comments

@madhephaestus
Copy link

As a developer who would like to add a project into the repository-group build, i would like to have a template repository of the minimum necessary files.

Lets say i have a source project that can be built from source as a normal gradel project. I would like to add that source build into an IHMC repository-group composite build.

  • What components do i need to add?
  • Is it possible to build from source with and without the repository-group encapsulation?
  • At the very least a template of only the necessary structure and nothing else would be very useful
@madhephaestus
Copy link
Author

I am going to review this: https://github.com/ihmcrobotics/ihmc-build#creating-a-new-project

A template project of this process would be VERY useful.

@SylvainBertrand
Copy link
Member

The link is good, that's the structure you want and the template for each of the 3 Gradle files are good. I'm gonna look into getting a template going.

@madhephaestus
Copy link
Author

@SylvainBertrand you rock, thank you!

@madhephaestus
Copy link
Author

madhephaestus commented Aug 4, 2021

For a template, it would be especially useful to see one where it can be compiled independently or as part of a composite build. Is it possible to actually have a single configuration that could be used in either way?

@calvertdw
Copy link
Member

calvertdw commented Aug 4, 2021

@madhephaestus Yes it's designed so projects can be built independently or as part of a repository group without any modification. It's all handled by which build.gradle.kts file you select when importing into an IDE or running a gradle command line command from that directory.

The line there is that for "higher level" (more dependencies) projects, which is basically ihmc-open-robotics-software and up, we don't regularly publish to Maven Central because it's under such rapid development. So those project will depend on each other with "source" instead of a version number. Those are the projects that need to be in a repository-group together in order to build.

@madhephaestus
Copy link
Author

I seem to be confused how to use a sub module then. I have modified a repo such that it works in the repository group (i figured out how to do that part, thanks!)

But i now want to use that same source in a "normal" gradle built project. When i changed over from a generic gradle script to the IHMC style, the "normal" project could no longer import it. I would love to see how a non-ihmc build pulls in the project. For instance imagine i wanted to pull in euclid as source to a larger composite build, say BowlerStudio which uses traditional gradle submodules. Is that possible? If so how?

@calvertdw
Copy link
Member

The test cases for ihmc-build might help. There are a bunch of different ways things can be configured. I think this is better than a template project.

https://github.com/ihmcrobotics/ihmc-build/tree/develop/tests

@calvertdw
Copy link
Member

For your current question, though, I might recommend first doing a non-source Maven dependency on what you might need. (What are you trying to depend on, SCS 2?)

You could depend on stuff manually by adding a Gradle project dependency. Though, I'm not sure how many other details there would be to sort out. Gradle doesn't really have the functionality (ROS style workspace) that we support. That's why we have our ihmc-build plugin.

ihmc-rosie pushed a commit that referenced this issue Oct 24, 2022
…e to val-develop

* commit 'e53f42f19e376d8c0abd18f3bc989be0238c6ead':
  ⬆️ ihmc-build 0.28.2 Fix Bamboo
  ⬆️ ihmc-build 0.28.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants