Contribute to the DSpace Development Fund

The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.

Date

Angular meeting

Attendees

Notes

  •  Backchannel on #angular-ui in Slack. Join us at https://goo.gl/forms/s70dh26zY2cSqn2K3
  • Testing works and has been merged
    • Tests have been added for the reducers in the code
  • The way actions work has changed to make better use of typescript
    • They're now classes, with a type property for their key and the constructor to create them. (example)
    • That way we can use type checking to ensure the reducer only works with the correct actions. (example)
  • npm-shrinkwrap was added
    • adds npm-shrinkwrap.json to the project: a file that tracks all dependency versions
    • every new install will use those exact versions
    • From now on, if you install a new package
      • using "npm install some-package --save", you don't have to do anything, shrinkwrap will run automatically
      • by modifying package.json manually, you'll have to run npm run rewrap to update npm-shrinkwrap.json
  • Configuration. What do we want to use: https://github.com/DSpace/dspace-angular/pull/42/
    • Typescript or Javascript
    • JSON (no comments allowed)
    • YAML (but not frequently used with JS projects?)
    • Maybe we go with Javascript for now (as widely understood & simple). We could always translate something else to JS later
  • PR for a PageNotFound component: https://github.com/DSpace/dspace-angular/pull/44
  • PR for a Spinner (loading) component: https://github.com/DSpace/dspace-angular/pull/43
    • adds SpinnerService with an activate and deactivate method
    • If you create a spinner that has to wait on an async call (a response from REST), call activate() before the call, and deactivate() when the call completes
  • PR for a Serializer (translate from REST to models & back): https://github.com/DSpace/dspace-angular/pull/45
    • There's an interface, and an implementation for JSON API
    • If the rest team doesn't go with JSON API, the changes should be limited to that class
  • Style guide now has guidelines for separate modules https://angular.io/styleguide#!#04-09
    • create a separate module for each feature
    • use a SharedModule for pipes and directives that are shared across the app
    • use a CoreModule for singletons that are needed across the app
      • Note that not every service needs to be in this module, if it's only need across a subset of the app, move it up to the first module that encompasses them all, not further
    • Art will create an issue to refactor our code to match this structure
  • Need more help reviewing code
    • Tim can create a small Review team in GitHub so we can @ mention them in tickets
  • Slack #angular-ui channel now gets GitHub ticket / PR updates
  • Question on Debugging code? What do we use?

REST meeting

Attendees

Notes:

 

Most of the discussion has been around the document available here. We ask all the interested developers to add their comments and thoughts: https://docs.google.com/document/d/1dAPjq6xSy7A5Q_xXIxLXgJ2VqugFpxeSmMmvbr2mM5M/edit?usp=sharing

 

  • Backchannel on #rest-api on Slack
  • Need priority list. What is highest priority for DSpace 7
  • Andrea: My priority is first 3 bullets, but these may even be achieved on current REST platform
    • all the functionalities required by the AngularUI are in place
    • maintain the REST API code is easy and enjoyable by… DSpace-JAVA developers or JAVA developers?
    • REST API are well tested and documented
  • HAL vs JSON-API format (highest priority question)
    • Spring REST uses HAL more frequently, lots of tutorials
    • JSON-API is broader standard, but is it too complex for our needs? 
    • We have mockups of JSON-API already that angular team is working from (Art)
    • Art: But advantage is you don't need to parse it yourself. Client builds automatically
    • Andrea thinks you'd get similar benefits from HAL (e.g. HAL browser)
    • Art seems to favor JSON-API, while Andrea seems to favor HAL
    • We need to work from the REST API Spec, but we need a decision on format. Have UI developers work against format mockups?
  • ACTION (Art, Andrea & James): Need a HAL mockup for testing Angular2 against
    • Art, Andrea & James will move this forward
    • Start in the #rest-api channel over the next week. Others interested, please also take part
    • The big question here is does HAL give us what we need/want for Angular2? If so, we should go with it, as it seems to have a decent following in Spring community
  • Others can start to look at the Mockups for samples of the formats (to give feedback on them). Keep in mind, even within HAL and JSON-API, we may be able to configure formats to return data in different ways.
  • ACTION (Andrea/4Science): Spring Data Rest protoype updates to add a DTO layer
  • Questions around Use of Solr for REST API

    • Different endpoints for browse/search that use Solr to find individual objects

    • But at a single object level, the endpoint would just use the Database to load properties, etc.

    • Current Jersey API is "flawed" in that it only uses Database (even for browse).

  • Next meeting in Two weeks (Feb 9)

    • In meantime, discussions on Slack

    • Stay on Google Hangouts for now (until we hit 15 people limit)

    • Invite to go to dspace-devel list & on Slack

  • No labels