diff --git a/.github/bin/constants.sh b/.github/bin/constants.sh index c7ebeb043e3..00090c317ba 100644 --- a/.github/bin/constants.sh +++ b/.github/bin/constants.sh @@ -3,6 +3,9 @@ # shellcheck disable=SC2034 solution="Libplanet" projects=( + "sdk/node/Libplanet.Node" + "sdk/node/Libplanet.Node.Executable" + "sdk/node/Libplanet.Node.Extensions" "src/Libplanet" "src/Libplanet.Action" "src/Libplanet.Common" @@ -24,6 +27,7 @@ projects=( ) configuration=Release executables=( + "sdk/node/Libplanet.Node.Executable" "tools/Libplanet.Tools" "tools/Libplanet.Explorer.Executable" ) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 55588e07b9d..09eaed7a7e9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -151,7 +151,7 @@ on GitHub consists of several projects. There are two types of projects: - *Libplanet.Tools*: The CLI tools for Libplanet. This project is distributed as a distinct NuGet package: *[Libplanet.Tools]*. See its own - [README.md](Libplanet.Tools/README.md). + [README.md](tools/Libplanet.Tools/README.md). - *Libplanet.Explorer*: Libplanet Explorer, a web server that exposes a Libplanet blockchain as a [GraphQL] endpoint. There is the official @@ -166,6 +166,16 @@ on GitHub consists of several projects. There are two types of projects: - *Libplanet.Explorer.Executable*: (**DEPRECATED**) Turns Libplanet Explorer into a single executable binary so that it is easy to distribute. + - *Libplanet.Node*: Library used to build libplanet node easily. + This project is distributed as a distinct NuGet package: *[Libplanet.Node]*. + See its own [README.md](sdk/node/Libplanet.Node/README.md). + + - *Libplanet.Node.Extensions*: Provides extensions methods for + *Libplanet.Node*. + + - *Libplanet.Node.Executable*: Turns Libplanet Node into a single executable + binary so that it is easy to distribute. + - *Libplanet.Benchmarks*: Performance benchmarks. See the [*Benchmarks*](#benchmarks) section below. @@ -199,6 +209,8 @@ on GitHub consists of several projects. There are two types of projects: - *Libplanet.Extensions.Cocona.Tests*: Unit tests for the *Libplanet.Extensions.Cocona* project. + - *Libplanet.Node.Tests*: Unit tests for the *Libplanet.Node* project. + [NuGet package]: https://www.nuget.org/packages/Libplanet/ [Libplanet.Net]: https://www.nuget.org/packages/Libplanet.Net/ @@ -211,6 +223,7 @@ on GitHub consists of several projects. There are two types of projects: [Libplanet.RocksDBStore]: https://www.nuget.org/packages/Libplanet.RocksDBStore/ [Libplanet.Analyzers]: https://www.nuget.org/packages/Libplanet.Analyzers/ [Cocona]: https://www.nuget.org/packages/Cocona +[Libplanet.Node]: https://www.nuget.org/packages/Libplanet.Node [Libplanet.Extensions.Cocona]: https://www.nuget.org/packages/Libplanet.Extensions.Cocona [Libplanet.Tools]: https://www.nuget.org/packages/Libplanet.Tools/ [GraphQL]: https://graphql.org/ diff --git a/hooks/check-projects b/hooks/check-projects index 646c7ec9aaa..1ecdb66f5a1 100755 --- a/hooks/check-projects +++ b/hooks/check-projects @@ -9,7 +9,7 @@ if ! [[ -f "$SOLUTION" ]]; then fi list-projects() { - dotnet sln "$SOLUTION" list | grep -E $'(src|tools|test).+\\...proj\r?$' | sed 's/[/][^/]*$//' + dotnet sln "$SOLUTION" list | grep -E $'(src|tools|"sdk\/node"|test).+\\...proj\r?$' | sed 's/[/][^/]*$//' } # shellcheck source=.github/bin/constants.sh @@ -26,7 +26,7 @@ check-github-actions() { } check-contributing() { - name=$(echo "$1" | sed -re 's/(src|tools|test)\///') + name=$(echo "$1" | sed -re 's/(src|tools|"sdk\/node"|test)\///') if ! grep -E "^ - \*$name\*: " CONTRIBUTING.md > /dev/null; then echo "The project $1 is not documented in the CONTRIBUTING.md file." \ > /dev/stderr diff --git a/sdk/node/Libplanet.Node/README.md b/sdk/node/Libplanet.Node/README.md new file mode 100644 index 00000000000..b2815ab878a --- /dev/null +++ b/sdk/node/Libplanet.Node/README.md @@ -0,0 +1,13 @@ +Libplanet Node +============== + +[![NuGet][nuget-badge]][NuGet] +[![NuGet (prerelease)][nuget-prerelease-badge]][NuGet] + +This library is a collection of utilities for application programmers who +create a blockchain node powered by [Libplanet]. + +[NuGet]: https://www.nuget.org/packages/Libplanet.Node/ +[nuget-badge]: https://img.shields.io/nuget/v/Libplanet.Node.svg?style=flat +[nuget-prerelease-badge]: https://img.shields.io/nuget/vpre/Libplanet.Node.svg?style=flat +[Libplanet]: https://libplanet.io/