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

Detect missing procedure at build time #33

Closed
neo-technology-build-agent opened this issue Sep 1, 2022 · 2 comments
Closed

Detect missing procedure at build time #33

neo-technology-build-agent opened this issue Sep 1, 2022 · 2 comments

Comments

@neo-technology-build-agent
Copy link
Collaborator

Issue by fbiville
Thursday Jun 24, 2021 at 14:26 GMT
Originally opened as neo4j-contrib/neo4j-apoc-procedures#2033


Problem

Several releases of APOC have been missing procedures/functions.

The last incident of this kind happened because of an issue with the scope of Guava: it was available in tests,, thus passing CI but was not included in the production core/full JARs, resulting in loading errors for some procedures/functions.

Proposed Solution

Given all APOC procedures and functions are available from APOC sources, we can define a compile-time annotation processor to list and dump these to a flat file.
We can then introduce a new testing module, configured like a regular APOC customer project, with a Docker container configured with APOC. Based on that setup, we can detect any discrepancy between the available procedure/extension from sources and the ones actually available at runtime.

This might be implemented two phases, as standing up a Neo4j containers with all the extra dependencies required by APOC full might be tricky. We can at least start with APOC core and then extend the logic to full.

@hvub
Copy link
Collaborator

hvub commented Nov 18, 2024

Has this symptom of missing procedures/functions be seen again since the APOC core/extended split (approximate two years ago)? Or conversely, when was the last time it happened?

@hvub hvub added Processed and removed Processed labels Nov 25, 2024
@gem-neo4j
Copy link
Contributor

gem-neo4j commented Dec 3, 2024

There is a test that has been added since then that checks this (one in both core and extended) :) see StartupTest.java

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants