Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • (BEFORE MEETING IN #dev-sprint) Developer Stand Up - Developers give brief updates on their effort (or their team's effort).

    • Update/see "Current Work" section below based on your status. Please feel free to update prior to meeting.
    • Please highlight any new work (needing reviews/testing), any blockers (for you), and any discussion topics you may have.
  • (30 mins) General Discussion Topics
    1. (20 mins) Start discussion of "150 GET requests on Community & Collection page" (would require REST API changes): https://github.com/DSpace/dspace-angular/issues/918
      1. Feedback from Ben Bosmanon the feasibility of Art's idea to "add support for pagination options when requesting embeds: e.g. /api/core/communities/<:uuid>?embed=subcommunities&embed.subcommunities.size=1)"
    2. (10 mins) Start discussion about improving our JAVA test practice (note below from Andrea Bollini (4Science) )
      1. In recent PRs (see 3034 and 3046) it is becoming evident that there is some confusion between practices needed (and supported) in (REST) Integration Test  and practices applied to "old" test in dspace-api (both Unit than Integration)
      2. we should make sure that developers know about such pitfalls
        1. we have an AbstractUnitTest class in dspace-api that is not about Unit Testing as it setup a real database connection so it allows you to manipulate persistent data, moreover we inject real services in the base AbstractDSpaceTest. We also have an AbstractIntegrationTest that extends AbstractUnitTest with a not well defined purpose... and it is easly to be confused with AbstractDSpaceIntegrationTest that instead is the "new" base Integration Test class introduced in the REST layer and now move to the DSpace-API. It should be noted that AbstractDSpaceIntegrationTest is not in hierarchy with the AbstractDSpaceTest and following old dspace-api classes. This last class is the only one that make an effort to automatically cleanup the persistent data after each test execution and restore a clean context
        2. the name of the Test Class is relevant as we follow the standard naming convention used by maven to identify Unit Test (the class that starts or ends with Test) and Integration Test (the class that starts or ends with IT). Recently we have split our CI build in two parallel processes one dedicated to Unit Test and one dedicated to Integration Test, so depending on the name the test now end in one process or the other (but as said in the previous point we currently have almost only IT)
        3. old Integration Tests named as such in the dspace-api could fails to cleanup the test env and this could result in subsequent failure in other test very hard to identify (I'm currently surprised that we haven't hit such problem yet and frequently, probably they are few and touch a little amount of data or they do a good job to manually cleanup what they touch)
      3. do we need real Unit Test? maybe, personally I feel more comfortable with IT, unit test could be useful where we have complex logic that we want to stress but when we need to deal with Services probably it is more useful to use IT (otherwise we will end in writing Unit Test more complex than the actual code due to the need to mock a lot of collaborators)
      4. how to proceed in the long run? if we call the test properly we will get a lot of issues due to the failing cleanup and we will lose the gain due to the two build processes (as essentially we have no or few real unit test). It is possible to classify test and use such classification to trigger the execution of only a group of them, this could be an alternative to the current split (unit test vs IT) see https://github.com/junit-team/junit4/wiki/Categories
    3. (Other discussion topics welcome)
  • (30 mins) Planning for next week

...