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
+
+- 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"?>
-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"/>
+ <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
+[![CI Status](https://github.com/apiguardian-team/apiguardian/workflows/CI/badge.svg)](https://github.com/apiguardian-team/apiguardian/actions)
-| CI Server | OS | Status | Description |
-| --------- | ------- | ------ | ----------- |
-| Jenkins | Linux | [![Build Status](https://junit.ci.cloudbees.com/buildStatus/icon?job=API_Guardian)](https://junit.ci.cloudbees.com/job/API_Guardian) | Official CI build server for @API Guardian |
-| Travis CI | Linux | [![Travis CI build status](https://travis-ci.org/apiguardian-team/apiguardian.svg?branch=master)](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 'team@apiguardian.org'
- }
- }
- }
-
- 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("team@apiguardian.org")
+ }
+ }
+ }
+ }
+ }
+}
+
+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;
+}