diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 33b65a984..a9392e9e7 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -26,10 +26,10 @@ By participating, you are expected to uphold this code. Please report unacceptab
[Invite yourself](http://slack.kotlinlang.org/) :wink:
- Found a bug?
- [Open an issue](https://github.com/robstoll/atrium/issues/new).
+ [Open an issue](https://github.com/robstoll/atrium/issues/new?template=bug_report.md).
- Missing a feature?
- [Create a feature request](https://github.com/robstoll/atrium/issues/new?title=[Feature]).
+ [Create a feature request](https://github.com/robstoll/atrium/issues/new?template=feature_request.md&title=[Feature]).
- You would like to write an assertion function but have trouble to start?
Please read the section [Your First Code Contribution](#your-first-code-contribution).
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index f05625342..fd765e3c0 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -1,6 +1,9 @@
-Please fill in the following sections
+Please choose the appropriate template and fill in all sections
-*Affected Version*:
+# Bug Report
+
+*Affected Version*:
+*Platform* (JVM or JS):
## How to reproduce the problem
Consider the following code snippet
@@ -8,5 +11,31 @@ Consider the following code snippet
assert("this dummy text").wasReplaced.withYourCode()
```
+## Describe the bug
+A clear and concise description of what the bug is.
+
+## Expected behaviour
+A clear and concise description of what you expected to happen.
+
+
+# Feature Request
+
+*Platform* (JVM and/or JS):
+
+## Code related feature
+```
+assert(listOf(1, 2)).myDesiredFeature(...)
+```
+
+## Non-Code related feature
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index dc6508452..ca731f2e9 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -6,7 +6,7 @@ about: Suggest an idea for this project
*Platform* (JVM and/or JS):
-## Code example
+## Code related feature
```
assert(listOf(1, 2)).myDesiredFeature(...)
```
diff --git a/README.md b/README.md
index d30efad8c..858d82dd3 100644
--- a/README.md
+++ b/README.md
@@ -584,7 +584,7 @@ Please star Atrium if you like using it.
:interrobang: too verbose?
As side notice, in case you are dealing with large `Iterable` and do not want such a verbose output,
-then let me know it by [writing a feature request](https://github.com/robstoll/atrium/issues/new?title=[Feature]).
+then let me know it by [writing a feature request](https://github.com/robstoll/atrium/issues/new?template=feature_request.md&title=[Feature]).
So far the verbose output was always handy for me but you might have other test cases than me.
Also notice, that Atrium cannot yet deal with infinite `Iterable`s.
If you have to, then please open a feature request as well.
@@ -990,7 +990,7 @@ assert: 10 (java.lang.Integer <934275857>)
```
You prefer another reporting style but Atrium does not yet support it?
-Please let me know it by [writing a feature request](https://github.com/robstoll/atrium/issues/new?title=[Feature]).
+Please let me know it by [writing a feature request](https://github.com/robstoll/atrium/issues/new?template=feature_request.md&title=[Feature]).
There are more options to choose from.
@@ -1045,7 +1045,7 @@ For further technical information have a look at the KDoc of [Translator](https:
Notice, Atrium does not yet support generating multiple reports (e.g., in different languages) in the same test run
-- but Atrium is designed to support this use case.
Hence, if you need this feature, then please let me know it by writing a
-[feature request](https://github.com/robstoll/atrium/issues/new?title=[Feature]).
+[feature request](https://github.com/robstoll/atrium/issues/new?template=feature_request.md&title=[Feature]).
@@ -1169,7 +1169,7 @@ Thus, Atrium provides the following functions to ease dealing with Java Code at
# Contribute
You are more than welcome to contribute:
- star Atrium if you like it
-- [open an issue](https://github.com/robstoll/atrium/issues/new) or [create a feature request](https://github.com/robstoll/atrium/issues/new?title=[Feature])
+- [open a bug](https://github.com/robstoll/atrium/issues/new?template=bug_report.md) or [create a feature request](https://github.com/robstoll/atrium/issues/new?template=feature_request.md&title=[Feature])
- [ask a question](https://kotlinlang.slack.com/messages/C887ZKGCQ)
so that I better understand where Atrium needs to improve.
- share your assertion functions with the rest of us by creating a pull request.
@@ -1188,7 +1188,7 @@ The code documentation is generated with dokka and is hosted on github-pages:
According to the [YAGNI](https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it) principle this
library does not yet offer a lot of out-of-the-box assertion functions.
More functions will follow but only if they are used somewhere by someone.
-So, let me know if you miss something by creating a [feature request](https://github.com/robstoll/atrium/issues/new?title=[Feature]).
+So, let me know if you miss something by creating a [feature request](https://github.com/robstoll/atrium/issues/new?template=feature_request.md&title=[Feature]).
Some assertion functions which I miss myself will follow in the next version.
They are listed in the [Roadmap](#roadmap) below.
@@ -1258,7 +1258,7 @@ I plan that Atrium is going to support certain features in the future. Following
- Inclusion of mockito's verify (so that it appears in the report as well).
Are you missing something else?
-[Feature Requests](https://github.com/robstoll/atrium/issues/new?title=[Feature])
+[Feature Requests](https://github.com/robstoll/atrium/issues/new?template=feature_request.md&title=[Feature])
are very welcome.
# License
diff --git a/core/api/atrium-core-api-common/src/main/kotlin/ch/tutteli/atrium/reporting/ReporterFactory.kt b/core/api/atrium-core-api-common/src/main/kotlin/ch/tutteli/atrium/reporting/ReporterFactory.kt
index e871f6686..c8324036c 100644
--- a/core/api/atrium-core-api-common/src/main/kotlin/ch/tutteli/atrium/reporting/ReporterFactory.kt
+++ b/core/api/atrium-core-api-common/src/main/kotlin/ch/tutteli/atrium/reporting/ReporterFactory.kt
@@ -14,7 +14,8 @@ import ch.tutteli.atrium.core.polyfills.setAtriumProperty
* Use [ReporterFactory.specifyFactory] or [ReporterFactory.specifyFactoryIfNotYetSet] to define the system property.
*
* Notice, that searching for a [ReporterFactory] is only done once and the result is cached afterwards.
- * Please [open an issue](https://github.com/robstoll/atrium/issues/new) if you want to change reporter during a test-run.
+ * Please [open an issue](https://github.com/robstoll/atrium/issues/new?template=feature_request.md&title=[Feature]%20change%20Reporter%20during%20test%20run)
+ * if you want to able to change the [Reporter] during a test-run.
*/
val reporter: Reporter by lazy {
val id = getAtriumProperty(ReporterFactory.SYSTEM_PROPERTY) ?: "default"
diff --git a/misc/atrium-assertions/src/main/kotlin/ch/tutteli/atrium/assertions/any/typetransformation/TypeTransformer.kt b/misc/atrium-assertions/src/main/kotlin/ch/tutteli/atrium/assertions/any/typetransformation/TypeTransformer.kt
index e42a3f1c2..e7ebc98a7 100644
--- a/misc/atrium-assertions/src/main/kotlin/ch/tutteli/atrium/assertions/any/typetransformation/TypeTransformer.kt
+++ b/misc/atrium-assertions/src/main/kotlin/ch/tutteli/atrium/assertions/any/typetransformation/TypeTransformer.kt
@@ -1,9 +1,7 @@
package ch.tutteli.atrium.assertions.any.typetransformation
import ch.tutteli.atrium.core.coreFactory
-import ch.tutteli.atrium.core.evalOnce
import ch.tutteli.atrium.creating.AssertionPlant
-import ch.tutteli.atrium.creating.AssertionPlantWithCommonFields
import ch.tutteli.atrium.creating.BaseAssertionPlant
import ch.tutteli.atrium.domain.builders.AssertImpl
import ch.tutteli.atrium.reporting.BUG_REPORT_URL