Closed timkpaine closed 7 months ago
Thanks for this @timkpaine , it seems a very interesting contribution! We'll start working on this and reach out to organize a demo to our Technical Steering Committee. Apologies for the late response, we're very busy wrapping all up for https://www.finos.org/hosted-events/2022-12-08-open-source-in-finance-forum-new-york
@ColinEberhardt not sure what you think but seems like a demo of this would be overkill. I think the relevant contribution principles are also satisfied based on interest from two member firms. @mindthegab @jgavronsky I don't know whether the proposal of a new "track" is part of the TSC remit or not?
@ColinEberhardt and I are going to discuss with @mindthegab and @jgavronsky tomorrow... will get back to you @jonfreedman
@jonfreedman @ColinEberhardt @finos/technical-steering-committee
I'd like to get a formal +1 from the TSC to at least accept the contribution of the https://github.com/jpmorganchase/jupyterlab_templates and then after contribution we can discuss the creation of a new SIG (Special Interest Group) which I believe would be the closest to the concept of "track" that @timkpaine has proposed.
We have some degree of urgency here (happy to chat 1:1) to complete this before the holidays, so also happy to work by slient consensus given there's already a general support for the project (2 firms involved, mature, etc).
Can we have a couple of +1s here?
Just checked (again) CVE and license scanning, all good (see below)
# Install production dependencies from the lockfile
cd js ; yarn install --frozen-lockfile --production
# License scanning; all identified licenses are compatible with (outbound) Apache 2.0 license
node-license-validator . --allow-licenses Apache-2.0 MIT BSD-2-Clause BSD-3-Clause ISC
# CVE scanning, no CVEs found
npx --yes auditjs ossi
# Generate requirements.txt and install scanning libs
poetry export --without-hashes -f requirements.txt --output requirements.txt
pip install safety pip-licenses
# CVE scanning, 0 vulnerabilities found, 0 vulnerabilities ignored
safety check --full-report -r requirements.txt
# License scanning; all identified licenses are compatible with (outbound) Apache 2.0 license
pip-licenses --allow-only="MIT License; BSD License; Apache Software License; Mozilla Public License 2.0 (MPL 2.0)"
I also noticed that Makefile facilitates the use of semgrep, but it's not invoked by any Github Action, as far as I see ; it could be helpful to run Semgrep periodically and on code changes via Github Actions.
This is a recap of what's missing - @TheJuanAndOnly99 , could you please work on the following items and submit a Pull Request?
@finos
scope to https://github.com/finos/jupyterlab_templates/blob/main/js/package.json#L2 (see https://www.npmjs.com/package/jupyterlab_templates )Reviewed item as TOC member, I see no issues with progressing forward.
Hey @psmulovics thanks for the comment. We've actually stumbled into a bit of a "dispute" as the JupyterLab Templates maintainers believe that adding the @finos scope to the package name would be disruptive as it is already a popular/widely used package. We are going to bring this up to the FINOS TOC at the next meeting for resolution.
It has been allowed in some other cases as well to miss the scope and use tags, a good example is https://www.nuget.org/packages?q=Tags%3A%22finos%22 - only one package has the actual @finos scope in the name, the rest is using it as a tag.
All contribution activities have been completed. We can safely close this issue. Congratulations to the team!
JupyterLab Templates - Software Project Contribution and Onboarding
I'd like to propose a new track for FINOS around Jupyter Notebooks and their related tools. As Jupyter has become the de-facto standard tool for data science around the world, it has also found its way into the hands of buy and sell side business analysts, traders, and quantitative researchers. Coding has become an essential tool for finance and has begun to unseat excel as the data analysis tool of choice for the industry.
Additionally, as more and more financial organizations begin to explore open source, Jupyter ecosystem tooling has become a popular avenue for participation. Here is a brief survey of the open source presence of some buy and sell side institutions, and one can see the presence of numerous Jupyter ecosystem projects:
Additionally, it is my understanding that JP Morgan, Two Sigma, and Bloomberg have employed Jupyter core maintainers as employees, and numerous other financial organizations have contributed directly to Jupyter projects.
Currently, I maintain 4 Jupyter-based projects under the JP Morgan GitHub organization, as well as Perspective under the FINOS organization (which also features a Jupyter widget as a core aspect of its functionality). These projects are currently being actively used by many financial institutions and FINOS member organizations, and I believe the establishment of a new track for Jupyter ecosystem projects will help foster wider collaboration. I have several projects ready for incubation under this new track should it be adopted.
As an inaugural project, I’d like to propose the JupyterLab Templates project. This is a relatively established and widely used project that would benefit from incubation in FINOS, and allow for further collaboration across the open source member ecosystem.
Business Problem
Jupyter notebooks are the de facto standard tool for data scientists, quantitative researchers, and business analysts. Often times, they want to work from standard project templates. As an example, a risk quant might want a set of standard notebooks that they can quickly create, fill in a few details, and run. An analysts might want a “company profile” notebook they can quickly instantiate, fill in a company name, and generate a report. The first building block of these is the ability to package and distribute template notebooks, which is the functionality provided by the JupyterLab Templates library.
Solution
The JupyterLab Templates file lets you collect and install a collection of notebooks as part of your python (or other) package. It then integrates with the JupyterLab user interface to provide a new notebook card called “Template Notebook”. Clicking on this provides a browser which the user can use to select amongst any of the preinstalled notebook templates.
Roadmap
There is a tentative roadmap in the project issues (https://github.com/jpmorganchase/jupyterlab_templates/issues). Immediate goals for the project are to reimplement the UI to be more intuitive and allow for better searching/filtering, to allow for bundled/tarball/git remote templates, integrate a notebook template with its runnable environment for reproducibility, and evangelize the notebook templates project to encourage greater participation amongst open source projects.
Current State
Project is actively maintained by at least 2 employees of FINOS members. Project has 300 stars and ~9000 monthly downloads.
Existing materials
https://github.com/jpmorganchase/jupyterlab_templates
Development team
@timkpaine @vidartf (here and there) @neilslinger (oversight)
Contributor Commitment
@timkpaine will actively maintain this project for the foreseeable future, with collaboration from JP Morgan.
Confirmed contributors
@timkpaine / @Point72 / timothy.paine@cubistsystematic.com
Target Contributors
Any and all, including those not affiliated with FINOS or involved in finance (I regularly receive feedback via email from academic and non-financial industry users).
Project Communication Channel(s)
Just GitHub issues
Infrastructure needs
None, just GitHub
Understanding FINOS Onboarding Requirements
As a project onboarding into FINOS, you will need to familiarize yourself and your contributor team with the following materials:
2. FINOS Approval
Below is the list of tasks that the FINOS Team go through in order to complete the FINOS approval process. At this point, a FINOS Point-of-Contact (POC) should be assigned to this GitHub issue.
Please do not edit these contents when completing part 1, "describing the contribution" above.
Record The Contribution
Kick-off meeting
FINOS Contrib POC
Proposal (Lead Maintainer)
[x] Lead maintainer to send out announcement to community@finos.org using this template:
Technical Steering Committee Approval
ready-for-tsc
labelTSC Findings / Report
TSC to enter findings summary here.
3. Preparing For Onboarding
Before the FINOS team can onboard your project, there are a few housekeeping that need to be taken care of. These must be completed by the contributor, with help if required from the POC or FINOS Infra.
Logo / Trademarks
[help@finos.org](mailto:help@finos.org)
(if needed)Coding Standards
FINOS Project Standards
CONTRIBUTING.md
- missing Governance and other contents, see FINOS blueprint versionLICENSE
(replace{}
placeholders)Add documentation here
4. FINOS Onboarding
This is performed by FINOS Infra once the three previous stages are complete, with support from the contributor and the FINOS POC.
Maintainers, Contributors and CLAs
Validation (only if code is contributed)
Code transfer
Admin
to all repositories to transfer<project-name>-maintainers
GitHub team and invite usersfinos-admins
(Maintain
role) andfinos-staff
(Triage
role) team permissionsProject Communication Channel(s)
Infra setup
staging
branch onfinos/finos-landscape
finos/metadata
changes on master (will udpdatelandscape.yml
infinos/finos-landscape
)staging
branch onfinos/finos-landscape
@finos
scope to https://github.com/finos/jupyterlab_templates/blob/main/js/package.json#L2 (see https://www.npmjs.com/package/jupyterlab_templates ) (project leads consider this disruptive for existing consumers, won't fix)Require a pull request before merging
)5. Announcement
(Lead: FINOS Contrib POC)
DISCLAIMER: This e-mail message and any attachments are intended solely for the use of the individual or entity to which it is addressed and may contain information that is confidential or legally privileged. If you are not the intended recipient, you are hereby notified that any dissemination, distribution, copying or other use of this message or its attachments is strictly prohibited. If you have received this message in error, please notify the sender immediately and permanently delete this message and any attachments.