community icon indicating copy to clipboard operation
community copied to clipboard

openGRIS - Standard Project Contribution and Onboarding

Open bansalr opened this issue 1 year ago • 4 comments

1. Describing The Contribution

Business Problem

Describe the business problem the contribution solves

Large financial organizations have a collection of distributed compute resources - physical severs, virtual instances, cloud compute (AWS, GCP, ....) and grids (e.g. IBM Symphony). The second problem is that capacity on these grids is often statically allocated and and workloads cannot dynamically resource up and down. There are multiple challenges around utilizing different compute resources efficiently which means grids often runs at low utilization (30% or below) and also worsen climate impact.

Proposed Solution

Describe the type of contribution (project or working group) and how it solves that business problem

openGRIS is an open Standard for Grid Resource Scheduling with client and worker standards to tie resources together and share them in a cost-effective and climate friendly way. openGRIS aims to provide a standard to allow different hardware and compute pools to be effectively addressed by applications across the organization - production batch processes, on-demand compute from notebooks, etc. The goal is on one side to easily unlock "elastic-compute" on demand and on the other hand enable pools of compute to be more effectively utilized. openGRIS draws inspiration from services AWS Lambda and BigQuery and software tools like Dask and Spark to propose a cloud provider and hardware independent standard.

Scope

Clearly define the scope of the standard. In cases where the scope is expected to be defined by the standard project participants this should be one of the first tasks the group completes. Guidelines can be found in the Community Specification documentation.

openGRIS will specify a definition for compute payloads for routing to compute backends. This definition will include elements which have come up in discussion with FinOS members (Intel, Nvidia, IBM and AWS) and can include directives for GPU and wide Vector instructions.

openGRIS will also specify policies which can define how those payloads are routed to various compute backends. These policies can have time and cost preferences. Finally, the definition of backends will be left out of the scope of the initial standard but the standard can be later expanded to definition and categorization of compute backends.

Tentative Roadmap and Current State

Describe the short and medium term goals and phases of the project. What does success look like for this project?

Category Milestone Target Date Status Comments
Proposal Standard 1.0 6/30/24 Done
Implementation Reference Implementation 7/30/24 Done
Implementation Open Source Scaler 9/30/24 Done github.com/citi/scaler
Proposal 1.0 Discussion with Nvidia, AWS, Intel, IBM 9/30/24 Done
Proposal Formalize Standard 2.0 2/15/25 Done Standard 2.0
Implementation Interface to IBM Symphony 1/30/25 Done Done
Implementation EC2 Static Compute Adapter 4/30/25 Pending
Implementation Multi-language bindings: C++ 6/30/25 Pending
Implementation Time based Policies for Scheduling 9/30/25 Pending
Implementation Dynamic Scaling for Symphony and EC2 10/30/25 Pending
Implementation Multi-Environment support via Docker/Podman 11/30/25 Pending
Implementation AWS HTC Grid Adapter TBD Pending
See detailed architecture and roadmap here.

Existing Materials

If materials already exist, provide a link to them that Foundation staff can access - if it's in a private GitHub.com repositories, you should invite the finos-admin user with R/O permissions to those repositories

  • [ X] GitHub / GitLab Repository (delete as appropriate)
    • [ X] URL for the repository (if it exists) See above
    • [ ] Project Name (enter here)
    • [ ] @finos-admin has been given read-only permissions if private
  • [ ] Is Continuous Integration used? If so, which system is used?
  • [ ] Was the project ever released? (yes / no)
    • [ ] If so, are releases public? (yes / no)
    • [ ] And what's the latest released version?
  • [ ] Existing Project Documentation ( URL / microsite / PDF etc detail here)
  • [ ] Does the name have a registered trademark? (yes / no)
  • [ ] Is there a logo? (yes / no)
  • [ ] High-Level Presentation prepared for Technical Oversight Committee (~15 mins)
  • [ ] Are meetings currently held for the project? (yes / no + details)
  • [ ] Are meeting minutes, agenda and attendance tracked? (yes / no + details)

Development Team

Maintainers

Who will be the project maintainer(s)? Provide full name, affiliation, work email address, and GitHub / GitLab username.

Name Affiliation Work Email Address Github / GitLab username
Zhuo Yin Citi [email protected] @sharpener6

Confirmed contributors

If applicable, list all of the individuals that have expressed interest in and/or are committed to contributing to this project, including full name, affiliation, work email address, and GitHub.com username

Name Affiliation Work Email Address Github / GitLab username
Raphael Javaux Citi [email protected] @rafa-be
George Lewis Citi [email protected] @magniloquency

Target Contributors

Describe the contributor profile (background, position, organization) you would like to get contributions from. Engineers at Financial Institutions and software and hardware vendors (AWS, IBM, Google, HP, etc.)

Project Communication Channel(s)

  • [ ] Contributor to ask maintainers which communications channels they'd like to use:
  • Asynchronous
    • [X ] GitHub Issues (public)
    • [ X] GitHub Discussions (public)
    • [ ] GitHub Team Discussions (consisting of the above described contributors)
      • [ ] Public
      • [ ] Private
    • [ ] Mailing-list (groups.io)
    • [ ] FINOS Slack Channel (consisting of the above described contributors)
      • [ ] General (public) (supply channel name)
      • [ ] Leadership (private) (supply channel name)
  • Synchronous
    • [ ] Recurring meetings

Approval (Lead: FINOS Infra)

  • [ ] Assign issue to Executive Director (@mindthegab) to trigger voting (optional). If additional socialization is required, the Executive Director may bring standards projects to the FINOS Governing Board
  • [ ] FINOS accepts the contribution/new standard project (and the contribution process can move forward)

Assets transfer (optional - Lead: FINOS Infra)

  • [ ] Check GitHub repository transfer requirements:
    • [ ] finos-admin has Admin to all repositories to transfer
    • [ ] finos-admin ia allowed to transfer repositories out of the org
    • [ ] if the repository is owned by a user (and not an org), the user must be able to transfer the repository to finos-admin
  • [ ] Transfer all code assets as GitHub repositories under github.com/finos
  • [ ] Invite GitHub usernames to GitHub FINOS Org
  • [ ] Create <project-name>-maintainers GitHub team and invite users
  • [ ] Configure finos-admins and finos-staff team permissions

Infra setup (Lead: FINOS Infra)

  • [ ] Update release coordinates and code namespace to include finos (best effort)
  • [ ] Update project badge
  • [ ] Update project README
  • [ ] Aggregate mailing lists to [email protected]
  • [ ] Enable meeting attendance tracking (optional)
  • [ ] (optional) Onboard into legend.finos.org/studio

Metadata update (Lead: FINOS Infra)

  • [ ] Add project to metadata
  • [ ] Add identities, orgs and affiliations to metadata
  • [ ] Add logo to FINOS landscape
  • [ ] Add maintainers emails to [email protected] list
  • [ ] Add maintainers GitHub usernames to the project-maintainers Team
  • [ ] Onboard project on LF systems (SFDC, Insights, EasyCLA, Groups.io)

Mailing list (optional)

  • [ ] Create mailing-list
  • [ ] Enable Hubspot Sync for all project mailing lists created
  • [ ] Update marketing lists
    • Add new list to the included "Email List" part of the filter
    • Add new list to the excluded "Email" part of the filter

Announcement (Lead: FINOS Contrib POC)

  • [ ] Work with FINOS marketing to send out announcement to [email protected] , checkout announcement template at the Contribution page.
  • [ ] Notify FINOS Contrib POC and FINOS marketing manager once the announcement has been sent out (FINOS infra)

Marketing collateral and Social (Lead: FINOS Marketing)

  • [ ] Update FINOS marketing collaterals to update numbers and include the new project
  • [ ] Post on FINOS social media
  • [ ] Post on LF social media
  • [ ] Email brief announcement to [email protected] (Optional depending applicability of contribution)

Onboarding and training (Lead: FINOS Infra)

  • [ ] FINOS Standards Project Governance
  • [ ] FINOS Standards Project Lifecycle

Press Release (OPTIONAL - Lead: FINOS Marketing)

  • [ ] Identify quotes for press release
  • [ ] Draft press release
  • [ ] Send embargoed press release to reporters

bansalr avatar Sep 20 '24 20:09 bansalr

I met with @bansalr to discuss the contribution. Couple of items I asked for:

  1. Sync up with the HTC-Grid team and clarify how the projects would work together, updating the proposal with this. I've introduced @bansalr to the HTC-Grid contributors.
  2. Clarify the future roadmap to be clearer on what currently exists and what is still to be developed.

I also suggested meeting with other member firms to assess interest within the community.

eminty69 avatar Oct 09 '24 21:10 eminty69

@finos/toc @eddie-knight can we please clarify if this is a software or a standard project? If a standard project, per current contribution process, it should go to the Board for approval vs the TOC.

/cc @opoupeney @TheJuanAndOnly99 @maoo

mindthegab avatar Jan 25 '25 08:01 mindthegab

