/
ERM Sprint 183

ERM Sprint 183

Sprint Goal / Focus 

  •  

Sprint Schedule

  • Sprint: 183
  • Release: 2024.1 Quesnalia 
    • Sprint 8 of 11 since Release Development Cycle Starts (Sprint 176) to Feature Freeze (Sprint 186: 15 Mar 2024)
    • Sprint 187: Module Release Deadline (22 Mar 2024) [FOLREL-565]
    • Sprint 189: Bugfix Release Deadline (19 Apr 2024) [FOLREL-581]

Development Meetings

  • Wed 24 Jan - retro
  • Mon 29 Jan - mid-sprint review
  • Wed 31 Jan - dev update

Sprint Capacity

Team AvailabilitySchedule | Calendar

Notes / Exceptions:

Lead Roles:

QA Environment: 

  • folio-snapshot, folio-snapshot-2

Present

Planning Questions

  • Does the issue meet the criteria for Definition of Ready?
  • What front and back end components are affected?
  • What changes need to be made? (additions, removals or modifications)
  • What development tests need to be written?  
  • What data does the developer need to verify their work?
  • What are the known unknowns? 
  • What is needed to QA? (environment, data, scripts)

Navigation

 Sprint Planning Agenda
  1. Sprint Goal / Focus
  2. Sprint Capacity
  3. Review sprint candidates 
  4. Agree technical approach / define key implementation tasks
  5. Finalise estimates / costings
  6. Confirm sprint scope
  7. Confirm first actions





Sprint Planning  

(error) - not in sprint

(tick) or @ - in sprint 

(warning) - not ready

(question) - pending triage / planning

Sprint Focus

Planning Notes Template

  • Triage

  • Approach
  • Components and Changes

    • Frontend

    • Backend

  • Tests / Data / Dependencies

  • Known Unknowns

  • QA: snapshot | local | testing | other

  • Release Target: 
  • Development Estimate


Issue ID

Sprint Backlog?

Notes / Estimates / Actions

Carried Over

ERM-1910 - Swap Licenses Pick lists settings screen to single 4 pane based layout Closed

ERM-3119 - Add Organisation status to organisation card display Closed

ERM-3120 - Add Content type filter to Agreements dashboard widget Closed

TESTRAILS

Sprint 180

ERM-3063 - StringTemplate.Context refdata should be internal Closed

QA

Sprint 176

ERM-3121 - Validate "Number of rows" field in KIWT / simple search based widgets Closed

QA

Sprint 180

ERM-3128 - Focus "Start date" on "Add custom coverage" Closed

QA

Sprint 182

ERM-3127 - Use clearly identifiable user-agent for requests to GOKb Closed

CODE REVIEW

Sprint 182

ERM-2792 - Swap external datasources (LKB) from card-based to MCL based form Closed

CODE REVIEW

Sprint 178

ERM-3126 - Misleading tailing comma in OrganizationsArrayDisplay Closed


CODE REVIEW

Sprint 182

ERM-3090 - Dependency upgrades in web-toolkit-ce Closed

(question) Steve Osguthorpe

CODE REVIEW

(warning) Sprint 180

ERM-3111 - Upgrade Grails from 5 to 6 Closed

STUCK 

  • Triage

    • previously created new Grails 6 project and incrementally added components
    • once pitfalls identified, each module took very little time
  • Approach
    • will starting up a new grails project with the CLI even work?
  • Components and Changes

    • Frontend

    • Backend

  • Tests / Data / Dependencies

    • gradle upgrade is necessary
  • Known Unknowns

    • will starting up a new grails project with the CLI even work?
  • QA: snapshot | local | testing | other

  • Release Target: 
  • Development Estimate

  • Current:
    • grails and gradle versions determined
    • web-toolkit passing tests
    • smoother process than 4 to 5, but integration is inevitably 
  • TODO
    • service-interaction failing
    • need to build into okapi environment
      • may need to rebuild rancher, which could be risky at the moment
    • review migrations, but difficult to triage atm

