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

[feature] New package type for some packaged assets (e.g., program resources, custom themes, templates) #17579

Closed
1 task done
leha-bot opened this issue Jan 15, 2025 · 3 comments
Assignees

Comments

@leha-bot
Copy link

What is your suggestion?

While working on conan-io/conan-center-index#26392 for the Doxygen's custom theme, I thought about how Conan could model it properly?
Currently I had implemented it as "unknown" package with source() and package() methods only, and this package requires to use the Conan deployers. It seems that we could generalize this kind of packages (resources/assets only) for something new package type ("assets"? "resources"?).

In this issue I request for comments and possible brainstorming about similar packages and want to discuss how we could properly model this kind of packages.

CC @memsharded.

Thanks for attention.

Have you read the CONTRIBUTING guide?

  • I've read the CONTRIBUTING guide
@memsharded memsharded self-assigned this Jan 15, 2025
@memsharded
Copy link
Member

Hi @leha-bot

Thanks for the feedback.

This topic has been also raised before. The main issue with it is that while the package "contents" would be well defined by a pontential new type package_type = "resources", for example, the usage and consumption scenarios of that new package type is not clear at all. It seems there is no reasonable default, as there are very different usage scenarios:

  • Those resources can be embedded by their consumers, then they don't need to be propagated further down the graph
  • The resources could be also runtime resources that are not embedded by the consumers but rather necessary at runtime.

While Conan knows to deduce good defaults for other package types, for example, it knows that it must propagate linkage requirements for static libraries depending on other static libraries, but it doesn't need to propagate linkage requirements if a shared library depends on a static library, the same doesn't seem as clear for this new package type.

I think this topic would be mostly a duplicate of #15379, so we can probably close this one as duplicate and continue there? It would be good to have your feedback in that other thread also for the other participants.

@leha-bot
Copy link
Author

Yes, feel free to close, thanks for getting similar issue.

I thought also about custom layouts
And about some customizable by user default options like:

  • copy like deployers do or possibly symlinking to cache;
  • define some destination folders for recipe like (as example with doxygen-awesome-css):
 doxygen-awesome-css/*:destination_folder = ./docs
doxygen-awesome-css/*:install_strategy = copy | deploy

@memsharded
Copy link
Member

Thanks for the feedback, closing the ticket as duplicate then.

I thought also about custom layouts

Are you refererring to the layout() method of recipes? It doesn't sound like that, but instead talking about deployers. It might be better to avoid the "layout" terminology or clarify the intent. If we are talking about deployers, not sure about the suggestion, might need a separate ticket with more details. Deployers are mostly user code, so it is possible to write any deploy logic that you want, like putting different package artifacts in different folders.

@memsharded memsharded closed this as not planned Won't fix, can't repro, duplicate, stale Jan 15, 2025
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

2 participants