Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge for version 3.0.0 #24

Open
wants to merge 60 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
60c5b8e
Jenkins Build Pipeline
bruderol Nov 4, 2017
ed31905
Jenkins Build Pipeline: archive artifacts
bruderol Nov 4, 2017
cdb2c9e
Jenkins Build Pipeline: correct build report location
bruderol Nov 4, 2017
c68905b
Fixes #10, broken build after checkout because of missing certificate…
cgrossde Mar 20, 2018
6f37ce3
Set sign flag in Jenkinsfile.
cgrossde Mar 20, 2018
2465f28
Add the -Psign parameter in the documentation
adiherzog Mar 21, 2018
af6b02d
Update Gradle Wrapper to 4.7
davidlahner May 8, 2018
6d1ba86
Update Gradle Wrapper to 4.7.
davidlahner May 8, 2018
ff15723
Merge pull request #13 from scenarioo/feature/12-gradle4
bruderol May 10, 2018
1998ab6
#14 Fix loading of builds and branches to not fail just because one b…
bruderol May 24, 2018
a3649bf
Merge pull request #16 from scenarioo/master
bruderol May 24, 2018
a56d481
#14 new version for the fix version
bruderol May 24, 2018
3cd41a4
Merge remote-tracking branch 'origin/develop' into develop
bruderol May 24, 2018
a4b235d
#14 Prepare new reelase version 2.1.3 RC1
bruderol May 28, 2018
812958a
#14 Make releasing of scenarioo done automaticaly by Jenkins CI for i…
bruderol May 28, 2018
2d087ee
Merge branches 'develop' and 'feature/14-fix-failing-on-corrupt-build…
bruderol May 28, 2018
9933f8f
#14 Fix typo in docu
bruderol May 28, 2018
0671e33
Merge pull request #15 from scenarioo/feature/14-fix-failing-on-corru…
bruderol May 28, 2018
d7f4ef3
scenarioo/scenarioo#675 Update link to versioned docu
bruderol May 30, 2018
b26fd72
Merge remote-tracking branch 'origin/develop' into develop
bruderol May 30, 2018
c4b3c50
Fix typo
adiherzog Jun 19, 2018
26b930f
Enable circleci for scenarioo java.
danielsuter Nov 21, 2018
297918a
Use different image.
danielsuter Nov 21, 2018
dcfc4ae
Store artifacts.
danielsuter Nov 21, 2018
6bac8b2
Collect even more artifacts.
danielsuter Nov 21, 2018
34291a1
Create dir first.
danielsuter Nov 21, 2018
d39c93c
Add schema.
danielsuter Nov 21, 2018
7ef0d58
Correct name.
danielsuter Nov 21, 2018
458f99d
Create folder first.
danielsuter Nov 21, 2018
392ff6e
Not needed anymore.
danielsuter Nov 21, 2018
5680ed0
Merge pull request #18 from scenarioo/feature/circle-ci-integration
cgrossde Nov 21, 2018
6c56922
Update release docu - because publishing of snapshots and releases cu…
bruderol Nov 21, 2018
2c30006
Merge pull request #19 from scenarioo/docu-for-changed-jenkins-pipeline
danielsuter Nov 21, 2018
9267154
#775 Log stacktraces for failures in gradle in circle ci
bruderol Nov 21, 2018
5852626
scenarioo/scenarioo#775 Circle CI pipeline: I love yaml indentations :-)
bruderol Dec 2, 2018
9b0b12a
Revert "scenarioo/scenarioo#775 Circle CI pipeline: I love yaml inden…
bruderol Dec 2, 2018
771b6ab
#775 Remove probably not needed mkdir for test-results dir
bruderol Dec 22, 2018
42b8152
scenarioo/scenarioo#775 Cleanup Circle CI config
bruderol Dec 22, 2018
d02ef62
#20 migrate tests to JUnit 5 without using Java 8 language features.
davidlahner Jan 23, 2019
19d557f
#20 set language level to Java 8 and migrate try/catch-tests to JUnit…
davidlahner Jan 23, 2019
92bc9e7
#20 add Changelog with Breaking Change for next Release.
davidlahner Feb 14, 2019
f9b6244
#20: Since increasing the Java version leads to a major change (see c…
davidlahner May 8, 2019
aebee7f
Merge pull request #21 from scenarioo/feature/20-junit5
mi-we Sep 27, 2019
6924ffc
#22 Source and target compatibility for Java 11
mi-we Sep 27, 2019
a2c0ac0
#22 Update documentation and changelog
mi-we Sep 27, 2019
f415e97
Revert "#22 Update documentation and changelog"
mi-we Sep 27, 2019
e37736d
#22 Revert source/target compatibility to 1.8
mi-we Sep 27, 2019
d7bf740
Merge pull request #23 from scenarioo/feature/22-jdk-11-support
mi-we Oct 1, 2019
4b746b7
Upgrade gradle to version 6.7.1. This streamlines scenarioo main and …
danielsuter Jun 25, 2021
8a85731
Migrate deprecated declarations.
danielsuter Jun 25, 2021
3bd2e2b
Migrate to maven publish.
danielsuter Jun 25, 2021
47548e7
Migrate to slf4j.
danielsuter Jun 25, 2021
1a95a38
Improve documentation.
danielsuter Jun 25, 2021
b5b1ea0
Overload addDetail method and provide some javadoc.
danielsuter Jun 25, 2021
5f1b1a5
Merge pull request #25 from scenarioo/feature/upgrad-gradle
danielsuter Jun 27, 2021
49e12a8
Merge pull request #26 from scenarioo/feature/migrate-maven-publish
danielsuter Jun 27, 2021
0b255e1
Merge pull request #27 from scenarioo/feature/17-slf4j
danielsuter Jun 27, 2021
b35b22e
Merge pull request #28 from scenarioo/feature/11-improve-details-inte…
mi-we Nov 16, 2022
f3c0b4c
docs: updated changelog for release 3.0.0 preparation
mi-we Nov 16, 2022
e81f963
build: updated version to RC1 for testing
mi-we Nov 16, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
version: 2
jobs:
build:

