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

List of Gradle dependencies for support in gradle refreshVersions #484

Closed
jmfayard opened this issue Sep 11, 2020 · 10 comments
Closed

List of Gradle dependencies for support in gradle refreshVersions #484

jmfayard opened this issue Sep 11, 2020 · 10 comments

Comments

@jmfayard
Copy link
Contributor

Hello, I was reading in your tretrospective v3 that you have now 40 dependencies modules.

I want to add support for adding easily http4k modules via gradle refreshVersions like I did for ktor here

Could you provide me with a complete list of all your gradle dependencies so that I don't forget some?

@daviddenton
Copy link
Member

Hi - we've been planning to migrate to refreshVersions for a while, but couldn't find an easy way to migrate. Would appreciate any help at all that you could give us in that direction!

Very happy to see how it all looks so feel free to PR it! 😄

@jmfayard
Copy link
Contributor Author

jmfayard commented Sep 11, 2020

Hi - we've been planning to migrate to refreshVersions for a while, but couldn't find an easy way to migrate. Would appreciate any help at all that you could give us in that direction!

Yes we still have work to do on the configuration & migration front. I can migrate your project once you are there.

This issue is about something else though. We will now embed constants of Gradle dependencies for popular Kotlin projects. So I have to add something like:

object Http4k {
   const val BOM = "org.http4k:http4k-bom:_"
   const val core = ""org.http4k:http4k-core:_"
    // same for the 40 other modules
   // see https://github.com/jmfayard/refreshVersions/blob/develop/plugins/dependencies/src/main/kotlin/dependencies
}

This makes it much faster to add a dependency when you start a new project

https://www.youtube.com/embed/VhYERonB8co

@daviddenton
Copy link
Member

Assuming you mean the list of modules, this is that list in the format:

const val http4k_aws = "org.http4k:http4k-aws:_"
const val http4k_client_apache = "org.http4k:http4k-client-apache:_"
const val http4k_client_apache-async = "org.http4k:http4k-client-apache-async:_"
const val http4k_client_apache4 = "org.http4k:http4k-client-apache4:_"
const val http4k_client_apache4-async = "org.http4k:http4k-client-apache4-async:_"
const val http4k_client_jetty = "org.http4k:http4k-client-jetty:_"
const val http4k_client_okhttp = "org.http4k:http4k-client-okhttp:_"
const val http4k_client_websocket = "org.http4k:http4k-client-websocket:_"
const val http4k_cloudnative = "org.http4k:http4k-cloudnative:_"
const val http4k_contract = "org.http4k:http4k-contract:_"
const val http4k_core = "org.http4k:http4k-core:_"
const val http4k_format_argo = "org.http4k:http4k-format-argo:_"
const val http4k_format_gson = "org.http4k:http4k-format-gson:_"
const val http4k_format_jackson = "org.http4k:http4k-format-jackson:_"
const val http4k_format_jackson-xml = "org.http4k:http4k-format-jackson-xml:_"
const val http4k_format_jackson-yaml = "org.http4k:http4k-format-jackson-yaml:_"
const val http4k_format_kotlinx-serialization = "org.http4k:http4k-format-kotlinx-serialization:_"
const val http4k_format_moshi = "org.http4k:http4k-format-moshi:_"
const val http4k_format_xml = "org.http4k:http4k-format-xml:_"
const val http4k_incubator = "org.http4k:http4k-incubator:_"
const val http4k_jsonrpc = "org.http4k:http4k-jsonrpc:_"
const val http4k_metrics_micrometer = "org.http4k:http4k-metrics-micrometer:_"
const val http4k_multipart = "org.http4k:http4k-multipart:_"
const val http4k_resilience4j = "org.http4k:http4k-resilience4j:_"
const val http4k_security_oauth = "org.http4k:http4k-security-oauth:_"
const val http4k_server_apache = "org.http4k:http4k-server-apache:_"
const val http4k_server_apache4 = "org.http4k:http4k-server-apache4:_"
const val http4k_server_jetty = "org.http4k:http4k-server-jetty:_"
const val http4k_server_ktorcio = "org.http4k:http4k-server-ktorcio:_"
const val http4k_server_ktornetty = "org.http4k:http4k-server-ktornetty:_"
const val http4k_server_netty = "org.http4k:http4k-server-netty:_"
const val http4k_server_ratpack = "org.http4k:http4k-server-ratpack:_"
const val http4k_server_undertow = "org.http4k:http4k-server-undertow:_"
const val http4k_serverless_gcf = "org.http4k:http4k-serverless-gcf:_"
const val http4k_serverless_lambda = "org.http4k:http4k-serverless-lambda:_"
const val http4k_serverless_openwhisk = "org.http4k:http4k-serverless-openwhisk:_"
const val http4k_template_dust = "org.http4k:http4k-template-dust:_"
const val http4k_template_freemarker = "org.http4k:http4k-template-freemarker:_"
const val http4k_template_handlebars = "org.http4k:http4k-template-handlebars:_"
const val http4k_template_jade4j = "org.http4k:http4k-template-jade4j:_"
const val http4k_template_pebble = "org.http4k:http4k-template-pebble:_"
const val http4k_template_thymeleaf = "org.http4k:http4k-template-thymeleaf:_"
const val http4k_testing_approval = "org.http4k:http4k-testing-approval:_"
const val http4k_testing_chaos = "org.http4k:http4k-testing-chaos:_"
const val http4k_testing_hamkrest = "org.http4k:http4k-testing-hamkrest:_"
const val http4k_testing_kotest = "org.http4k:http4k-testing-kotest:_"
const val http4k_testing_servirtium = "org.http4k:http4k-testing-servirtium:_"
const val http4k_testing_webdriver = "org.http4k:http4k-testing-webdriver:_"

