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
12 changes: 6 additions & 6 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,12 @@ The repository uses multiple GitHub Actions workflows. What runs and when:

- **Triggers**: `workflow_dispatch` (manual trigger from GitHub Actions UI)
- **Inputs**:
- `release_type`: Choose from `prealpha`, `alpha`, `beta`, `rc`, or `stable`
- `release_type`: Choose from `beta`, `rc`, or `stable`
- `version_override`: (Optional) Specify exact version number, otherwise GitVersion calculates it
- **Process**:
1. Checks out `main` branch
2. Determines version using GitVersion or override
3. Creates annotated git tag (e.g., `v2.0.0-prealpha` or `v2.0.0`)
3. Creates annotated git tag (e.g., `v2.0.1-rc.1` or `v2.1.0`)
4. Creates release commit with message
5. Pushes tag and commit to repository
6. Creates GitHub Release (marked as pre-release if not stable)
Expand All @@ -72,14 +72,14 @@ The repository uses multiple GitHub Actions workflows. What runs and when:
- **Automatically triggered** by the Create Release workflow when a new tag is pushed
- **Additional actions on main branch**:
- Delists old NuGet packages to keep package list clean:
- Keeps only the most recent `2.0.0-develop.*` package
- Keeps only the just-published `2.0.0-alpha.*` or `2.0.0-beta.*` package
- Keeps only the most recent `*-develop.*` package
- Keeps only the just-published `*-beta.*` or `*-rc.*` package
- Triggers Terminal.Gui.templates repository update via repository_dispatch (requires `PAT_FOR_TEMPLATES` secret)

### 6) Build and publish API docs (`.github/workflows/api-docs.yml`)

- **Triggers**: push to `v1_release` and `develop`
- Builds DocFX site on Windows and deploys to GitHub Pages when `ref_name` is `main` or `develop`
- **Triggers**: push to `main`
- Builds DocFX site on Windows and deploys to GitHub Pages


