Releases: ls1intum/Ares
Releases · ls1intum/Ares
1.13.0
User-Side Changes
- Update JUnit 5 Jupiter/Platform from
5.9.3
/1.9.3
to5.10.0
/1.10.0
. See their release notes for details.
This large minor version update is the reason for the minor version update of Ares itself. - Update from Jqwik version
1.7.3
to version1.7.4
. See their release notes for details. - Update Logback from
1.4.8
to1.4.9
. See their release notes for details. - Update from JavaParser version
3.25.3
to version3.25.4
. See their release notes for details.
Developer-Side Changes
- Dependabot should now open combined PRs for future JUnit 5 Jupiter/Platform version updates.
- Small dependency updates:
spotless-maven-plugin
1.12.0
User-Side Changes
- Provide assertions for syntactical features in Java sources based on the AST (see #248, credits to @MarkusPaulsen)
This allows testing student code for constructs such as loops, conditionals, local classes, exception handling and custom types. For example,assertThatProjectSources().withinPackage("com.example").withLanguageLevel(JAVA_17).hasNo(LoopType.ANY)
asserts that all student code in thecom.example
package does not use any (imperative) loop constructs. In case of violations, we provide detailed failure messages which include the exact location in the source. - Fixed bad structural test failure messages for classes expected in the default package. (see #293 / 3ea704c, credits to @martinmo)
Instead of an empty string, the default package in now described as<default> (i.e., no package)
. - Update JUnit 5 Jupiter/Platform from
5.9.2
/1.9.2
to5.9.3
/1.9.3
. See their release notes for details. - Update from Jqwik version
1.7.2
to version1.7.3
. See their release notes for details. - Update Logback from
1.4.5
to1.4.8
. See their release notes for details. - Update from json version
20220924
to version20230618
. See their release notes for details.
Developer-Side Changes
- Enabled pull request merge queues (see the GitHub Docs for more details on merge queues)
- Small dependency updates:
spotless-maven-plugin
jacoco-maven-plugin
maven-clean-plugin
maven-enforcer-plugin
maven-resources-plugin
maven-compiler-plugin
maven-surefire-plugin
maven-source-plugin
maven-javadoc-plugin
maven-gpg-plugin
maven-install-plugin
maven-deploy-plugin
maven-site-plugin
1.11.3
1.11.2
Security
- See GHSA-98hq-4wmw-98w9 (CVSS Score 8.2 High) for details (credits to @LDAP)
User-Side Changes
- Update JUnit 5 Jupiter/Platform from
5.9.1
/1.9.1
to5.9.2
/1.9.2
. See their release notes for details. - Update AssertJ from
3.23.1
to3.24.2
. See their release notes for details. - Update from Jqwik version
1.7.1
to version1.7.2
. See their release notes for details.
Developer-Side Changes
- Small dependency updates:
spotless-maven-plugin
maven-surefire-plugin
1.11.1
User-Side Changes
- Improve default case-sensitivity choice of
DynamicField
. (see #258, credits to @JohannesStoehr)
The likely default that users want is that the field names are used as-is, so the case-insensitive default is counterintuitive and can lead to problems if constants and instance variables share the same name but in different capitalization. - Fixed bad feedback provided by
ReflectionTestUtils
if a member is inaccessible because of the visibility of its containing class and not the member's own modifiers. (see #254, credits to @Strohgelaender)
The failure message now distinguishes the different problem sources and will tell the students whether the problem is the class or the attribute/method/constructor. ReflectionTestUtils
now offers the methodssetValueOfAttribute
andsetValueOfNonPublicAttribute
to set the value of attributes. The modification of final fields is prohibited. (see #256)ReflectionTestUtils
now offers re-throwing methods for instance creation to allow testing of exceptions thrown in constructors. (see #257)DynamicField
now offers methods to set field values for static and instance fields. The modification of final fields is prohibited.- Update Logback from
1.4.4
to1.4.5
. See their release notes for details.
Developer-Side Changes
- More and better tests for
ReflectionTestUtils
and the Dynamics Framework - Small dependency updates:
spotless-maven-plugin
1.11.0
User-Side Changes
- Two new methods for accessing (package-)private and protected methods via
ReflectionTestUtils
. (credits to @tobias-lippert)
The new..NonPublic..
method variants lacked versions to just retrieve theMethod
objects. Two new utility methods were therefore added to retrieve aMethod
from a givenClass
or instance. - Update from Jqwik version
1.6.5
to version1.7.1
. See their release notes for details. - Update JUnit 5 Jupiter/Platform from
5.8.2
/1.8.2
to5.9.1
/1.9.1
. See their release notes for details. - Update Logback from
1.2.11
to1.4.4
. See their release notes for details. - Update from json version
20220320
to version20220924
. See their release notes for details.
Developer-Side Changes
- An additional check was added that checks if the
README.adoc
can be built using Asciidoctor. - Environments and a branch for GitHub Pages, with continuous delivery and a deployment triggered by tags or manually and which requires the confirmation from one of the Ares admins.
- Small dependency updates:
spotless-maven-plugin
maven-jar-plugin
maven-javadoc-plugin
maven-deploy-plugin
maven-surefire-plugin
maven-enforcer-plugin
1.10.1
User-Side Changes
- Update AssertJ from version
3.22.0
to version3.23.1
.
See their3.23.0
release notes for details. TheAssertJMultipleFailuresError
now includes the topmost stack frame (after some filtering) in the message of each failure. Ares is currently not involved here.
1.10.0
User-Side Changes
- The Ares documentation is now available on GitHub Pages as website!
Visit https://ls1intum.github.io/Ares/ to read the README as properly rendered website. - New methods for accessing (package-)private and protected members via
ReflectionTestUtils
. (credits to @b-fein)
The new method variants are named..NonPublic..
and will work for all members that would be accessible in the class itself. All other methods only access the public/otherwise accessible methods now, like the regularget...
methods injava.lang.Class
. Note that this changed the behavior of the..Attribute
methods, which previously operated with declared fields. - Links in the README and documentation now point correctly to the examples in the test classes. (credits to @Strohgelaender)
For more details, see #219.
Developer-Side Changes
- An additional check was added that checks if the
README.adoc
can be built using Asciidoctor. - Environments and a branch for GitHub Pages, with continuous delivery and a deployment triggered by tags or manually and which requires the confirmation from one of the Ares admins.
- Small dependency updates:
jacoco-maven-plugin
spotless-maven-plugin
maven-surefire-plugin
maven-javadoc-plugin
nexus-staging-maven-plugin
1.9.2
User-Side Changes
- Trusted code can now open network connections.
Ares already allowed that beforehand, but only if the specialized network checks of theSecurityManager
were used. The permission-based check got updated to match that behavior as good as possible. - The dynamics framework (
de.tu.in.test.api.dynamic
, see #71), the structural tests (de.tu.in.test.api.structural
, see #62) and theReflectionTestUtils
(see #62) are now using localization.
The dynamics framework and the structural tests are now available in both English and German. In the process, some messages got replaced, fixed or improved. Some messages ofReflectionTestUtils
require more work to make sense and therefore, no German translation is provided yet. This also resolved the issue #76.
Developer-Side Changes
- The Eclipse settings (including formatter and clean-up) got updated, and the new and improved code style was applied
- The integration test assertion conditions were rewritten to pinpoint exact test failures and messages, leveraging IDE support as well
- Simplified and unified how localized assertion failures are thrown, we now use mostly
throw localizedFailure(...)
becausefail(...)
prevents proper control flow analysis. - Small dependency updates:
spotless-maven-plugin
1.9.1
User-Side Changes
- Ares now provides a way to register custom IO testers and replace the
IOTester
Ares now provides@WithIOManager
which can be applied to test classes, methods and annotations and requires aIOManager
subclass. This subclass can then choose to play with theSystem.in
,out
anderr
as the user prefers. It can also supply an IO test controller object that can be injected likeIOTester
as a parameter. This fixes #105 and probably provides a more satisfactory solution for #114. The feature is currently marked experimental, but not much change is expected. - Trusted package prefixes can be registered at startup with a system property
For Syntax see https://github.com/ls1intum/Ares#what-about-security. - Update from json version
20211205
to version20220320
. See their release notes for details. - Small
README
and documentation improvements.
Developer-Side Changes
- Integrations tests for the new
IOManager
and@WithIOManager
annotation were added. - The Javadoc plugin now accepts and processes the semi-official
@apiNote
,@implSpec
and@implNote
tags correctly. - Multiple small dependency updates:
actions/cache
maven-compiler-plugin