Repository navigation
Add more documentation - #1629
Merged
Merged
Conversation
swissiety
force-pushed
the
improve_documentation
branch
from
June 17, 2026 15:40
b50c5e7 to
a333ad2
Compare
swissiety
force-pushed
the
improve_documentation
branch
from
June 17, 2026 15:42
a333ad2 to
0d7c38c
Compare
SootUp ships JimpleIDESolver/DefaultJimpleIDETabulationProblem but had no IDE test, example or docs; write_analyses.md pointed at examples that don't exist. New docs/analysis-typestate.md walks through configuring Heros step by step: zero fact, seeds, meet lattice, 4 flow functions, 4 edge functions, ICFG, solve. Backed by sootup.examples/.../typestate, so snippets are compiled and CI-gated. Ported from API_ASSIST IsolatedTypeStateAnalysis, simplified: dropped listener/ history-tree machinery; edge functions rewritten as a finite transfer table instead of mutate-and-trigger composeWith, so composition is pure and equalTo is decidable (terminates in loops). Gotcha documented: seed zero fact carries lattice bottom, not top, so generating edge functions must be constant. Also: glossary entries for IFDS/IDE vocabulary, nav entry, gitignore negation for sootup.examples test binaries.
*.class is gitignored repo-wide; sootup.examples had no negation, so these were never committed. LiveVariableAnalysisTest and ConstantPropagationTest load these dirs via PathBasedAnalysisInputLocation and fail on a fresh clone.
…mple # Conflicts: # mkdocs.yml
Address review of #1369: - docs/taint-analysis-example.md no longer copies code; every Java block is included from TaintAnalysisTest.java via named `--8<--` sections, so the tutorial always shows compiled and tested code. check_paths fails the docs build if a section goes missing. - Use pymdownx.snippets (already enabled, shipped with mkdocs-material) instead of the codeinclude plugin, which the docs CI does not install. - Remove CodeBlockExtractor and the sync-examples workflow (out of scope). - Update TaintAnalysisTest to the current SootUp API, propagate taint through call sites with a return value (b = id(a)) and assert the expected leak / no-leak verdict per scenario instead of swallowing all results. - Split the tutorial into small sections, each with an explanation; fix the dependency snippet.
Closed
Moves the tutorial next to the other analysis examples under "How to.." and keeps base_path/check_paths while adding dedent_subsections.
- Manage commons-cli in the parent pom again; develop dropped it together with the qilin CLI, but the tool setup example still uses it. - SootUpConfiguration: identifier factories are no longer singletons and signature constructors are not public anymore. Build the entry point signature from the view's IdentifierFactory after the view is created and include that step in tool_setup.md. - write_analyses.md: link the new taint analysis tutorial as the IFDS example. - Reformat TypestateEdgeFunction with develop's formatter.
Contributor
|
Documentation was updated: Preview Modified
... and 16 more files not shown Javadoc was updated |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #1629 +/- ##
=============================================
- Coverage 72.64% 72.59% -0.05%
Complexity 238 238
=============================================
Files 488 488
Lines 20820 20820
Branches 3400 3400
=============================================
- Hits 15124 15115 -9
- Misses 4385 4390 +5
- Partials 1311 1315 +4
🚀 New features to boost your workflow:
|
swissiety
marked this pull request as ready for review
September 24, 2026 14:38
swissiety
enabled auto-merge
September 24, 2026 14:40
JonasKlauke
approved these changes
Sep 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds analysis examples and how to start a shareable analysis tool.