Is there something you could do to ensure that the list doesn't go out of date? The BOM has all of the individual dependencies in it.

@LouisCAD
Copy link

What if they want to have version.kotest custom rule pointing at their own package? Can they not load or unload or override the default setting?

@daviddenton I guess we could have a test that checks the constants against the entries in the BoM. We could run it nightly or so. More work on our end though.

Or you can edit http4k release process to add "open a PR to refreshVersions whenever a new module is added". More work on your end though.

@daviddenton
Copy link
Member

Here's an updated list:

const val http4k-bom = "org.http4k:http4k-bom:_"
const val http4k-client-apache = "org.http4k:http4k-client-apache:_"
const val http4k-client-apache-async = "org.http4k:http4k-client-apache-async:_"
const val http4k-client-apache4 = "org.http4k:http4k-client-apache4:_"
const val http4k-client-apache4-async = "org.http4k:http4k-client-apache4-async:_"
const val http4k-client-jetty = "org.http4k:http4k-client-jetty:_"
const val http4k-client-okhttp = "org.http4k:http4k-client-okhttp:_"
const val http4k-client-websocket = "org.http4k:http4k-client-websocket:_"
const val http4k-cloudnative = "org.http4k:http4k-cloudnative:_"
const val http4k-contract = "org.http4k:http4k-contract:_"
const val http4k-core = "org.http4k:http4k-core:_"
const val http4k-format-argo = "org.http4k:http4k-format-argo:_"
const val http4k-format-core = "org.http4k:http4k-format-core:_"
const val http4k-format-gson = "org.http4k:http4k-format-gson:_"
const val http4k-format-jackson = "org.http4k:http4k-format-jackson:_"
const val http4k-format-jackson-xml = "org.http4k:http4k-format-jackson-xml:_"
const val http4k-format-jackson-yaml = "org.http4k:http4k-format-jackson-yaml:_"
const val http4k-format-klaxon = "org.http4k:http4k-format-klaxon:_"
const val http4k-format-kotlinx-serialization = "org.http4k:http4k-format-kotlinx-serialization:_"
const val http4k-format-moshi = "org.http4k:http4k-format-moshi:_"
const val http4k-format-xml = "org.http4k:http4k-format-xml:_"
const val http4k-graphql = "org.http4k:http4k-graphql:_"
const val http4k-incubator = "org.http4k:http4k-incubator:_"
const val http4k-jsonrpc = "org.http4k:http4k-jsonrpc:_"
const val http4k-metrics-micrometer = "org.http4k:http4k-metrics-micrometer:_"
const val http4k-multipart = "org.http4k:http4k-multipart:_"
const val http4k-opentelemetry = "org.http4k:http4k-opentelemetry:_"
const val http4k-resilience4j = "org.http4k:http4k-resilience4j:_"
const val http4k-security-oauth = "org.http4k:http4k-security-oauth:_"
const val http4k-server-apache = "org.http4k:http4k-server-apache:_"
const val http4k-server-apache4 = "org.http4k:http4k-server-apache4:_"
const val http4k-server-jetty = "org.http4k:http4k-server-jetty:_"
const val http4k-server-ktorcio = "org.http4k:http4k-server-ktorcio:_"
const val http4k-server-ktornetty = "org.http4k:http4k-server-ktornetty:_"
const val http4k-server-netty = "org.http4k:http4k-server-netty:_"
const val http4k-server-ratpack = "org.http4k:http4k-server-ratpack:_"
const val http4k-server-undertow = "org.http4k:http4k-server-undertow:_"
const val http4k-serverless-alibaba = "org.http4k:http4k-serverless-alibaba:_"
const val http4k-serverless-azure = "org.http4k:http4k-serverless-azure:_"
const val http4k-serverless-gcf = "org.http4k:http4k-serverless-gcf:_"
const val http4k-serverless-lambda = "org.http4k:http4k-serverless-lambda:_"
const val http4k-serverless-openwhisk = "org.http4k:http4k-serverless-openwhisk:_"
const val http4k-serverless-tencent = "org.http4k:http4k-serverless-tencent:_"
const val http4k-template-core = "org.http4k:http4k-template-core:_"
const val http4k-template-dust = "org.http4k:http4k-template-dust:_"
const val http4k-template-freemarker = "org.http4k:http4k-template-freemarker:_"
const val http4k-template-handlebars = "org.http4k:http4k-template-handlebars:_"
const val http4k-template-jade4j = "org.http4k:http4k-template-jade4j:_"
const val http4k-template-pebble = "org.http4k:http4k-template-pebble:_"
const val http4k-template-thymeleaf = "org.http4k:http4k-template-thymeleaf:_"
const val http4k-testing-approval = "org.http4k:http4k-testing-approval:_"
const val http4k-testing-chaos = "org.http4k:http4k-testing-chaos:_"
const val http4k-testing-hamkrest = "org.http4k:http4k-testing-hamkrest:_"
const val http4k-testing-kotest = "org.http4k:http4k-testing-kotest:_"
const val http4k-testing-servirtium = "org.http4k:http4k-testing-servirtium:_"
const val http4k-testing-webdriver = "org.http4k:http4k-testing-webdriver:_"
const val http4k-aws = "org.http4k:http4k-aws:_"
const val http4k-bom = "org.http4k:http4k-bom:_"
const val http4k-client-apache = "org.http4k:http4k-client-apache:_"
const val http4k-client-apache-async = "org.http4k:http4k-client-apache-async:_"
const val http4k-client-apache4 = "org.http4k:http4k-client-apache4:_"
const val http4k-client-apache4-async = "org.http4k:http4k-client-apache4-async:_"
const val http4k-client-jetty = "org.http4k:http4k-client-jetty:_"
const val http4k-client-okhttp = "org.http4k:http4k-client-okhttp:_"
const val http4k-client-websocket = "org.http4k:http4k-client-websocket:_"
const val http4k-cloudnative = "org.http4k:http4k-cloudnative:_"
const val http4k-contract = "org.http4k:http4k-contract:_"
const val http4k-core = "org.http4k:http4k-core:_"
const val http4k-format-argo = "org.http4k:http4k-format-argo:_"
const val http4k-format-core = "org.http4k:http4k-format-core:_"
const val http4k-format-gson = "org.http4k:http4k-format-gson:_"
const val http4k-format-jackson = "org.http4k:http4k-format-jackson:_"
const val http4k-format-jackson-xml = "org.http4k:http4k-format-jackson-xml:_"
const val http4k-format-jackson-yaml = "org.http4k:http4k-format-jackson-yaml:_"
const val http4k-format-klaxon = "org.http4k:http4k-format-klaxon:_"
const val http4k-format-kotlinx-serialization = "org.http4k:http4k-format-kotlinx-serialization:_"
const val http4k-format-moshi = "org.http4k:http4k-format-moshi:_"
const val http4k-format-xml = "org.http4k:http4k-format-xml:_"
const val http4k-graphql = "org.http4k:http4k-graphql:_"
const val http4k-incubator = "org.http4k:http4k-incubator:_"
const val http4k-jsonrpc = "org.http4k:http4k-jsonrpc:_"
const val http4k-metrics-micrometer = "org.http4k:http4k-metrics-micrometer:_"
const val http4k-multipart = "org.http4k:http4k-multipart:_"
const val http4k-opentelemetry = "org.http4k:http4k-opentelemetry:_"
const val http4k-resilience4j = "org.http4k:http4k-resilience4j:_"
const val http4k-security-oauth = "org.http4k:http4k-security-oauth:_"
const val http4k-server-apache = "org.http4k:http4k-server-apache:_"
const val http4k-server-apache4 = "org.http4k:http4k-server-apache4:_"
const val http4k-server-jetty = "org.http4k:http4k-server-jetty:_"
const val http4k-server-ktorcio = "org.http4k:http4k-server-ktorcio:_"
const val http4k-server-ktornetty = "org.http4k:http4k-server-ktornetty:_"
const val http4k-server-netty = "org.http4k:http4k-server-netty:_"
const val http4k-server-ratpack = "org.http4k:http4k-server-ratpack:_"
const val http4k-server-undertow = "org.http4k:http4k-server-undertow:_"
const val http4k-serverless-alibaba = "org.http4k:http4k-serverless-alibaba:_"
const val http4k-serverless-azure = "org.http4k:http4k-serverless-azure:_"
const val http4k-serverless-gcf = "org.http4k:http4k-serverless-gcf:_"
const val http4k-serverless-lambda = "org.http4k:http4k-serverless-lambda:_"
const val http4k-serverless-openwhisk = "org.http4k:http4k-serverless-openwhisk:_"
const val http4k-serverless-tencent = "org.http4k:http4k-serverless-tencent:_"
const val http4k-template-core = "org.http4k:http4k-template-core:_"
const val http4k-template-dust = "org.http4k:http4k-template-dust:_"
const val http4k-template-freemarker = "org.http4k:http4k-template-freemarker:_"
const val http4k-template-handlebars = "org.http4k:http4k-template-handlebars:_"
const val http4k-template-jade4j = "org.http4k:http4k-template-jade4j:_"
const val http4k-template-pebble = "org.http4k:http4k-template-pebble:_"
const val http4k-template-thymeleaf = "org.http4k:http4k-template-thymeleaf:_"
const val http4k-testing-approval = "org.http4k:http4k-testing-approval:_"
const val http4k-testing-chaos = "org.http4k:http4k-testing-chaos:_"
const val http4k-testing-hamkrest = "org.http4k:http4k-testing-hamkrest:_"
const val http4k-testing-kotest = "org.http4k:http4k-testing-kotest:_"
const val http4k-testing-servirtium = "org.http4k:http4k-testing-servirtium:_"
const val http4k-testing-webdriver = "org.http4k:http4k-testing-webdriver:_"

happy to do PRs manually for now when we add a version. Is there anything left to do from our end?

@jmfayard
Copy link
Contributor Author

jmfayard commented Dec 5, 2020

thanks a lot. We have homework to do on our side before we start adding new dependencies, but then i will definitely use your list and ping you to ask if some are new @daviddenton

@daviddenton
Copy link
Member

cool. will close this for now then. :)

@jmfayard
Copy link
Contributor Author

Hello @daviddenton
We are finally ready to add dependency notations in refreshVersions.
Can you check that I've missed no artifact?
Thanks

https://github.com/jmfayard/refreshVersions/blob/f7776bbcc5e02c30dfadb3c722594e963dcbfc56/plugins/dependencies/src/main/kotlin/dependencies/Http4k.kt#L5-L102

@daviddenton
Copy link
Member

@jmfayard you're missing a couple that we added recently:

http4k-realtime-core
http4k-serverless-lambda-runtime
http4k-testing-strikt

jmfayard added a commit to Splitties/refreshVersions that referenced this issue Jun 28, 2021
@jmfayard
Copy link
Contributor Author

Thanks a lot!

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

3 participants