diff --git a/.github/workflows/broken_links_checker.yml b/.github/workflows/broken_links_checker.yml new file mode 100644 index 00000000..6697080f --- /dev/null +++ b/.github/workflows/broken_links_checker.yml @@ -0,0 +1,17 @@ +name: Broken Links Checker + +on: + schedule: + - cron: "0 5 * * *" + push: + +jobs: + linkChecker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: lychee Link Checker + id: lc + uses: lycheeverse/lychee-action@v1.0.6 + - name: Fail if there were link errors + run: exit ${{ steps.lc.outputs.exit_code }} \ No newline at end of file diff --git a/.github/workflows/github_release.yml b/.github/workflows/github_release.yml deleted file mode 100644 index 3afc9046..00000000 --- a/.github/workflows/github_release.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: GitHub Release - -on: - workflow_dispatch: - inputs: - upload_url: - description: 'Upload URL' - required: true - asset_name: - description: 'Asset file name' - required: true - asset_path: - description: 'Asset file path' - required: true - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: 11 - - name: Build with Maven - run: mvn -B clean package --file pom.xml - - - name: Upload Release Asset - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ github.event.inputs.upload_url }} - asset_path: ${{ github.event.inputs.asset_path }} - asset_name: ${{ github.event.inputs.asset_name }} - asset_content_type: application/java-archive \ No newline at end of file diff --git a/.github/workflows/release_droid_prepare_original_checksum.yml b/.github/workflows/release_droid_prepare_original_checksum.yml new file mode 100644 index 00000000..5133083e --- /dev/null +++ b/.github/workflows/release_droid_prepare_original_checksum.yml @@ -0,0 +1,34 @@ +name: Release Droid - Prepare Original Checksum + +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout the repository + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Cache local Maven repository + uses: actions/cache@v2 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Run tests and build with Maven + run: mvn -B clean verify --file pom.xml + - name: Prepare checksum + run: find target -maxdepth 1 -name *.jar -exec sha256sum "{}" + > original_checksum + - name: Upload checksum to the artifactory + uses: actions/upload-artifact@v2 + with: + name: original_checksum + retention-days: 5 + path: original_checksum \ No newline at end of file diff --git a/.github/workflows/release_droid_print_quick_checksum.yml b/.github/workflows/release_droid_print_quick_checksum.yml new file mode 100644 index 00000000..f5f938fb --- /dev/null +++ b/.github/workflows/release_droid_print_quick_checksum.yml @@ -0,0 +1,29 @@ +name: Release Droid - Print Quick Checksum + +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout the repository + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Cache local Maven repository + uses: actions/cache@v2 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Build with Maven skipping tests + run: mvn -B clean verify -DskipTests + - name: Print checksum + run: echo 'checksum_start==';find target -maxdepth 1 -name *.jar -exec sha256sum "{}" + | xargs;echo '==checksum_end' + diff --git a/.github/workflows/maven_central_release.yml b/.github/workflows/release_droid_release_on_maven_central.yml similarity index 81% rename from .github/workflows/maven_central_release.yml rename to .github/workflows/release_droid_release_on_maven_central.yml index 1146142f..e768946d 100644 --- a/.github/workflows/maven_central_release.yml +++ b/.github/workflows/release_droid_release_on_maven_central.yml @@ -1,4 +1,4 @@ -name: Maven Central Release +name: Release Droid - Release On Maven Central on: workflow_dispatch: @@ -7,7 +7,10 @@ jobs: publish: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - name: Checkout the repository + uses: actions/checkout@v2 + with: + fetch-depth: 0 - name: Set up Maven Central Repository uses: actions/setup-java@v1 with: @@ -29,4 +32,4 @@ jobs: env: MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} - run: mvn clean -Dgpg.skip=false -Dgpg.passphrase=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} deploy \ No newline at end of file + run: mvn clean -Dgpg.skip=false -Dgpg.passphrase=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} -DskipTests deploy \ No newline at end of file diff --git a/.github/workflows/release_droid_upload_github_release_assets.yml b/.github/workflows/release_droid_upload_github_release_assets.yml new file mode 100644 index 00000000..7b20aa3c --- /dev/null +++ b/.github/workflows/release_droid_upload_github_release_assets.yml @@ -0,0 +1,35 @@ +name: Release Droid - Upload GitHub Release Assets + +on: + workflow_dispatch: + inputs: + upload_url: + description: 'Assets upload URL' + required: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout the repository + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Cache local Maven repository + uses: actions/cache@v2 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Build with Maven skipping tests + run: mvn clean verify -DskipTests + - name: Upload assets to the GitHub release draft + uses: shogo82148/actions-upload-release-asset@v1 + with: + upload_url: ${{ github.event.inputs.upload_url }} + asset_path: target/*.jar \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d3171414..fb797fe0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,7 +24,7 @@ If you are a programmer, a code contribution in form of an automatic unit test c Maybe you are good at explaining how to use the SQL Statement Builder to end users? Help us improve the [user guide](doc/user_guide.md)! ## Ideas -Last but not least if you have ideas for ways to improve or extend OFT, feel free to write a [feature request](hhttps://github.com/EXASOL/sql-statement-builder/issues/new?template=Feature_request.md). +Last but not least if you have ideas for ways to improve or extend OFT, feel free to write a [feature request](https://github.com/EXASOL/sql-statement-builder/issues/new?template=Feature_request.md). # Style Guides We want the SQL Statement Builder to have a professional and uniform coding style. Formatter rules for Eclipse are part of the project. If you use a different editor, please make sure to match the current code formatting. diff --git a/README.md b/README.md index cf6685b2..bfefd31b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# sql-statement-builder +# SQL Statement Builder ![exasol-testcontainers logo](doc/images/sql-statement-builder_128x128.png) @@ -51,44 +51,12 @@ final String sql = renderer.render(); "Users" from the perspective of the `sql-statement-builder` are developers integrating the module into their own software. * [User Guide](doc/user_guide/user_guide.md) -* [API Documentation](https://javadoc.io/doc/com.exasol/sql-statement-builder) +* [API Documentation](https://exasol.github.io/sql-statement-builder/index.html) * [MIT License](LICENSE) * [Changelog](doc/changes/changelog.md) +* [Dependencies](dependencies.md) ### Information for Developers * [System Requirement Specification](doc/system_requirements.md) -* [Design](doc/design.md) - -## Dependencies - -### Test Dependencies - -| Dependency | Purpose | License | ----------------------------------------------------------------------------------|--------------------------------------------------------|-------------------------------- -| [Apache Maven](https://maven.apache.org/) | Build tool | Apache License 2.0 | -| [Equals Verifier](https://github.com/jqno/equalsverifier) | Automatic contract checker for `equals()` and `hash()` | Apache License 2.0 | -| [Hamcrest](http://hamcrest.org/) | Advanced matchers for JUnit | GNU BSD-3-Clause | -| [JUnit 5](https://junit.org/junit5/) | Unit testing framework | Eclipse Public License 1.0 | -| [Mockito](http://site.mockito.org/) | Mocking framework | MIT License | - -### Maven Plug-ins - -| Plug-in | Purpose | License | ----------------------------------------------------------------------------------|--------------------------------------------------------|-------------------------------- -| [Maven Compiler Plugin][maven-compiler-plugin] | Setting required Java version | Apache License 2.0 | -| [Maven GPG Plugin](https://maven.apache.org/plugins/maven-gpg-plugin/) | Signs JARs | Apache License 2.0 | -| [Maven Enforcer Plugin][maven-enforcer-plugin] | Controlling environment constants | Apache License 2.0 | -| [Maven Jacoco Plugin](https://www.eclemma.org/jacoco/trunk/doc/maven.html) | Code coverage metering | Eclipse Public License 2.0 | -| [Maven JavaDoc Plugin](https://maven.apache.org/plugins/maven-javadoc-plugin/) | Creates JavaDoc JARs | Apache License 2.0 | -| [Maven Source Plugin](https://maven.apache.org/plugins/maven-source-plugin/) | Creates source JARs | Apache License 2.0 | -| [Maven Surefire Plugin][maven-surefire-plugin] | Unit testing | Apache License 2.0 | -| [OFT Maven Plugin](https://github.com/itsallcode/openfasttrace-maven-plugin) | Requirement tracing | GPL 3.0 | -| [Sonatype OSS Index Maven Plugin][sonatype-oss-index-maven-plugin] | Checking Dependencies Vulnerability | ASL2 | -| [Versions Maven Plugin][versions-maven-plugin] | Checking if dependencies updates are available | Apache License 2.0 | - -[maven-compiler-plugin]: https://maven.apache.org/plugins/maven-compiler-plugin/ -[maven-enforcer-plugin]: http://maven.apache.org/enforcer/maven-enforcer-plugin/ -[maven-surefire-plugin]: https://maven.apache.org/surefire/maven-surefire-plugin/ -[sonatype-oss-index-maven-plugin]: https://sonatype.github.io/ossindex-maven/maven-plugin/ -[versions-maven-plugin]: https://www.mojohaus.org/versions-maven-plugin/ \ No newline at end of file +* [Design](doc/design.md) \ No newline at end of file diff --git a/dependencies.md b/dependencies.md new file mode 100644 index 00000000..f1fd569e --- /dev/null +++ b/dependencies.md @@ -0,0 +1,73 @@ + +# Dependencies + +## Test Dependencies + +| Dependency | License | +| ------------------------------- | -------------------------------- | +| [JUnit Jupiter (Aggregator)][0] | [Eclipse Public License v2.0][1] | +| [Hamcrest All][2] | [New BSD License][3] | +| [mockito-core][4] | [The MIT License][5] | +| [mockito-junit-jupiter][4] | [The MIT License][5] | +| [EqualsVerifier][8] | [Apache License, Version 2.0][9] | + +## Plugin Dependencies + +| Dependency | License | +| ------------------------------------------------------- | --------------------------------------------- | +| [Apache Maven Compiler Plugin][10] | [Apache License, Version 2.0][11] | +| [JaCoCo :: Maven Plugin][12] | [Eclipse Public License 2.0][13] | +| [Maven Surefire Plugin][14] | [Apache License, Version 2.0][11] | +| [Apache Maven Source Plugin][16] | [Apache License, Version 2.0][11] | +| [Apache Maven Javadoc Plugin][18] | [Apache License, Version 2.0][11] | +| [Apache Maven GPG Plugin][20] | [Apache License, Version 2.0][9] | +| [OpenFastTrace Maven Plugin][22] | [GNU General Public License v3.0][23] | +| [org.sonatype.ossindex.maven:ossindex-maven-plugin][24] | [ASL2][9] | +| [Versions Maven Plugin][26] | [Apache License, Version 2.0][11] | +| [Apache Maven Enforcer Plugin][28] | [Apache License, Version 2.0][11] | +| [Nexus Staging Maven Plugin][30] | [Eclipse Public License][31] | +| [Project keeper maven plugin][32] | [MIT][33] | +| [Maven Failsafe Plugin][34] | [Apache License, Version 2.0][11] | +| [Maven Deploy Plugin][36] | [The Apache Software License, Version 2.0][9] | +| [error-code-crawler-maven-plugin][38] | [MIT][33] | +| [Reproducible Build Maven Plugin][40] | [Apache 2.0][9] | +| [Maven Clean Plugin][42] | [The Apache Software License, Version 2.0][9] | +| [Maven Resources Plugin][44] | [The Apache Software License, Version 2.0][9] | +| [Maven JAR Plugin][46] | [The Apache Software License, Version 2.0][9] | +| [Maven Install Plugin][48] | [The Apache Software License, Version 2.0][9] | +| [Maven Site Plugin 3][50] | [The Apache Software License, Version 2.0][9] | + +[12]: https://www.eclemma.org/jacoco/index.html +[32]: https://github.com/exasol/project-keeper-maven-plugin +[2]: https://github.com/hamcrest/JavaHamcrest +[9]: http://www.apache.org/licenses/LICENSE-2.0.txt +[14]: https://maven.apache.org/surefire/maven-surefire-plugin/ +[30]: http://www.sonatype.com/public-parent/nexus-maven-plugins/nexus-staging/nexus-staging-maven-plugin/ +[42]: http://maven.apache.org/plugins/maven-clean-plugin/ +[4]: https://github.com/mockito/mockito +[33]: https://opensource.org/licenses/MIT +[34]: https://maven.apache.org/surefire/maven-failsafe-plugin/ +[26]: http://www.mojohaus.org/versions-maven-plugin/ +[10]: https://maven.apache.org/plugins/maven-compiler-plugin/ +[20]: http://maven.apache.org/plugins/maven-gpg-plugin/ +[22]: https://github.com/itsallcode/openfasttrace-maven-plugin +[13]: https://www.eclipse.org/legal/epl-2.0/ +[31]: http://www.eclipse.org/legal/epl-v10.html +[40]: http://zlika.github.io/reproducible-build-maven-plugin +[23]: https://www.gnu.org/licenses/gpl-3.0.html +[46]: http://maven.apache.org/plugins/maven-jar-plugin/ +[11]: https://www.apache.org/licenses/LICENSE-2.0.txt +[28]: https://maven.apache.org/enforcer/maven-enforcer-plugin/ +[5]: https://github.com/mockito/mockito/blob/release/3.x/LICENSE +[1]: https://www.eclipse.org/legal/epl-v20.html +[3]: http://www.opensource.org/licenses/bsd-license.php +[48]: http://maven.apache.org/plugins/maven-install-plugin/ +[0]: https://junit.org/junit5/ +[24]: https://sonatype.github.io/ossindex-maven/maven-plugin/ +[8]: http://www.jqno.nl/equalsverifier +[16]: https://maven.apache.org/plugins/maven-source-plugin/ +[36]: http://maven.apache.org/plugins/maven-deploy-plugin/ +[50]: http://maven.apache.org/plugins/maven-site-plugin/ +[44]: http://maven.apache.org/plugins/maven-resources-plugin/ +[18]: https://maven.apache.org/plugins/maven-javadoc-plugin/ +[38]: https://github.com/exasol/error-code-crawler-maven-plugin diff --git a/doc/changes/changes_4.4.1.md b/doc/changes/changes_4.4.1.md index e33bad09..6c8076a9 100644 --- a/doc/changes/changes_4.4.1.md +++ b/doc/changes/changes_4.4.1.md @@ -10,6 +10,17 @@ Code Name: ## Documentation * #38: Added a GitHub action to deploy JavaDocs. +* #111: Added links to the API documentation. ## Dependency Updates +### Test Dependency Updates + +* Updated `nl.jqno.equalsverifier:equalsverifier:3.5.5` to `3.6` +* Updated `org.mockito:mockito-core:3.8.0` to `3.9.0` +* Updated `org.mockito:mockito-junit-jupiter:3.8.0` to `3.9.0` + +### Plugin Dependency Updates + +* Updated `com.exasol:project-keeper-maven-plugin:0.5.0` to `0.7.0` +* Added `io.github.zlika:reproducible-build-maven-plugin:0.13` diff --git a/doc/user_guide/statements/create_table.md b/doc/user_guide/statements/create_table.md index de9351a6..3f4f2557 100644 --- a/doc/user_guide/statements/create_table.md +++ b/doc/user_guide/statements/create_table.md @@ -62,4 +62,6 @@ point to defining a CREATE TABLE SQL statement. createTable.accept(renderer); String renderedString = renderer.render(); - ``` \ No newline at end of file + ``` + +Please check [API documentation](https://exasol.github.io/sql-statement-builder/com/exasol/sql/ddl/create/CreateTable.html) for more details. \ No newline at end of file diff --git a/pom.xml b/pom.xml index 09231bfc..d800ef93 100644 --- a/pom.xml +++ b/pom.xml @@ -1,6 +1,5 @@ - 4.0.0 com.exasol @@ -17,6 +16,7 @@ UTF-8 11 true + 3.9.0 @@ -80,19 +80,19 @@ org.mockito mockito-core - 3.8.0 + ${mockito.version} test org.mockito mockito-junit-jupiter - 3.8.0 + ${mockito.version} test nl.jqno.equalsverifier equalsverifier - 3.5.5 + 3.6 test @@ -130,19 +130,8 @@ prepare-agent - - prepare-agent-integration - - prepare-agent-integration - - - - report-integration - verify - - report-integration - - + + @@ -297,7 +286,7 @@ com.exasol project-keeper-maven-plugin - 0.5.0 + 0.7.0 @@ -308,8 +297,10 @@ maven_central - integration_tests + + https://github.com/hamcrest/JavaHamcrest/hamcrest-all|https://github.com/hamcrest/JavaHamcrest + @@ -354,6 +345,20 @@ + + io.github.zlika + reproducible-build-maven-plugin + 0.13 + + + strip-jar + package + + strip-jar + + + + - + \ No newline at end of file