Skip to content

Releases: ls1intum/Ares

1.13.0

07 Aug 18:10
Compare
Choose a tag to compare

User-Side Changes

  • Update JUnit 5 Jupiter/Platform from 5.9.3/1.9.3 to 5.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 version 1.7.4. See their release notes for details.
  • Update Logback from 1.4.8 to 1.4.9. See their release notes for details.
  • Update from JavaParser version 3.25.3 to version 3.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

23 Jun 20:03
Compare
Choose a tag to compare

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 the com.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 to 5.9.3/1.9.3. See their release notes for details.
  • Update from Jqwik version 1.7.2 to version 1.7.3. See their release notes for details.
  • Update Logback from 1.4.5 to 1.4.8. See their release notes for details.
  • Update from json version 20220924 to version 20230618. 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

10 Feb 23:34
Compare
Choose a tag to compare

User-Side Changes

  • Fixed Ares rejecting native library linking permission for JDK internals. (see c346352)
    Always deny broke the network testing (e.g. Sockets) on Linux systems, so loading native libraries is now allowed for whitelisted callers.

1.11.2

10 Feb 23:29
Compare
Choose a tag to compare

Security

User-Side Changes

Developer-Side Changes

  • Small dependency updates:
    • spotless-maven-plugin
    • maven-surefire-plugin

1.11.1

11 Dec 18:19
Compare
Choose a tag to compare

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 methods setValueOfAttribute and setValueOfNonPublicAttribute 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 to 1.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

12 Nov 21:28
Compare
Choose a tag to compare

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 the Method objects. Two new utility methods were therefore added to retrieve a Method from a given Class or instance.
  • Update from Jqwik version 1.6.5 to version 1.7.1. See their release notes for details.
  • Update JUnit 5 Jupiter/Platform from 5.8.2/1.8.2 to 5.9.1/1.9.1. See their release notes for details.
  • Update Logback from 1.2.11 to 1.4.4. See their release notes for details.
  • Update from json version 20220320 to version 20220924. 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

01 Jun 00:41
Compare
Choose a tag to compare

User-Side Changes

  • Update AssertJ from version 3.22.0 to version 3.23.1.
    See their 3.23.0 release notes for details. The AssertJMultipleFailuresError now includes the topmost stack frame (after some filtering) in the message of each failure. Ares is currently not involved here.

1.10.0

28 May 20:20
Compare
Choose a tag to compare

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 regular get... methods in java.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

01 Apr 01:19
Compare
Choose a tag to compare

User-Side Changes

  • Trusted code can now open network connections.
    Ares already allowed that beforehand, but only if the specialized network checks of the SecurityManager 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 the ReflectionTestUtils (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 of ReflectionTestUtils 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(...) because fail(...) prevents proper control flow analysis.
  • Small dependency updates:
    • spotless-maven-plugin

1.9.1

24 Mar 18:31
Compare
Choose a tag to compare

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 a IOManager subclass. This subclass can then choose to play with the System.in, out and err as the user prefers. It can also supply an IO test controller object that can be injected like IOTester 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 version 20220320. 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