Skip to content

Commit

Permalink
Rename project from System.Terminal to Cathode.
Browse files Browse the repository at this point in the history
Closes #78.
  • Loading branch information
alexrp committed Mar 13, 2022
1 parent 8342561 commit 77a8c82
Show file tree
Hide file tree
Showing 109 changed files with 287 additions and 242 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ env:
DOTNET_NOLOGO: true
jobs:
release:
if: github.repository == 'alexrp/system-terminal'
if: github.repository == 'alexrp/cathode'
runs-on: ubuntu-latest
steps:
- name: Clone repository
Expand Down
29 changes: 14 additions & 15 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@ document to familiarize yourself with the development process.

## Issue Tracker

The [issue tracker](https://github.com/alexrp/system-terminal/issues) is where
all bug reports and feature requests should be posted. Other community areas are
not appropriate for these as issues raised there are likely to be lost or
forgotten.
The [issue tracker](https://github.com/alexrp/cathode/issues) is where all bug
reports and feature requests should be posted. Other community areas are not
appropriate for these as issues raised there are likely to be lost or forgotten.

Please respect the following points when posting on the issue tracker:

Expand All @@ -26,9 +25,9 @@ being enacted.
### Labels

We use labels to organize issues on the GitHub issue tracker. A full list of
labels can be found [here](https://github.com/alexrp/system-terminal/labels),
along with descriptions of each. Here are a few guidelines for how issue labels
are to be applied:
labels can be found [here](https://github.com/alexrp/cathode/labels), along with
descriptions of each. Here are a few guidelines for how issue labels are to be
applied:

* An issue should have exactly one `type` and one `state` label.
* The `type` label should generally never change throughout an issue's
Expand All @@ -51,14 +50,14 @@ have its milestone changed if the initial guesstimation turned out to be
inaccurate (in either direction).

A full list of milestones can be found
[here](https://github.com/alexrp/system-terminal/milestones).
[here](https://github.com/alexrp/cathode/milestones).

### Bug Reports

The ideal bug report is one that is immediately actionable by a person looking
to resolve it. To that end, a bug report should include:

* The version of System.Terminal being used.
* The version of Cathode being used.
* Information about the host platform (operating system, architecture, etc).
* A self-contained test case that reproduces the issue, along with instructions
to trigger the issue.
Expand Down Expand Up @@ -92,9 +91,9 @@ feature is a welcome addition.

## Pull Requests

[Pull requests](https://github.com/alexrp/system-terminal/pulls) are a great way
to contribute, whether it be code or documentation improvements. It is a good
idea to check the issue tracker to see if someone else is already working on
[Pull requests](https://github.com/alexrp/cathode/pulls) are a great way to
contribute, whether it be code or documentation improvements. It is a good idea
to check the issue tracker to see if someone else is already working on
something before you start work on it. For feature additions, it is also
important to open a feature request on the issue tracker to see if the
maintainers are actually interested in merging it.
Expand Down Expand Up @@ -141,10 +140,10 @@ Once you have a forked repository, clone and set it up locally:

```bash
# Replace <your-name> with your GitHub user name.
git clone git@github.com:<your-name>/system-terminal.git
cd system-terminal
git clone git@github.com:<your-name>/cathode.git
cd cathode
# Set up a remote pointing to the upstream repository.
git remote add upstream git@github.com:alexrp/system-terminal.git
git remote add upstream git@github.com:alexrp/cathode.git
```

Whenever you need to update your fork, do something like this:
Expand Down
14 changes: 7 additions & 7 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<Product>System.Terminal</Product>
<Description>System.Terminal is a terminal-centric replacement for System.Console.</Description>
<Product>Cathode</Product>
<Description>Cathode is a terminal-centric replacement for System.Console.</Description>
<Authors>The $(Product) Maintainers</Authors>
<Copyright>Copyright © $(Authors)</Copyright>
</PropertyGroup>
Expand All @@ -26,15 +26,15 @@

With the Windows console host now supporting virtual terminal sequences, it
makes little sense for console interaction to still be centered around the old
Windows console host and the many limitations it had. System.Terminal provides
an API centered around a VT100 terminal with some extensions from later models
and modern terminal emulators. It works on all desktop platforms that .NET 6+
Windows console host and the many limitations it had. Cathode provides an API
centered around a VT100 terminal with some extensions from later models and
modern terminal emulators. It works on all desktop platforms that .NET 6+
supports.</PackageDescription>
<PackageLicenseExpression>0BSD</PackageLicenseExpression>
<PackageOutputPath>$(MSBuildThisFileDirectory)pkg/feed/</PackageOutputPath>
<PackageProjectUrl>https://github.com/alexrp/system-terminal</PackageProjectUrl>
<PackageProjectUrl>https://github.com/alexrp/cathode</PackageProjectUrl>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<RepositoryUrl>https://github.com/alexrp/system-terminal.git</RepositoryUrl>
<RepositoryUrl>https://github.com/alexrp/cathode.git</RepositoryUrl>
<TargetFramework>net6.0</TargetFramework>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
Expand Down
6 changes: 3 additions & 3 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@
<PropertyGroup>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IsTrimmable Condition="'$(OutputType)' == 'Library' and '$(DevelopmentDependency)' != 'true'">>true</IsTrimmable>
<PackageIcon>system-terminal.png</PackageIcon>
<PackageIcon>cathode.png</PackageIcon>
<PackageReadmeFile>PACKAGE.md</PackageReadmeFile>
</PropertyGroup>

<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)PACKAGE.md; $(MSBuildThisFileDirectory)system-terminal.png"
<None Include="$(MSBuildThisFileDirectory)PACKAGE.md; $(MSBuildThisFileDirectory)cathode.png"
Pack="true"
PackagePath=""
Visible="false" />
Expand All @@ -53,7 +53,7 @@
BeforeTargets="GenerateNuspec"
Condition="'$(IsPackable)' == 'true'">
<PropertyGroup>
<PackageReleaseNotes>https://github.com/alexrp/system-terminal/releases/tag/v$(Version)</PackageReleaseNotes>
<PackageReleaseNotes>https://github.com/alexrp/cathode/releases/tag/v$(Version)</PackageReleaseNotes>
</PropertyGroup>
</Target>

Expand Down
28 changes: 15 additions & 13 deletions PACKAGE.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,29 @@
# System.Terminal
# Cathode

System.Terminal is a toolkit for writing terminal-based applications. It is
effectively a complete replacement for System.Console.
Cathode is a toolkit for writing terminal-based applications. It is effectively
a complete replacement for System.Console.

With the Windows console host now supporting virtual terminal sequences, it
makes little sense for console interaction to still be centered around the old
Windows console host and the many limitations it had. System.Terminal provides
an API centered around a [VT100 terminal](https://vt100.net) with some
extensions from later models and modern terminal emulators. It works on all
desktop platforms that .NET 6+ supports.
Windows console host and the many limitations it had. Cathode provides an API
centered around a [VT100 terminal](https://vt100.net) with some extensions from
later models and modern terminal emulators. It works on all desktop platforms
that .NET 6+ supports.

This project offers the following packages:

* [Terminal](https://www.nuget.org/packages/Terminal): Provides the core
terminal API.
* [Terminal.Hosting](https://www.nuget.org/packages/Terminal.Hosting): Provides
* [Cathode](https://www.nuget.org/packages/Cathode): Provides the core terminal
API.
* [Cathode.Analyzers](https://www.nuget.org/packages/Cathode.Analyzers):
Provides diagnostic analyzers and source generators.
* [Cathode.Hosting](https://www.nuget.org/packages/Cathode.Hosting): Provides
the terminal hosting model.
* [Terminal.Extensions](https://www.nuget.org/packages/Terminal.Extensions):
* [Cathode.Extensions](https://www.nuget.org/packages/Cathode.Extensions):
Provides terminal hosting and logging for the .NET Generic Host.

See the
[sample programs](https://github.com/alexrp/system-terminal/tree/master/src/samples)
[sample programs](https://github.com/alexrp/cathode/tree/master/src/samples)
for examples of what the API can do.

For more information, please visit the
[project page](https://github.com/alexrp/system-terminal).
[project page](https://github.com/alexrp/cathode).
74 changes: 37 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# System.Terminal
# Cathode

<div align="center">
<img src="system-terminal.svg"
<img src="cathode.svg"
width="128" />
</div>

Expand All @@ -13,57 +13,57 @@

<div align="center">

[![License](https://img.shields.io/github/license/alexrp/system-terminal?color=brown)](LICENSE.md)
[![Commits](https://img.shields.io/github/commit-activity/m/alexrp/system-terminal/master?label=commits&color=slateblue)](https://github.com/alexrp/system-terminal/commits/master)
[![Build](https://img.shields.io/github/workflow/status/alexrp/system-terminal/Build/master)](https://github.com/alexrp/system-terminal/actions/workflows/build.yml)
[![License](https://img.shields.io/github/license/alexrp/cathode?color=brown)](LICENSE.md)
[![Commits](https://img.shields.io/github/commit-activity/m/alexrp/cathode/master?label=commits&color=slateblue)](https://github.com/alexrp/cathode/commits/master)
[![Build](https://img.shields.io/github/workflow/status/alexrp/cathode/Build/master)](https://github.com/alexrp/cathode/actions/workflows/build.yml)
[![Sponsors](https://img.shields.io/github/sponsors/alexrp?color=mediumorchid)](https://github.com/sponsors/alexrp)
[![Discussions](https://img.shields.io/github/discussions/alexrp/system-terminal?color=teal)](https://github.com/alexrp/system-terminal/discussions)
[![Discussions](https://img.shields.io/github/discussions/alexrp/cathode?color=teal)](https://github.com/alexrp/cathode/discussions)

</div>

---

System.Terminal is a toolkit for writing terminal-based applications. It is
effectively a complete replacement for System.Console.
Cathode is a toolkit for writing terminal-based applications. It is effectivel
a complete replacement for System.Console.

With the Windows console host now supporting virtual terminal sequences, it
makes little sense for console interaction to still be centered around the old
Windows console host and the many limitations it had. System.Terminal provides
an API centered around a [VT100 terminal](https://vt100.net) with some
extensions from later models and modern terminal emulators. It works on all
desktop platforms that .NET 6+ supports.
Windows console host and the many limitations it had. Cathode provides an API
centered around a [VT100 terminal](https://vt100.net) with some extensions from
later models and modern terminal emulators. It works on all desktop platforms
that .NET 6+ supports.

Please note that, since System.Terminal replaces a very fundamental component of
the framework, the use of certain framework APIs becomes problematic. As an
example, intermixing System.Terminal and System.Console usage *will* break.
Referencing System.Terminal (or a package that uses it) will pull in a Roslyn
analyzer which will diagnose problematic APIs and suggest working replacements.
Please note that, since Cathode replaces a very fundamental component of the
framework, the use of certain framework APIs becomes problematic. As an example,
intermixing Cathode and System.Console usage *will* break. Referencing Cathode
(or a package that uses it) will pull in a Roslyn analyzer which will diagnose
problematic APIs and suggest working replacements.

## Usage

This project offers the following packages:

| Package | Description | Downloads |
| -: | - | :- |
| [![Terminal][core-img]][core-pkg] | Provides the core terminal API. | ![Downloads][core-dls] |
| [![Terminal.Analyzers][analyzers-img]][analyzers-pkg] | Provides diagnostic analyzers and source generators. | ![Downloads][analyzers-dls] |
| [![Terminal.Hosting][hosting-img]][hosting-pkg] | Provides the terminal hosting model. | ![Downloads][hosting-dls] |
| [![Terminal.Extensions][extensions-img]][extensions-pkg] | Provides terminal hosting and logging for the .NET Generic Host. | ![Downloads][extensions-dls] |

[core-pkg]: https://www.nuget.org/packages/Terminal
[analyzers-pkg]: https://www.nuget.org/packages/Terminal.Analyzers
[hosting-pkg]: https://www.nuget.org/packages/Terminal.Hosting
[extensions-pkg]: https://www.nuget.org/packages/Terminal.Extensions

[core-img]: https://img.shields.io/nuget/v/Terminal?label=Terminal
[analyzers-img]: https://img.shields.io/nuget/v/Terminal.Analyzers?label=Terminal.Analyzers
[hosting-img]: https://img.shields.io/nuget/v/Terminal.Hosting?label=Terminal.Hosting
[extensions-img]: https://img.shields.io/nuget/v/Terminal.Extensions?label=Terminal.Extensions

[core-dls]: https://img.shields.io/nuget/dt/Terminal?label=
[analyzers-dls]: https://img.shields.io/nuget/dt/Terminal.Analyzers?label=
[hosting-dls]: https://img.shields.io/nuget/dt/Terminal.Hosting?label=
[extensions-dls]: https://img.shields.io/nuget/dt/Terminal.Extensions?label=
| [![Cathode][core-img]][core-pkg] | Provides the core terminal API. | ![Downloads][core-dls] |
| [![Cathode.Analyzers][analyzers-img]][analyzers-pkg] | Provides diagnostic analyzers and source generators. | ![Downloads][analyzers-dls] |
| [![Cathode.Hosting][hosting-img]][hosting-pkg] | Provides the terminal hosting model. | ![Downloads][hosting-dls] |
| [![Cathode.Extensions][extensions-img]][extensions-pkg] | Provides terminal hosting and logging for the .NET Generic Host. | ![Downloads][extensions-dls] |

[core-pkg]: https://www.nuget.org/packages/Cathode
[analyzers-pkg]: https://www.nuget.org/packages/Cathode.Analyzers
[hosting-pkg]: https://www.nuget.org/packages/Cathode.Hosting
[extensions-pkg]: https://www.nuget.org/packages/Cathode.Extensions

[core-img]: https://img.shields.io/nuget/v/Cathode?label=Cathode
[analyzers-img]: https://img.shields.io/nuget/v/Cathode.Analyzers?label=Cathode.Analyzers
[hosting-img]: https://img.shields.io/nuget/v/Cathode.Hosting?label=Cathode.Hosting
[extensions-img]: https://img.shields.io/nuget/v/Cathode.Extensions?label=Cathode.Extensions

[core-dls]: https://img.shields.io/nuget/dt/Cathode?label=
[analyzers-dls]: https://img.shields.io/nuget/dt/Cathode.Analyzers?label=
[hosting-dls]: https://img.shields.io/nuget/dt/Cathode.Hosting?label=
[extensions-dls]: https://img.shields.io/nuget/dt/Cathode.Extensions?label=

To install a package, run `dotnet add package <name>`.

Expand Down Expand Up @@ -96,7 +96,7 @@ emulators:

(Even if you are using a terminal emulator that is not listed here, chances are
that it will work just fine; these are just the ones that are tested regularly
while developing System.Terminal.)
while developing Cathode.)

## Statistics

Expand Down
10 changes: 5 additions & 5 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Before tagging a release, build the release branch locally on all platforms that
you have access to and run the [sample programs](src/samples) with all terminal
emulators you have access to. Verify that nothing has regressed. Also, ensure
that the release branch builds and tests successfully on
[CI](https://github.com/alexrp/system-terminal/actions).
[CI](https://github.com/alexrp/cathode/actions).

Next, run `dotnet nbgv tag` from the release branch to create a release tag, and
push it with `git push origin <tag>`. Again, wait for CI to build and test the
Expand All @@ -22,7 +22,7 @@ tag. If something goes wrong on CI, you can run `git tag -d <tag>` and
then repeat this step.

Finally, to actually publish the release, go to the
[releases page](https://github.com/alexrp/system-terminal/releases) to create a
release from the tag you pushed, ideally with some well-written release notes.
Once the release is published, a workflow will build and publish NuGet packages
from the tag.
[releases page](https://github.com/alexrp/cathode/releases) to create a release
from the tag you pushed, ideally with some well-written release notes. Once the
release is published, a workflow will build and publish NuGet packages from the
tag.
5 changes: 2 additions & 3 deletions SUPPORT.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
# Support

The project has a [GitHub Discussions](https://docs.github.com/en/discussions) forum:
[![GitHub Discussions](https://img.shields.io/github/discussions/alexrp/system-terminal)](https://github.com/alexrp/system-terminal/discussions)
[![GitHub Discussions](https://img.shields.io/github/discussions/alexrp/cathode)](https://github.com/alexrp/cathode/discussions)

Please do *not* use the
[issue tracker](https://github.com/alexrp/system-terminal/issues) for support
requests.
[issue tracker](https://github.com/alexrp/cathode/issues) for support requests.

When seeking help, please note the following:

Expand Down
Binary file added cathode.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
12 changes: 6 additions & 6 deletions system-terminal.svg → cathode.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 77a8c82

Please sign in to comment.