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

Restructure the repo #55

Closed
kirillt opened this issue Feb 6, 2024 · 1 comment
Closed

Restructure the repo #55

kirillt opened this issue Feb 6, 2024 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@kirillt
Copy link
Member

kirillt commented Feb 6, 2024

This repo will collect individual modules, each module should be possible to use on its own as a dependency.

  • Top-level folders should be complete libraries with their own build config
  • GitHub Actions workflows should be separated for separate components
  • Same components could exist for different platform, e.g. filepicker-android and filepicker-ios (in future)

Approximate module structure should be something like this:

ark-components
|- data-link
|- data-link-android
|- data-link-ios
|- data-pdf
|- data-pdf-android
|- data-pdf-ios
|- data-images
|- data-images-android
|- data-images-ios
|- filepicker-android
|- tag-selector-android
|- tag-selector-tauri
|- score-widget-android
|- score-widget-tauri

Here, data-link and data-images are examples of future "data components". Such components will bring particular resource kinds, i.e. will allow handling files of certain type. They can denote a single file type like .link, or a group of file types like images:

⚠️ Dependent components considerations

It's not completely clear to me if we should be cautious about dependencies between components.

E.g. component B depends on component A:

  • Can A and B be used in an app at the same time? Problems with versions could arise.. If usage of connected components poses some limitations, they must be clarified in README, e.g. if the user should inject only B.

  • Would be more efficient to define GitHub Actions workflows in such a way that B and A run one after another, not separately since building B would mean building A again.

@kirillt kirillt added the enhancement New feature or request label Feb 6, 2024
@kirillt kirillt moved this to Todo in Development Feb 6, 2024
@tuancoltech
Copy link
Collaborator

tuancoltech commented Feb 13, 2024

@kirillt I would like to add some personal thoughts on your concern regarding : Dependent components considerations, as below:

Can A and B be used in an app at the same time?
-> Yes.

Problems with versions could arise..
-> This happens almost all the time in every build system, and gradle build system is not an exception.
The good news is we don't have to worry about that much when using gradle, since it was designed with a automatic version resolution. If the same dependency is found with more than one version in the build tree, by default, the highest version will be selected for the build execution (Unless we explicitly set the version to be selected). So, it's quite flexible here depending on what we need.

Would be more efficient to define GitHub Actions workflows in such a way that B and A run one after another, not separately since building B would mean building A again.

-> I don't see a problem with this (yet). Again, because this is gradle build system, if module A was built at least once, and its source code does not change, it won't be built again regardless of how many times it is included in other modules.

@kirillt kirillt moved this from Todo to In Progress in Development Mar 16, 2024
@kirillt kirillt closed this as completed Mar 31, 2024
@github-project-automation github-project-automation bot moved this from In Progress to Done in Development Mar 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Archived in project
Development

No branches or pull requests

2 participants