Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade rdf-toolkit and Java #373

Closed
14 tasks done
b0bkaT opened this issue Apr 29, 2022 · 10 comments · Fixed by #398
Closed
14 tasks done

Upgrade rdf-toolkit and Java #373

b0bkaT opened this issue Apr 29, 2022 · 10 comments · Fixed by #398

Comments

@b0bkaT
Copy link
Contributor

b0bkaT commented Apr 29, 2022

Background

Requirements

Requirement 1

The CI currently uses rdf-toolkit version 1.8, but version 1.10 is available. UCO should upgrade rdf-toolkit to version 1.10 and in turn upgrade to at least Java 11 (minimum requirement for using rdf-toolkit 1.10).

Risk / Benefit analysis

Benefits

UCO's CI will be utilizing the latest version of rdf-toolkit. Additionally, JRE 8 is end-of-life.

Risks

  • Java 11 does not work on prior rdf-toolkit versions.
  • All of UCO's and CASE resources that use rdf-toolkit currently inherit CASE's original adoption of rdf-toolkit. Hence, they currently require Java 8. So, this will have downstream effects - those repositories, and any adopters who followed the same practice, will need to rework their environments to include Java >= 11.
  • According to various sources: the end-of-life for Java 11 is Sept. 30, 2023. So, this puts UCO in another near-EOL situation. Testing should be done to review rdf-toolkit compatibility with Javas > 11.

Competencies demonstrated

Competency 1

N/A

Solution suggestion

  • Upgrade Java from v8 to v11 in CI workflow.
  • Pin version 1.11.0 of rdf-toolkit using current lib/Makefile and recorded SHA2-512 hash.
  • Revise all references to rdf-toolkit within CASE to use UCO as imported as a submodule. This is an expansion of responsibility of a UCO issue, creeping into CASE, but is seen as necessary to keep a shared technology synchronized.
  • The solution is implemented for UCO in PR 398.
  • The solution is implemented for CASE in PR 90.

Coordination

  • Tracking in Jira ticket OC-235
  • Administrative review to be completed
  • Requirements to be discussed in Ontology Committee (OC) meeting, 2022-05-05
  • Requirements Review vote occurred, passing, on 2022-05-17
  • Requirements development phase completed.
  • Solution announced to OCs on 2022-05-28
  • Solutions Approval to be discussed in OC meeting, 2022-06-02
  • Solutions Approval vote occurred, passing, on 2022-06-13
  • Solutions development phase completed.
  • Implementation for UCO merged into develop
  • Implementation for CASE merged into develop
  • Milestone linked in UCO
  • Milestone linked in CASE
  • Documentation logged in pending release page for UCO
  • Documentation logged in pending release page for CASE
@ajnelson-nist
Copy link
Contributor

Some discussion is happening w.r.t. risks. A comment will come when that's done being updated.

@ajnelson-nist
Copy link
Contributor

Risks have been updated.

@ajnelson-nist
Copy link
Contributor

Requirement 1 was revised to say we should upgrade to at least Java 11, not necessarily exactly Java 11.

ajnelson-nist added a commit that referenced this issue May 23, 2022
The repository version noted in this commit does not currently catch
subdirectories' Turtle files, so a follow-on patch will update the
repository pointer.

References:
* #373
ajnelson-nist added a commit that referenced this issue May 26, 2022
ajnelson-nist added a commit that referenced this issue May 28, 2022
The version of rdf-toolkit run by the pre-commit hook now handles an RDF
list differently than the prior version of rdf-toolkit.

This commit is a mechanically-produced result.

References:
* #373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
@ajnelson-nist
Copy link
Contributor

The solution is posted, and interestingly pre-commit caught a normalization update that observable.ttl needed.

ajnelson-nist added a commit to casework/CASE-Implementation-PROV-O that referenced this issue May 31, 2022
* ucoProject/UCO#373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/CASE-Examples that referenced this issue May 31, 2022
References:
* ucoProject/UCO#373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit that referenced this issue Jun 1, 2022
References:
* #373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
@ajnelson-nist ajnelson-nist linked a pull request Jun 1, 2022 that will close this issue
7 tasks
@ajnelson-nist
Copy link
Contributor

The initial solution's scope has been narrowed on encountering an issue with rdf-toolkit that, when called via pre-commit', prevented git commit from working. Documentation is on CASE-Examples PR 75. The Makefile strategy is no longer being replaced with pre-commit.

ajnelson-nist added a commit that referenced this issue Jun 1, 2022
The version of rdf-toolkit run by the pre-commit hook now handles an RDF
list differently than the prior version of rdf-toolkit.

This commit is a mechanically-produced result.

References:
* #373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
(cherry picked from commit ab0aff8)
@ajnelson-nist
Copy link
Contributor

Something the CASE OC should address is whether the CASE retrieval of rdf-toolkit.jar should be erased, and instead solely rely on UCO's implementation. The logistical trades are:

  1. Less code to manage - there would only be one normalization resource for both CASE and UCO, UCO's copy of rdf-toolkit.jar.
  2. More Git submoduling - Any codebase normalizing Turtle and wanting to use CASE's normalization procedure would need to initialize CASE's submodule of UCO in order to retrieve rdf-toolkit.jar, which is a cost of another ~60MB network traffic per fresh clone. In terms of current make recipes, this can be done with 0 code impact to code bases that currently use CASE's retrieval of rdf-toolkit.jar. (CASE's .lib.done.log Makefile target can be reduced to running UCO's .lib.done.log target.)

