[FOLIO-3376] Platform builds broken: Incompatible version for module folio_requests-7.0.100000386 interface circulation - Need 12.0 have 11.0 Created: 30/Dec/21  Updated: 10/Jan/22  Resolved: 05/Jan/22

Status: Closed
Project: FOLIO
Components: None
Affects versions: None
Fix versions: None

Type: Bug Priority: P1
Reporter: David Crossley Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original estimate: Not Specified

Issue links:
Cloners
is cloned by CIRC-1407 Platform builds broken: Incompatible ... Closed
is cloned by UIREQ-708 Platform builds broken: Incompatible ... Closed
is cloned by UIU-2495 Platform builds broken: Incompatible ... Closed
is cloned by CIRC-1408 Update request-storage-batch version ... Closed
Sprint: DevOps Sprint 131
Development Team: None

 Description   

The hourly build-platform-complete-snapshot builds are broken. For example 6234 (15:19 UTC) and the previous run and every hour since. These have been reported automatically to the #hosted-reference-envs Slack channel. No-one has attended to it during the European or USA day, so i have disabled today's daily reference environment builds to prevent tearing down the current refenvs.

Incompatible version for module folio_requests-7.0.100000386 interface circulation. Need 12.0. Have 11.0/mod-circulation-22.2.0-SNAPSHOT.918

https://github.com/folio-org/ui-requests/pull/802
merged at 14:06 UTC - Vega and Spitfire

https://github.com/folio-org/mod-circulation/pull/1022
merged at 14:47 UTC - Vega

Attention: Alexander Kurash and Stanislau Snapok and Mykyta Varenyk
(I chose these people as the merge committers. Please redirect to appropriate people.)

Update 2022-01-03: I re-enabled the reference environment builds. The folio-snapshot build should succeed – however it will still be using the old install.json set of dependencies, as the build-platform-complete-snapshot is still broken. The folio-testing will have failure due to the "Incompatible version" error and various "Missing dependency" errors.
Update 2: See today's folio-testing-backend/1206 and search for those. Note that the hourly platform build-platform-complete-snapshot is still broken.



 Comments   
Comment by Zak Burke [ 03/Jan/22 ]

David Crossley, I don't see any "Missing dependency" errors in the latest build-platform-complete-snapshot log, only "Incompatible version for module" from ui-requests and mod-ncip, which both depend exclusively on circulation 12.0. The specific error message is

Incompatible version for module folio_requests-7.0.100000386 interface circulation. Need 12.0. Have 11.0/mod-circulation-22.2.0-SNAPSHOT.918. Incompatible version for module mod-ncip-1.10.1-SNAPSHOT.48 interface circulation. Need 12.0. Have 11.0/mod-circulation-22.2.0-SNAPSHOT.918

but #918 is not the latest build of mod-circulation; the latest build is #919, which corresponds to PR 1022 when the interface was bumped to 12. This implies to me that something else is holding the mod-circulation version back. Is there an easy way to see the interface hierarchy created by backend modules? The problem doesn't appear to be with UI interface deps:

