Skip to content

Commit

Permalink
Merge pull request #51 from finos-labs/visualization
Browse files Browse the repository at this point in the history
add jupyter notebook
  • Loading branch information
maoo authored Jul 4, 2024
2 parents d228d8d + 5f93950 commit 0678fe4
Show file tree
Hide file tree
Showing 5 changed files with 822 additions and 14 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@ target
application-local.yml
/.settings
.DS_Store
/bin
/bin
env
lib
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"python.pythonPath": "env/bin/python",
"jupyter.notebookFileRoot": "${workspaceFolder}",
"java.compile.nullAnalysis.mode": "automatic"
}
44 changes: 31 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,18 @@ Project Analysis is a tool that scan the FINOS (Fintech Open Source Foundation)
```

To scan the FINOS project landscape and gather data, run:
s
```sh
LANDSCAPE_SCANNING_TOKEN={your-github-personal-access-token} mvn spring-boot:run -Dspring-boot.run.profiles=local,summarize -DskipTests
```

To build the Jupyter notebook:
```sh
python3 -m venv env
./env/bin/python -m pip install -r requirements.txt
```

Open `project-report.ipynb` in VS Code and run the notebook; make sure that the `Jupyter` VS Code Extension is installed.

#### Generating a Personal Access Token

To generate a personal access token, follow the instructions [here](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token).
Expand All @@ -40,27 +47,38 @@ The PAT must have the following scopes enabled:

| Column name | description |
| ----------- | ----------- |
| Total Score | Issue Score + Commit Score |
| Total Score | Issue Activity + Commit Activity |
| Pass | TO BE REMOVED |
| Organisation | Name of the GitHub organisation |
| Repo Name | Name of the GitHub repository |
| Stage | Finos Lifecycle Stage, parsed from README.md badges - https://community.finos.org/docs/governance/Software-Projects/project-lifecycle
| License | Repo license, pulled from GitHub Api - https://community.finos.org/docs/governance/Software-Projects/license-categories
| Issue Score | For most recent 50 issues, count most recent 30 comments in last 6 months |
| Commit Score | Count number of commits in last 6 months, maxed at 100 - #TODO - we could compare it with the average activity in the last year
| Project Name | Name of the FINOS project this repository belongs to, parsed from https://github.com/finos/finos-landscape/blob/master/landscape.yml |
| Project Type | Software Project or Special Interest Group, parsed from https://github.com/finos/finos-landscape/blob/master/landscape.yml |
| Project Stage | FINOS Lifecycle Stage, parsed from https://github.com/finos/finos-landscape/blob/master/landscape.yml |
| Stage | Finos Lifecycle Stage, parsed from README.md badges - https://community.finos.org/docs/governance/Software-Projects/project-lifecycle |
| License | Repo license, pulled from GitHub Api - https://community.finos.org/docs/governance/Software-Projects/license-categories |
| Meeting attendance | All comments to issues labeled as `meeting` in the last X days |
| Issue/PR Activity | All issue creations and comments in the last X days (except for those with label `meeting`) |
| Issue/PR lifespan | Average issue lifespan in the last X days |
| Commit Activity | Count number of commits in last 6 months, maxed at 100 (TODO - remove the 100 max) |
| OpenSSF Best Practices Badge | The OpenSSF Best Practices score, parsed from README.md badges - https://www.bestpractices.dev/en |
| Github Archived | Check if the GitHub repository is marked as archived, using GitHub API |
| Branch Protection | Check branch rules: returns the number of approvers, 0 if no approvers are set, -1 if the is no branch protection enabled on the main branch
| SemGrep | Checks existance of .github/workflows/semgrep.yml file - #TODO - would be better to check GitHub Actions execution
| CVE Scanning | Checks existance of .github/workflows/cve-scanning.yml file - #TODO - would be better to check GitHub Actions execution
| Branch Protection | Check branch rules: returns the number of approvers, 0 if no approvers are set, -1 if the is no branch protection enabled on the main branch |
| SemGrep | Checks existance of .github/workflows/semgrep.yml file - (TODO - would be better to check GitHub Actions execution) |
| CVE Scanning | Checks existance of .github/workflows/cve-scanning.yml file - (TODO - would be better to check GitHub Actions execution) |
| Main Branch Name | Checks if default branch name is `main` |
| Admins | List of users that have admin rights on the repository (expected to be 0, since only finos-admin should have Admin rights on FINOS repositories)
| Admins | List of users that have admin rights on the repository (expected to be 0, since only finos-admin should have Admin rights on FINOS repositories) |
| Issue Participants | List of all participants for issues loaded in Issue Activity column |
| Committers | List of all repository committers |
| Readme Length | Number of characters of README.md |
| Project Name | Name of the FINOS project this repository belongs to, parsed from https://github.com/finos/finos-landscape/blob/master/landscape.yml |
| Project Type | Software Project or Special Interest Group, parsed from https://github.com/finos/finos-landscape/blob/master/landscape.yml |
| Project Stage | FINOS Lifecycle Stage, parsed from https://github.com/finos/finos-landscape/blob/master/landscape.yml |

#### Project Health
-

Unmaintained
Low activity
Average activity
High activity


## Contributing

Expand Down
668 changes: 668 additions & 0 deletions project-report.ipynb

Large diffs are not rendered by default.

115 changes: 115 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
anyio==4.4.0
appnope==0.1.4
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asttokens==2.4.1
async-lru==2.0.4
attrs==23.2.0
Babel==2.15.0
beautifulsoup4==4.12.3
bleach==6.1.0
certifi==2024.6.2
cffi==1.16.0
charset-normalizer==3.3.2
comm==0.2.2
contourpy==1.2.1
cycler==0.12.1
debugpy==1.8.1
decorator==5.1.1
defusedxml==0.7.1
exceptiongroup==1.2.1
executing==2.0.1
fastjsonschema==2.20.0
fonttools==4.53.0
fqdn==1.5.1
h11==0.14.0
httpcore==1.0.5
httpx==0.27.0
idna==3.7
importlib_metadata==7.1.0
importlib_resources==6.4.0
ipykernel==6.29.4
ipython==8.18.1
ipywidgets==8.1.3
isoduration==20.11.0
jedi==0.19.1
Jinja2==3.1.4
json5==0.9.25
jsonpointer==3.0.0
jsonschema==4.22.0
jsonschema-specifications==2023.12.1
jupyter==1.0.0
jupyter-console==6.6.3
jupyter-events==0.10.0
jupyter-lsp==2.2.5
jupyter_client==8.6.2
jupyter_core==5.7.2
jupyter_server==2.14.1
jupyter_server_terminals==0.5.3
jupyterlab==4.2.2
jupyterlab_pygments==0.3.0
jupyterlab_server==2.27.2
jupyterlab_widgets==3.0.11
kiwisolver==1.4.5
MarkupSafe==2.1.5
matplotlib==3.9.0
matplotlib-inline==0.1.7
mistune==3.0.2
nbclient==0.10.0
nbconvert==7.16.4
nbformat==5.10.4
nest-asyncio==1.6.0
notebook==7.2.1
notebook_shim==0.2.4
numpy==2.0.0
overrides==7.7.0
packaging==24.1
pandas==2.2.2
pandocfilters==1.5.1
parso==0.8.4
pexpect==4.9.0
pillow==10.3.0
platformdirs==4.2.2
prometheus_client==0.20.0
prompt_toolkit==3.0.47
psutil==6.0.0
ptyprocess==0.7.0
pure-eval==0.2.2
pycparser==2.22
Pygments==2.18.0
pyparsing==3.1.2
python-dateutil==2.9.0.post0
python-json-logger==2.0.7
pytz==2024.1
PyYAML==6.0.1
pyzmq==26.0.3
qtconsole==5.5.2
QtPy==2.4.1
referencing==0.35.1
requests==2.32.3
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rpds-py==0.18.1
seaborn==0.13.2
Send2Trash==1.8.3
six==1.16.0
sniffio==1.3.1
soupsieve==2.5
stack-data==0.6.3
terminado==0.18.1
tinycss2==1.3.0
tomli==2.0.1
tornado==6.4.1
traitlets==5.14.3
types-python-dateutil==2.9.0.20240316
typing_extensions==4.12.2
tzdata==2024.1
uri-template==1.3.0
urllib3==2.2.2
wcwidth==0.2.13
webcolors==24.6.0
webencodings==0.5.1
websocket-client==1.8.0
widgetsnbextension==4.0.11
zipp==3.19.2

0 comments on commit 0678fe4

Please sign in to comment.