bgraph

BGraph is a tool designed to generate dependencies graphs from Android.bp soong files.

https://github.com/quarkslab/bgraph

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.6%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

BGraph is a tool designed to generate dependencies graphs from Android.bp soong files.

Basic Info
Statistics
  • Stars: 16
  • Watchers: 5
  • Forks: 7
  • Open Issues: 3
  • Releases: 0
Created almost 5 years ago · Last pushed almost 4 years ago
Metadata Files
Readme Contributing License Citation Roadmap

README.md

BGraph

BGraph is a tool designed to generate dependencies graphs from Android.bp soong files.

Overview

BGraph (for Build-Graphs) is a project aimed at create build graphs from blueprints in AOSP and querying those graphs.

In short, this project builds/uses Unified Dependency Graph for the Android Open Source Project by parsing and linking modules defined in the Android build system Soong.

Use-cases

You should use this tool if you want to find:

  • all the dependencies of a source file in AOSP;
  • all the sources involved in the building of a target in AOSP;
  • common dependencies between two targets.

Usage

```bash % bgraph --help
Usage: bgraph [OPTIONS] COMMAND [ARGS]...

BGraph - generate and query build dependency graphes.

BGraph is used to manipulate build dependency graphs generated from blueprint files. The main commands are:

  - generate : used to generates multiples graphs

  - query: used to query a previously generated graph

To get more help, see the online documentation.

Options: -v, --verbose Activate verbose output [default: False] --install-completion Install completion for the current shell. --show-completion Show completion for the current shell, to copy it or customize the installation.

--help Show this message and exit.

Commands: generate Generate BGraph's from a mirror dir. generate-single Generate a BGraph from a branch. list List the BGraph already generated. query Query a BGraph. ```

Installation

Using poetry

bash poetry install bgraph

Using pip

bash pip install bgraph

Using docker

bash docker build -f docker/Dockerfile -t bgraph .

This will create a container with git, repo and bgraph and will take some time (because it compiles git from the source).

See Docker for more instructions.

Prerequisites

  • python3.8

Optional dependencies for the builder:

  • repo
  • git (>25): since we're using partial-checkouts, a modern version of git is required
  • at least 1Go of free disk space
  • (Optional: AOSP mirror)

See Building from AOSP for more details.

Documentation

Documentation

Licence

Apache-2

Contributing

Contributions are always welcome!

See the Contribution documentation for details on all you need to know about contributing.

Authors

  • dm (achallande@quarkslab.com)

Owner

  • Name: Quarkslab
  • Login: quarkslab
  • Kind: organization
  • Location: France

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this software, please cite the article from preferred-citation.
title: BGraph
abstract: BGraph is a tool designed to generate dependencies graphs from Android.bp soong files.

authors:
  - family-names: Challande
    given-names: Alexis
    orcid: "https://orcid.org/0000-0001-9116-709X"

date-released: "2021-06-04"

repository-code: https://github.com/quarkslab/bgraph
version: v0.1.0
license: Apache-2.0

preferred-citation:
  authors:
  - family-names: Challande
    given-names: Alexis
    orcid: "https://orcid.org/0000-0001-9116-709X"
  - family-names: Renault
    given-names: Guenael
    orcid: "https://orcid.org/0000-0002-7050-9975"
  - family-names: David
    given-names: Robin
    orcid: "https://orcid.org/0000-0001-5722-8338"
  title: Exploitation du graphe de dépendance d'AOSP à des fins de sécurité
  type: article
  year: 2021

GitHub Events

Total
  • Watch event: 2
  • Pull request event: 1
  • Fork event: 2
Last Year
  • Watch event: 2
  • Pull request event: 1
  • Fork event: 2

Dependencies

poetry.lock pypi
  • appdirs 1.4.4 develop
  • appnope 0.1.2 develop
  • atomicwrites 1.4.0 develop
  • attrs 21.2.0 develop
  • backcall 0.2.0 develop
  • black 20.8b1 develop
  • coverage 5.5 develop
  • iniconfig 1.1.1 develop
  • ipython 7.23.1 develop
  • ipython-genutils 0.2.0 develop
  • jedi 0.18.0 develop
  • matplotlib-inline 0.1.2 develop
  • mypy 0.800 develop
  • mypy-extensions 0.4.3 develop
  • packaging 20.9 develop
  • parso 0.8.2 develop
  • pathspec 0.8.1 develop
  • pexpect 4.8.0 develop
  • pickleshare 0.7.5 develop
  • pluggy 0.13.1 develop
  • prompt-toolkit 3.0.18 develop
  • ptyprocess 0.7.0 develop
  • py 1.10.0 develop
  • pytest 6.2.4 develop
  • pytest-cov 2.12.0 develop
  • toml 0.10.2 develop
  • traitlets 5.0.5 develop
  • typed-ast 1.4.3 develop
  • wcwidth 0.2.5 develop
  • astunparse 1.6.3
  • click 7.1.2
  • colorama 0.4.4
  • commonmark 0.9.1
  • decorator 4.4.2
  • future 0.18.2
  • jinja2 3.0.1
  • joblib 1.0.1
  • livereload 2.6.3
  • lunr 0.5.8
  • markdown 3.3.4
  • markupsafe 2.0.1
  • mkdocs 1.1.2
  • mkdocs-autorefs 0.2.1
  • mkdocs-material 7.1.5
  • mkdocs-material-extensions 1.0.1
  • mkdocstrings 0.15.1
  • networkx 2.5.1
  • nltk 3.6.2
  • pydot 1.4.2
  • pygments 2.9.0
  • pymdown-extensions 8.2
  • pyparsing 2.4.7
  • pytkdocs 0.11.1
  • pyyaml 5.4.1
  • regex 2021.4.4
  • rich 9.13.0
  • sh 1.14.2
  • shellingham 1.4.0
  • six 1.16.0
  • tornado 6.1
  • tqdm 4.60.0
  • typer 0.3.2
  • typing-extensions 3.10.0.0
  • untangle 1.1.1
pyproject.toml pypi
  • black ^20.8b1 develop
  • coverage ^5.5 develop
  • ipython ^7.20.0 develop
  • mypy ^0.800 develop
  • pytest ^6.2.4 develop
  • pytest-cov ^2.12.0 develop
  • mkdocs ^1.1.2
  • mkdocs-material ^7.1.3
  • mkdocstrings ^0.15.0
  • networkx ^2.5
  • pydot ^1.4.2
  • pyparsing ^2.4.7
  • python ^3.8
  • rich ^9.11.0
  • sh ^1.14.1
  • typer ^0.3.2
  • untangle ^1.1.1