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
- Marc Goovaerts
- Leandro Martín
- Luis Carlos Alvarez
- Jose Acevedo
Notes
- Backchannel on #angular-ui in Slack. Join us at https://goo.gl/forms/s70dh26zY2cSqn2K3
Art's updates: https://docs.google.com/document/d/1tWIldEwzZ826lBwAxkIhnj7hFrURSLmZvu1EWfwCSjI/edit?usp=sharing Some extra notes:
Mockups of HAL vs JSON-API format: https://github.com/DSpace-Labs/hal-jsonapi-comparison
Tim, Art & Andrea agreed to go with HAL
- JSON-API is harder on serverside (requires Katharsis, which is not as well supported or up-to-date with Spring tools)
- Spring MVC & HATEOS Framework will be used to generate HAL (on server side)
- HAL is not all that harder to support on clientside.
- HAL Library: cerialize (https://github.com/weichx/cerialize)
- Art is working on a HALSerializer for Angular2 team to use
How do we return metadata? https://github.com/DSpace-Labs/hal-jsonapi-comparison/blob/master/hal/hal-items.json#L26
JSONPath: https://github.com/jayway/JsonPath
Running all Tests at once: https://github.com/DSpace/dspace-angular/pull/51
- Goal is to run tests automatically via TravisCI (to validate PRs)
Should we look at Yarn for dependencies: https://yarnpkg.com/en/
Seems to have nice backwards compatibility with NPM, but makes dependency management easier. Supposedly also faster
William: Angular Universal Starter used to use Yarn. But removed recently.
- Art will investigate if there are reasons Universal Starter abandoned Yarn.
William: Lodash dependency may be a problem when we update Shrinkwrap (Need to ensure we use the Typescript version)
ACTION: Create a ticket to note this future issue
William: Our configurations may wish to use OpaqueToken to avoid name collisions
https://angular.io/docs/ts/latest/api/core/index/OpaqueToken-class.html
- https://angular.io/docs/ts/latest/guide/dependency-injection.html#!/%23dependency-injection-tokens
- https://blog.thoughtram.io/angular/2016/05/23/opaque-tokens-in-angular-2.html
- http://stackoverflow.com/questions/41289264/what-is-in-angular-2-opaque-token-and-whats-the-point
Spinner work: https://github.com/DSpace/dspace-angular/pull/43
Angular Animate?
Router needs to load spinner and call to stop it.
ACTION: William will review the spinner and see if he has suggestions.
Open Repositories asked us about a Workshop on Angular / DSpace 7
ACTION: Tim, Art & Andrea will decide on this soon & let everyone know
Waffleboard of Angular Tasks (please chip in to help): https://waffle.io/DSpace/dspace-angular
REST meeting
Attendees
- Giuseppe Digilio (4Science)
- William Welling
- James Silas Creel (and others at A&M)
- Matteo Perelli
- Terrence W Brady
- Hardy Pottinger
- Nelson Torres
- Marc Goovaerts
- Leandro Martín
- Luis Carlos Alvarez Fernandez
- Jose Acevedo
- Mark H. Wood
Notes:
- Backchannel on #rest-api on Slack. Join us at https://goo.gl/forms/s70dh26zY2cSqn2K3
Do we need a list of Items in Collection response? (e.g. https://github.com/DSpace-Labs/hal-jsonapi-comparison/blob/master/hal/hal-collections.json#L11)
Items in response? https://github.com/DSpace-Labs/hal-jsonapi-comparison/blob/master/hal/hal-collections.json#L11
AGREEMENT: Switch with a single link that brings you to the collection of Items.
Different links per browse type (Title, Subject, Author, etc)
Pagination of Items. What initial sort? / pagination?
Need ability to query at two layers:
Index layer (Solr) - All browsing/searching of objects occurs at this layer (and basic permission filtering). This is no different from current UIs
- Storage layer (Database) - Only for accessing individual objects or administrative functions. No pagination/filtering should be needed (other than permission filtering for admins), as we do not allow for direct browsing/searching at this layer.
- Browseable Object? discussion
- Proposal to possibly wrap an Item/Community/Collection as a "Browseable Object"
- A lot of discussion, but not much headway.
- ACTION: Andrea is going to provide mockups of what he's proposing for us to respond to
- We will use HAL format (JSON/XML serialization) for responses
- (NOT JSON API / Katharsis)
Spring MVC & HATEOS Framework will be used to generate HAL
Initial work from Andrea has begun here: https://github.com/4Science/DSpace/tree/DS-3423-springmvc-hateoas
- ACTION: Andrea will migrate this work to a "feature branch" on DSpace/DSpace GitHub
- Committers can contribute directly to this feature branch
- Others can create PRs against this feature branch or ask for permissions (if they plan to be highly involved)
- ACTION: Create a work-in-progress PR (to easily track Travis builds)
- Andrea will create REST Tickets in JIRA (as subtasks / code tasks of one major ticket)
- One task is to look at https://projects.spring.io/spring-restdocs/
- REST API Contract
- Very rough notes started on Wiki: REST API Contract
- ACTION: Andrea to start up a new "DSpace-Labs" Git repo for REST API Contract work (to allow us to collaborate easier)
- Eventually we may move the "finalized" mockups to this repo as well.
Next meeting is next week (Thurs, Feb 16 @ 16:00UTC via Slack chat)
We've decided to switch to hourly weekly meetings, alternating between text chat meetings and conference call (voice) meetings
- Upcoming schedule:
- Thurs, Feb 16 @ 16:00UTC via Slack text chat updates (first 1/2 hour is in #angular-ui channel, second 1/2 hour is in #rest channel)
- Thurs, Feb 23 @ 16:00UTC via conference call (first 1/2 hour on Angular, second 1/2 hour on REST)
- Thurs, Mar 2 @ 16:00UTC via Slack text chat updates
- Thus, Mar 9 @ 16:00UTC via conference call
- This schedule is also now posted on the DuraSpace Public Events Calendar (iCal, RSS Feed)
- Conference call location will be finalized/announced in near future.