|
1 éve | |
---|---|---|
.. | ||
ConsoleDrivers | 1 éve | |
Core | 1 éve | |
Resources | 3 éve | |
Types | 4 éve | |
Views | 1 éve | |
Windows | 1 éve | |
Directory.Build.props | 4 éve | |
README.md | 1 éve | |
Terminal.Gui.csproj | 1 éve |
All files required to build the Terminal.Gui library (and NuGet package).
Terminal.Gui.sln
- The Visual Studio solutionCore/
- Source files for all types that comprise the core building blocks of Terminal-Gui
Application
- A static
class that provides the base 'application driver'. Given it defines a Terminal.Gui application it is both logically and literally (because static
) a singleton. It has direct dependencies on MainLoop
, Events.cs
NetDriver
, CursesDriver
, WindowsDriver
, Responder
, View
, and TopLevel
(and nothing else).MainLoop
- Defines IMainLoopDriver
and implements the MainLoop
class.ConsoleDriver
- Definition for the Console Driver API.Events.cs
- Defines keyboard and mouse-related structs & classes.PosDim.cs
- Implements Computed Layout system. These classes have deep dependencies on View
.Responder
- Base class for the windowing class hierarchy. Implements support for keyboard & mouse input.View
- Derived from Responder
, the base class for non-modal visual elements such as controls.Toplevel
- Derived from View
, the base class for modal visual elements such as top-level windows and dialogs. Supports the concept of MenuBar
and StatusBar
.Window
- Derived from TopLevel
; implements toplevel views with a visible frame and Title.Types/
- A folder (not namespace) containing implementations of Point
, Rect
, and Size
which are ancient versions of the modern System.Drawing.Point
, System.Drawing.Size
, and System.Drawning.Rectangle
.ConsoleDrivers/
- Source files for the three ConsoleDriver
-based drivers: .NET: NetDriver
, Unix & Mac: UnixDriver
, and Windows: WindowsDriver
.Views/
- A folder (not namespace) containing the source for all built-in classes that drive from View
(non-modals).Windows/
- A folder (not namespace) containing the source of all built-in classes that derive from Window
.Version info for Terminal.Gui is managed by gitversion.
Install gitversion
:
dotnet tool install --global GitVersion.Tool
dotnet-gitversion
The project version (the nuget package and in Terminal.Gui.dll
) is determined from the latest git tag
.
The format of version numbers is vmajor.minor.patch.build
and follows the Semantic Versioning rules.
To define a new version (e.g. with a higher major
, minor
, patch
, or build
value) tag a commit using git tag
:
git tag v1.2.3 -a -m "Release v1.2.3"
dotnet-gitversion /updateprojectfiles
dotnet build -c Release
DO NOT COMMIT AFTER USING /updateprojectfiles
!
Doing so will update the .csproj
files in your branch with version info, which we do not want.
The following actions will publish the Terminal.Gui package to Nuget:
main
- this is the normal release process.main
branch without a new version tag - this is a release-candidate build and will be of the form 1.2.3-rc.4
develop
branch - this is a pre-release build and will be of the form 1.2.3-pre.4
First, use the Semantic Versioning rules to determine the new version number.
Given a version number MAJOR.MINOR.PATCH, increment the:
To release a new version (e.g. with a higher major
, minor
, or patch
value) tag a commit using git tag
and then push that tag directly to the main
branch on github.com/gui-cs/Terminal.Gui
(upstream
).
The tag
must be of the form v<major>.<minor>.<patch>
, e.g. v1.2.3
.
develop
branch is ready for releasedevelop
branchdevelop
branch is up-to-date with upstream/develop
develop
branchThe PR title should be of the form "Release v1.2.3"
git checkout develop
git pull upstream develop
git checkout -b v2_3_4
<touch a file>
git add .
git commit -m "Release v1.2.3"
git push
Go to the link printed by git push
and fill out the Pull Request.
develop
upstream
(the main repo) and publish the Nuget package as a pre-release (e.g. 1.2.3-pre.1
).develop
from upstream
git checkout develop
git pull upstream develop
develop
into main
git checkout main
git pull upstream main
git merge develop
Fix any merge errors.
At this point, to release a release candidate, push the main
branch upstream
without a new tag.
git push upstream main
This will publish 1.2.3-rc.1
to Nuget.
main
git tag v1.2.3 -a -m "Release v1.2.3"
main
on upstream
git push --atomic upstream main v1.2.3
See https://stackoverflow.com/a/3745250/297526
This will publish 1.2.3
to Nuget.
https://github.com/gui-cs/Terminal.Gui/actions
https://www.nuget.org/packages/Terminal.Gui
Generate release notes with the list of PRs since the last release.
develop
branch with the new versiongit checkout develop
git pull upstream develop
git merge main
git push upstream develop
https://www.nuget.org/packages/Terminal.Gui
Miguel & Tig can hide defunct/old Nuget packages.
See CONTRIBUTING.md.