Sprint 182

ERM-3078 - SPIKE: Investigate version conflict handling in agreements/licenses Closed

IN PROGRESS

  • enforceVersionCheck is taken from grails default rest controller - not sure of impact to changing from false to true
  • can add to to yaml without changing default to false
  • would need to make changes to KIWT restful controller
  • need to push version numbers
  • likely not to be rolled in until Grails 6
  • TODO: 
    • Jack to write up findings 
    • Owen to review with users

(warning) Sprint 178

ERM-2793 - Swap proxy server settings from card-based to MCL based form Closed

IN PROGRESS


ERM-3089 - missing content-type header in /licenses/licenses/${uuid}/linkedAgreements response Closed


(warning) Sprint 178

SI-34 - Dashboard fails if any module fails to respond to /servint/widgets/definitions/global Closed


(warning) Sprint 173

SI-38 - NPE in RemoteOkapiLinkListener.groovy#191 Closed


(warning) Sprint 179

ERM-3133 - Add option to control which columns display in the Agreement->Agreement Lines MCL Closed

  • Triage

    • FOLIO session-level
  • Approach
    • review implementation across other apps
      • eg, Orders, 
      • eg, stripes-smart-components useColumnManager 
    • can this be used as-is within ERM or does it need streamlining?
  • Components and Changes

    • Frontend: TBC

    • Backend: none

  • Tests / Data / Dependencies: ??

  • Known Unknowns: ??

  • QA: snapshot | local | testing | other

  • Release Target: Quesnelia
  • Development Estimate: ??


ERM-3118 - ehcache 2 End of Life - NamedThreadFactory Closed

Triage

    • NamedThreadFactory is used in string templating service
    • out of end-of-life support, so should find a  way to upgrade/remove
  • Approach
    • need to review any documented upgrade path - is there a straightforward path to go from 2 to 3
    • are we vulnerable to the jetty-io vulnerabilty?
      • influences backport requirements (esp Orchid which is on Grails 4)
  • Components and Changes

    • Frontend: NA

    • Backend: 

  • Tests / Data / Dependencies

  • Known Unknowns

    • whether we are affected by virtue of using netty
  • QA: snapshot | local | testing | other

  • Release Target: 
  • Development Estimate

Current: 

  • upgrade path documentation doesn't help
  • looks like (via grep) this is the only use of ehcache

Sprint 182

  • need to decide whether to bail ehcache to use another NamedFactory provider
  • potentially could do this internally, without another dependency
  • run gradle clean  and check dependencies to see if ehcache/jetty-io are brought in transitively - CONFIRMED on v2

Sprint 183

  • Current
    • NamedThreadFactory doesn't seem critical or fancy
    • and it looks like it's only in mod-agreements
    • inclination is to create own version
  • TODO: 
    • check with Steve
      • is ehcache being used elsewhere?
      • can we sue our own thread factory
    • try ehcache 3
  • Decision on way forward by Wed 24 Jan

Sprint 182

(error) Not vulnerable

  • Triage

    • need to revisit what choice we made for Poppy
    • need to check whether Orchid/Poppy have the same vulnerability to determine backport requirement
    • otherwise to be dealt with (for Quesnalia) by Grails 6 upgrade
  • Approach
    • Prefer not to patch grails, but should be able to bump data-binding 
    • Try 4.1.3, then 4.1.2, then 4.1.1
    • Otherwise will need to change databindings specifically - which will be messy
    • Owen: release plan
  • Components and Changes

    • Frontend: NA

    • Backend: mod-agreements, mod-licenses, mod-service-interaction

      • shouldn't need grails-okapi or KIWT
  • Tests / Data / Dependencies

  • Known Unknowns

    • what's the minimum version that has the fix?
    • confirm that  grails-okapi and KIWT do not need bumping
  • QA: snapshot | local | testing | other

    • dev: does it compile and run as expected?
    • regression testing
  • Release Target: NA
  • Development Estimate: NA