ajnelson-nist added a commit that referenced this issue Jun 2, 2022
This prevents a potential build failure scenario where rdf-toolkit
issues a release and suddenly all CI pinned to 1.11.0's SHA-512 fails.

References:
* #373

Reported-by: Paul Brandt <paul@brandt.name>
Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit that referenced this issue Jun 2, 2022
References:
* #373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
@ajnelson-nist ajnelson-nist added this to the UCO 0.9.0 milestone Jun 2, 2022
ajnelson-nist added a commit to casework/CASE that referenced this issue Jun 2, 2022
This patch removes all handling of rdf-toolkit.jar from the CASE
ontology repository.  UCO had adopted CASE's rdf-toolkit retrieval in
version 0.7.0, and now UCO Issue 373 will be upgrading the retrieval
process.

This patch handles delegation of rdf-toolkit provisioning.  A follow-on
patch will handle the rdf-toolkit and Java upgrade that is the focus of
UCO Issue 373.

References:
* ucoProject/UCO#373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit that referenced this issue Jun 2, 2022
References:
* #373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
(cherry picked from commit 844b59c)
ajnelson-nist added a commit that referenced this issue Jun 2, 2022
The version of rdf-toolkit run by the pre-commit hook now handles an RDF
list differently than the prior version of rdf-toolkit.

This commit is a mechanically-produced result.

References:
* #373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
(cherry picked from commit ab0aff8)
(cherry picked from commit a77e4e9)
ajnelson-nist added a commit that referenced this issue Jun 2, 2022
This prevents a potential build failure scenario where rdf-toolkit
issues a release and suddenly all CI pinned to 1.11.0's SHA-512 fails.

References:
* #373

Reported-by: Paul Brandt <paul@brandt.name>
Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
(cherry picked from commit b6f1ce0)
ajnelson-nist added a commit that referenced this issue Jun 2, 2022
References:
* #373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
(cherry picked from commit e04a980)
@ajnelson-nist ajnelson-nist removed a link to a pull request Jun 2, 2022
7 tasks
@ajnelson-nist ajnelson-nist linked a pull request Jun 2, 2022 that will close this issue
7 tasks
ajnelson-nist added a commit to casework/CASE that referenced this issue Jun 2, 2022
Revisions to the Java setup match UCO commit `efce5c1`.

References:
* ucoProject/UCO@efce5c1
* ucoProject/UCO#373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/CASE that referenced this issue Jun 2, 2022
Revisions to the Java setup match UCO commit `efce5c1`.

References:
* ucoProject/UCO@efce5c1
* ucoProject/UCO#373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
@ajnelson-nist
Copy link
Contributor

On starting testing-review of the implementation, I realized CASE would fall out of sync in Java support if it was not upgraded as part of this ticket. Due to needing to synchronize dependency of a core maintenance technology (a programming language version), this UCO issue now spans its implementation responsibility downstream into CASE.

If this is a significant concern before opening for a Solutions Approval vote, please provide feedback.

@plbt5
Copy link
Contributor

plbt5 commented Jun 3, 2022

@ajnelson-nist : I didn't pay sufficient attention, and assumed that this applied to both UCO and CASE. I wouldn't call the Java and toolkit upgrade a significant concern for CASE, but we need to appropriately communicate this to the CASE community. So unless the CASE community was already informed simultaneously with UCO, I'd suggest to distribute this to the CASE community as a CASE vote for next CD-OC.

@ajnelson-nist
Copy link
Contributor

@plbt5 - this was announced to the CASE and UCO Ontology Committees simultaneously.

ajnelson-nist added a commit to casework/CASE-Examples that referenced this issue Jun 7, 2022
No effects were observed on Make-managed files.

References:
* ucoProject/UCO#373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Jun 7, 2022
A follow-on patch will regenerate Make-managed files.

References:
* ucoProject/UCO#373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Jun 7, 2022
References:
* ucoProject/UCO#373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Jun 7, 2022
References:
* ucoProject/UCO#373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Jun 8, 2022
References:
* ucoProject/UCO#373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
@ajnelson-nist
Copy link
Contributor

PR 398 has had its review checklist completed.

ajnelson-nist added a commit to ajnelson-nist/CASE-Examples-QC that referenced this issue Jun 14, 2022
ajnelson-nist added a commit to casework/CASE-Examples that referenced this issue Jun 14, 2022
No changes were observed in Make-managed files.

References:
* [ONT-465] typo in ttl file
* ucoProject/UCO#373
* ucoProject/UCO#380

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/CASE-Examples that referenced this issue Jun 14, 2022
No changes were observed in Make-managed files.

References:
* [ONT-465] typo in ttl file
* ucoProject/UCO#373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Jun 14, 2022
A follow-on patch will regenerate Make-managed files.

References:
* [ONT-465] typo in ttl file
* ucoProject/UCO#373
* ucoProject/UCO#380

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Jun 14, 2022
References:
* [ONT-465] typo in ttl file
* ucoProject/UCO#373
* ucoProject/UCO#380

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/casework.github.io that referenced this issue Jun 14, 2022
No changes were observed in Make-managed files.

References:
* [ONT-465] typo in ttl file
* ucoProject/UCO#373

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
ajnelson-nist added a commit to casework/CASE-Utility-SHACL-Inheritance-Reviewer that referenced this issue Jul 30, 2022
This patch incorporates all changes UCO adopted for resolution of its
Issue 373.

References:
ucoProject/UCO#373
Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants