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
- Giuseppe Digilio (4Science)
- William Welling
- James Silas Creel (and others at A&M)
- Matteo Perelli
- Terrence W Brady
- Hardy Pottinger
- Nelson Torres
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
- 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?
- Chrome browser Dev tools
- https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd?hl=en
npm run watch dev
(Will show errors in console)- Hot Module Replacement (HMR) module: https://github.com/AngularClass/angular2-hmr
- Throws syntax error into browser window (via an overlay)
- Can be helpful in debugging issues.
- Art said he looked at it in Dec, but wasn't sure if it worked with Universal, etc.
REST meeting
Attendees
- Tim Donohue
- William Welling
- Matteo Perelli
- Terrence W Brady
- Hardy Pottinger
- Nelson Torres
- Keith Gilbertson
Notes:
- 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.
- e.g. Item mockup for JSON-API format: https://github.com/LotteHofstede/dspace-angular/blob/master/src/backend/items.ts
- 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