dotnet-foundation / projects

This repository is used for onboarding new projects
113 stars 31 forks source link

Silk.NET graphics & compute library #115

Closed Perksey closed 3 years ago

Perksey commented 3 years ago

1.   General Information

Project Name: Silk.NET

License: MIT

Contributor (Company, Organization or individual name(s)): Ultz Limited

Existing OSS Project? (Yes/No): Yes

Source Code URL: https://github.com/Ultz/Silk.NET

Project Homepage URL (if different):

Project Transfer Signatories: Aaron Pearson - aaron@ultz.co.uk

Full legal name and email address required of the individual(s) with the authority to transfer or contribute the project to the .NET Foundation. Note that if you'd prefer not to include this in the public application, it can be submitted via e-mail to contact@dotnetfoundation.org (referencing this issue number).

2.   Description

Please provide a brief statement about your project in terms that are understandable to the target consumer of the library or project, i.e. an elevator pitch for the project:

Silk.NET is a high-performance, low-level wrapper over many native libraries that forms a one-stop-shop for .NET graphics and compute workloads, such as custom game/game engine development. Aiming to be the one library you need for multimedia, graphics, and compute applications; Silk.NET binds to many well-known native toolsets such as OpenGL, OpenAL, OpenCL, Vulkan, Assimp, GLFW, SDL, DirectX¹, Metal², and FEMFX². In addition to 1:1 bindings, Silk.NET provides high-level abstractions over multimedia windowing and input such that one common API layer may be used to seemlessly develop for a wide range of platforms such as Windows, Linux, macOS, Android, and iOS¹. The goal of Silk.NET is to bring high-speed graphics and compute to the .NET ecosystem, providing helpers to make use of the rich assortment of libraries and frameworks in the .NET space without the faff of going out of your way to support each one yourself.

1) Work in progress - 2) Planned

Please provide a 1 sentence (<140 character) summary of your project to help users when searching the .NET Foundation projects

Silk.NET is your one-stop-shop for high-speed graphics and compute workloads, bringing efficient bindings and abstractions for native APIs to the .NET ecosystem.

3.   Project Governance

Please complete this section about who will be maintaining the open source project and how it will run. Project Lead: (Who is the primary contact point for the community and the .NET Foundation when discussing governance of the project.)

Name: Dylan Perks Email: dylan@ultz.co.uk GitHub Profile URL: https://github.com/Perksey

Committers:

Which individuals have commit / write access to the repository, what is their GitHub ID and who is their employer (if contributions are on behalf of an employer)

Dylan Perks - @Perksey - Maintainer, Managing Director @Ultz Kai Jellinghaus - @HurricanKai - Maintainer, Student

Governance Model:

Silk.NET is governed by a working group which consists of its codeowners, as well as some external helpers which we consult with when making massively breaking changes to the library (like the 1.X->2.0 transition).

Silk.NET sees an assortment of contributors. However, few of the contributors are often actively engaged in Silk.NET development (primarily in the #team-talk channel of our Discord) and are not willing/able to make larger changes that help shape the wider Silk.NET library. Those who do consistently are identified as a potential maintainer, and with approval from the existing maintainers are invited to join the Silk.NET maintenance team.

CLA

If already an OSS project, was a Contribution License Agreement in place for contributions accepted? How does the project check who has signed one?

All Ultz repositories have mandated that contributors sign a Contributor License Agreement since 5th October 2019. Prior to that date, there were three contributors (@devvoid, @HurricanKai, and myself) who have all licensed their contributions to Ultz per the CLA after its introduction. CLA Assistant maintains a list of who has signed the CLAs, and informs new contributors to sign it prior to their pull requests being accepted.

CLA Notification Alias Provide an email address that will receive CLA related notifications from the .NET Foundation CLA automation

teamsilk.net@gmail.com

Assignment Model. Under the .NET Foundation assignment model, project ownership and other intellectual property is assigned to the .NET Foundation and the .NET Foundation agrees to grantback a license to the contributor(s).

Contribution Model. Under the .NET Foundation contribution model, a project retains ownership of the project, but grants the .NET Foundation a broad license to the project’s code and other intellectual property. The project also confirms that the project’s submissions to .NET Foundation are its own original work (there are also instructions for any third party materials that might be included).

The assignment model is preferred.

4.   Repository Layout

Layout shouldn't require changes, however the documentation is currently stored in the docs.ultz.co.uk repository and by the sounds of things a submodule setup would be preferred such that the documentation can be stored in the main repository.

5. Eligibility Criteria

Please complete the following for your project

6.   PR Plan

Please summarize the public relations plan for the announcement when joining the foundation (and releasing as open source if appropriate). What is the main story we wish to promote, through what channels, what issues should we be aware of?  For significant news events then please also work with your .NET Foundation contact to ensure a full PR plan is developed.

The message we'd like to convey to the community is that through the .NET Foundation we're strengthening our commitment to open source and provide assurance that Silk.NET is here to stay and will always be free and open source under a permissive license (people have had doubts to this because Ultz is a private company). Many libraries of this nature suffer inconsistency with regards to releases, or are out-of-date with regards to their upstream specifications. We believe that becoming a part of the .NET Foundation will allow us to solidify our commitment so that we're able to keep continuous progress with a strong backing and larger exposure to the flourishing .NET open source community.

The Silk.NET project is actively pursuing a New Years 2021 release date for 2.0, the largest Silk.NET update to date. Going forward, we'd like to adopt better means for communicating our rapid developments to the wider .NET community, be that through a blog, stand-up, etc. Currently, the primary way Silk.NET communicates with its community is via its Discord server and GitHub "announcements".

7.   Infrastructure Requirements

Please describe any infrastructure requirements for the project. For example, how will build servers be operated? Any web hosting or service hosting requirements? Do we need to set up SSL certificates or provide Authenticode Code Signing arrangement for releases?

8.   Additional Notes

Silk.NET is akin to similar projects such as SharpDX, OpenGL.NET, and OpenTK. Like most of these projects, Silk.NET aims to expose an easy-to-use bindings library and bridge between high-performance graphics and compute libraries, as well as provide abstractions where appropriate.

However, these projects have often suffered in lagging behind in .NET ecosystem-related and/or upstream-related elements. Unlike these projects, Silk.NET aims to remain fully up-to-date with monthly releases and its contributors actively participate in forming the upstream specifications and have a history of even improving upstream specs for the benefit of the .NET ecosystem. Silk.NET has achieved high acclaim due to its rapid development in an accelerated timeframe, and is recommended by many users (it's a "household name" in the C# Discord Server for instance). Moreover, Silk.NET's scope is significantly larger than these libraries and provides a more diverse set of bindings.

We'd like to continue these efforts, but we fear without backing we will suffer the contribution falloff and poor exposure that historically led to the problems with the aforementioned libraries.

Perksey commented 3 years ago

Thanks so much for accepting this application.

For reference, what is the .NET Foundation's holiday schedule this year? I appreciate there may be some delays over Christmas and the first part of the New Year, just want to gage when to expect to hear back and begin the process as I believe it should be a relatively easy onboarding (matching code of conduct, matching CLA which all contributors have signed, etc)

ChrisSfanos commented 3 years ago

Hello! I'll be handling the onboarding for the project. I'm on holiday until early January (officially) but may be online at a few points and will start the Agreement work if I can - thanks!

Perksey commented 3 years ago

Awesome, thanks. No rush, we can pick this up in the new year.

Have a good Christmas!

ChrisSfanos commented 3 years ago

Hi folks Sorry about not commenting earlier - we are working on some internal .NET Foundation questions around on-boarding in general which has delayed this effort. I haven't forgotten about this :-)

Perksey commented 3 years ago

Ah brill, thanks for the update! Looking forward to working through the process.

ChrisSfanos commented 3 years ago

Sorry everyone for the long delay - we are back on track for onboarding

CLA is out for signing

Perksey commented 3 years ago

Awesome, thanks for doing that and glad we're moving ahead!

I don't think Aaron received the CLA - I did, but Aaron's the one who needs to sign it and do the actual legal bit; I don't have the authority to sign legal agreements for Ultz but manage pretty much everything else.

ChrisSfanos commented 3 years ago

Ok I'll need to revoke the current CLA and create and resend a new one to Aaron - I'll do that in a few minutes

Perksey commented 3 years ago

Thanks, done. Apologies for this being a seemingly finicky one.

ChrisSfanos commented 3 years ago

Forgot to post the checklist - here it is:

CLA

Project Onboarding

ChrisSfanos commented 3 years ago

CLA is signed CLA bot instructions sent

Perksey commented 3 years ago

Per my email on 25/01/2021 which I believe Tanner forwarded along, is it possible to get the repo transferred somewhere else? (i.e. dotnet, dotnet-foundation, or whereever else the foundation deems fit)

Ideally before the CLA bot configuration because this seems invasive given we use GitHub for private development too.

Thanks!

ChrisSfanos commented 3 years ago

Hey @Perksey - yes, we can get it transferred to the dotnet org. I'd need Claire's help with that, but she's out on leave for a bit. Let me see what I can coordinate in the meantime

ChrisSfanos commented 3 years ago

Adding @jongalloway who has done this before and should be able to help

terrajobst commented 3 years ago

@Perksey I can help you with transferring the repo to the dotnet org. It would help if we could IM. Are you Twitter/Teams/Skype/Zoom?

Perksey commented 3 years ago

Sure, I'm on Twitter as @Dylan_Perks :)

terrajobst commented 3 years ago

Excellent, I DM'ed you on Twitter!

terrajobst commented 3 years ago

And done :-)

ChrisSfanos commented 3 years ago

Thanks Immo :-) I've also configured the CLA bot and emailed the remaining steps (Dylan has already completed a few)

terrajobst commented 3 years ago

Great, then I assume my work is done here.

@Perksey welcome to the dotnet org! :-)

ChrisSfanos commented 3 years ago

Added the project to the newsletter. Looks like all the on-boarding is wrapped up - Welcome to the .NET Foundation