Science Score: 26.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.6%) to scientific vocabulary

Keywords

framework impact
Last synced: 6 months ago · JSON representation

Repository

Impact Framework

Basic Info
Statistics
  • Stars: 171
  • Watchers: 12
  • Forks: 47
  • Open Issues: 40
  • Releases: 35
Topics
framework impact
Created about 3 years ago · Last pushed 7 months ago
Metadata Files
Readme Contributing License Security

README.md

Impact Framework

Node.js CI

[!IMPORTANT] Graduated Project: This project is a Graduated Project, supported by the Green Software Foundation. The publicly available version documented in the README is trusted by the GSF. New versions of the project may be released, or it may move to the Maintained or Retired Stage at any moment.

Our documentation is online at if.greensoftware.foundation

IF is a framework to Model, Measure, siMulate and Monitor the environmental impacts of software

Modern applications are composed of many smaller pieces of software (components) running on many different environments, for example, private cloud, public cloud, bare-metal, virtualized, containerized, mobile, laptops, and desktops.

Every environment requires a different plugin of measurement, and there is no single solution you can use to calculate the environmental impacts for all components across all environments.

The friction to measuring software emissions isn't that we need to know how, it's that we run software on many things and each thing has several different ways to measure.

Read the specification and design docs to begin.

Get started

IF is a framework for running pipelines of plugins that operate on a set of observations. This is all configured using a manifest file. We provide a standard library of plugins that come bundled with IF - we refer to these as builtins. We also have an Explorer where anyone can list third party plugins you can install.

Start by installing the latest version of IF:

sh npm install -g "@grnsft/if"

Then create a manifest file that describes your application (see our docs for a detailed explanation).

Then, run if using the following command:

```sh if-run --manifest

or you can use alias

if-run -m

```

Note that above command will print your outputs to the console. If you do not want to print the outputs to the console, you need to provide --no-output command. You can also provide the --output command to save your outputs to a yaml file:

sh if-run -m <path-to-your-manifest> -o <savepath>

The if-run CLI tool will configure and run the plugins defined in your input yaml (manifest) and return the results as an output yaml (output).

Use the debug command if you want to diagnose and fix errors in your plugin:

sh if-run --manifest <path-to-your-manifest-file> --debug

Use the help command if you need guidance about the available commands

```sh if-run --help

or using alias

if-run -h ```

Using API server

The Impact Framework also provides an API server. By default, it listens on localhost:3000, but this can be changed.

```sh

Run the API server listening on the default localhost:3000.

$ if-api

Run the API server listening on 0.0.0.0:8080.

$ if-api --host 0.0.0.0 --port 8080 ```

If the API server is running, you can send a manifest in the request body and receive the results of if-run as a response.

```sh

Process manifest

$ curl -H "Content-Type: application/yaml" --data-binary @manifest.yaml http://localhost:3000/v1/run ```

Note that in if-api, the following builtin plugins are disabled by default for security reasons. - Shell - CSVImport - CSVLookup

Please refer to the documentation for detailed usage instructions, including how to enable these plugins.

Using Docker Container

The Impact Framework API server can also be run as a Docker container. The official image is provided at ghcr.io/green-software-foundation/if, so you can run the container with the following command.

```sh

Run with default port (3000)

$ docker run --rm -p 3000:3000 ghcr.io/green-software-foundation/if ```

Please refer to CONTAINER.md for how to install external plugins during container execution and how to build custom images.

Using API server with Kubernetes

The Impact Framework also provides a helm chart for running the API server on a Kubernetes cluster. The helm chart is provided in OCI format on GitHub Container Registry, so you need to specify oci: when referencing the chart.

sh $ helm install if oci://ghcr.io/green-software-foundation/charts/if

By default, a ClusterIP service is deployed, so you can access the API server by running kubectl port-forward.

sh $ kubectl port-forward svc/if 3000:3000 & $ curl -H "Content-Type: application/yaml" --data-binary @manifest.yaml http://localhost:3000/v1/run

For detailed usage including external plugin installation and NodePort configuration, please refer to HELM_CHART.md.

Documentation

Please read our documentation at if.greensoftware.foundation

Join our mailing list

We have a public mailing list at if-community@greensoftware.foundation. We send out weekly updates that explain what we've shipped, what we're working on and how you can get involved each week!

Contributing

To contribute to IF, please fork this repository and raise a pull request from your fork.

You can check our issue board for issues. We mark some issues core-only if they are somehow sensitive and we want one of our core developers to handle it. Any other issues are open for the community to work on. We recommend commenting on the issue to start a chat with the core team, then start working on the issue when you have been assigned to it. This process helps to ensure your work is aligned with our roadmap and makes it much more likely that your changes will get merged compared to unsolicited PRs.

Please read the full contribution guidelines at if.greensoftware.foundation

Bug reports

To report bugs please use our bug report template. You can do this by opening a new issue and selecting Bug Report when you are prompted to pick a template. The more information you provide,.the quicker we will be able to reproduce, diagnose and triage your issue.

To read about our bug reporting and triage process, please see our contribution guidelines.

Owner

  • Name: Green Software Foundation
  • Login: Green-Software-Foundation
  • Kind: organization

