Skip to content

Commit e50a6de

Browse files
authored
.NET Foundation Onboarding (#425)
* Update README.md * Update license headers * Update everything else including CoC * Update copyright notices based on guidance * Create .gitattributes * Use LF in BuildTools * Use LF everywhere * Update contributing guides for WIP -> draft PR
1 parent 6870656 commit e50a6de

File tree

5,446 files changed

+18725
-29468
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

5,446 files changed

+18725
-29468
lines changed

.gitattributes

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
###############################################################################
2+
# Set default behavior to:
3+
# treat as text and
4+
# normalize to Unix-style line endings
5+
###############################################################################
6+
* text=auto
7+
8+
###############################################################################
9+
# Set explicit file behavior to:
10+
# treat as text and
11+
# normalize to Unix-style line endings
12+
###############################################################################
13+
*.cmd text eol=lf
14+
*.config text eol=lf
15+
*.cs text eol=lf
16+
*.csproj text eol=lf
17+
*.hlsl text eol=lf
18+
*.json text eol=lf
19+
*.md text eol=lf
20+
*.props text eol=lf
21+
*.ps1 text eol=lf
22+
*.resx text eol=lf
23+
*.sh text eol=lf
24+
*.sln text eol=lf
25+
*.targets text eol=lf
26+
*.yml text eol=lf
27+
28+
###############################################################################
29+
# Set explicit file behavior to:
30+
# treat as text and
31+
# normalize to Windows-style line endings
32+
###############################################################################
33+
*.sln text eol=crlf
34+
35+
###############################################################################
36+
# Set explicit file behavior to:
37+
# treat as binary
38+
###############################################################################
39+
*.snk binary
40+
*.gz binary
41+
*.png binary
42+
*.p7s binary
43+
*.sample binary
44+
*.nupkg binary
45+
*.exe binary
46+
*.idx binary
47+
*.pack binary
48+
*.spv binary
49+
*.zip binary
50+
*.lib binary
51+
*.dylib binary
52+
*.so binary
53+
*.dll binary
54+
*.xcscheme binary
55+
*.xcworkspacedata binary
56+
*.pdf binary
57+
*.pfx binary
58+
*.metal binary
59+
*.jar binary
60+
*.apk binary
61+
*.aar binary
62+
*.aidl binary
63+
*.flata binary
64+
*.metallib binary
65+
*.items binary
66+
*.stamp binary
67+
*.icns binary
68+
*.mdb binary
69+
*.pdb binary
70+
*.bmp binary
71+
*.dat binary

CODE_OF_CONDUCT.md

Lines changed: 4 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,6 @@
1-
# Contributor Covenant Code of Conduct
1+
# Code of Conduct
22

3-
## Our Pledge
3+
This project has adopted the code of conduct defined by the Contributor Covenant
4+
to clarify expected behavior in our community.
45

5-
In the interest of fostering an open and welcoming environment, we as
6-
contributors and maintainers pledge to making participation in our project and
7-
our community a harassment-free experience for everyone, regardless of age, body
8-
size, disability, ethnicity, sex characteristics, gender identity and expression,
9-
level of experience, education, socio-economic status, nationality, personal
10-
appearance, race, religion, or sexual identity and orientation.
11-
12-
## Our Standards
13-
14-
Examples of behavior that contributes to creating a positive environment
15-
include:
16-
17-
* Using welcoming and inclusive language
18-
* Being respectful of differing viewpoints and experiences
19-
* Gracefully accepting constructive criticism
20-
* Focusing on what is best for the community
21-
* Showing empathy towards other community members
22-
23-
Examples of unacceptable behavior by participants include:
24-
25-
* The use of sexualized language or imagery and unwelcome sexual attention or
26-
advances
27-
* Trolling, insulting/derogatory comments, and personal or political attacks
28-
* Public or private harassment
29-
* Publishing others' private information, such as a physical or electronic
30-
address, without explicit permission
31-
* Other conduct which could reasonably be considered inappropriate in a
32-
professional setting
33-
34-
## Our Responsibilities
35-
36-
Project maintainers are responsible for clarifying the standards of acceptable
37-
behavior and are expected to take appropriate and fair corrective action in
38-
response to any instances of unacceptable behavior.
39-
40-
Project maintainers have the right and responsibility to remove, edit, or
41-
reject comments, commits, code, wiki edits, issues, and other contributions
42-
that are not aligned to this Code of Conduct, or to ban temporarily or
43-
permanently any contributor for other behaviors that they deem inappropriate,
44-
threatening, offensive, or harmful.
45-
46-
## Scope
47-
48-
This Code of Conduct applies both within project spaces and in public spaces
49-
when an individual is representing the project or its community. Examples of
50-
representing a project or community include using an official project e-mail
51-
address, posting via an official social media account, or acting as an appointed
52-
representative at an online or offline event. Representation of a project may be
53-
further defined and clarified by project maintainers.
54-
55-
## Enforcement
56-
57-
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58-
reported by contacting the project team at hello@ultz.co.uk. All
59-
complaints will be reviewed and investigated and will result in a response that
60-
is deemed necessary and appropriate to the circumstances. The project team is
61-
obligated to maintain confidentiality with regard to the reporter of an incident.
62-
Further details of specific enforcement policies may be posted separately.
63-
64-
Project maintainers who do not follow or enforce the Code of Conduct in good
65-
faith may face temporary or permanent repercussions as determined by other
66-
members of the project's leadership.
67-
68-
## Attribution
69-
70-
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71-
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72-
73-
[homepage]: https://www.contributor-covenant.org
74-
75-
For answers to common questions about this code of conduct, see
76-
https://www.contributor-covenant.org/faq
6+
For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).