Sprint 182

ERM-3130 - Agreement line linked to PO line causes redraw of agreement pane when a page of lines loaded Closed


  • Triage

    • fetch of loadMore is causing cache of what's opened to refresh
      • fetch is at rootLevel, so redraw pushes a different set of lines
    • which may be because of batch fetching PO lines 
    • redraw closes and remounts 
  • Approach
    • needs investigation to understand chain of events leading to invalidation or refresh
      • what's the trigger?
      • is there a quick fix? 
      • if not will need a refactor of PO line fetch handling
    • Owen to revisit whether this is an issue in current versions (tick)
  • Components and Changes

    • Frontend: ui-agreements

    • Backend: NA

  • Tests / Data / Dependencies: 

    • none for now, potentially add to testrails catalog
  • Known Unknowns

    • then need to decide what's desirable behaviour - do we need to retain the user's view or reset it post-redraw?
      • if we don't then any data changes won't be reflected
      • if we do, we need to develop a reusable component for consistency across apps
  • QA: snapshot 

  • Release Target: Quesnelia (no backport)
  • Development Estimate

Sprint 182

ERM-3131 - Cannot add new license or edit an existing one Closed

Not clear how to verify

  • Triage

  • Approach
  • Components and Changes

    • Frontend

    • Backend

  • Tests / Data / Dependencies

  • Known Unknowns

  • QA: snapshot | local | testing | other

  • Release Target: 
  • Development Estimate

Sprint 182

ERM-3118 - ehcache 2 End of Life - NamedThreadFactory Closed