Yes, @mindthegab that's correct.

@bansalr — If you'd like to convert this into a standards proposal, @TheJuanAndOnly99 has offered to assist.

eddie-knight avatar Feb 10 '25 16:02 eddie-knight

@mindthegab @opoupeney this proposal has been converted to a standards proposal and is ready for the Board.

TheJuanAndOnly99 avatar Mar 25 '25 10:03 TheJuanAndOnly99

Thanks @TheJuanAndOnly99 - @opoupeney @eminty69 given this is been on the backlog for quite a bit, shall we try an email approval or otherwise the next board meeting is on May 12th? Adding @jgavronsky so we can act accordingly.

@bansalr any preference here? Generally in person gets more of a chance of engaging with stakeholders directly, but if time is of the essence here, we can produce some documentation and submit via email (would be a first).

mindthegab avatar Apr 04 '25 02:04 mindthegab

@mindthegab - We presented at the ToC back in October and have since connected with quite a few ToC members - RedHat/IBM, Nvidia, Intel and AWS so email should be fine but I would prefer to defer to @eminty69.

bansalr avatar Apr 08 '25 02:04 bansalr

@bansalr if you are able to I think there would be benefit to presenting it. Many of the TOC members have joined since the last time so it would raise visibility around the work

eminty69 avatar Apr 13 '25 12:04 eminty69

Note that this is no longer being proposed to the TOC, as it has been identified as a standards project rather than a code project.

@bansalr — Gab's question is regarding whether you would like the FINOS team to email the governing board requesting approval, or wait for the next opportunity to present this to the governing board directly to ensure there is enough engagement for an approval.

eddie-knight avatar Apr 13 '25 13:04 eddie-knight

@eddie-knight you’re absolutely correct. Apologies for the confusion.

eminty69 avatar Apr 13 '25 15:04 eminty69

@eddie-knight the preference is to get this done sooner than later. I defer to your judgement - if you think presenting will give it a better shot at engagement then lets do that.

bansalr avatar Apr 13 '25 21:04 bansalr

@jgavronsky could you give @bansalr guidance on next steps?

eddie-knight avatar Apr 13 '25 23:04 eddie-knight

Per the Approval step, this proposal requires (optional) approval from the Governing Board. We will draft an email to give the GB visibility and a chance to ask questions. Based on responses, we will either approve via email or will bring for Board discussion at the upcoming GB Checkin meeting on May 12,2025.

jgavronsky avatar Apr 15 '25 18:04 jgavronsky

@jgavronsky - thank you. The underlying implementation continues to move forward and we are eager to engage within finos to drive this. Since the ToC has reviewed it and we have discussed with most of the ToC members and addressed their concerns, please advise if we need an additional GB discussion and approval if it is optional.

bansalr avatar Apr 16 '25 14:04 bansalr

@jgavronsky @TheJuanAndOnly99 — Can we / will we move forward with project setup logistics, with acknowledgement that GB input is pending? I'm aware that the openGRIS team is keen to have everything sorted as soon as possible.

eddie-knight avatar Apr 16 '25 17:04 eddie-knight

Hi @bansalr our governance policy states that standards proposals require approval from the Governing Board. Considering the previous review by the TOC, we are asking the Board for a "silent consensus", without the need for additional presentations. Gab has reached out to the Governing Board with information on the proposal and a request for response (questions, objections) by May 2nd. If we don't get any questions or objections by May 2nd, we can consider the standard approved and can proceed with onboarding. If there are any questions/objections, we will aim for a discussion at the upcoming Board check-in on May 12th.

@eddie-knight fyi

jgavronsky avatar Apr 24 '25 19:04 jgavronsky

Attaching deck presented at ToC and updated with roadmap and support and socialized to-date. [

OSPO Scalar Reference Proposal.pptx

](url)

bansalr avatar May 09 '25 16:05 bansalr

Thanks @bansalr and the whole contributing team for your patience here. And @eminty69 and the whole @finos/toc for your support in this review process.

I am pleased to post the results of today's Governing Board Meeting, paired with the extensive discussions on the Governing Board mailing list (archived here, private to the Governing Board).

