Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package apiguardian for openSUSE:Factory checked in at 2024-04-30 17:26:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/apiguardian (Old) and /work/SRC/openSUSE:Factory/.apiguardian.new.1880 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apiguardian" Tue Apr 30 17:26:42 2024 rev:3 rq:1170837 version:1.1.2 Changes: -------- --- /work/SRC/openSUSE:Factory/apiguardian/apiguardian.changes 2022-03-24 22:58:26.448276040 +0100 +++ /work/SRC/openSUSE:Factory/.apiguardian.new.1880/apiguardian.changes 2024-04-30 17:27:43.902982485 +0200 @@ -1,0 +2,12 @@ +Mon Apr 29 07:13:35 UTC 2024 - Fridrich Strba <[email protected]> + +- Upgrade to upstream vesion 1.1.2 + * Fixes: + + Javadoc 1.8 cannot link to the published 1.1.0 API + documentation + + Add LICENSE/NOTICE to the generated jar + + Allow @API to be declared at the package level + + Explain usage of Status.DEPRECATED + + Include OSGi metadata in manifest + +------------------------------------------------------------------- Old: ---- apiguardian-api-1.0.0.pom r1.0.0.tar.gz New: ---- apiguardian-api-1.1.2.pom r1.1.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ apiguardian.spec ++++++ --- /var/tmp/diff_new_pack.qqKNZd/_old 2024-04-30 17:27:44.587007358 +0200 +++ /var/tmp/diff_new_pack.qqKNZd/_new 2024-04-30 17:27:44.591007503 +0200 @@ -1,7 +1,7 @@ # # spec file for package apiguardian # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,8 +16,11 @@ # +# The automatic requires would be java-headless >= 9, but the +# binaries are java 8 compatible +%define __requires_exclude java-headless Name: apiguardian -Version: 1.0.0 +Version: 1.1.2 Release: 0 Summary: API Guardian Java annotation License: Apache-2.0 @@ -28,8 +31,9 @@ Source100: https://repo1.maven.org/maven2/org/apiguardian/apiguardian-api/%{version}/apiguardian-api-%{version}.pom BuildRequires: ant BuildRequires: fdupes -BuildRequires: java-devel >= 1.6 -BuildRequires: javapackages-local +BuildRequires: java-devel >= 9 +BuildRequires: javapackages-local >= 6 +Requires: java-headless >= 1.8 BuildArch: noarch %description @@ -51,6 +55,8 @@ find -name \*.jar -delete cp -p %{SOURCE1} . +mv src/module/java/*/module-info.java src/main/java/ + %build %{ant} -f %{name}-build.xml jar javadoc @@ -60,7 +66,7 @@ install -pm 0644 target/apiguardian-api-%{version}.jar %{buildroot}%{_javadir}/%{name}/apiguardian-api.jar # pom install -dm 0755 %{buildroot}%{_mavenpomdir}/%{name} -install -pm 0644 %{SOURCE100} %{buildroot}%{_mavenpomdir}/%{name}/apiguardian-api.pom +%{mvn_install_pom} %{SOURCE100} %{buildroot}%{_mavenpomdir}/%{name}/apiguardian-api.pom %add_maven_depmap %{name}/apiguardian-api.pom %{name}/apiguardian-api.jar # javadoc install -dm 0755 %{buildroot}%{_javadocdir} ++++++ apiguardian-api-1.0.0.pom -> apiguardian-api-1.1.2.pom ++++++ --- /work/SRC/openSUSE:Factory/apiguardian/apiguardian-api-1.0.0.pom 2019-02-02 21:49:56.607944736 +0100 +++ /work/SRC/openSUSE:Factory/.apiguardian.new.1880/apiguardian-api-1.1.2.pom 2024-04-30 17:27:43.870981321 +0200 @@ -1,10 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> -<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <!-- This module was also published with a richer model, Gradle metadata, --> + <!-- which should be used instead. Do not delete the following line which --> + <!-- is to indicate to Gradle or any Gradle module metadata file consumer --> + <!-- that they should prefer consuming it instead. --> + <!-- do_not_remove: published-with-gradle-metadata --> <modelVersion>4.0.0</modelVersion> <groupId>org.apiguardian</groupId> <artifactId>apiguardian-api</artifactId> - <version>1.0.0</version> + <version>1.1.2</version> <name>org.apiguardian:apiguardian-api</name> <description>@API Guardian</description> <url>https://github.com/apiguardian-team/apiguardian</url> ++++++ apiguardian-build.xml ++++++ --- /var/tmp/diff_new_pack.qqKNZd/_old 2024-04-30 17:27:44.651009685 +0200 +++ /var/tmp/diff_new_pack.qqKNZd/_new 2024-04-30 17:27:44.655009830 +0200 @@ -10,7 +10,7 @@ <property name="project.groupId" value="org.apiguardian"/> <property name="project.artifactId" value="apiguardian-api"/> - <property name="project.version" value="1.0.0"/> + <property name="project.version" value="1.1.2"/> <property name="project.name" value="${project.groupId}:${project.artifactId}"/> <property name="project.description" value="@API Guardian"/> @@ -22,7 +22,8 @@ <property name="reporting.outputDirectory" value="${build.dir}/site"/> - <property name="compiler.source" value="1.8"/> + <property name="compiler.release" value="8"/> + <property name="compiler.source" value="1.${compiler.release}"/> <property name="compiler.target" value="${compiler.source}"/> <!-- ====================================================================== --> @@ -39,11 +40,14 @@ <target name="compile" description="Compile the code"> <mkdir dir="${build.outputDir}"/> + <echo message="Compiling all except module-info.java with release=8"/> <javac destdir="${build.outputDir}" nowarn="false" debug="true" + encoding="utf-8" optimize="false" deprecation="true" + release="${compiler.release}" target="${compiler.target}" verbose="false" fork="false" @@ -51,6 +55,25 @@ <src> <pathelement location="${build.srcDir}"/> </src> + <exclude name="**/module-info.java"/> + </javac> + <echo message="Compiling module-info.java with release=9"/> + <javac destdir="${build.outputDir}" + nowarn="false" + debug="true" + encoding="utf-8" + optimize="false" + deprecation="true" + release="9" + verbose="false" + fork="false"> + <src> + <pathelement location="${build.srcDir}"/> + </src> + <include name="**/module-info.java"/> + <modulepath> + <pathelement location="${build.outputDir}"/> + </modulepath> </javac> </target> @@ -63,7 +86,6 @@ packagenames="*" destdir="${reporting.outputDirectory}/apidocs" access="protected" - old="false" verbose="false" version="true" use="true" @@ -92,7 +114,7 @@ basedir="${build.outputDir}" excludes="**/package.html"> <manifest> - <attribute name="Automatic-Module-Name" value="${project.artifactId}"/> + <attribute name="Implementation-Title" value="${project.artifactId}"/> <attribute name="Implementation-Vendor" value="apiguardian.org"/> <attribute name="Implementation-Version" value="${project.version}"/> <attribute name="Specification-Title" value="${project.artifactId}"/> ++++++ r1.0.0.tar.gz -> r1.1.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apiguardian-r1.0.0/.github/workflows/main.yml new/apiguardian-r1.1.2/.github/workflows/main.yml --- old/apiguardian-r1.0.0/.github/workflows/main.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/apiguardian-r1.1.2/.github/workflows/main.yml 2021-06-27 14:52:48.000000000 +0200 @@ -0,0 +1,57 @@ +name: CI + +on: + push: + branches: + - main + - 'releases/*' + pull_request: + branches: + - '*' + +jobs: + + gradle: + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-java@v1 + with: + java-version: 11 + - uses: eskatos/gradle-command-action@v1 + with: + arguments: --stacktrace build + + publish_artifacts: + name: Publish Snapshot Artifacts + needs: gradle + runs-on: ubuntu-latest + if: github.event_name == 'push' && github.repository == 'apiguardian-team/apiguardian' && (startsWith(github.ref, 'refs/heads/releases/') || github.ref == 'refs/heads/main') + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v1 + with: + java-version: 11 + - name: 'Publish' + env: + ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }} + ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }} + run: ./gradlew publish -x check + + update_documentation: + name: Update Snapshot Documentation + needs: gradle + runs-on: ubuntu-latest + if: github.event_name == 'push' && github.repository == 'apiguardian-team/apiguardian' && github.ref == 'refs/heads/main' + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v1 + with: + java-version: 11 + - name: 'Upload Documentation' + env: + GRGIT_USER: ${{ secrets.GH_TOKEN }} + run: ./gradlew gitPublishPush -x check diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apiguardian-r1.0.0/.travis.yml new/apiguardian-r1.1.2/.travis.yml --- old/apiguardian-r1.0.0/.travis.yml 2017-09-10 11:51:33.000000000 +0200 +++ new/apiguardian-r1.1.2/.travis.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -language: java diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apiguardian-r1.0.0/README.md new/apiguardian-r1.1.2/README.md --- old/apiguardian-r1.0.0/README.md 2017-09-10 11:51:33.000000000 +0200 +++ new/apiguardian-r1.1.2/README.md 2021-06-27 14:52:48.000000000 +0200 @@ -1,8 +1,29 @@ # @API Guardian -## Continuous Integration Builds +[](https://github.com/apiguardian-team/apiguardian/actions) -| CI Server | OS | Status | Description | -| --------- | ------- | ------ | ----------- | -| Jenkins | Linux | [](https://junit.ci.cloudbees.com/job/API_Guardian) | Official CI build server for @API Guardian | -| Travis CI | Linux | [](https://travis-ci.org/apiguardian-team/apiguardian) | Used to perform quick checks on submitted pull requests | +Library that provides the `@API` annotation that is used to annotate public types, methods, constructors, and fields within a framework or application in order to publish their status and level of stability and to indicate how they are intended to be used by consumers of the API. + +## How to use it + +The @API Guardian library is deployed to Maven Central. You can simply add it as a dependency: + +### Apache Maven +```xml +<dependency> + <groupId>org.apiguardian</groupId> + <artifactId>apiguardian-api</artifactId> + <version>1.1.2</version> +</dependency> +``` + +### Gradle + +```gradle +repositories { + mavenCentral() +} +dependencies { + compileOnlyApi("org.apiguardian:apiguardian-api:1.1.2") +} +``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apiguardian-r1.0.0/build.gradle new/apiguardian-r1.1.2/build.gradle --- old/apiguardian-r1.0.0/build.gradle 2017-09-10 11:51:33.000000000 +0200 +++ new/apiguardian-r1.1.2/build.gradle 1970-01-01 01:00:00.000000000 +0100 @@ -1,219 +0,0 @@ -import java.text.SimpleDateFormat - -buildscript { - repositories { - maven { - url 'https://plugins.gradle.org/m2/' - } - } - dependencies { - classpath 'org.ajoberstar:gradle-git:1.7.2' - classpath "be.insaneprogramming.gradle:animalsniffer-gradle-plugin:+" - } -} - -plugins { - id 'net.nemerosa.versioning' version '2.6.1' -} - -Date buildTimeAndDate = new Date() -ext { - buildDate = new SimpleDateFormat('yyyy-MM-dd').format(buildTimeAndDate) - buildTime = new SimpleDateFormat('HH:mm:ss.SSSZ').format(buildTimeAndDate) - builtByValue = project.hasProperty('builtBy') ? project.builtBy : project.defaultBuiltBy -} - -apply plugin: 'java' -apply plugin: 'eclipse' -apply plugin: 'idea' -apply plugin: 'maven' -apply plugin: 'signing' -apply plugin: 'be.insaneprogramming.gradle.animalsniffer' -apply plugin: 'net.nemerosa.versioning' -apply plugin: "org.ajoberstar.github-pages" - -description = '@API Guardian' - -repositories { - mavenCentral() -} - -compileJava { - // please also update accordingly the animalsniffer config down below when changing the compatibility settings - sourceCompatibility = 1.6 - targetCompatibility = 1.6 -} - -compileTestJava { - sourceCompatibility = 1.6 - targetCompatibility = 1.6 -} - -def normalizeVersion = { versionLiteral -> - try { - (versionLiteral =~ /(\d+)\.(\d+)\.(\d+).*/)[0][1..3].join('.') - } catch(x) { - throw new GradleException("Version '$versionLiteral' does not match version pattern, e.g. 1.0.0-QUALIFIER") - } -} - -jar { - manifest { - attributes( - 'Created-By': "${System.properties['java.version']} (${System.properties['java.vendor']} ${System.properties['java.vm.version']})".toString(), - 'Built-By': builtByValue, - 'Build-Date': buildDate, - 'Build-Time': buildTime, - 'Build-Revision': versioning.info.commit, - 'Specification-Title': project.name, - 'Specification-Version': normalizeVersion(project.version), - 'Specification-Vendor': 'apiguardian.org', - 'Implementation-Title': project.name, - 'Implementation-Version': project.version, - 'Implementation-Vendor': 'apiguardian.org', - 'Automatic-Module-Name': 'org.apiguardian.api' - ) - } -} - -javadoc { - options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED - options.author = true - options.header = '@API Guardian' - options.addStringOption('Xdoclint:html,syntax,reference', '-quiet') - options.links 'https://docs.oracle.com/javase/6/docs/api/' -} - -task sourcesJar(type: Jar, dependsOn: classes) { - classifier = 'sources' - from sourceSets.main.allSource -} - -task javadocJar(type: Jar) { - classifier = 'javadoc' - from javadoc -} - -artifacts { - archives sourcesJar - archives javadocJar -} - -animalsniffer { - signature = "org.codehaus.mojo.signature:java16:+@signature" -} - -def signArtifacts = !project.version.contains('SNAPSHOT') - -if (signArtifacts) { - signing { - sign configurations.archives - } -} - -uploadArchives { - - dependsOn check - - repositories { - mavenDeployer { - - if (signArtifacts) { - beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } - } - - def ossrhUsername = rootProject.hasProperty('ossrhUsername') ? rootProject.ossrhUsername : '' - def ossrhPassword = rootProject.hasProperty('ossrhPassword') ? rootProject.ossrhPassword : '' - - repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { - authentication(userName: ossrhUsername, password: ossrhPassword) - } - - snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { - authentication(userName: ossrhUsername, password: ossrhPassword) - } - - pom.project { - name "${project.group}:${project.name}" - packaging 'jar' - description "@API Guardian" - url 'https://github.com/apiguardian-team/apiguardian' - - scm { - connection 'scm:git:git://github.com/apiguardian-team/apiguardian.git' - developerConnection 'scm:git:git://github.com/apiguardian-team/apiguardian.git' - url 'https://github.com/apiguardian-team/apiguardian' - } - - licenses { - license { - name 'The Apache License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - - developers { - developer { - id 'apiguardian' - name '@API Guardian Team' - email '[email protected]' - } - } - } - - pom.whenConfigured { p -> - p.dependencies = p.dependencies.findAll { dep -> dep.scope != 'test' } - } - } - } -} - -def docsVersion = project.version.contains('SNAPSHOT') ? 'snapshot' : project.version -def docsDir = new File(buildDir, 'ghpages-docs') - -task prepareDocsForUploadToGhPages(dependsOn: [javadoc], type: Copy) { - outputs.dir docsDir - - from("$buildDir/docs") { - include 'javadoc/**' - } - into "${docsDir}/${docsVersion}" - filesMatching('javadoc/**') { fileCopyDetails -> - fileCopyDetails.path = fileCopyDetails.path.replace('javadoc/', 'api/') - } - includeEmptyDirs = false -} - -task createCurrentDocsFolder(dependsOn: prepareDocsForUploadToGhPages, type: Copy) { - outputs.dir "${docsDir}/current" - - from "${docsDir}/${docsVersion}" - into "${docsDir}/current" -} - -createCurrentDocsFolder.onlyIf { project.hasProperty('replaceCurrentDocs') } - -githubPages { - repoUri = 'https://github.com/apiguardian-team/apiguardian.git' - - credentials { - username = project.hasProperty('githubToken') ? project.githubToken : '' - password = '' - } - - pages { - from docsDir - into "docs" - } - - deleteExistingFiles = false -} - -prepareGhPages.dependsOn(prepareDocsForUploadToGhPages) -prepareGhPages.dependsOn(createCurrentDocsFolder) - -task wrapper(type: Wrapper) { - description = 'Generates gradlew and gradlew.bat scripts' - gradleVersion = '4.1' - distributionType = Wrapper.DistributionType.BIN -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apiguardian-r1.0.0/build.gradle.kts new/apiguardian-r1.1.2/build.gradle.kts --- old/apiguardian-r1.0.0/build.gradle.kts 1970-01-01 01:00:00.000000000 +0100 +++ new/apiguardian-r1.1.2/build.gradle.kts 2021-06-27 14:52:48.000000000 +0200 @@ -0,0 +1,218 @@ +import java.time.OffsetDateTime +import java.time.format.DateTimeFormatter + +plugins { + id("java") + id("eclipse") + id("idea") + id("maven-publish") + id("signing") + id("biz.aQute.bnd.builder") version "5.3.0" + id("net.nemerosa.versioning") version "2.14.0" + id("org.ajoberstar.git-publish") version "3.0.0" + id("io.github.gradle-nexus.publish-plugin") version "1.1.0" +} + +val buildTimeAndDate = OffsetDateTime.now() +val buildDate = DateTimeFormatter.ISO_LOCAL_DATE.format(buildTimeAndDate) +val buildTime = DateTimeFormatter.ofPattern("HH:mm:ss.SSSZ").format(buildTimeAndDate) +val builtByValue = project.findProperty("builtBy") ?: project.property("defaultBuiltBy") + +val isSnapshot = project.version.toString().contains("SNAPSHOT") +val docsVersion = if (isSnapshot) "snapshot" else project.version +val docsDir = File(buildDir, "ghpages-docs") +val replaceCurrentDocs = project.hasProperty("replaceCurrentDocs") + +description = "@API Guardian" +val moduleName = "org.apiguardian.api" + +repositories { + mavenCentral() +} + +java { + withJavadocJar() + withSourcesJar() +} + +val moduleSourceDir = file("src/module/java") + +tasks { + compileJava { + options.release.set(6) + } + + val compileModule by registering(JavaCompile::class) { + source(moduleSourceDir) + destinationDir = file("$buildDir/classes/java/modules") + classpath = files(compileJava.map { it.classpath }) + inputs.property("moduleName", moduleName) + inputs.property("moduleVersion", project.version) + options.release.set(9) + options.compilerArgs = listOf( + "--module-version", project.version as String, + "--module-source-path", moduleSourceDir.toString(), + "--patch-module", "$moduleName=${sourceSets.main.get().allJava.srcDirs.joinToString(":")}", + "--module", moduleName + ) + } + + jar { + fun normalizeVersion(versionLiteral: String): String { + val regex = Regex("(\\d+\\.\\d+\\.\\d+).*") + val match = regex.matchEntire(versionLiteral) + require(match != null) { + "Version '$versionLiteral' does not match version pattern, e.g. 1.0.0-QUALIFIER" + } + return match.groupValues[1] + } + manifest { + attributes( + "Created-By" to "${System.getProperty("java.version")} (${System.getProperty("java.vendor")} ${System.getProperty("java.vm.version")})", + "Built-By" to builtByValue, + "Build-Date" to buildDate, + "Build-Time" to buildTime, + "Build-Revision" to versioning.info.commit, + "Specification-Title" to project.name, + "Specification-Version" to normalizeVersion(project.version.toString()), + "Specification-Vendor" to "apiguardian.org", + "Implementation-Title" to project.name, + "Implementation-Version" to project.version, + "Implementation-Vendor" to "apiguardian.org", + "Bundle-Name" to project.name, + "Bundle-Description" to project.description, + "Bundle-DocURL" to "https://github.com/apiguardian-team/apiguardian", + "Bundle-Vendor" to "apiguardian.org", + "-exportcontents" to "org.apiguardian.api", + "Bundle-SymbolicName" to moduleName + ) + } + from(files(compileModule.map { "${it.destinationDir}/${moduleName}" })) { + include("module-info.class") + } + } + + javadoc { + (options as StandardJavadocDocletOptions).apply { + memberLevel = JavadocMemberLevel.PROTECTED + isAuthor = true + header = "@API Guardian" + addStringOption("Xdoclint:html,syntax,reference", "-quiet") + links("https://docs.oracle.com/en/java/javase/11/docs/api/") + } + } + + named<Jar>("sourcesJar") { + from("${moduleSourceDir}/${moduleName}") { + include("module-info.java") + } + } + + named<Jar>("javadocJar") { + from(javadoc.map { File(it.destinationDir, "element-list") }) { + // For compatibility with older tools, e.g. NetBeans 11 + rename { "package-list" } + } + } + + withType<Jar>().configureEach { + from(rootDir) { + include("LICENSE") + into("META-INF") + } + } + + val prepareDocsForUploadToGhPages by registering(Copy::class) { + dependsOn(javadoc) + outputs.dir(docsDir) + + from("$buildDir/docs") { + include("javadoc/**") + } + from("$buildDir/docs/javadoc") { + // For compatibility with pre JDK 10 versions of the Javadoc tool + include("element-list") + rename { "api/package-list" } + } + into("${docsDir}/${docsVersion}") + filesMatching("javadoc/**") { + path = path.replace("javadoc/", "api/") + } + includeEmptyDirs = false + } + + val createCurrentDocsFolder by registering(Copy::class) { + dependsOn(prepareDocsForUploadToGhPages) + enabled = replaceCurrentDocs + outputs.dir("${docsDir}/current") + + from("${docsDir}/${docsVersion}") + into("${docsDir}/current") + } + + gitPublishCommit { + dependsOn(prepareDocsForUploadToGhPages, createCurrentDocsFolder) + } +} + +if (!isSnapshot) { + signing { + sign(publishing.publications) + } +} + +nexusPublishing { + packageGroup.set(group.toString()) + repositories { + sonatype() + } +} + +publishing { + publications { + create<MavenPublication>("maven") { + from(components["java"]) + pom { + name.set("${project.group}:${project.name}") + description.set("@API Guardian") + url.set("https://github.com/apiguardian-team/apiguardian") + scm { + connection.set("scm:git:git://github.com/apiguardian-team/apiguardian.git") + developerConnection.set("scm:git:git://github.com/apiguardian-team/apiguardian.git") + url.set("https://github.com/apiguardian-team/apiguardian") + } + licenses { + license { + name.set("The Apache License, Version 2.0") + url.set("http://www.apache.org/licenses/LICENSE-2.0.txt") + } + } + developers { + developer { + id.set("apiguardian") + name.set("@API Guardian Team") + email.set("[email protected]") + } + } + } + } + } +} + +gitPublish { + repoUri.set("https://github.com/apiguardian-team/apiguardian.git") + branch.set("gh-pages") + + contents { + from(docsDir) + into("docs") + } + + preserve { + include("**/*") + exclude("docs/$docsVersion/**") + if (replaceCurrentDocs) { + exclude("docs/current/**") + } + } +} Binary files old/apiguardian-r1.0.0/gradle/wrapper/gradle-wrapper.jar and new/apiguardian-r1.1.2/gradle/wrapper/gradle-wrapper.jar differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apiguardian-r1.0.0/gradle/wrapper/gradle-wrapper.properties new/apiguardian-r1.1.2/gradle/wrapper/gradle-wrapper.properties --- old/apiguardian-r1.0.0/gradle/wrapper/gradle-wrapper.properties 2017-09-10 11:51:33.000000000 +0200 +++ new/apiguardian-r1.1.2/gradle/wrapper/gradle-wrapper.properties 2021-06-27 14:52:48.000000000 +0200 @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionSha256Sum=2debee19271e1b82c6e41137d78e44e6e841035230a1a169ca47fd3fb09ed87b +distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-bin.zip diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apiguardian-r1.0.0/gradle.properties new/apiguardian-r1.1.2/gradle.properties --- old/apiguardian-r1.0.0/gradle.properties 2017-09-10 11:51:33.000000000 +0200 +++ new/apiguardian-r1.1.2/gradle.properties 2021-06-27 14:52:48.000000000 +0200 @@ -1,5 +1,5 @@ group = org.apiguardian -version = 1.0.0 +version = 1.1.2 defaultBuiltBy = @API Guardian Team releaseBranch = master diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apiguardian-r1.0.0/gradlew new/apiguardian-r1.1.2/gradlew --- old/apiguardian-r1.0.0/gradlew 2017-09-10 11:51:33.000000000 +0200 +++ new/apiguardian-r1.1.2/gradlew 2021-06-27 14:52:48.000000000 +0200 @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -56,7 +72,7 @@ Darwin* ) darwin=true ;; - MINGW* ) + MSYS* | MINGW* ) msys=true ;; NONSTOP* ) @@ -66,6 +82,7 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -109,10 +126,11 @@ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath @@ -138,19 +156,19 @@ else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -159,14 +177,9 @@ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apiguardian-r1.0.0/gradlew.bat new/apiguardian-r1.1.2/gradlew.bat --- old/apiguardian-r1.0.0/gradlew.bat 2017-09-10 11:51:33.000000000 +0200 +++ new/apiguardian-r1.1.2/gradlew.bat 2021-06-27 14:52:48.000000000 +0200 @@ -1,84 +1,89 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apiguardian-r1.0.0/settings.gradle new/apiguardian-r1.1.2/settings.gradle --- old/apiguardian-r1.0.0/settings.gradle 2017-09-10 11:51:33.000000000 +0200 +++ new/apiguardian-r1.1.2/settings.gradle 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -rootProject.name = 'apiguardian-api' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apiguardian-r1.0.0/settings.gradle.kts new/apiguardian-r1.1.2/settings.gradle.kts --- old/apiguardian-r1.0.0/settings.gradle.kts 1970-01-01 01:00:00.000000000 +0100 +++ new/apiguardian-r1.1.2/settings.gradle.kts 2021-06-27 14:52:48.000000000 +0200 @@ -0,0 +1,5 @@ +rootProject.name = "apiguardian-api" + +require(JavaVersion.current().isJava11) { + "The @API Guardian build requires Java 11. Currently executing with Java ${JavaVersion.current()}." +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apiguardian-r1.0.0/src/main/java/org/apiguardian/api/API.java new/apiguardian-r1.1.2/src/main/java/org/apiguardian/api/API.java --- old/apiguardian-r1.0.0/src/main/java/org/apiguardian/api/API.java 2017-09-10 11:51:33.000000000 +0200 +++ new/apiguardian-r1.1.2/src/main/java/org/apiguardian/api/API.java 2021-06-27 14:52:48.000000000 +0200 @@ -19,6 +19,7 @@ import static java.lang.annotation.ElementType.CONSTRUCTOR; import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PACKAGE; import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.RetentionPolicy.RUNTIME; @@ -38,9 +39,13 @@ * a class annotated with {@code @API(status = STABLE)} may declare a constructor * for internal usage that is annotated with {@code @API(status = INTERNAL)}. * + * <p>If {@code @API} is present on a package, it is considered to hold for all + * public types in its package. The same rules for lowered stability apply as + * if they were specified on a type. + * * @since 1.0 */ -@Target({ TYPE, METHOD, CONSTRUCTOR, FIELD }) +@Target({ TYPE, METHOD, CONSTRUCTOR, FIELD, PACKAGE }) @Retention(RUNTIME) @Documented public @interface API { @@ -83,6 +88,12 @@ /** * Should no longer be used. Might disappear in the next minor release. + * + * <p>This status is usually used in combination with the standard annotation + * {@link Deprecated @Deprecated} because that annotation is recognized by + * IDEs and the compiler. However, there are also cases where this status + * can be used on its own, for example when transitioning a {@link #MAINTAINED} + * feature to an {@link #INTERNAL} one. */ DEPRECATED, @@ -97,16 +108,16 @@ EXPERIMENTAL, /** - * Intended for features that will not be changed in a backwards- - * incompatible way for at least the next minor release of the current - * major version. If scheduled for removal, such a feature will be - * demoted to {@link #DEPRECATED} first. + * Intended for features that will not be changed in a backwards-incompatible + * way for at least the next minor release of the current major version. + * If scheduled for removal, such a feature will be demoted to + * {@link #DEPRECATED} first. */ MAINTAINED, /** - * Intended for features that will not be changed in a backwards- - * incompatible way in the current major version. + * Intended for features that will not be changed in a backwards-incompatible + * way in the current major version. */ STABLE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apiguardian-r1.0.0/src/module/java/org.apiguardian.api/module-info.java new/apiguardian-r1.1.2/src/module/java/org.apiguardian.api/module-info.java --- old/apiguardian-r1.0.0/src/module/java/org.apiguardian.api/module-info.java 1970-01-01 01:00:00.000000000 +0100 +++ new/apiguardian-r1.1.2/src/module/java/org.apiguardian.api/module-info.java 2021-06-27 14:52:48.000000000 +0200 @@ -0,0 +1,3 @@ +module org.apiguardian.api { + exports org.apiguardian.api; +}
