Skip to content

Conversation

@theimpulson
Copy link
Member

@theimpulson theimpulson commented Nov 21, 2025

Summary

This PR:

  • Migrates build DSL to Kotlin as it has better syntax, highlights and lint support compared to groovy
  • Switches to build version catalog to manage dependencies version across all modules in one place
  • Relocates all publishing and test steps to extractor module
  • Adds missing information for publishing extractor on mavencentral

Due diligence

  • I carefully read the contribution guidelines and agree to them.
  • I have tested the API against NewPipe.
  • I agree to create a pull request for NewPipe as soon as possible to make it compatible with the changed API.

Copy link
Contributor

@TobiGr TobiGr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I went through the changes, but did not test them.

@theimpulson theimpulson force-pushed the kotlinDSL branch 2 times, most recently from 86f1d83 to f40f4db Compare November 22, 2025 23:35
@theimpulson theimpulson marked this pull request as draft November 23, 2025 16:33
@theimpulson theimpulson changed the title Migrate to Kotlin DSL and build version catalog Refactor build and publishing setup Nov 24, 2025
@theimpulson theimpulson marked this pull request as ready for review November 24, 2025 13:50
@theimpulson
Copy link
Member Author

Signing support is still missing as that's needed for mavencentral

@theimpulson
Copy link
Member Author

I couldn't find classes from the timeago-* modules in the currently generated jar file for the extractor nor do they seem to be getting generated separately or consumed in the NewPipe app. This made me assume that they are supposed to be consumed by the extractor and aren't supposed to be released.

Hence, I moved the javadoc, source and publishing setup to the extractor module.

@Stypox Stypox mentioned this pull request Nov 26, 2025
3 tasks
Copy link
Member

@Stypox Stypox left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I compared all of the files and they mostly look good to me. I also tried building locally and I was able to run tests, and also to build NewPipe when depending on the local copy of NewPipeExtractor.

I couldn't find classes from the timeago-* modules in the currently generated jar file for the extractor nor do they seem to be getting generated separately or consumed in the NewPipe app. This made me assume that they are supposed to be consumed by the extractor and aren't supposed to be released.

You mean that the timeago-parser JAR is not needed externally? Yeah that's correct, timeago-parser is just a subproject used internally in NewPipeExtractor that shouldn't be published separately.

Signing support is still missing as that's needed for mavencentral

I think it's fine to proceed with this using environment variables. Then we can setup a CI action that creates a new release on mavencentral. However this should be done in a separate PR

@theimpulson theimpulson force-pushed the kotlinDSL branch 2 times, most recently from b982a6d to 61d1260 Compare December 1, 2025 09:45
* Add missing information in pom file
* Add a new local maven repo to access the file easily
* Relocate the publishing instructions to extractor module
* Use the existing Gradle task to generate javadoc

Signed-off-by: Aayush Gupta <[email protected]>
Only extractor has actual tests

Signed-off-by: Aayush Gupta <[email protected]>
@theimpulson
Copy link
Member Author

Signing support is still missing as that's needed for mavencentral

I will do this in a separate PR

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

Successfully merging this pull request may close these issues.

4 participants