ERM-2631 - PushKB: Write service to 'push' data for GOKb data->local KB Open

  • Approach

    • set up new open source project in K-Int gitlab
    • new micronaut service required (not using okapi or grails)
    • set up a test instance
    • will need a different dev workflow (probably using local copy of service)
    • working title: pushkb
    • avoid storing caches of transient data
  • Components and Changes

    • Frontend: na

    • Backend: new

  • Tests / Data / Dependencies

    • Align to when GBV start testing and using pushkb endpoint
    • ERM-3048 Possible package schema changes  with endpoint changes
  • Known Unknowns

    • should be (but not clear yet) about TitleInstance Resolver
    • packageSchemaUpdater: potential conflicts when there are multiple copies of schemas in play where backwards compatibility is broken
  • QA: snapshot | local | testing | other

  • Release Target:  Quesnalia
  • Development Estimate


  • Current State
    • pushKb can make a scheduled call (1s, 1h) to Gokb
    • will fetch roughly ~700k TIPPS 
    • Stores these in a local postgres db
    • proteus json transform implemented with proof of concept schema
  • TODO
    • scaling
    • extensive transformation testing
    • write fetch chunks and push to FOLIO,
      • implementing algorithm to ensure no data gaps 
      • deciding what to do with the data volume (700k feels beyond FOLIO's performance capability)
      • at a minimum: need to move the FOLIO side to being not an open http request per chunk (would be killed by  okapi), by, eg, 
        • small batch sizes? would take full day for initial ingest
        • speeding up FOLIO? (not clear how this could be done)
        • move pushKb to background thread (like jobs, but on a much smaller scale)? 
  • Constraints
    • want to avoid jobs being badly interrupted by a docker container being restarted
    • tradeoff is that we have a slower but more stable process 
  • Development Estimate


Sprint 183

  • Current State
    • modelling in place for setting up destinations, and links to
    • improved bootstrapping
    • working on algorithm to extend source record handling from single to process queue of source records without gaps and error handling
  • TODO
    • scaling
    • extensive transformation testing
    • write fetch chunks and push to FOLIO,
      • implementing algorithm to ensure no data gaps 
      • deciding what to do with the data volume (700k feels beyond FOLIO's performance capability)
      • at a minimum: need to move the FOLIO side to being not an open http request per chunk (would be killed by  okapi), by, eg, 
        • small batch sizes? would take full day for initial ingest
        • speeding up FOLIO? (not clear how this could be done)
        • move pushKb to background thread (like jobs, but on a much smaller scale)? 
      • set up api rather than write straight to db
    • scheduling
    • cleanup
    • then: devops work to make releaseable
    • then: reciprocal changes to mod-agreements
  • Constraints
    • want to avoid jobs being badly interrupted by a docker container being restarted
    • tradeoff is that we have a slower but more stable process 
  • Development Estimate (to minimum): 
    • Functional: end of Sprint 184
    • Agreements Work: 
    • DevOps: need input from Steve and/or Ian (from start of Sprint 185)
  • Release:
    • Quesnalia - balance pushKb with mod-agreements interop
  • Unknown:
    • can we use snapshot to test this>?

ERM-2981 - Standardise use of external url validator library across ERM apps Closed

(tick)

Tech Debt

  • Approach

  • Components and Changes

    • Frontend: stripes-erm-components

  • Tests / Data / Dependencies

  • Known Unknowns

  • QA: snapshot | local | testing | other

  • Release Target: Quesnelia 
  • Development Estimate: <2d


ERM-3041 - Dashboard: the "unsaved changes" confirmation modal is missing Closed

Change in the way that form

  • Approach

  • Components and Changes
    • Frontend: stripes-erm-components

  • Tests / Data / Dependencies

    • new unit test to set up form and presents close as expected
  • Known Unknowns: NA
  • QA: snapshot 

  • Release Target: Quesnelia 
  • Development Estimate: <2d


ERM-3048 - Add a package property to store remote source current title count Closed

  • Triage

    • needs some investigation work
    • priority is for GOKb
  • Approach
  • Components and Changes

  • Known Unknowns

    • how do we want to track (count) the external (remote) counts?
    • where do we want to populate from in other cases?
  • QA: snapshot | local | testing | other

  • Release Target: 
  • Development Estimate


ERM-3132 - Jobs stuck "Queued" due to java.lang.IllegalStateException Closed

  • Triage

    • is this the kind of issue that pr707 is meant to have fixed?
    • review log file against pr707 zombie job
    • check that jobs are not stuck, just queued?
  • Approach: subject to investigation findings
  • Components and Changes

    • Frontend

    • Backend

  • Tests / Data / Dependencies

  • Known Unknowns

    • check with GBV if restarting mod-agreements is viable workaround
  • QA: snapshot | local | testing | other

  • Release Target: Quesnalia 
    • not expecting to backport, as restart may be viable workaround
  • Development Estimate


Tests

(minus) Cypress test development stalled pending implementation of STCOR-484 - implement client-side handling of refresh tokens Closed

Issue ID

Sprint Backlog?

Notes / Estimates / Actions





Release Tasks (
Non-Flower Release)

Issue ID

Sprint Backlog?

Notes / Estimates / Actions




Release Tasks (Orchid CSP)

Issue ID

Sprint Backlog?

Notes / Estimates / Actions

NA

Release Tasks (Poppy Bug Fix)

Issue ID

Sprint Backlog?

Notes / Estimates / Actions

NA



Maintenance

Issue ID

Sprint Backlog?

Notes / Estimates / Actions

NA




Changes

(plus) Added

(minus) Removed: note whether rescheduled or deferred

Feature ID

Issue ID

Change

Notes


Add column select functionality to selected MCL cases

(question)

Example: ui-orders

Approach: 

  1. investigate whether native stripes component integrates cleanly and easily with ERM applications
  2. apply stripes or bespoke component to selected MCLs






Sprint Summary

ERM


Key Summary T Assignee Status Components

Dashboard

Key Summary T Assignee Status Components

Other

Key Summary T Assignee Status Components Labels
UIIN-2887 Release v10.0.15 (Poppy CSP#5 2023 R2) Task Oleksandr Hladchenko Closed epam-folijet, non-testable, ui-only
UIIN-2886 ECS: Use useTenantKy instead of useOkapiKy for Poppy Bug Mariia Aloshyna Closed ecs, epam-folijet, poppy-patch-requested, possible-poppy-patch, ui-only
UIIN-2865 Local Resource type does not allow adding holdings to shared instance on member tenant Bug Unassigned Closed ecs, epam-folijet
UIIN-2860 ECS: Include mod-search permissions to "Inventory: Module is enabled" UI permission (Poppy CSP) Bug Mariia Aloshyna Closed ecs, epam-folijet, poppy-patch-approved, poppy-patch-requested, possible-poppy-patch
UIIN-2855 Update Permission name for Inventory: Set records for deletion and staff suppress Story Mariia Aloshyna Closed epam-folijet
UIIN-2787 Inventory UI creates electronic access array objects with empty string for identifier ID Bug Oleksandr Hladchenko Closed epam-folijet, known-issue-poppy
UIIN-2780 ECS - Member consortial accordion is not displaying when a user has affiliations but does not have permission to view holdings (Poppy CSP) Bug Mariia Aloshyna Closed ecs, epam-folijet, folijet-demo-186-187, inventory, poppy-patch-approved, poppy-patch-requested
UIDATIMP-1642 Release v7.1.8 (Quesnelia Bugfix R1 2024) Task Oleksandr Hladchenko Closed epam-folijet, non-testable, ui-only
UIDATIMP-1641 Changes made during duplication of "Default - Create SRS MARC Authority" job profile are not saved and affect original job profile (Poppy CSP) Bug Mariia Aloshyna Closed bugfest_R1.2024, epam-folijet, poppy-patch-approved, poppy-patch-requested, possible-poppy-patch
UIDATIMP-1640 "Something went wrong" error message after trying to view all logs in Data Import Bug Oleksandr Hladchenko Closed data-import-uat, di-functional-bug, epam-folijet, folijet-refinement
UIDATIMP-1638 Release v7.0.7 (Poppy CSP#5) Task Oleksandr Hladchenko Closed epam-folijet, non-testable, ui-only
UIDATIMP-1637 Changes made during duplication of a job with a match profile are not saved (Poppy CSP) Bug Mariia Aloshyna Closed data-import-uat, di-functional-bug, epam-folijet, poppy-patch-approved, poppy-patch-requested, possible-poppy-patch
UIDATIMP-1636 Release v7.1.7 (Quesnelia Bugfix R1 2024) Task Oleksandr Hladchenko Closed epam-folijet, non-testable, ui-only
UIDATIMP-1633 Changes made during duplication of a job with a match profile are not saved (Quesnelia clone) Bug Mariia Aloshyna Closed data-import-uat, di-functional-bug, epam-folijet
UIDATIMP-1631 Release v7.1.6 (Quesnelia Bugfix R1 2024) Task Oleksandr Hladchenko Closed epam-folijet, non-testable, ui-only
UIDATIMP-1629 Release v7.0.6 (Poppy CSP#5 2023 R2) Task Mariia Aloshyna Closed epam-folijet, non-testable, ui-only
UIDATIMP-1628 Release v7.1.5 (Quesnelia Bugfix R1 2024) Task Mariia Aloshyna Closed epam-folijet, non-testable, ui-only
UIDATIMP-1627 Update Order mapping rules to allow Material Type mapping when Purchase Order Status set to 'Open' (Quesnelia clone) Story Mariia Aloshyna Closed epam-folijet
UIDATIMP-1626 Update Order mapping rules to allow Material Type mapping when Purchase Order Status set to 'Open' (Poppy CSP) Story Mariia Aloshyna Closed epam-folijet, poppy-patch-approved, poppy-patch-requested, possible-poppy-patch
UIDATIMP-1624 SPIKE: Investigate the reason why two requests are sending during pagination on View logs page Task Oleksandr Hladchenko Closed data-import, epam-folijet, non-testable
Showing 20 out of 75 issues Refresh

No Label

Key Summary T Assignee Status Components
FAT-13134 Review of C466278 Task Ryan Taylor Closed

Related content