The Green Software Foundation is a non-profit with the mission to create a trusted ecosystem of people, standards, tooling and best practices for green software

GitHub Events

Total
  • Create event: 44
  • Release event: 9
  • Issues event: 100
  • Watch event: 26
  • Delete event: 33
  • Issue comment event: 204
  • Push event: 106
  • Pull request event: 100
  • Pull request review event: 56
  • Pull request review comment event: 17
  • Fork event: 6
Last Year
  • Create event: 44
  • Release event: 9
  • Issues event: 100
  • Watch event: 26
  • Delete event: 33
  • Issue comment event: 204
  • Push event: 106
  • Pull request event: 100
  • Pull request review event: 56
  • Pull request review comment event: 17
  • Fork event: 6

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 2,978
  • Total Committers: 26
  • Avg Commits per committer: 114.538
  • Development Distribution Score (DDS): 0.561
Past Year
  • Commits: 374
  • Committers: 8
  • Avg Commits per committer: 46.75
  • Development Distribution Score (DDS): 0.564
Top Committers
Name Email Commits
Narek Hovhannisyan n****r@g****m 1,308
jmc 3****6 650
manushak m****n@g****m 546
Gnanakeethan Balasubramaniam g****n 245
MariamKhalatova m****a@g****m 102
Asim Hussain a****m@c****v 22
James Crowley j****s@a****m 22
Paz Barda p****a@i****m 20
Mitsuru Kariya m****a@n****m 19
Srinivasan s****n@m****m 8
mouhamadalmounayar m****r@g****m 8
Yassine El Ghali Y****i@m****m 4
Oleg-Zhymolokhov 1****v 4
alexzurbonsen a****n@t****m 3
Adam A****p 2
Arne Tarara a****e@d****e 2
Yasumasa Suenaga y****g@g****m 2
dareynol d****l@m****m 2
Adam Jackson a****m@g****n 2
Abhinav Bansal a****6@g****m 1
Johann Hemmann j****n@c****n 1
John Behan j****5 1
Marco Paga m****a 1
Russell Trow r****l@g****n 1
Sean Mcilroy s****y@l****g 1
Sophie Trinder 1****n 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 518
  • Total pull requests: 392
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 4 days
  • Total issue authors: 30
  • Total pull request authors: 24
  • Average comments per issue: 2.79
  • Average comments per pull request: 0.63
  • Merged pull requests: 342
  • Bot issues: 0
  • Bot pull requests: 17
Past Year
  • Issues: 73
  • Pull requests: 116
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 3 days
  • Issue authors: 10
  • Pull request authors: 9
  • Average comments per issue: 2.34
  • Average comments per pull request: 0.4
  • Merged pull requests: 96
  • Bot issues: 0
  • Bot pull requests: 9
Top Authors
Issue Authors
  • jmcook1186 (247)
  • zanete (164)
  • MariamKhalatova (31)
  • jawache (26)
  • narekhovhannisyan (15)
  • manushak (8)
  • srini1978 (5)
  • adamhafiz427 (2)
  • tdigeser91 (2)
  • Irenia111 (2)
  • mouhamadalmounayar (2)
  • abhinavbansal19961996 (2)
  • amina-nasrin (1)
  • Sophietn (1)
  • adamj89 (1)
Pull Request Authors
  • narekhovhannisyan (231)
  • manushak (133)
  • jmcook1186 (112)
  • MariamKhalatova (42)
  • kariya-mitsuru (34)
  • github-actions[bot] (26)
  • pazbardanl (11)
  • alexzurbonsen (11)
  • mouhamadalmounayar (6)
  • ArneTR (5)
  • adamj89 (4)
  • jamescrowley (4)
  • adamaucamp (4)
  • demakoff (3)
  • YaSuenag (3)
Top Labels
Issue Labels
backlog (80) bug (57) epic: QA (48) documentation (36) medium-priority (34) feature (29) high-priority (29) agenda (29) core-only (27) size: medium (25) project-management (24) EPIC (23) cli (20) model (19) discussions (16) backlogged (15) blocked (13) draft (10) project-update (10) low-priority (10) tests (10) good-first-issue (9) size: small (8) size: large (6) plugin (6) help-wanted (6) qa (5) fix (4) i-milestone (3) fix-now (3)
Pull Request Labels
feature (34) documentation (30) awaiting-dev-review (22) size: medium (21) epic: QA (16) fix (13) project-management (11) bug (11) medium-priority (11) high-priority (10) dev-review-pass (9) size: small (8) tests (8) awaiting-qa (8) qa-pass (7) release (6) qa (6) size: large (6) model (6) cli (4) needs-response (2) backlog (2) agenda (1)

Packages

  • Total packages: 3
  • Total downloads:
    • npm 654 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 111
  • Total maintainers: 3
proxy.golang.org: github.com/green-software-foundation/if
  • Versions: 35
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/Green-Software-Foundation/if
  • Versions: 35
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
npmjs.org: @grnsft/if

Impact Framework

  • Versions: 41
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 654 Last month
Rankings
Forks count: 6.6%
Stargazers count: 6.7%
Average: 25.6%
Dependent repos count: 36.5%
Dependent packages count: 52.5%
Maintainers (3)
Last synced: 6 months ago