$ cd node_modules/@folio
platform-complete/node_modules/@folio(snapshot)*
$ grep -r '"circulation"' ./*/package.json
./checkin/package.json:      "circulation": "9.0 10.0 11.0 12.0",
./checkout/package.json:      "circulation": "9.0 10.0 11.0 12.0",
./circulation/package.json:      "circulation": "9.0 10.0 11.0 12.0",
./inventory/package.json:      "circulation": "9.0 10.0 11.0 12.0",
./plugin-create-inventory-records/package.json:      "circulation": "9.0 10.0 11.0 12.0"
./receiving/package.json:      "circulation": "9.5 10.0 11.0 12.0",
./requests/package.json:      "circulation": "12.0",
./users/package.json:      "circulation": "9.0 10.0 11.0 12.0",
Comment by David Crossley [ 03/Jan/22 ]

Sorry for confusing. My "Update" message referred to re-enabling the folio-snapshot and folio-testing builds. I will amend it to further emphasise.

Comment by David Crossley [ 03/Jan/22 ]

Zak said:
> Is there an easy way to see the interface hierarchy created by backend modules?

I do wish so, but i gather not.

After a system is build, then we could use the Graphviz/dot ability (see a note to a thread in FOLIO Slack #sysops 2021-09-17).

Oh, and this may also help:
https://dev.folio.org/tutorials/folio-vm/04-local-development/#module-dependency-graph

 

Comment by Zak Burke [ 03/Jan/22 ]

Thanks, David Crossley, that additional info is helpful. https://folio-snapshot-okapi.dev.folio.org/_/proxy/tenants/diku/modules?full=true shows the modules installed for the tenant diku. A bit of munging that response turns up the following list of back-end modules with deps on the circulation interface, all of which support 12.0 on their main-line branches:

"id" : "edge-patron-4.7.0-SNAPSHOT.75",
"id" : "edge-sip2-2.2.0-SNAPSHOT.59",
"id" : "mod-inn-reach-1.1.0-SNAPSHOT.156",
"id" : "mod-ncip-1.10.1-SNAPSHOT.46",
"id" : "mod-orders-12.3.0-SNAPSHOT.503",
"id" : "mod-patron-5.1.0-SNAPSHOT.86",
"id" : "mod-remote-storage-1.5.0-SNAPSHOT.146",

Likewise, in folio-testing-backend build-log #1206 referenced in the description, every module expresses support for 12.0. IOW, it looks to me like all the right pieces are in place to accept mod-circulation build 919, but publishing that build to okapi is in fact the very first failure in that build log, and it's just a cascade of failures after that.

failed: [10.36.1.20] (item=[35, {'id': 'mod-circulation-22.2.0-SNAPSHOT.919', 'name': 'Circulation Module', 'requires':
...
"msg": "Status code was 400 and not [201]: HTTP Error 400: Bad Request", 
"redirected": false, 
"status": 400, 
"url": "http://10.36.1.20:9130/_/proxy/modules", 
"vary": "origin"

Is anybody else able to assess/decipher why publishing mod-circulation #919 is failing?

Comment by John Malconian [ 03/Jan/22 ]

Here is the list of dependency issues impacting folio-testing build:

03:17:45 [066318/proxy] [supertenant] [] [] INFO  ProxyContext         066318/proxy RES 400 8872us okapi Incompatible version for module mod-circulation-22.2.0-SNAPSHOT.919 interface request-storage. Need 3.4. Have 4.0/mod-circulation-storage-13.2.0-SNAPSHOT.296
03:17:46 [274432/proxy] [supertenant] [] [] INFO  ProxyContext         274432/proxy RES 400 5001us okapi Missing dependency: mod-patron-5.1.0-SNAPSHOT.87 requires circulation: 12.0
03:17:46 [710674/proxy] [supertenant] [] [] INFO  ProxyContext         710674/proxy RES 400 9059us okapi Missing dependency: mod-inn-reach-1.1.0-SNAPSHOT.158 requires patron: 4.3
03:17:49 [516714/proxy] [supertenant] [] [] INFO  ProxyContext         516714/proxy RES 400 10635us okapi Missing dependency: mod-ncip-1.10.1-SNAPSHOT.48 requires circulation: 12.0
03:17:49 [432409/proxy] [supertenant] [] [] INFO  ProxyContext         432409/proxy RES 400 3690us okapi Missing dependency: edge-ncip-1.7.0-SNAPSHOT.19 requires ncip: 1.0
03:17:52 [711008/proxy] [supertenant] [] []FO  ProxyContext         711008/proxy RES 400 7787us okapi Missing dependency: mod-orders-12.3.0-SNAPSHOT.504 requires circulation: 10.0 11.0 12.0
03:17:54 [909928/proxy] [supertenant] [] [] INFO  ProxyContext         909928/proxy RES 400 7267us okapi Missing dependency: mod-invoice-5.3.0-SNAPSHOT.280 requires order-lines: 3.0
03:17:54 [098662/proxy] [supertenant] [] [] INFO  ProxyContext         098662/proxy RES 400 5061us okapi Missing dependency: mod-ebsconet-1.2.0-SNAPSHOT.38 requires orders: 12.0
03:17:54 [978486/proxy] [supertenant] [] [] INFO  ProxyContext         978486/proxy RES 400 8034us okapi Missing dependency: mod-remote-storage-1.5.0-SNAPSHOT.147 requires circulation: 10.0 11.0 12.0
03:17:56 [270599/proxy] [supertenant] [] [] INFO  ProxyContext         270599/proxy RES 400 5769us okapi Missing dependency: mod-eusage-reports-1.1.0-SNAPSHOT.148 requires order-lines: 2.0 3.0
Comment by John Malconian [ 03/Jan/22 ]

Here's what's going on in the folio-testing build: mod-circulation-storage is enabled prior to mod-circulation. The latest snapshot version provides version 4.0 of the request-storage interface. However, the latest snapshot version of mod-circulation requires version 3.4 of the request-storage interface.

Comment by Zak Burke [ 03/Jan/22 ]

Aha, thanks John Malconian. IIUC, the implication of line 1 above is that mod-circulation-storage PR #318 bumped request-storage from 3.4 to 4.0 but there were no corresponding PRs updating other repos for compatibility with this new major version. IOW, mod-circulation PR #1022 should have included a change to request-storage support to 3.4 4.0 or 4.0, and ditto for all the other UXPROD-3330 Closed PRs in repos that express a dep on request-storage, which means PRs for the following:

Is that correct?

CC: Mykyta Varenyk

Comment by Zak Burke [ 03/Jan/22 ]

p.s. Mykyta Varenyk can you please explain why the request-storage interface was bumped from 3.0 to 4.0 given there were no changes to the its API in PR #318?

Comment by Mykyta Varenyk [ 04/Jan/22 ]

Zak Burke the reason for the interface version update is the change of the request entity structure.

Comment by Alexander Kurash [ 04/Jan/22 ]

Zak Burke There are changes in ramls/request.json - request JSON structure was changed as described in this doc https://folio-org.atlassian.net/wiki/display/DD/TLR+-+data+migration

Comment by David Crossley [ 05/Jan/22 ]

Today's daily builds of folio-snapshot and folio-snapshot-load are successful.

Closed.

 

Generated at Thu Feb 08 23:27:38 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d.