CONTRIBUTING.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,23 @@ Silk.NET uses and encourages [Early Pull Requests](https://medium.com/practical-
3030
1. [Fork Silk.NET](https://github.com/Ultz/Silk.NET/fork)
3131
1. Create a branch on your fork.
3232
1. Add an empty commit to start your work off (and let you open a PR): `git commit --allow-empty -m "start of [thing you're working on]"`
33-
1. Open a Pull request with `[WIP]` in the title. Do this **before** you actually start working.
33+
1. Open a [**draft pull request**](https://github.blog/2019-02-14-introducing-draft-pull-requests/). Do this **before** you actually start working.
3434
1. Make your commits in small, incremental steps with clear descriptions.
3535
1. Tag a maintainer when you're done and ask for a review!
3636

3737
## "Help wanted" & "Good first issue"
3838
If the core team are unable to champion an issue, they will mark it with a "help wanted" label. This indicates that any external contributor may pick up on this issue and implement it as part of a contribution. However, some "help wanted" issues may require intermediate knowledge of the codebase, area, and/or ecosystem; or may have uncertainty surrounding implementation details (if this is the case talk to us in the Discord or in a discussion issue). Because of this, we also mark some issues with the label "good first issue" which indicates that an issue is straightforward, and is a good place to start if you're interested in contributing but new to the codebase.
3939

4040
## Contributor License Agreement
41-
You must sign a Contributor License Agreement (CLA) before your PR will be merged. This is a one-time requirement for Ultz projects, and you'll only have to do this once. You can read more about [Contribution License Agreements (CLAs) on Wikipedia](https://en.wikipedia.org/wiki/Contributor_License_Agreement).
41+
You must sign a Contributor License Agreement (CLA) before your PR will be merged. This is a one-time requirement for all .NET Foundation projects, and you'll only have to do this once. You can read more about [Contribution License Agreements (CLAs) on Wikipedia](https://en.wikipedia.org/wiki/Contributor_License_Agreement).
4242

4343
You don't have to do this up-front. You can simply clone, fork, and submit your pull-request as usual. When your pull-request is created, you'll be notified by the CLA bot of further instructions if necessary.
4444

4545
## File Headers
4646
The following file header is used for Silk.NET. Please use it for new files.
4747
```cs
48-
// This file is part of Silk.NET.
49-
//
50-
// You may modify and distribute Silk.NET under the terms
51-
// of the MIT license. See the LICENSE file for details.
48+
// Licensed to the .NET Foundation under one or more agreements.
49+
// The .NET Foundation licenses this file to you under the MIT license.
5250
```
5351

5452
## Pull requests

LICENSE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
MIT License
22

33
Copyright (c) 2019-2020 Ultz Limited
4+
Copyright (c) 2021- .NET Foundation and Contributors
45

56
Permission is hereby granted, free of charge, to any person obtaining a copy
67
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 67 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,93 @@
1-
# Silk.NET
2-
[![NuGet Version](https://img.shields.io/nuget/v/Silk.NET)](https://nuget.org/packages/Silk.NET) [![Preview Feed](https://img.shields.io/badge/nuget-experimental%20feed-yellow)](https://dev.azure.com/UltzOS/Silk.NET/_packaging?_a=feed&feed=Experimental) [![CI Build](https://github.com/Ultz/Silk.NET/workflows/CI%20Build/badge.svg)](https://dev.azure.com/UltzOS/Silk.NET/_build/latest?definitionId=2&branchName=master) [![Join our Discord](https://img.shields.io/badge/chat%20on-discord-7289DA)](https://discord.gg/DTHHXRt)
1+
<h1 align="center">
2+
<a href="#"><img align="center" src="documentation/readme/wordmark480.png" height="96"></a>
3+
<br />
4+
</h1>
5+
<div align="center">
36

4-
Silk.NET is a high-speed, advanced library, providing bindings to popular low-level APIs such as OpenGL and OpenAL. Use Silk.NET to add cross-platform 3D graphics, audio, compute and haptics to your C# application.
7+
[![NuGet Version](https://img.shields.io/nuget/v/Silk.NET)](https://nuget.org/packages/Silk.NET)
8+
[![Preview Feed](https://img.shields.io/badge/nuget-experimental%20feed-yellow)](https://dev.azure.com/UltzOS/Silk.NET/_packaging?_a=feed&feed=Experimental)
9+
[![CI Build](https://github.com/Ultz/Silk.NET/workflows/CI%20Build/badge.svg)](https://github.com/dotnet/Silk.NET/actions/workflows/build.yml)
10+
[![Join our Discord](https://img.shields.io/badge/chat%20on-discord-7289DA)](https://discord.gg/DTHHXRt)
511

6-
Silk.NET works on any .NET Standard 2.0 compliant platform. This includes Xamarin, .NET Framework 4.6.1+, and .NET Core 2.0+.
12+
</div>
713

8-
# Features
9-
- **Performance**: We use lesser-known techniques for our native interop which makes our bindings blazing fast.
10-
- **Up-to-date**: We've built Silk.NET around the latest versions of the Khronos specifications. This means that Silk.NET includes OpenGL 4.6, OpenGLES 3.2, Vulkan 1.2 (and its **NVIDIA and KHR ray-tracing** extensions), and more.
11-
- **High-level utilities**: We provide high-level abstractions around Windowing and Input APIs, which means your apps can run on any platform without changing a single line.
12-
- **Game-ready**: Making games or game engines with Silk.NET is a breeze as you already have everything a game needs - Graphics, Audio, Input, and Windowing; all in one product!
14+
<div>
15+
16+
Silk.NET is your one-stop-shop for high-speed .NET multimedia, graphics, and compute; providing bindings to popular low-level APIs such as OpenGL, OpenCL, OpenAL, OpenXR, GLFW, SDL, Vulkan, Assimp, and DirectX.
17+
18+
Use Silk.NET to spruce up applications with cross-platform 3D graphics, audio, compute and haptics!
19+
20+
Silk.NET works on any .NET Standard 2.0 compliant platform, including .NET 5.0, Xamarin, .NET Framework 4.6.1+, and .NET Core 2.0+.
21+
22+
</div>
23+
<br />
24+
<div>
25+
<a href="https://dotnetfoundation.org" align="right"><img src="https://dotnetfoundation.org/img/logo_v4.svg" alt=".NET Foundation" class="logo-footer" width="72" align="left">
26+
<a><br/>
27+
Proud to be an official project under the benevolent <a href="https://dotnetfoundation.org">.NET Foundation</a> umbrella. </a>
28+
</div>
29+
30+
<br />
31+
32+
<h1 align="center">Features</h1>
33+
34+
### Performance
35+
Having poured lots of hours into examining generated C# code and its JIT assembly, you can count on us to deliver blazing fast bindings with negligible overhead induced by Silk.NET!
36+
37+
### Up-to-date
38+
With an efficient bindings regeneration mechanism, we are committed to ensuring our bindings reflect the latest specifications with monthly updates generated straight from the upstream sources.
39+
40+
### High-level utilities
41+
In addition to providing high-speed, direct, and transparent bindings, we provide high-level utilities and wrappers to maximise productivity in common workloads such as platform-agnostic abstractions around Windowing and Input, bringing your apps to a vast number of platforms without changing a single line!
42+
43+
### Good-to-go
44+
Silk.NET caters for anything you could need in swift development of multimedia, graphics, compute applications. Silk.NET is an all-in-one solution, complete with Graphics, Compute, Audio, Input, and Windowing.
45+
46+
<h1 align="center">The team</h1>
1347

14-
# The team
1548
We currently have the following maintainers:
1649
- [Dylan P.](https://github.com/Perksey) from [Ultz](https://github.com/Ultz)
1750
- [Kai J.](https://github.com/HurricanKai) from the open-source community
1851

19-
As well as some helpers from the community:
20-
- [Vivian J.](https://github.com/devvoid) - a community member who basically wrote half the library.
21-
- [Maximiliano L.](https://github.com/maxilevi) - developer of [Project Hedra](https://projecthedra.com/) using Silk.NET.
22-
- [Aaron P.](https://github.com/AzyIsCool) - director at [Ultz](https://github.com/Ultz).
23-
- [Frederik A.](https://github.com/frederikja163) - imparting knowledge on those using Silk.NET.
24-
- [Robert S.](https://github.com/Pyrdacor) - developer of [freeserf.net](https://github.com/Pyrdacor/freeserf.net) and lead developer of [Silk UI](https://github.com/Ultz/SilkUI)
52+
In addition, the Silk.NET working group help drive larger user-facing changes providing key consultation from the perspective of dedicated users and professionals.
2553

26-
# Building from source
54+
<h1 align="center">Building from source</h1>
2755

2856
- Make sure you have at least the .NET 5 SDK installed, preferably with Visual Studio's .NET Framework and Xamarin workloads too.
2957
- Clone the repository
3058
- Run build.sh, build.cmd, build.ps1, or `nuke build`. To build for iOS and Android, add the `--feature-sets ios android` arguments.
3159

32-
# Contributing
60+
There are more advanced build actions you can do too, such as FullBuild, Pack, FullPack, among others which you can view by doing `nuke --plan`.
61+
62+
Some projects may not build properly without being configured to use Desktop MSBuild (i.e. the MSBuild shipped with Visual Studio). As a result, you will ideally need to be on Windows and have Visual Studio 2019 Community (or greater) installed with .NET Core and Xamarin workloads. If you don't have this (i.e. because you're on Linux or Mac), you can still develop Silk.NET in a limited capacity but you will not be able to work on mobile workloads.
63+
64+
<h1 align="center">Contributing</h1>
3365

3466
Silk.NET uses and encourages [Early Pull Requests](https://medium.com/practical-blend/pull-request-first-f6bb667a9b6). Please don't wait until you're done to open a PR!
3567

36-
1. Install [Git](https://git-scm.com/downloads) and the [.NET Core SDK](https://www.microsoft.com/net/download)
3768
1. [Fork Silk.NET](https://github.com/Ultz/Silk.NET/fork)
38-
1. Create a branch on your fork.
39-
1. Add an empty commit to start your work off (and let you open a PR): `git commit --allow-empty -m "start of [thing you're working on]"`
40-
1. Open a Pull request with `[WIP]` in the title. Do this **before** you actually start working.
41-
1. Make your commits in small, incremental steps with clear descriptions.
42-
1. Tag a maintainer when you're done and ask for a review!
69+
2. Add an empty commit to a new branch to start your work off: `git commit --allow-empty -m "start of [thing you're working on]"`
70+
3. Once you've pushed a commit, open a [**draft pull request**](https://github.blog/2019-02-14-introducing-draft-pull-requests/). Do this **before** you actually start working.
71+
4. Make your commits in small, incremental steps with clear descriptions.
72+
5. Tag a maintainer when you're done and ask for a review!
4373

44-
Some projects may not build properly without being configured to use Desktop MSBuild (i.e. the MSBuild shipped with Visual Studio). As a result, you will ideally need to be on Windows and have Visual Studio 2019 Community (or greater) installed with .NET Core and Xamarin workloads. If you don't have this (i.e. because you're on Linux or Mac), you can still develop Silk.NET in a limited capacity but you will not be able to work on mobile workloads.
74+
<h1 align="center">Further resources</h1>
4575

46-
# Documentation
76+
- Several examples can be found in the [examples folder](https://github.com/Ultz/Silk.NET/tree/master/examples)
77+
- Come chat with us on [Discord](https://discord.gg/DTHHXRt)!
4778

48-
Nothing here yet, but don't worry - we're working on it.
79+
<h1 align="center">Licensing and governance</h1>
4980

50-
Several examples can be found in the `examples` folder.
81+
Silk.NET is distributed under the very permissive MIT/X11 license and all dependencies are distributed under MIT-compatible licenses.
5182

52-
You can find the Lab in the `src/Lab` folder. While many of these projects demonstrate functionality of Silk, these are intended more as experiments and tests for the library itself, and often demonstrate bad programming practices. Use with caution!
83+
Silk.NET is a [.NET Foundation](https://www.dotnetfoundation.org/projects) project, and has adopted the code of conduct defined by the [Contributor Covenant](http://contributor-covenant.org/) to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](http://www.dotnetfoundation.org/code-of-conduct).
5384

54-
# Join the conversation
85+
---
5586

56-
Come chat with us on [Discord](https://discord.gg/DTHHXRt)!
87+
<div>
88+
<a href="https://www.jetbrains.com/?from=Silk.NET" align="right"><img src="documentation/readme/jetbrains.svg" alt="JetBrains" class="logo-footer" width="72" align="left">
89+
<a><br/>
90+
91+
Special thanks to [JetBrains](https://www.jetbrains.com/?from=Silk.NET) for supporting us with open-source licenses for their IDEs. </a>
92+
</div>
5793

58-
# License
59-
Silk.NET is distributed under the very permissive MIT/X11 license and all dependencies are distributed under MIT-compatible licenses.

Silk.NET.sln.DotSettings

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@
1111
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_WHILE/@EntryValue">Required</s:String>
1212
<s:String x:Key="/Default/CodeStyle/CodeFormatting/XmlDocFormatter/IndentSubtags/@EntryValue">DoNotTouch</s:String>
1313
<s:String x:Key="/Default/CodeStyle/CodeFormatting/XmlDocFormatter/IndentTagContent/@EntryValue">DoNotTouch</s:String>
14-
<s:String x:Key="/Default/CodeStyle/FileHeader/FileHeaderText/@EntryValue">This file is part of Silk.NET.&#xD;
15-
&#xD;
16-
You may modify and distribute Silk.NET under the terms&#xD;
17-
of the MIT license. See the LICENSE file for details.&#xD;
14+
<s:String x:Key="/Default/CodeStyle/FileHeader/FileHeaderText/@EntryValue">Licensed to the .NET Foundation under one or more agreements.&#xD;
15+
The .NET Foundation licenses this file to you under the MIT license.&#xD;
1816
</s:String>
1917
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=API/@EntryIndexedValue">API</s:String>
2018
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CL/@EntryIndexedValue">CL</s:String>

build/LICENSE_HEADER.txt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
1-
// This file is part of Silk.NET.
2-
//
3-
// You may modify and distribute Silk.NET under the terms
4-
// of the MIT license. See the LICENSE file for details.
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.

0 commit comments

Comments
 (0)