The contribution of the OpenGRIS open standard (and underlying open source software implementation, https://github.com/Citi/scaler) were approved by the Governing Board for inclusion in FINOS in Incubating stage with no objections and one abstention.

I am assigning the issue to @opoupeney which together with the infra team (@maoo and @TheJuanAndOnly99), project advocacy (@karlmoll) and marketing team (@winmorgan @niamhoparker @grizzwolf) will coordinate and inform next steps, including:

  • Creation of appropriate infrastructure (assume separate projects for standard and software implementation, since the former should use CSL and the latter Apache).
  • Legal and trademark checks / transfer
  • Coordination of public marketing announcements and technical announcements on the FINOS mailing list (see example here

I recommend that once the initial calls are schedule an additional reach out is made to the Board and Members (they are included in the community@ alias) to stimulate participation.

Congratulations and thanks again for bringing this project to FINOS!

mindthegab avatar May 12 '25 23:05 mindthegab

Below are the results of the code scanning.

License Scanning

  • Software is released under pypi (we'll need to move it under finos)
  • available on libraries.io, helps with dependency scanning:
    - bidict - 0.23.1 - MPL-2.0
    - cloudpickle - 3.1.1 - BSD-3-Clause
    - psutil - 7.0.0 - BSD-3-Clause
    - pycapnp - 2.0.0 - BSD-3-Clause
    - pyzmq - 26.4.0 - BSD 3-Clause
    - tblib - 3.1.0 - BSD-2-Clause
    - numpy - 2.2.5 - BSD 3-Clause
    - python-graphblas - 2025.2.0 - Apache-2.0
    - donfig - 0.8.1 - MIT
    - pyyaml - 6.0.2 - MIT
    - uvloop - 0.21.0 - MIT

All of the above licenses are compatible with Apache-2.0

Dependency list

.venv/bin/safety uv pip list

    annotated-types    0.7.0
    anyio              4.9.0
    authlib            1.5.2
    certifi            2025.4.26
    cffi               1.17.1
    charset-normalizer 3.4.2
    click              8.1.8
    cryptography       44.0.3
    dparse             0.6.4
    filelock           3.16.1
    h11                0.16.0
    httpcore           1.0.9
    httpx              0.28.1
    idna               3.10
    jinja2             3.1.6
    joblib             1.5.0
    markdown-it-py     3.0.0
    markupsafe         3.0.2
    marshmallow        4.0.0
    mdurl              0.1.2
    nltk               3.9.1
    packaging          25.0
    pip                24.3.1
    psutil             6.1.1
    pycparser          2.22
    pydantic           2.9.2
    pydantic-core      2.23.4
    pygments           2.19.1
    regex              2024.11.6
    requests           2.32.3
    rich               14.0.0
    ruamel-yaml        0.18.10
    safety             3.5.1
    safety-schemas     0.0.14
    setuptools         80.7.1
    shellingham        1.5.4
    sniffio            1.3.1
    tenacity           9.1.2
    tomlkit            0.13.2
    tqdm               4.67.1
    typer              0.15.4
    typing-extensions  4.13.2
    urllib3            2.4.0

Security Scanning

  • CodeQL scanning enabled
  • .venv/bin/safety scan - 44 vulnerabilities found
  • fixes in pyproject.toml to get to 0 vulnerabilities:
s/psutil/psutil==7.0.0/g
s/pycapnp/pycapnp==2.0.0/g
s/numpy/numpy==2.2.5/g
s/nicegui[plotly]/nicegui[plotly]==2.14.0/g

Contributors

On https://github.com/Citi/scaler/graphs/contributors these are the contributors:

  • https://github.com/sharpener6 (Citi)
  • https://github.com/rafa-be (Citi)
  • https://github.com/JamieSlome (Citi)
  • https://github.com/magniloquency (Citi)
  • https://github.com/gxuu
  • https://github.com/1597463007
  • https://github.com/MinchulShin254

GitHub users gxuu, 1597463007, MinchulShin254 are not identified as contributors.

Recap/Todos

  • All licenses found in the released artifact are compatible with Apache-2.0 , but there is no automation for continuous checks; given the low number of dependencies, it's ok to keep manual checks [Good]
  • Security scanning spotted 44 vulnerabilities, which should be addressed before moving forward with the contribution; it would also be advised to run safety on GitHub Actions, since these CVEs for some reason were not detected by existing scans. [To Fix]
  • Apache-2.0 is used as repo license [Good]
  • There are 3 unidentified contributors, which hopefully you can identify for us; if they are going to contribute in the future, they must be covered by FINOS CLA. [To Identify]
  • All Citi maintainers are approved by EasyCLA criteria [Good]

CC @bansalr

TheJuanAndOnly99 avatar May 15 '25 14:05 TheJuanAndOnly99

Hi @bansalr any updates on the above?

TheJuanAndOnly99 avatar May 27 '25 08:05 TheJuanAndOnly99