diff --git a/README.md b/README.md index 7b2b9209..109d7f96 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Project Keeper Maven Plugin [![Build Status](https://github.com/exasol/project-keeper/actions/workflows/ci-build.yml/badge.svg)](https://github.com/exasol/project-keeper/actions/workflows/ci-build.yml) -Project keeper core: [![Maven Central – Project keeper core](https://img.shields.io/maven-central/v/com.exasol/project-keeper-core)](https://search.maven.org/artifact/com.exasol/project-keeper-core), Project Keeper Command Line Interface: [![Maven Central – Project Keeper Command Line Interface](https://img.shields.io/maven-central/v/com.exasol/project-keeper-cli)](https://search.maven.org/artifact/com.exasol/project-keeper-cli), Project keeper maven plugin: [![Maven Central – Project keeper maven plugin](https://img.shields.io/maven-central/v/com.exasol/project-keeper-maven-plugin)](https://search.maven.org/artifact/com.exasol/project-keeper-maven-plugin) +Project Keeper Core: [![Maven Central – Project Keeper Core](https://img.shields.io/maven-central/v/com.exasol/project-keeper-core)](https://search.maven.org/artifact/com.exasol/project-keeper-core), Project Keeper Command Line Interface: [![Maven Central – Project Keeper Command Line Interface](https://img.shields.io/maven-central/v/com.exasol/project-keeper-cli)](https://search.maven.org/artifact/com.exasol/project-keeper-cli), Project Keeper Maven plugin: [![Maven Central – Project Keeper Maven plugin](https://img.shields.io/maven-central/v/com.exasol/project-keeper-maven-plugin)](https://search.maven.org/artifact/com.exasol/project-keeper-maven-plugin) This maven plugin checks and unifies the project's structure according to the Exasol integration team's repository standards. @@ -43,13 +43,25 @@ sources: ### Sources -For project-keeper a 'source' is a project inside a repository. For example a maven-project. In the future project-keeper will be able to crawl multiple source-projects from one repository. However, for now, you must specify exactly one maven source. +For PK a 'source' is a project inside a repository, e.g. a Maven module. PK is able to crawl multiple source projects from one repository. Supported project types: -* `maven`: Projects with maven build. The path must point to the `pom.xml` file. +* `maven`: Projects with Maven build. The path must point to the `pom.xml` file +* `golang`: Go projects. Path must point to the `go.mod` file +* `npm`: NPM based JavaScript or TypeScript projects. Path must point to the `package.json` file -If you have multiple sources in a project, project-keeper will list all of them as badges in the project's `README.md`. If you want to hide one source, you can set `advertise: false` for this source. +If you have multiple sources in a project, PK will list all of them as badges in the project's `README.md`. If you want to hide one source, you can set `advertise: false` for this source. + +### Project Keeper Verify for non-Maven Projects + +Maven projects use PK's Maven plugin to run PK verify during the `verify` Maven lifecycle. To run PK verify also for other projects, PK generates GitHub workflow `.github/workflows/project-keeper-verify.yml` and shell script `.github/workflows/project-keeper.sh`. Both files are only generated if there is **no** Maven module in the project root, i.e. there is no Maven source with `path: pom.xml` in `.project-keeper.yml`. + +You can run PK fix for non-Maven projects with the following command: + +```sh +./.github/workflows/project-keeper.sh fix +``` ### Modules @@ -66,7 +78,7 @@ This plugin provides different template modules for different kinds of projects. ### Excluding Findings -Using the `excludes` tag you can tell project-keeper to ignore some error-messages: +Using the `excludes` tag you can tell PK to ignore some error-messages: ```yml sources: @@ -77,6 +89,7 @@ sources: excludes: - "E-PK-CORE-15: Missing maven plugin org.codehaus.mojo:versions-maven-plugin." - regex: "E-PK-CORE-16: .*" + - regex: "W-PK-CORE-151: Pom file .* contains no reference to project-keeper-maven-plugin." ``` Note that you can also use regular expressions (see example above). If a finding is excluded it will not show up on validation and will not be fixed. @@ -87,7 +100,7 @@ You can define excludes globally (like `E-PK-CORE-15` and `E-PK-CORE-16` in the Some dependencies define invalid / outdated links to their project homepage. PK writes these links to the `dependencies.md` file. This will make the link checker break the build since a project file contains broken links. -The best way to solve this is to open an issue / pull request at the projects that contain the wrong url. Since this is, however not always possible you can, as a mitigation, also define a replacement for links: +The best way to solve this is to open an issue / pull request at the projects that contain the wrong URL. Since this is, however not always possible you can, as a mitigation, also define a replacement for links: ```yml sources: @@ -99,11 +112,11 @@ linkReplacements: The syntax for a replacement is `broken-url|replacement`. -Project-keeper will then use the replacement in the `dependencies.md` file instead of the original url. +PK will then use the replacement in the `dependencies.md` file instead of the original URL. ### CI Build Configuration -PK allows configuring the generated CI-Build workflow scripts using the `build` section in file `.project-keeper.yml`. +PK allows customizing the generated CI-Build workflow scripts using the `build` section in file `.project-keeper.yml` using the following options: #### GitHub Runner Operating System @@ -142,13 +155,13 @@ Sonar will only run for the first version in the list. ## POM File -For maven projects, project-keeper generates a `pk_generated_parent.pom` file. This file contains all the required plugins, dependencies and configurations. PK configures your `pom.xml` to use this file as a parent pom. By that, your `pom.xml` inherits all the configuration. +For Maven projects, PK generates a `pk_generated_parent.pom` file. This file contains all the required plugins, dependencies and configurations. PK configures your `pom.xml` to use this file as a parent pom. By that, your `pom.xml` inherits all the configuration. The `pk_generated_parent.pom` file is required during the build and must be checked into version control. Run `mvn project-keeper:fix` to update the file instead of editing it manually. -### Using a Parent Pom +### Using a Parent POM -If you want to use a parent pom for your project, that's not possible directly since your `pom.xml` must use the `pk_generated_parent.pom` as parent. +If you want to use a parent POM for your project, that's not possible directly since your `pom.xml` must use the `pk_generated_parent.pom` as parent. Instead, configure the parent in the PK config: diff --git a/dependencies.md b/dependencies.md index 4edca6c6..1dd034f4 100644 --- a/dependencies.md +++ b/dependencies.md @@ -1,7 +1,7 @@ # Dependencies -## Project-keeper Shared Model Classes +## Project Keeper Shared Model Classes ### Compile Dependencies @@ -53,7 +53,7 @@ | Dependency | License | | ----------------------------------------- | ---------------------------------------------- | -| [Project-Keeper shared model classes][44] | [The MIT License][45] | +| [Project Keeper shared model classes][44] | [The MIT License][45] | | [org.xmlunit:xmlunit-core][46] | [The Apache Software License, Version 2.0][28] | | [error-reporting-java][7] | [MIT License][8] | | [Markdown Generator][47] | [The Apache Software License, Version 2.0][28] | @@ -81,7 +81,7 @@ | Dependency | License | | ----------------------------------------- | --------------------- | -| [Project keeper Java project crawler][44] | [The MIT License][45] | +| [Project Keeper Java project crawler][44] | [The MIT License][45] | ### Plugin Dependencies @@ -112,7 +112,7 @@ | Dependency | License | | ------------------------- | --------------------- | -| [Project keeper core][44] | [The MIT License][45] | +| [Project Keeper Core][44] | [The MIT License][45] | | [error-reporting-java][7] | [MIT License][8] | | [Maven Model][50] | [Apache-2.0][16] | @@ -163,7 +163,7 @@ | Dependency | License | | ----------------------------------------- | --------------------- | -| [Project keeper core][44] | [The MIT License][45] | +| [Project Keeper Core][44] | [The MIT License][45] | | [Maven Plugin Tools Java Annotations][60] | [Apache-2.0][16] | | [Maven Plugin API][61] | [Apache-2.0][16] | | [Maven Core][62] | [Apache-2.0][16] | @@ -214,7 +214,7 @@ | Dependency | License | | ----------------------------------------- | ---------------------------------------------- | -| [Project-Keeper shared model classes][44] | [The MIT License][45] | +| [Project Keeper shared model classes][44] | [The MIT License][45] | | [Maven Plugin Tools Java Annotations][60] | [Apache-2.0][16] | | [Maven Plugin API][61] | [Apache-2.0][16] | | [error-reporting-java][7] | [MIT License][8] | @@ -267,7 +267,7 @@ | Dependency | License | | ----------------------------------------- | --------------------------------- | -| [Project-Keeper shared model classes][44] | [The MIT License][45] | +| [Project Keeper shared model classes][44] | [The MIT License][45] | | [SnakeYAML][49] | [Apache License, Version 2.0][28] | | [Hamcrest][12] | [BSD License 3][13] | | [Maven Model][50] | [Apache-2.0][16] | diff --git a/doc/changes/changelog.md b/doc/changes/changelog.md index 46e4c9ae..94c50b9e 100644 --- a/doc/changes/changelog.md +++ b/doc/changes/changelog.md @@ -1,5 +1,6 @@ # Changes +* [2.9.17](changes_2.9.17.md) * [2.9.16](changes_2.9.16.md) * [2.9.15](changes_2.9.15.md) * [2.9.14](changes_2.9.14.md) diff --git a/doc/changes/changes_2.9.17.md b/doc/changes/changes_2.9.17.md new file mode 100644 index 00000000..5bf6f65b --- /dev/null +++ b/doc/changes/changes_2.9.17.md @@ -0,0 +1,81 @@ +# Project Keeper 2.9.17, released 2023-??-?? + +Code name: + +## Summary + +This release adds documentation describing how Project Keeper works with non-Maven projects. + +## Documentation + +* #501: Documented usage for non-Maven projects + +## Dependency Updates + +### Project Keeper Shared Model Classes + +#### Plugin Dependency Updates + +* Updated `org.codehaus.mojo:versions-maven-plugin:2.16.1` to `2.16.2` + +### Project Keeper Core + +#### Compile Dependency Updates + +* Updated `com.exasol:project-keeper-shared-model-classes:2.9.16` to `2.9.17` + +#### Runtime Dependency Updates + +* Updated `com.exasol:project-keeper-java-project-crawler:2.9.16` to `2.9.17` + +#### Test Dependency Updates + +* Updated `com.exasol:project-keeper-shared-test-setup:2.9.16` to `2.9.17` + +#### Plugin Dependency Updates + +* Updated `org.codehaus.mojo:versions-maven-plugin:2.16.1` to `2.16.2` + +### Project Keeper Command Line Interface + +#### Compile Dependency Updates + +* Updated `com.exasol:project-keeper-core:2.9.16` to `2.9.17` + +#### Test Dependency Updates + +* Updated `com.exasol:project-keeper-shared-test-setup:2.9.16` to `2.9.17` + +#### Plugin Dependency Updates + +* Updated `org.codehaus.mojo:versions-maven-plugin:2.16.1` to `2.16.2` + +### Project Keeper Maven Plugin + +#### Compile Dependency Updates + +* Updated `com.exasol:project-keeper-core:2.9.16` to `2.9.17` + +#### Plugin Dependency Updates + +* Updated `org.codehaus.mojo:versions-maven-plugin:2.16.1` to `2.16.2` + +### Project Keeper Java Project Crawler + +#### Compile Dependency Updates + +* Updated `com.exasol:project-keeper-shared-model-classes:2.9.16` to `2.9.17` + +#### Plugin Dependency Updates + +* Updated `org.codehaus.mojo:versions-maven-plugin:2.16.1` to `2.16.2` + +### Project Keeper Shared Test Setup + +#### Compile Dependency Updates + +* Updated `com.exasol:project-keeper-shared-model-classes:2.9.16` to `2.9.17` + +#### Plugin Dependency Updates + +* Updated `org.codehaus.mojo:versions-maven-plugin:2.16.1` to `2.16.2` diff --git a/maven-project-crawler/pk_generated_parent.pom b/maven-project-crawler/pk_generated_parent.pom index 69bef45a..7ebe20bb 100644 --- a/maven-project-crawler/pk_generated_parent.pom +++ b/maven-project-crawler/pk_generated_parent.pom @@ -152,7 +152,7 @@ org.codehaus.mojo versions-maven-plugin - 2.16.1 + 2.16.2 display-updates diff --git a/maven-project-crawler/pom.xml b/maven-project-crawler/pom.xml index af22bb66..f173d06d 100644 --- a/maven-project-crawler/pom.xml +++ b/maven-project-crawler/pom.xml @@ -3,7 +3,7 @@ 4.0.0 project-keeper-java-project-crawler maven-plugin - Project keeper Java project crawler + Project Keeper Java project crawler Crawler for maven projects. ./pk_generated_parent.pom diff --git a/parent-pom/pom.xml b/parent-pom/pom.xml index cea80bc6..ac2ec64e 100644 --- a/parent-pom/pom.xml +++ b/parent-pom/pom.xml @@ -5,7 +5,7 @@ project-keeper-parent-pom pom ${revision} - Project keeper parent pom + Project Keeper parent pom This tool checks and unifies a project's structure according to the Exasol integration team's repository standards. @@ -28,7 +28,7 @@ - 2.9.16 + 2.9.17 3.9.5 3.6.3 5.10.1 diff --git a/pom.xml b/pom.xml index 583760db..579e33f8 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ maven-project-crawler project-keeper-maven-plugin - Project Keeper Project + Project Keeper Root Project @@ -40,7 +40,7 @@ org.itsallcode openfasttrace-maven-plugin - 1.6.1 + 1.6.2 trace-requirements diff --git a/project-keeper-cli/pk_generated_parent.pom b/project-keeper-cli/pk_generated_parent.pom index 3591310d..316b3858 100644 --- a/project-keeper-cli/pk_generated_parent.pom +++ b/project-keeper-cli/pk_generated_parent.pom @@ -144,7 +144,7 @@ org.codehaus.mojo versions-maven-plugin - 2.16.1 + 2.16.2 display-updates diff --git a/project-keeper-maven-plugin/pk_generated_parent.pom b/project-keeper-maven-plugin/pk_generated_parent.pom index e9cb4875..e8e28016 100644 --- a/project-keeper-maven-plugin/pk_generated_parent.pom +++ b/project-keeper-maven-plugin/pk_generated_parent.pom @@ -152,7 +152,7 @@ org.codehaus.mojo versions-maven-plugin - 2.16.1 + 2.16.2 display-updates diff --git a/project-keeper-maven-plugin/pom.xml b/project-keeper-maven-plugin/pom.xml index 7ef8e4f7..8fd85479 100644 --- a/project-keeper-maven-plugin/pom.xml +++ b/project-keeper-maven-plugin/pom.xml @@ -3,8 +3,8 @@ 4.0.0 project-keeper-maven-plugin maven-plugin - Project keeper maven plugin - This maven plugin runs project-keeper. + Project Keeper Maven plugin + This Maven plugin runs Project Keeper. https://github.com/exasol/project-keeper/ ./pk_generated_parent.pom diff --git a/project-keeper/pk_generated_parent.pom b/project-keeper/pk_generated_parent.pom index f958c4e7..0b053578 100644 --- a/project-keeper/pk_generated_parent.pom +++ b/project-keeper/pk_generated_parent.pom @@ -144,7 +144,7 @@ org.codehaus.mojo versions-maven-plugin - 2.16.1 + 2.16.2 display-updates diff --git a/project-keeper/pom.xml b/project-keeper/pom.xml index 425c2cd9..31e652b2 100644 --- a/project-keeper/pom.xml +++ b/project-keeper/pom.xml @@ -3,7 +3,7 @@ 4.0.0 project-keeper-core jar - Project keeper core + Project Keeper Core Project keeper is a tool that verifies and fixes project setups. ./pk_generated_parent.pom diff --git a/project-keeper/src/main/resources/maven_templates/versions-maven-plugin.xml b/project-keeper/src/main/resources/maven_templates/versions-maven-plugin.xml index 5858787c..a16896b7 100644 --- a/project-keeper/src/main/resources/maven_templates/versions-maven-plugin.xml +++ b/project-keeper/src/main/resources/maven_templates/versions-maven-plugin.xml @@ -1,7 +1,7 @@ org.codehaus.mojo versions-maven-plugin - 2.16.1 + 2.16.2 display-updates diff --git a/shared-model-classes/pk_generated_parent.pom b/shared-model-classes/pk_generated_parent.pom index b9a5df75..be3da627 100644 --- a/shared-model-classes/pk_generated_parent.pom +++ b/shared-model-classes/pk_generated_parent.pom @@ -144,7 +144,7 @@ org.codehaus.mojo versions-maven-plugin - 2.16.1 + 2.16.2 display-updates diff --git a/shared-model-classes/pom.xml b/shared-model-classes/pom.xml index ad2a3501..6ec90efd 100644 --- a/shared-model-classes/pom.xml +++ b/shared-model-classes/pom.xml @@ -9,7 +9,7 @@ Classes that need to be shared between different modules of project-keeper. 4.0.0 project-keeper-shared-model-classes - Project-Keeper shared model classes + Project Keeper shared model classes https://github.com/exasol/project-keeper/ diff --git a/shared-test-setup/pk_generated_parent.pom b/shared-test-setup/pk_generated_parent.pom index 1e4c5d4e..47aac6c6 100644 --- a/shared-test-setup/pk_generated_parent.pom +++ b/shared-test-setup/pk_generated_parent.pom @@ -133,7 +133,7 @@ org.codehaus.mojo versions-maven-plugin - 2.16.1 + 2.16.2 display-updates