-
Notifications
You must be signed in to change notification settings - Fork 272
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
Provide support for custom plugin repositories #528
Conversation
@zolotov I haven't bumped plugin version nor added documentation. Let me know if any of these is needed. |
Thanks. It looks like a solution for #15 I have concerns about the API, though:
Probably, it makes sense to convert |
No problem, I usually do that right before publishing. I also think that feature should go with |
I've posted the suggestion :) Probably, it makes sense to convert intellij.pluginsRepo into an array setting and automatically detect whether it's an plugins.xml-based repository or maven based (e.g. by downloading plugins.xml files every time). |
OK, sounds good and more generic! That would however solve just a half of the problem. The other is downloading the latest IDE build. Should we do the same and simply detect if we are dealing with nightly? |
Sorry, didn't get the problem. Could you elaborate,please? |
@zolotov Nevermind. I replied too quickly. I'll look into applying your suggestions next week. Do you have an example of a corporate repo layout, so that I can support that as well? |
@piotrtomiak as far as I understand, artifacts of nightly teamcity builds is an example of corporate repo layout, so it's just an |
@zolotov I've been trying to figure out the best way to keep backward compatibility and provide support for the corporate layout. How about something like this: intellij {
...
pluginsRepo {
marketplace() // maven("https://cache-redirector.jetbrains.com/plugins.jetbrains.com/maven")
maven("https://corpo.net/intellij/maven")
custom("https://corpo.net/plugins/intellij/updatePlugins.xml")
custom("https://other-corpo.org/plugins/ij/plugins.xml")
}
...
} Now, the question is about val nightlyBuildUrl = "https://..."
intellij {
...
intellijRepo = "${nightlyBuildUrl}"
pluginsRepo {
maven("${nightlyBuildUrl}/maven-artifacts")
custom("${nightlyBuildUrl}/IU-plugins/plugins.xml")
}
...
} Let me know what you think! |
Love it
I don't think url should be required. It's possible to use local directory as an intellij build without a nightly build. Probably I misunderstood the suggestion. UPD: ah, you want to download Installers right from the buildserver too. Is there a need for that? From the JB network you can access to them without patching an |
Awesome! I'll go with it than :) |
d8f8bec
to
b3ea92d
Compare
8f8e6a6
to
de9c1d5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, would be nice to have a test for custom repository. see org.jetbrains.intellij.DownloadIntelliJPluginsSpec
src/main/groovy/org/jetbrains/intellij/IntelliJPluginExtension.groovy
Outdated
Show resolved
Hide resolved
I'll need to include an xml and single jar in a test directory, unless you are aware of a public and stable custom plugin repository. Sounds good? |
@piotrtomiak sure |
Also, upgrade documentr to newer version, as the old one fails to generate output with cryptic message. Fixes JetBrains#15
de9c1d5
to
9e6031e
Compare
Thank you very much! Merged. I’ll publish 0.5 as soon as I investigate problems with kotlin-serialization 1.4 |
Awesome! |
Hi! Please, is this feature deployed? Thanks in advance! |
it's in 0.5-SNAPSHOT only so far, will publish as soon as #537 gets fixed |
here is the instruction on how to use snapshot version https://github.com/JetBrains/gradle-intellij-plugin#snapshot-version |
Awesome, thank you so much @zolotov 🙌 Gradle works and accepts the new DSL however It's not finding the plugin. I'm following this schema: https://jetbrains.org/intellij/sdk/docs/basics/getting_started/update_plugins_format.html#format-of-updatepluginsxml-file though the test is using this schema: https://github.com/piotrtomiak/gradle-intellij-plugin/blob/9e6031e05d9ad5656c934410c497eba5aab88c7f/src/test/resources/custom-repo/plugins.xml Please, did I check the wrong documentation for the private repository? Thanks in advance!! |
That is the right documentation. Probably running gradle with cc @piotrtomiak |
Thank you so much @zolotov ! No clues in the console output with the different Gradle options. After:
it appears:
and I think the reason is looking for
and nothing happens if it's not found:
Thanks again!! |
And |
@rachelcarmena It turns out that I was following a different schema. I will update the code to support both. |
That would be awesome @piotrtomiak , thank you so much!! 👏 💃 |
Building Vue.j plugin from sources on master using gradle requires IDEA nightly builds. It was really cumbersome to get everything to compile, so here is PR with support for nightly builds. Example configuration:
You can of course fix the URL to a particular nightly build. Tested
runIde
target, which works perfectly.