working_directory: ~/repo

docker:
- image: circleci/openjdk:8-jdk

steps:

- checkout

- run:
name: Clean & install
command: ./gradlew clean build -x test --no-daemon -s

- run:
name: Tests
command: ./gradlew test -s

- store_test_results:
path: build/test-results

- run:
name: Collect artifacts
command: |
mkdir -p artifacts/libs
mkdir -p artifacts/schema
cp -pR build/libs/* artifacts/libs || true
cp -pR build/resources/main/scenarioo-schemas/*.xsd artifacts/schema || true
cp -pR LICENSE.txt artifacts/

- store_artifacts:
path: artifacts
destination: /
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ Scenarioo Writer API for Java to generate Scenarioo Documentations - http://www.
## Usage
Scenarioo-Java is available on maven central: Include the latest version as a dependency in your favorite
dependency management system:
`compile 'org.scenarioo:scenarioo-java:2.1.1'`
`implementation 'org.scenarioo:scenarioo-java:3.0.0'`

Notice that at least Java 8 is required for version 3.0.0 of the writer library

You will find more information in our [usage guide](docs/usage.md).


## Development
Refer to our
[Release new API](docs/release-new-api.md) documentation for more information how to build and release scenarioo-java.
[Release new API](docs/release-new-api.md) documentation for more information how to build and release scenarioo-java.
126 changes: 74 additions & 52 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,114 +1,137 @@
/* scenarioo-api
* Copyright (C) 2014, scenarioo.org Development Team
*
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* As a special exception, the copyright holders of this library give you
* permission to link this library with independent modules, according
* As a special exception, the copyright holders of this library give you
* permission to link this library with independent modules, according
* to the GNU General Public License with "Classpath" exception as provided
* in the LICENSE file that accompanied this code.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/


group = 'org.scenarioo'
version = '2.1.2-SNAPSHOT'
version = '3.0.0-RC1'

apply plugin: 'eclipse'
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'maven-publish'
apply plugin: 'signing'

sourceCompatibility=1.6
targetCompatibility=1.6
sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
mavenCentral()
mavenCentral()
}

dependencies {
compile 'org.apache.commons:commons-lang3:3.0.1'
compile 'commons-io:commons-io:1.3.2'
compile 'commons-codec:commons-codec:1.2'
compile 'log4j:log4j:1.2.17'
testCompile 'junit:junit:4.11'
implementation 'org.apache.commons:commons-lang3:3.0.1'
implementation 'commons-io:commons-io:1.3.2'
implementation 'commons-codec:commons-codec:1.2'
implementation 'org.slf4j:slf4j-api:1.7.31'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.2'

//These libraries are no longer provided in Java 9+, thus we need to add them manually
implementation 'javax.xml.bind:jaxb-api:2.3.1'
implementation 'com.sun.xml.bind:jaxb-core:2.3.0.1'
implementation 'com.sun.xml.bind:jaxb-impl:2.3.2'
}

test {
useJUnitPlatform()

testLogging {
events "passed", "skipped", "failed"
}
}

task javadocJar(type: Jar) {
classifier = 'javadoc'
archiveClassifier.set('javadoc')
from javadoc
}

task sourcesJar(type: Jar) {
classifier = 'sources'
archiveClassifier.set('sources')
from sourceSets.main.allSource
}

artifacts {
archives javadocJar, sourcesJar
}

signing {
sign configurations.archives
}

tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}

uploadArchives {
repositories {
mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

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)
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
artifact sourcesJar
artifact javadocJar

pom.project {
name 'Scenarioo java'
packaging 'jar'
description 'Scenarioo Writer library for Java to generate Scenarioo Documentation http://www.scenarioo.org'
url 'http://www.scenarioo.org'
pom {
name = 'Scenarioo Java'
packaging = 'jar'
description = 'Scenarioo Writer library for Java to generate Scenarioo Documentation http://www.scenarioo.org'
url = 'http://www.scenarioo.org'

scm {
connection 'https://github.com/scenarioo/scenarioo-java.git'
developerConnection 'https://github.com/scenarioo/scenarioo-java.git'
url 'https://github.com/scenarioo/scenarioo-java.git'
connection = 'https://github.com/scenarioo/scenarioo-java.git'
developerConnection = 'https://github.com/scenarioo/scenarioo-java.git'
url = 'https://github.com/scenarioo/scenarioo-java.git'
}

licenses {
license {
name 'GNU GENERAL PUBLIC LICENCE with linking exception'
url 'https://github.com/scenarioo/scenarioo-java/blob/develop/LICENSE.txt'
name = 'GNU GENERAL PUBLIC LICENCE with linking exception'
url = 'https://github.com/scenarioo/scenarioo-java/blob/develop/LICENSE.txt'
}
}

developers {
developer {
id 'scenarioo'
name 'Scenarioo'
email '[email protected]'
id = 'scenarioo'
name = 'Scenarioo'
email = '[email protected]'
}
}
}
}
}

repositories {
maven {
if (version.contains("SNAPSHOT")) {
url "https://oss.sonatype.org/content/repositories/snapshots/"
} else {
url "https://oss.sonatype.org/service/local/staging/deploy/maven2"
}
credentials {
username ossrhUsername
password ossrhPassword
}
}
}
}

if (ossrhPassword) {
signing {
sign publishing.publications.mavenJava
}
}

task generateSchema(type: JavaExec) {
Expand All @@ -118,10 +141,9 @@ task generateSchema(type: JavaExec) {

jar.dependsOn generateSchema

// Prevent Eclipse "Gradle -> Refresh All" to execute cleanEclipseJdt,
// because it would delete our version of the org.eclipse.jdt.ui.prefs file.
cleanEclipse.dependsOn = cleanEclipse.taskDependencies.values - cleanEclipseJdt
wrapper {
distributionType = Wrapper.DistributionType.ALL
gradleVersion = "6.7.1"
}


task wrapper(type: Wrapper) {
gradleVersion = '3.3'
}
24 changes: 24 additions & 0 deletions docs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Scenarioo Writer Library for Java Release Notes

## Version 3.0.0

### Upgrade to Java 8

* [#725 - Migrate to JUnit 5](https://github.com/scenarioo/scenarioo-java/issues/20)

With version 3, the Java Writer Library needs at least Java 8 to run.

### Readiness for Java 11

* [#22 - Runtime errors when using the writer with Java 11](https://github.com/scenarioo/scenarioo-java/issues/22)

Java 11 does not include Java EE libraries anymore. Since scenarioo-java relies on JAXB for writing the XML files,
we need to provide the dependencies out of the box. Users of Java 11+ should switch to this version, if they don't want
to supply the missing dependencies themselves.


### Improvements to the details interface

* [#1 - Improve details interface & API documentation](https://github.com/scenarioo/scenarioo-java/issues/1)

The possibility to add details via the API has been improved by a few more method overloads. For more details see the [Details class](https://github.com/scenarioo/scenarioo-java/blob/develop/src/main/java/org/scenarioo/model/docu/entities/generic/Details.java)
32 changes: 15 additions & 17 deletions docs/release-new-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,18 @@ The `scenarioo-java` repository has two branches: `develop` for developing the n

Precondition: Before considering a release, make sure that the new version is well tested. If you are not 100% sure about the quality of the code, make a release candidate first and test it well in a realistic environment.

## Release to master branch

1. Finalize the code in the `develop` branch of `scenarioo-java` by setting the correct version number in the `build.gradle` file. This version number must not exist yet in mavem central. Remove `SNAPSHOT` from the version number and add `-RCx` for release candidates where `x` is the RC number.
2. Make sure the build runs on the `develop` branch by running `./gradlew clean build`. Then commit to `develop`.
3. Now checkout the `master` branch and merge `develop` into it, commit.
4. Still on the `master` branch, add a tag with the release version number and push the tag.
5. Checkout `develop` again, change the version in `build.gradle` to the next `x.y.z-SNAPSHOT` version and commit. `x.y` corresponds to the last release version and `z` is incremented by one compared to the last release.

## Release to maven repository

1. Checkout the `master` branch tag that contains the release you just made.
2. Follow the steps [Publish release to maven central](upload-to-maven-central.md).
3. Change the version used in the webapplication (repository 'scenarioo' on appropriate branch) to use the newer version and commit.

## Write release notes

Write release notes for the new release on GitHub ([here](https://github.com/scenarioo/scenarioo-java/releases))
1. Finalize the code in the `develop` branch of `scenarioo-java` by setting the correct version number in the `build.gradle` file. This version number must not exist yet in mavem central. Remove `SNAPSHOT` from the version number and add `-RCx` for release candidates where `x` is the RC number for further release candidate testing.
2. You have to manually [Publish the signed snapshot to maven central](upload-to-maven-central.md)) this is currently not automated.
3. Make sure the changelog.md is updated for the new version

## Final Release to master branch

1. Precondition: see Prepare Release above.
2. Set the final version number in develop or release branch (without `-SNAPSHOT` or `-RC`) in `build.gradle` and merge it to the develop branch (or the release branch).
3. You have to manually [Publish the signed release to maven central](upload-to-maven-central.md)) this is currently not automated.
4. Promote the final release to maven central: http://central.sonatype.org/pages/releasing-the-deployment.html
5. Add a tag with the release version number to the commit where you set that version number and push the tag.
6. **Write Release Notes** for the new release on GitHub ([here](https://github.com/scenarioo/scenarioo-java/releases))
7. Merge the release branch to master.
8. **IMPORTANT - Increase Version to next snapshot version on Develop Branch:** Checkout `develop` again, change the version in `build.gradle` to the next `x.y.z-SNAPSHOT` version and commit. `x.y` corresponds to the last release version and `z` is incremented by one compared to the last release.
9. **Switch Scenarioo Viewer Webapp to newest version:** Go to repo `scenarioo` and change the version of the writer library used to the newest version and commit and push (--> PR to next release branch or to develop).
32 changes: 19 additions & 13 deletions docs/upload-to-maven-central.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
# Upload to maven central

## Snapshot
1. You will need to specify the following properties in your gradle.properties located in your gradle home directory:

```
signing.keyId=BDCAAE60
signing.password=#private key goes here#
signing.secretKeyRingFile=#secret key file goes here#
ossrhUsername=scenarioo
ossrhPassword=#sonatype password goes here#
```
1. You will need to specify the following properties in your `gradle.properties` located in your gradle home directory:

```
signing.keyId=BDCAAE60
signing.password=#private key goes here#
signing.secretKeyRingFile=#secret key file goes here#
ossrhUsername=scenarioo
ossrhPassword=#sonatype password goes here#
```
The credentials can be found in the internal MS Teams Channel.

2. Change the version appropriately in the build.gradle
3. `gradlew clean uploadArchives`

2. Change the version appropriately in the `build.gradle`
3. `gradlew clean publish`
4. Promote build to maven central: http://central.sonatype.org/pages/releasing-the-deployment.html
Please note, we're using the old server https://oss.sonatype.org.

## Releases
Same steps as for snapshot releases and
4. Promote build to maven central:
http://central.sonatype.org/pages/releasing-the-deployment.html

Same steps as for snapshot releases and then promote build to maven central:
http://central.sonatype.org/pages/releasing-the-deployment.html
2 changes: 1 addition & 1 deletion docs/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,4 @@ Capture step data from UI tests using one of three strategies

## More ...

* Just study the [Examples](http://scenarioo.org/docs/examples.html), there are a lot of comments in the code, that should help you a lot!
* Just study the [Examples in the Docu](http://scenarioo.org/docs/master/examples.html), there are a lot of comments in the code, that should help you a lot!
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
3 changes: 1 addition & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#Sat Feb 11 10:28:39 CET 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
Loading