[Feature] Create bundled and non-bundled (downloadable dependencies/packages) versions#256
[Feature] Create bundled and non-bundled (downloadable dependencies/packages) versions#256BobbyESP wants to merge 41 commits intoyausername:masterfrom
Conversation
Moved plugins declaration
… clean architecture
feat(NEW APP): Created a Jetpack Compose test app
perf: Improved StreamProcessExtractor
feat: Started plugin downloader feature
refactor: Optimized imports in `library` module
|
The plugins support is almost finished; I have to change some things related to the initPython function and even the FFMpeg and Aria2c modules of the lib, but the YoutbeDL module itself can start to be reviewed. |
refactor: Separated the dependencies ensure from the init function
|
The |
⚠️ (WIP): Created product flavors for `:library` module - nonBundled version not finished and Android doesn't take it as a product variant
|
@JunkFood02 Can we talk about how we should handle the libraries downloading? I mean. Should the download function be inside the |
EDIT: FIXEDSeems to be an error at build time because of the app, here is the log. I think that the targetConfiguration isn't correct since I would say that the target should be "bundled" or "nonbundled" but when using those cases Gradle isn't able to find the library: implementation project(":library") targetConfiguration("bundledDebugRuntimeElements") |
- Added flavor to the test app - Preparing the other dependencies for flavor-ization
… an abstract function
|
This PR is quite large (4000+ LoC) and hard to review. Could we please split it to smaller and more focused PRs, each addressing a specific topic? |
|
The changes that are necessary for this functionality require all the work put into this PR since it means almost a rewrite of the library. I will still try to adjust the code to reduce the number of lines and changes, but please keep in mind that this proposed separation requires the changes made. |
|
I will start by removing the Jetpack Compose app |
We can just make a pull request depending on another, which means a pull request could only be merge after all it's dependencies got merged into the target branch. This allows us to gradually applying the changes and review them in smaller chunks, making the process more manageable. |
That's interesting and cool. Can we create those chunks in some way or I have to create different branches with manual changes? |
I'm afraid you'll have to do so by hand since github doesn't support such cool pull requests while gitlab is offering this as a paid feature You can start with building upon an existing branch. Submit a pull request when you're ready for a new, separate feature and create a new branch based of the current branch for further changes. Just make sure each branch(PR) focus on a single modification or topic for clarity. Also, when developing on parallel branches simultaneously, avoid modifying the same files. You know what would happen 😈 |
|
For example: you can start with the
|
|
Hahah okay, thanks for the help! I will do this as it should be done, as you told me. I'll keep this PR open for a while, but when I think the other smaller PRs cover everything done in this one, I'll close it. |
Would it be easier if you slowly mainlined this branch instead of PR'ing into main? |
|
@BobbyESP would it be possible to just integrate termux's package manager and internally all the app could do is install packages from the package manager? They would be saved into path and execute normally that way 🤔 |
You mean to directly download from the app the necessary packages to work from the Termux apt repository? I see what you're aiming for but implementing something like that might be too complex in practice. So while it’s technically possible, doing it cleanly and reliably would require a lot of work — maybe more than what it’s worth, but you can play with it. I came across a library called Chaquopy that might solve many of the issues we've been facing with Python, dependencies, and integration. I haven't tried it yet, but it looks promising — it allows you to use |
|
@BobbyESP The problem with chaquopy is that the packages are managed by them and alot of them are not available. Like curl cffi. Termux is our best bet i guess Id love if we could gather up on discord or telegram, talk this through and try to build a system where packages are built through github actions. We code the shell scripts in the repo and the workflows execute them and then the app downloads them. I introduced the idea to xibr, he mentioned its difficult but i think we can figure it out. |
Hi mate! Yeah, you're absolutely right. I personally prefer to discuss things over Telegram first, if that works for you. Thanks a lot for reaching out! I'd be happy to help, even though I’m no longer working on this, but it definitely sounds like an exciting challenge. |
|
we could make a gc in telegram, invite me |
Pull Request: Move to Downloadable Plugins
Description
This pull request addresses the following changes:
Changes Made
Benefits
Testing
Additional Notes
Related Issues
Please review and provide feedback on the proposed changes.