Comments (2)
Just to be clear, the way our scanner and NullAway output work are that as long as they get passed:
- The same source code
- The same config XML
Then the resulting TSV files should always be the same. Correct? (i.e. it's not reading any cross-build state from our annotator temporary directories).
If so, then a solution is to make sure those TSV files are output to whatever the output directory of the build system is (e.g. $OUT
for the target in buck), which will cause the build cache to also cache those files, so they will be there when the target is rebuilt.
This needs some tighter integration with the build system and yet another path being passed per-target by some coordinator script, so I think we are better off with the UUID approach for now, but it's worth keeping in mind that we could do this by leveraging the cache, rather than invalidating it, and it might make the tool faster. How much faster depends on how often the annotator requests the exact same (source, config) pair to be built 🙂
from nullawayannotator.
Yes sure, that makes sense. Also the other concern that I have is that, let's assume that annotator is working on n
modules to analyze downstream dependencies and for any reason the user stop the process or it end with an exception that does not let the tool to clear all the generated files (including config files). Now the only way to properly restart the process is to manually delete those files on n
modules which I think the approach you mentioned should also cover that (not sure yet). I wasn't aware that we can also cache custom generated outputs and it is really interesting. We can definitely work on that and improve it 🙂.
from nullawayannotator.
Related Issues (20)
- Modify injector architecture
- Wrong uri in MethodDeclarationTree nodes
- Add informative comment on @NullUnmarked injections
- Update distribution for all CI jobs
- Remove redundant conflicts from Lombok generated code.
- Injector misses enums constants while other anonymous classes exists HOT 2
- Parallel processing mode misses impacted region for initialization error. HOT 1
- Redesign test architecture HOT 3
- Update Scanner serialization control flags.
- Use @NullUnmarked in JSpecify in released version 0.3.0 for unit tests
- NPE crash on auto-annotator v1.3.6 in the presence of Lombok generated constructor HOT 5
- Annotator is unaware of annotations copied by Lombok in Strict Mode
- Use `@Contract` instead of `@NullUnmarked` HOT 3
- Collect and print stdout output from command that builds downstream dependencies HOT 1
- Crash by Precondition - Missing triggered fixes from downstream HOT 1
- Wrong serialization of @NotNull formal parameters with type use annotation
- Add Upper bound for type variable in Factory used in Library Model Loader
- Record declaration not recognized by Injector
- `Could not find class of type: Top-Level` for a record HOT 2
- `com.github.javaparser.ParseProblemException` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nullawayannotator.