Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
358 changes: 39 additions & 319 deletions LICENSE.txt

Large diffs are not rendered by default.

95 changes: 95 additions & 0 deletions LICENSING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# Licensing and attribution

## Website implementation and effective revision

The original ASP.NET/Blazor website implementation, tests, and build and
configuration code are offered under the [MIT license](LICENSE.txt), beginning
with the revision that introduces this license change. This includes the
implementation as distributed in that revision and subsequent changes to it.
Earlier revisions retain their existing licenses. No previously granted
Creative Commons permissions are revoked, and this change does not relicense
third-party works or documentation adaptations under MIT.

Copyright in contributions remains with their respective holders. The
maintainer has confirmed authorization for the original website code and written
relicensing consent from Decryptedchaos for their UI contributions.

## Documentation and media

`Redot-Documentation/docs/` is excluded from the website MIT grant. Unless a
more specific notice applies, its content is licensed under Creative Commons
Attribution 3.0 Unported ([CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)).
The original, complete license text is preserved in
[docs/LICENSE.txt](Redot-Documentation/docs/LICENSE.txt).

Attribution: **the Redot community, modified from an original work by Juan
Linietsky, Ariel Manzur and the Godot community**. The original work is
[Godot Engine documentation](https://docs.godotengine.org/), whose
[source repository](https://github.com/godotengine/godot-docs) supplies the
upstream licensing notice. See also [GODOT_AUTHORS.md](GODOT_AUTHORS.md) and
[REDOT_AUTHORS.md](REDOT_AUTHORS.md); these documentation attribution records
remain under CC BY 3.0 and are not included in the website MIT grant.

Redot adapted this documentation for its engine and converted its format from
Sphinx/reStructuredText to MDX for Docusaurus, then to Markdown rendered by
ASP.NET/Blazor. Further edits are recorded in repository history. This
attribution does not imply endorsement by the original authors.

Images and videos **anywhere** under `Redot-Documentation/wwwroot/` are also
excluded from the website MIT grant, including `img/`, `video/`, `Icons/`,
`docs_logo.svg`, and `favicon.png`. Media imported from the documentation retains
CC BY 3.0 unless otherwise noted; separately licensed assets retain their own
terms. Existing credits in pages, captions, SVG metadata, and adjacent notices
must be preserved. The exclusion itself does not grant a new license to an
asset or resolve missing provenance. See
[the media notice](Redot-Documentation/wwwroot/MEDIA-LICENSES.txt).

## Engine class reference

The class reference is generated from `doc/classes/*.xml` and
`modules/*/doc_classes/*.xml` in
[Redot Engine](https://github.com/Redot-Engine/redot-engine), including copies
stored in the configurable class-documentation cache. It is separate from the
CC-licensed manual and retains the upstream MIT license:

- Copyright (c) 2024-present Redot Engine contributors (see upstream REDOT_AUTHORS.md).
- Copyright (c) 2014-present Godot Engine contributors (see upstream AUTHORS.md).
- Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.

The [full upstream notice](Redot-Documentation/wwwroot/licenses/REDOT-ENGINE-MIT.txt)
is bundled with the site. Upstream author lists are available in the
[Redot](https://github.com/Redot-Engine/redot-engine/blob/master/REDOT_AUTHORS.md)
and [Godot](https://github.com/Redot-Engine/redot-engine/blob/master/AUTHORS.md)
files in that repository. Preserve any more specific source notices. If the
class source is changed to another repository, review and update its attribution
and license notices before distributing the resulting reference.

## Third-party software and assets

The website MIT grant does not replace any dependency's license.

| Bundled material | License and notice |
| --- | --- |
| `Redot-Documentation/wwwroot/lib/bootstrap/` (Bootstrap 5.3.3) | MIT, Copyright (c) 2011-2024 The Bootstrap Authors; [full text](Redot-Documentation/wwwroot/lib/bootstrap/LICENSE.txt) |
| `Redot-Documentation/wwwroot/lib/prism/` (Prism) | MIT, Copyright (c) 2012 Lea Verou; [full text](Redot-Documentation/wwwroot/lib/prism/LICENSE.txt) |
| `Redot-Documentation/wwwroot/Icons/Font-Awesome/` | Font Awesome Free: icons CC BY 4.0, fonts SIL OFL 1.1, code MIT, as applicable; [original notice](Redot-Documentation/wwwroot/Icons/Font-Awesome/LICENSE.txt) |
| Markdig 0.41.3 | BSD-2-Clause, Copyright (c) 2018-2019 Alexandre Mutel; [full text](Redot-Documentation/wwwroot/licenses/MARKDIG-BSD-2-CLAUSE.txt), retrieved from the package's source revision `7ff8db9016593b71f9ae17d9b2b053fbd54e9cdf` |
| .NET/ASP.NET Core and WebAssembly runtime assets | [MIT license](Redot-Documentation/wwwroot/licenses/DOTNET-MIT.txt), [.NET third-party notices](Redot-Documentation/wwwroot/licenses/DOTNET-THIRD-PARTY-NOTICES.txt), and [ASP.NET Core third-party notices](Redot-Documentation/wwwroot/licenses/ASPNETCORE-THIRD-PARTY-NOTICES.txt) |

The bundled .NET notices were copied from the restored
`Microsoft.NETCore.App.Runtime.Mono.browser-wasm` 10.0.1 and
`Microsoft.AspNetCore.Components.WebAssembly` 10.0.7 packages. Review these
notices when upgrading dependencies. Other packages, including development-only
test tools, retain their own package licenses.

Full license notices are included in publish output and Docker deployments.
The manual and class-reference viewers link to `/licenses`, which exposes the
applicable attribution and full texts without requiring access to GitHub.

## Contributions

Contribute website implementation changes under MIT; contribute manual changes
under CC BY 3.0 unless the affected material has a more specific license. New
media must include its source, author, license, and any modification notice in
the relevant page or an adjacent notice. Preserve third-party notices and do
not assume that an asset becomes MIT merely because it is used by the website.
18 changes: 14 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,18 @@ The included Dockerfile installs Git and declares `/app/App_Data/class-docs` as

## License

With the exception of the `classes/` folder, all the content of this repository is licensed under the Creative Commons Attribution
3.0 Unported license ([CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)) and is to be attributed to "the Redot community, modified from an original work by Juan Linietsky, Ariel Manzur and the Godot community".
See [LICENSE.txt](/LICENSE.txt) for details.
The website implementation is licensed under [MIT](LICENSE.txt), beginning with
the revision introducing this license change. Earlier revisions retain their
existing licenses; previously granted CC permissions are not revoked.

The files in the `classes/` folder are derived from [Redot's main source repository](https://github.com/redot-engine/redot) and are distributed under the MIT license, with the same authors as above.
Documentation in `Redot-Documentation/docs/` remains **CC BY 3.0 unless otherwise
noted**. Images and videos anywhere under `Redot-Documentation/wwwroot/` retain
their existing licenses. These are excluded from the website's MIT grant, as are
third-party libraries and assets.

The class reference is synchronized from [Redot Engine](https://github.com/Redot-Engine/redot-engine)
and retains its upstream MIT license and copyright notices.

See [LICENSING.md](LICENSING.md) for the complete scope, attribution, bundled
third-party notices, and contribution terms. The deployed site's `/licenses`
page provides the same distinctions and links to full license texts.
45 changes: 45 additions & 0 deletions Redot-Documentation-Tests/ClassDocumentationComponentTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,50 @@ public sealed class ClassDocumentationComponentTests : IDisposable
{
private readonly string _root = Path.Combine(Path.GetTempPath(), $"redot-component-tests-{Guid.NewGuid():N}");

[Theory]
[InlineData(null)]
[InlineData("Node")]
public async Task ClassReference_IncludesUpstreamMitAttribution(string? className)
{
using var services = CreateServices();
var manager = services.GetRequiredService<VersionManagerService>();
services.GetRequiredService<ClassDocumentationCatalog>().Publish(new(
manager.LatestStableVersion, "test-revision", DateTimeOffset.UtcNow,
new Dictionary<string, ClassDocumentationEntry> { ["Node"] = new() { Name = "Node" } }));
await using var renderer = new TestRenderer(services);
int id = await renderer.Dispatcher.InvokeAsync(() => renderer.RenderAsync(typeof(ClassDocViewer),
ParameterView.FromDictionary(new Dictionary<string, object?>
{
["VersionSlug"] = "26.1",
["ClassName"] = className
})));

string text = await renderer.Dispatcher.InvokeAsync(() => renderer.Text(id));
Assert.Contains("MIT license", text);
Assert.Contains("Godot Engine contributors", text);
Assert.Contains("Juan Linietsky, Ariel Manzur", text);
Assert.DoesNotContain("CC BY 3.0", text);
Assert.Empty(renderer.Errors);
}

[Fact]
public async Task Manual_IncludesCcAttributionAndModificationNotice()
{
using var services = CreateServices();
File.WriteAllText(Path.Combine(_root, "docs", "26.1", "example.md"), "# Example");
await using var renderer = new TestRenderer(services);
int id = await renderer.Dispatcher.InvokeAsync(() => renderer.RenderAsync(typeof(DocViewer),
ParameterView.FromDictionary(new Dictionary<string, object?> { ["DocumentPath"] = "26.1/example" })));

string text = await renderer.Dispatcher.InvokeAsync(() => renderer.Text(id));
Assert.Contains("CC BY 3.0", text);
Assert.Contains("Juan Linietsky, Ariel Manzur and the Godot community", text);
Assert.Contains("modified from", text);
Assert.Contains("Sphinx/reStructuredText", text);
Assert.DoesNotContain("MIT license", text);
Assert.Empty(renderer.Errors);
}

[Theory]
[InlineData(typeof(NavMenu), null)]
[InlineData(typeof(ClassDocViewer), null)]
Expand Down Expand Up @@ -78,6 +122,7 @@ private ServiceProvider CreateServices()
var manager = new VersionManagerService(new TestEnvironment(_root));
manager.LoadContent();
return new ServiceCollection().AddLogging()
.AddSingleton<DocRendererService>(new DocRendererService(new TestEnvironment(_root)))
.AddSingleton(manager)
.AddSingleton<ClassDocumentationCatalog>()
.AddSingleton<ClassDocumentationRenderer>()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<footer class="documentation-attribution" aria-label="Documentation license">
@if (ClassReference)
{
<p>
Class reference from <a href="https://github.com/Redot-Engine/redot-engine">Redot Engine</a>,
licensed under the <a href="/licenses/REDOT-ENGINE-MIT.txt" rel="license">MIT license</a>.
Copyright © 2024-present Redot Engine contributors,
© 2014-present Godot Engine contributors, and
© 2007-2014 Juan Linietsky, Ariel Manzur.
</p>
}
else
{
<p>
Except where otherwise noted, documentation is licensed under
<a href="https://creativecommons.org/licenses/by/3.0/" rel="license">CC BY 3.0</a>.
Credit: the Redot community, modified from
<a href="https://docs.godotengine.org/">Godot Engine documentation</a>
by Juan Linietsky, Ariel Manzur and the Godot community.
Adapted for Redot, converted from Sphinx/reStructuredText through MDX to Markdown,
and edited for this site.
</p>
}
<p><a href="/licenses">Licenses, authors, and third-party notices</a></p>
</footer>

@code {
[Parameter]
public bool ClassReference { get; set; }
}
2 changes: 2 additions & 0 deletions Redot-Documentation/Components/Pages/ClassDocViewer.razor
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ else if (!string.IsNullOrWhiteSpace(ClassName))
{
<div class="doc-viewer-content class-doc-viewer">
@((MarkupString)Renderer.RenderPage(_classDocumentation, _snapshot))
<DocumentationAttribution ClassReference="true" />
</div>
}
}
Expand Down Expand Up @@ -72,6 +73,7 @@ else
</section>
}
}
<DocumentationAttribution ClassReference="true" />
</div>
}

Expand Down
1 change: 1 addition & 0 deletions Redot-Documentation/Components/Pages/DocViewer.razor
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ else
<div class="doc-viewer-layout">
<article class="doc-viewer-content">
@((MarkupString)renderedHtml)
<DocumentationAttribution />
</article>

@if (tableOfContents.Count > 0)
Expand Down
61 changes: 61 additions & 0 deletions Redot-Documentation/Components/Pages/Licenses.razor
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
@page "/licenses"
@layout MainLayout

<PageTitle>Licenses and attribution</PageTitle>

<div class="doc-viewer-content">
<h1>Licenses and attribution</h1>

<h2>Website code</h2>
<p>
The original website implementation is copyright Redot Engine contributors
and licensed under <a href="/licenses/WEBSITE-MIT.txt" rel="license">MIT</a>,
beginning with the revision introducing that license. Earlier revisions retain
their existing licenses, and previously granted Creative Commons permissions remain in effect.
Documentation, media, and third-party material are excluded from this MIT grant.
</p>

<h2>Manual and tutorials</h2>
<p>
Unless otherwise noted, the manual and tutorials are licensed under
<a href="https://creativecommons.org/licenses/by/3.0/" rel="license">Creative Commons Attribution 3.0 Unported</a>
(<a href="/licenses/CC-BY-3.0.txt">full license text</a>).
Credit: the Redot community, modified from an original work by Juan Linietsky,
Ariel Manzur and the Godot community.
The original work is <a href="https://docs.godotengine.org/">Godot Engine documentation</a>
(<a href="https://github.com/godotengine/godot-docs">source</a>).
</p>
<p>
Redot adapted this work for its engine, converted it from Sphinx/reStructuredText
to Markdown for ASP.NET/Blazor, and made further edits. See the documentation author lists for
<a href="/licenses/GODOT_AUTHORS.md">Godot</a> and <a href="/licenses/REDOT_AUTHORS.md">Redot</a>.
Attribution does not imply endorsement by the original authors.
</p>

<h2>Class reference</h2>
<p>
The class reference is generated from the core and module XML documentation in
<a href="https://github.com/Redot-Engine/redot-engine">Redot Engine</a> and retains
its <a href="/licenses/REDOT-ENGINE-MIT.txt" rel="license">full upstream MIT license</a>.
</p>
<ul>
<li>Copyright © 2024-present Redot Engine contributors (<a href="https://github.com/Redot-Engine/redot-engine/blob/master/REDOT_AUTHORS.md">authors</a>).</li>
<li>Copyright © 2014-present Godot Engine contributors (<a href="https://github.com/Redot-Engine/redot-engine/blob/master/AUTHORS.md">authors</a>).</li>
<li>Copyright © 2007-2014 Juan Linietsky, Ariel Manzur.</li>
</ul>

<h2>Media and third-party material</h2>
<p>
Images, videos, logos, and icons retain their existing licenses. Documentation
media is CC BY 3.0 unless otherwise noted; asset-specific notices take precedence.
See the <a href="/MEDIA-LICENSES.txt">media notice</a> and credits in the relevant pages.
</p>
<ul>
<li><a href="https://getbootstrap.com/">Bootstrap</a>: Copyright © 2011-2024 The Bootstrap Authors, <a href="/lib/bootstrap/LICENSE.txt">MIT license</a>.</li>
<li><a href="https://prismjs.com/">Prism</a>: Copyright © 2012 Lea Verou, <a href="/lib/prism/LICENSE.txt">MIT license</a>.</li>
<li><a href="https://fontawesome.com/">Font Awesome Free</a> by Fonticons, Inc.: icons under CC BY 4.0; fonts under SIL OFL 1.1; code under MIT, as applicable. <a href="/Icons/Font-Awesome/LICENSE.txt">Original license notice</a>.</li>
<li><a href="https://github.com/xoofx/markdig">Markdig</a>: Copyright © 2018-2019 Alexandre Mutel, <a href="/licenses/MARKDIG-BSD-2-CLAUSE.txt">BSD-2-Clause license</a>.</li>
<li>.NET and ASP.NET Core: <a href="/licenses/DOTNET-MIT.txt">MIT license</a>, <a href="/licenses/DOTNET-THIRD-PARTY-NOTICES.txt">.NET third-party notices</a>, and <a href="/licenses/ASPNETCORE-THIRD-PARTY-NOTICES.txt">ASP.NET Core third-party notices</a>.</li>
</ul>
<p>Package and runtime dependencies retain their respective licenses.</p>
</div>
9 changes: 9 additions & 0 deletions Redot-Documentation/Redot-Documentation.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,13 @@
<Folder Include="wwwroot\Icons\" />
</ItemGroup>

<!-- Keep canonical license/author files available in both the site and publish output. -->
<ItemGroup>
<Content Include="../LICENSE.txt" Link="wwwroot/licenses/WEBSITE-MIT.txt" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
<Content Include="docs/LICENSE.txt" Link="wwwroot/licenses/CC-BY-3.0.txt" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
<Content Include="../GODOT_AUTHORS.md" Link="wwwroot/licenses/GODOT_AUTHORS.md" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
<Content Include="../REDOT_AUTHORS.md" Link="wwwroot/licenses/REDOT_AUTHORS.md" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
<Content Include="../LICENSING.md" Link="LICENSING.md" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
</ItemGroup>

</Project>
6 changes: 4 additions & 2 deletions Redot-Documentation/docs/About/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@ In short:
* You are free to modify, distribute, redistribute, and remix Redot to your heart's content, for any reason,
both non-commercially and commercially.

All the contents of this accompanying documentation are published under the permissive Creative Commons
Unless otherwise noted, the manual and tutorials are published under the permissive Creative Commons
Attribution 3.0 ([CC BY 3.0 ](https://creativecommons.org/licenses/by/3.0/)) license, with attribution
to "Juan Linietsky, Ariel Manzur and the Godot & Redot Engine community."
to "the Redot community, modified from an original work by Juan Linietsky, Ariel Manzur and the Godot community".
The generated class reference retains its upstream MIT license. The website implementation
is separately licensed under MIT; see [Licenses and attribution](/licenses).

Logos and icons are generally under the same Creative Commons license. Note
that some third-party libraries included with Redot's source code may have
Expand Down
5 changes: 3 additions & 2 deletions Redot-Documentation/docs/About/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,8 @@ on [Redot Contributors Chat ](https://chat.redotengine.org/).

All documentation content is licensed under the permissive Creative Commons Attribution 3.0
([CC BY 3.0 ](https://creativecommons.org/licenses/by/3.0/)) license,
with attribution to "*Juan Linietsky, Ariel Manzur, and the Redot Engine community*"
unless otherwise noted.
with attribution to "*the Redot community, modified from an original work by Juan Linietsky, Ariel Manzur and the Godot community*"
unless otherwise noted. The generated class reference retains its upstream MIT license.
The website implementation is separately licensed under MIT; see [Licenses and attribution](/licenses).

*Have fun reading and making games with Redot Engine!*
Loading
Loading