### Replicating CI Locally
Expand Down
28 changes: 9 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,19 @@
![v2 Release Status](https://img.shields.io/github/milestones/progress-percent/gui-cs/Terminal.Gui/7)
![NuGet Version](https://img.shields.io/nuget/vpre/Terminal.Gui)
![NuGet Version](https://img.shields.io/nuget/v/Terminal.Gui)
![Bugs](https://img.shields.io/github/issues/gui-cs/Terminal.Gui)
[![codecov](https://codecov.io/gh/gui-cs/Terminal.Gui/graph/badge.svg?token=1Ac9gyGtrj)](https://codecov.io/gh/gui-cs/Terminal.Gui)
[![Downloads](https://img.shields.io/nuget/dt/Terminal.Gui)](https://www.nuget.org/packages/Terminal.Gui)
[![License](https://img.shields.io/github/license/gui-cs/gui.cs.svg)](LICENSE)

# Terminal.Gui v2
# Terminal.Gui

Cross-platform UI toolkit for building sophisticated terminal UI (TUI) applications on Windows, macOS, and Linux/Unix.

![logo](docfx/images/logo.png)

* **v2 Beta** (Current): ![NuGet Version](https://img.shields.io/nuget/vpre/Terminal.Gui) - Recommended for new projects
* **v1 (Legacy)**: ![NuGet Version](https://img.shields.io/nuget/v/Terminal.Gui) - Maintenance mode only
* **v2** (Current): ![NuGet Version](https://img.shields.io/nuget/v/Terminal.Gui) - Stable release
* **v1 (Legacy)**: ![NuGet Version](https://img.shields.io/nuget/v/Terminal.Gui/1.19.0) - Maintenance mode only

> **Important:**
> - **v1** is in maintenance mode - only critical bug fixes accepted
> - **v2 Beta** is recommended for new projects - The team is 100% Focused on v2.0.0 RELEASE!
> - Breaking changes possible before Beta, but core architecture is solid
> **Note:** v1 is in maintenance mode — only critical bug fixes accepted. v2 is recommended for all projects.

![Sample app](docfx/images/sample.gif)

Expand All @@ -26,7 +22,7 @@ Cross-platform UI toolkit for building sophisticated terminal UI (TUI) applicati
Install the [Terminal.Gui.Templates](https://github.com/gui-cs/Terminal.Gui.templates), create a new TUI app, and run it:

```powershell
dotnet new install Terminal.Gui.Templates@2.0.0-beta.*
dotnet new install Terminal.Gui.Templates
dotnet new tui-simple -n myproj
cd myproj
dotnet run
Expand Down Expand Up @@ -102,22 +98,16 @@ See the [documentation index](https://gui-cs.github.io/Terminal.Gui/docs/index)

# Installing

## v2 Beta (Recommended)
## v2 (Recommended)

```powershell
dotnet add package Terminal.Gui --version "2.0.0-beta.*"
```

## v2 Develop (Latest)

```powershell
dotnet add package Terminal.Gui --version "2.0.0-develop.*"
dotnet add package Terminal.Gui
```

Or use the [Terminal.Gui.Templates](https://github.com/gui-cs/Terminal.Gui.templates):

```powershell
dotnet new install Terminal.Gui.Templates@2.0.0-beta.*
dotnet new install Terminal.Gui.Templates
```

## v1 Legacy
Expand Down
7 changes: 3 additions & 4 deletions Scripts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,17 +48,16 @@ PowerShell script to delist old NuGet packages, keeping only the most recent ver

**Usage**:
```powershell
./delist-nuget.ps1 -ApiKey "your-nuget-api-key" [-JustPublishedVersion "2.0.0-alpha.1"]
./delist-nuget.ps1 -ApiKey "your-nuget-api-key" [-JustPublishedVersion "2.0.1-rc.1"]
```

**Parameters**:
- `-ApiKey` (required): NuGet API key with package management permissions
- `-JustPublishedVersion` (optional): Version that was just published (will be kept while others are delisted)

**Behavior**:
- **Develop packages** (`2.0.0-develop.*`): Keeps only the most recent, delists all others
- **Alpha packages** (`2.0.0-alpha.*`): Keeps only the just-published version (or most recent if not specified)
- **Beta packages** (`2.0.0-beta.*`): Keeps only the just-published version (or most recent if not specified)
- **Develop packages** (`*-develop.*`): Keeps only the most recent, delists all others
- **Pre-release packages** (`*-beta.*`, `*-rc.*`): Keeps only the just-published version (or most recent if not specified)

This script is currently intended to be run manually when old NuGet packages need to be delisted; it is not currently run automatically by `publish.yml`.

Expand Down
10 changes: 5 additions & 5 deletions Terminal.Gui/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ The [GitVersion.MsBuild](https://www.nuget.org/packages/GitVersion.MsBuild) NuGe

| Branch | Example Version | Increment | Notes |
|--------|----------------|-----------|-------|
| `main` (pre-release) | `2.0.0-beta.3` | Patch | Label set in `GitVersion.yml` (`label: beta`) |
| `main` (stable) | `2.0.0` | Patch | Set `label: ''` for stable release |
| `main` (stable) | `2.0.0` | Patch | Label set in `GitVersion.yml` (`label: ''`) |
| `main` (pre-release) | `2.0.1-rc.1` | Patch | Label set in `GitVersion.yml` (e.g., `label: rc`) |
| `develop` | `2.1.0-develop.42` | Minor | Always carries `-develop` pre-release label |
| `feature/*`, `fix/*`, etc. | `2.1.0-my-feature.1` | Inherit | Inherits from `develop`; branch name becomes label |
| `pull-request/*` | `2.0.0-pr.123.1` | Inherit | PR number in label |
Expand Down Expand Up @@ -135,8 +135,8 @@ These branches are **not** configured in `GitVersion.yml` (the config was remove
## NuGet Package

- **Package**: [nuget.org/packages/Terminal.Gui](https://www.nuget.org/packages/Terminal.Gui)
- **Auto-published** on every push to `main` or `develop` (pre-release versions from `develop`, release versions from `main`)
- Pre-release versions (e.g., `2.0.0-beta.5`) are marked as pre-release on NuGet
- **Auto-published** on every push to `main` or `develop` (pre-release versions from `develop`, stable versions from `main`)
- Pre-release versions (e.g., `2.1.0-develop.42`) are marked as pre-release on NuGet

### Local Package Development

Expand All @@ -154,7 +154,7 @@ dotnet build Terminal.Gui/Terminal.Gui.csproj -c Release

- **Live docs**: [gui-cs.github.io/Terminal.Gui](https://gui-cs.github.io/Terminal.Gui)
- **DocFX source**: [`docfx/`](../docfx/) — see [`docfx/README.md`](../docfx/README.md) for local generation
- **API docs** are auto-deployed to GitHub Pages on every push to `develop`
- **API docs** are auto-deployed to GitHub Pages on every push to `main`

## Contributing

Expand Down
2 changes: 1 addition & 1 deletion docfx/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The API documentation is generated via a GitHub Action (`.github/workflows/api-d

## API Documentation Overview

The API documentation for Terminal.Gui is a critical resource for developers, providing detailed information on classes, methods, properties, and events within the library. This documentation is hosted at [gui-cs.github.io/Terminal.Gui](https://gui-cs.github.io/Terminal.Gui) and includes both auto-generated API references and conceptual guides. For a broader overview of the Terminal.Gui project, including project structure and contribution guidelines, refer to the main [Terminal.Gui README](https://github.com/gui-cs/Terminal.Gui/blob/develop/README.md).
The API documentation for Terminal.Gui is a critical resource for developers, providing detailed information on classes, methods, properties, and events within the library. This documentation is hosted at [gui-cs.github.io/Terminal.Gui](https://gui-cs.github.io/Terminal.Gui) and includes both auto-generated API references and conceptual guides. For a broader overview of the Terminal.Gui project, including project structure and contribution guidelines, refer to the main [Terminal.Gui README](https://github.com/gui-cs/Terminal.Gui/blob/main/README.md).

### Scripts for Documentation Generation

Expand Down