IJI-673 *ApplicationInfo.xml build.@majorReleaseDate attribute may be omitted only for EAP.

Otherwise, for non-EAP builds (like Preview/RC/Beta/etc) it's set to build time, so paid plugins are published to Marketplace with product-descriptor.@release-date set to build time too. Which means actual release for JetSales (not true), so no further updates will be accepted for that plugin product-descriptor.@release-version since product-descriptor.@release-date will again be different.

GitOrigin-RevId: 5ab32f3bb8871b2094963b38ce6fbf407b457d0b
This commit is contained in:
Dmitriy.Panov
2021-09-03 14:46:32 +00:00
committed by intellij-monorepo-bot
parent e2c1e3c3db
commit ae7df334bf
2 changed files with 9 additions and 5 deletions
@@ -3,7 +3,7 @@
xsi:schemaLocation="http://jetbrains.org/intellij/schema/application-info http://jetbrains.org/intellij/schema/ApplicationInfo.xsd">
<version major="2021" minor="3" eap="true"/>
<company name="JetBrains s.r.o." url="https://www.jetbrains.com"/>
<build number="IC-__BUILD__" date="__BUILD_DATE__"/>
<build number="IC-__BUILD__" date="__BUILD_DATE__"/> <!--majorReleaseDate="20170321"-->
<logo url="/idea_community_logo.png" textcolor="ffffff" progressColor="ffae00" progressY="397" progressHeight="3" />
<about url="/idea_community_about.png" foreground="ffffff" copyrightForeground="ffffff" linkColor="095fdc" logoX="540" logoY="300" logoW="100" logoH="100"/>
<icon ico="idea_CE.ico" svg="/idea-ce.svg" svg-small="/idea-ce_16.svg"/>
@@ -50,7 +50,7 @@ final class ApplicationInfoProperties {
@SuppressWarnings(["GrUnresolvedAccess", "GroovyAssignabilityCheck"])
@CompileStatic(TypeCheckingMode.SKIP)
private ApplicationInfoProperties(ProductProperties productProperties, String appInfoXml) {
private ApplicationInfoProperties(ProductProperties productProperties, String appInfoXml, BuildMessages messages) {
this.appInfoXml = appInfoXml
def root = new StringReader(appInfoXml).withCloseable { new XmlParser().parse(it) }
@@ -79,7 +79,11 @@ final class ApplicationInfoProperties {
productCode = productProperties.productCode
}
this.productCode = productCode
majorReleaseDate = formatMajorReleaseDate(root.build.first().@majorReleaseDate)
def majorReleaseDate = root.build.first().@majorReleaseDate
if (!isEAP && (majorReleaseDate == null || majorReleaseDate.startsWith('__'))) {
messages.error("majorReleaseDate may be omitted only for EAP")
}
this.majorReleaseDate = formatMajorReleaseDate(majorReleaseDate)
productName = namesTag.@fullname ?: shortProductName
edition = namesTag.@edition
motto = namesTag.@motto
@@ -116,7 +120,7 @@ final class ApplicationInfoProperties {
}
ApplicationInfoProperties(JpsProject project, ProductProperties productProperties, BuildMessages messages) {
this(productProperties, findApplicationInfoInSources(project, productProperties, messages))
this(productProperties, findApplicationInfoInSources(project, productProperties, messages), messages)
}
String getUpperCaseProductName() { shortProductName.toUpperCase() }
@@ -151,7 +155,7 @@ final class ApplicationInfoProperties {
"BUILD", buildContext.buildNumber,
"BUILTIN_PLUGINS_URL", builtinPluginsRepoUrl ?: ""
), "__")
return new ApplicationInfoProperties(buildContext.productProperties, patchedAppInfoXml)
return new ApplicationInfoProperties(buildContext.productProperties, patchedAppInfoXml, buildContext.messages)
}
//copy of ApplicationInfoImpl.shortenCompanyName