commit: ef1cc01375f4a7431ed287a8fbac2a78f5d5ea0c
Author: Maciej Barć <xgqt <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 13 21:33:00 2025 +0000
Commit: Maciej Barć <xgqt <AT> gentoo <DOT> org>
CommitDate: Thu Nov 13 21:33:00 2025 +0000
URL:
https://gitweb.gentoo.org/proj/dotnet/gentoo-dotnet-maintainer-tools.git/commit/?id=ef1cc013
feat: remove gdmt-stablereq
Signed-off-by: Maciej Barć <xgqt <AT> gentoo.org>
.../source/v3/gdmt-stablereq/Directory.Build.props | 14 ----
.../main/fsharp/Gdmt.StableRequest/App/Program.fs | 60 -------------
.../Gdmt.StableRequest/Gdmt.StableRequest.fsproj | 26 ------
.../Gdmt.StableRequest/StableRequest/Private.fs | 97 ----------------------
code/source/v3/gdmt-tools.txt | 1 -
code/source/v3/gentoo-dotnet-maintainer-tools.sln | 24 +-----
6 files changed, 3 insertions(+), 219 deletions(-)
diff --git a/code/source/v3/gdmt-stablereq/Directory.Build.props
b/code/source/v3/gdmt-stablereq/Directory.Build.props
deleted file mode 100644
index 87692b7..0000000
--- a/code/source/v3/gdmt-stablereq/Directory.Build.props
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project>
- <Import Project="..\dotnet\Common.Build.props" />
-
- <ItemGroup>
- <PackageReference Include="FSharp.Data" Version="6.3.0" />
- <PackageReference Include="Org.Xgqt.SimpleLog" Version="2.0.0" />
- <PackageReference Include="System.CommandLine"
Version="2.0.0-beta4.22272.1" />
- </ItemGroup>
-
- <ItemGroup>
- <ProjectReference
Include="..\..\..\..\..\gdmt-shared\src\main\fsharp\Gdmt.Shared\Gdmt.Shared.fsproj"
/>
- </ItemGroup>
-</Project>
diff --git
a/code/source/v3/gdmt-stablereq/src/main/fsharp/Gdmt.StableRequest/App/Program.fs
b/code/source/v3/gdmt-stablereq/src/main/fsharp/Gdmt.StableRequest/App/Program.fs
deleted file mode 100644
index aba9b6e..0000000
---
a/code/source/v3/gdmt-stablereq/src/main/fsharp/Gdmt.StableRequest/App/Program.fs
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2023-2025 Gentoo Authors
-// Distributed under the terms of the GNU General Public License v2
-
-open System
-open System.IO
-open System.Threading.Tasks
-
-open SimpleLog.SimpleLog
-open System.CommandLine
-open System.CommandLine.Invocation
-
-open Gdmt.StableRequest.Private
-
-let CommandName = "gdmt-stablereq"
-let CommandDescription = "file stabilization requests on Gentoo Bugzilla"
-
-let MaintainerArgument =
- new Argument<string>("maintainer", "target maintainer e-mail to query
package.gentoo.org")
-
-let RepositoryOption =
- new Option<string>([| "-r"; "--repo" |], "ebuild repository to use, if
given location changes to it")
-
-let CommandHandler (context: InvocationContext) : Task =
- task {
- let options = context.ParseResult
-
- let maintainer = options.GetValueForArgument(MaintainerArgument)
- let repository = options.GetValueForOption(RepositoryOption)
-
- match repository with
- | empty when String.IsNullOrEmpty empty -> ()
- | repo when Directory.Exists(repo) ->
- LogMessage Success $"Using ebuild repository {repo}"
- Environment.CurrentDirectory <- repo
- | repo ->
- LogMessage Error $"Ebuild repository does not exist, given {repo}"
- $"no such directory {repo}" |> Exception |> raise
-
- let! stabilizationArray = GetStabilizationArray maintainer
-
- for stabilizationItem in stabilizationArray do
- ProcessStabilizationItem stabilizationItem
-
- ()
- }
-
-[<EntryPoint>]
-let main argv =
- let rootCommand = RootCommand(CommandName)
-
- rootCommand.Name <- CommandName
- rootCommand.Description <- CommandDescription
-
- rootCommand.AddArgument MaintainerArgument
-
- rootCommand.AddOption RepositoryOption
-
- rootCommand.SetHandler CommandHandler
-
- rootCommand.Invoke(argv)
diff --git
a/code/source/v3/gdmt-stablereq/src/main/fsharp/Gdmt.StableRequest/Gdmt.StableRequest.fsproj
b/code/source/v3/gdmt-stablereq/src/main/fsharp/Gdmt.StableRequest/Gdmt.StableRequest.fsproj
deleted file mode 100644
index b61e2f8..0000000
---
a/code/source/v3/gdmt-stablereq/src/main/fsharp/Gdmt.StableRequest/Gdmt.StableRequest.fsproj
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project Sdk="Microsoft.NET.Sdk">
- <PropertyGroup>
- <PackageId>Gdmt.StableRequest</PackageId>
- <Description>file stabilization requests on Gentoo Bugzilla</Description>
-
- <AssemblyName>gdmt-stablereq</AssemblyName>
- <RootNamespace>Gdmt.StableRequest</RootNamespace>
-
- <PackageReadmeFile>README.md</PackageReadmeFile>
-
- <!-- Create a tool. -->
- <OutputType>Exe</OutputType>
- <PackAsTool>true</PackAsTool>
- <ToolCommandName>gdmt-stablereq</ToolCommandName>
- </PropertyGroup>
-
- <ItemGroup>
- <Compile Include="StableRequest\Private.fs" />
- <Compile Include="App\Program.fs" />
- </ItemGroup>
-
- <ItemGroup>
- <None Include="..\..\..\..\..\..\..\..\README.md" Pack="true"
PackagePath="\" />
- </ItemGroup>
-</Project>
diff --git
a/code/source/v3/gdmt-stablereq/src/main/fsharp/Gdmt.StableRequest/StableRequest/Private.fs
b/code/source/v3/gdmt-stablereq/src/main/fsharp/Gdmt.StableRequest/StableRequest/Private.fs
deleted file mode 100644
index 308a337..0000000
---
a/code/source/v3/gdmt-stablereq/src/main/fsharp/Gdmt.StableRequest/StableRequest/Private.fs
+++ /dev/null
@@ -1,97 +0,0 @@
-// Copyright 2023-2025 Gentoo Authors
-// Distributed under the terms of the GNU General Public License v2
-
-namespace Gdmt.StableRequest
-
-module Private =
- open System
- open System.Net.Http
- open System.Text.RegularExpressions
-
- open FSharp.Data
- open SimpleLog.SimpleLog
-
- open Gdmt.Shared
- open Gdmt.Shared.Types
-
- type StabilizationArrayProvider =
- JsonProvider<"""
- [
- {
- "category": "Category",
- "package": "Package",
- "version": "Version",
- "message": "Message"
- }
- ]
- """>
-
- let StabilizationUriBase = "https://packages.gentoo.org/maintainer/"
-
- let GetStabilizationArray (maintainerEmail: string) :
Async<StabilizationArrayProvider.Root array> =
- async {
- let stabilizationUri =
- $"{StabilizationUriBase}/{maintainerEmail}/stabilization.json"
-
- let httpClient = new HttpClient()
- let! httpResponse = httpClient.GetStringAsync(stabilizationUri) |>
Async.AwaitTask
- let jsonResult = StabilizationArrayProvider.Parse(httpResponse)
-
- return jsonResult
- }
-
- let GetStabilizationArchitectures (messageString: string) : StringArray =
- messageString.Split([| ' ' |])
- |> Array.filter (fun s -> s[0] = '~')
- |> Array.map (fun s -> s.Replace("~", "").Replace(",", ""))
-
- let AskYesNoRegex = new Regex(@"^[Yy]([Ee][Ss])?$")
-
- let AskYesNo () =
- match Console.ReadLine() with
- // Return (Enter) key was pressed.
- | "" -> true
- | s -> AskYesNoRegex.IsMatch(s)
-
- let PackageWithRevisionRegex = new Regex(@".+-r[0-9]+$")
-
- let RunPkgdevBugs (arches: string) (package: string) : unit =
- // When there is no revision specified we can use the "~" package
operator
- // in order to say "match any revision", if there is a revision
specified,
- // then we have to be exact and use "=" package operator.
- let adequatePackageAtom =
- match package with
- | s when PackageWithRevisionRegex.IsMatch(s) -> $"={package}"
- | _ -> $"~{package}"
-
- let pkgdevBugsArgs =
- [ "pkgdev"; "bugs"; "--stablereq"; "--arches"; arches;
adequatePackageAtom ]
-
- let success = ExecProcess(pkgdevBugsArgs).Run().Success
-
- if success then
- LogMessage Success $"Successfully submitted request for {package}"
- else
- LogMessage Error $"Errors occurred when processing request"
- LogMessage Error $"Failed to submit request for {package}"
-
- let ProcessStabilizationItem (stabilizationItem:
StabilizationArrayProvider.Root) : unit =
- let category = stabilizationItem.Category
- let package = stabilizationItem.Package
- let version = stabilizationItem.Version
- let message = stabilizationItem.Message
-
- let packageShortName = $"{category}/{package}"
- let packageFullName = $"{packageShortName}-{version}"
- let arches = GetStabilizationArchitectures message |> String.concat ","
-
- LogMessage Info $"Full package: {packageFullName}"
- LogMessage Info $"Message: {message}"
- LogMessage Info $"Stabilization architectures: {arches}"
-
- printf $"Use the package {packageShortName}? [Y/n] "
-
- if AskYesNo() then
- RunPkgdevBugs arches packageFullName
- else
- LogMessage Debug $"Skipping the package {packageShortName}"
diff --git a/code/source/v3/gdmt-tools.txt b/code/source/v3/gdmt-tools.txt
index 1afc586..96711a4 100644
--- a/code/source/v3/gdmt-tools.txt
+++ b/code/source/v3/gdmt-tools.txt
@@ -9,5 +9,4 @@ gdmt-govendor
gdmt-license
gdmt-pn
gdmt-restore
-gdmt-stablereq
gdmt-sync
diff --git a/code/source/v3/gentoo-dotnet-maintainer-tools.sln
b/code/source/v3/gentoo-dotnet-maintainer-tools.sln
index 240c320..9a9fb36 100644
--- a/code/source/v3/gentoo-dotnet-maintainer-tools.sln
+++ b/code/source/v3/gentoo-dotnet-maintainer-tools.sln
@@ -113,16 +113,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") =
"fsharp", "fsharp", "{424AE2
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Gdmt.Shared",
"gdmt-shared\src\main\fsharp\Gdmt.Shared\Gdmt.Shared.fsproj",
"{1C3CFD42-0D6A-4C73-81A9-B01B41EA2472}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gdmt-stablereq",
"gdmt-stablereq", "{5A8A149D-818A-4855-85C8-B1B8012E44AE}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src",
"{EC8259F7-CB8E-4A81-987C-7276AA0CDA47}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "main", "main",
"{E937C096-FC3C-4A40-860A-4F0754284BB5}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fsharp", "fsharp",
"{5279B99C-5F45-4306-BDC5-4AA6C3D6BB04}"
-EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Gdmt.StableRequest",
"gdmt-stablereq\src\main\fsharp\Gdmt.StableRequest\Gdmt.StableRequest.fsproj",
"{482C8CC6-BC90-4E77-8A5F-B946C3E064BF}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gdmt-sync", "gdmt-sync",
"{E6B54B35-609F-46F8-A47B-86B608471255}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src",
"{D0EF8627-1610-4FDA-A5A4-F0B719A5ED01}"
@@ -148,9 +138,6 @@ Global
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B477EE4E-9E00-44A9-B597-D968F8788D69}.Debug|Any CPU.ActiveCfg
= Debug|Any CPU
{B477EE4E-9E00-44A9-B597-D968F8788D69}.Debug|Any CPU.Build.0 =
Debug|Any CPU
@@ -196,10 +183,6 @@ Global
{1C3CFD42-0D6A-4C73-81A9-B01B41EA2472}.Debug|Any CPU.Build.0 =
Debug|Any CPU
{1C3CFD42-0D6A-4C73-81A9-B01B41EA2472}.Release|Any
CPU.ActiveCfg = Release|Any CPU
{1C3CFD42-0D6A-4C73-81A9-B01B41EA2472}.Release|Any CPU.Build.0
= Release|Any CPU
- {482C8CC6-BC90-4E77-8A5F-B946C3E064BF}.Debug|Any CPU.ActiveCfg
= Debug|Any CPU
- {482C8CC6-BC90-4E77-8A5F-B946C3E064BF}.Debug|Any CPU.Build.0 =
Debug|Any CPU
- {482C8CC6-BC90-4E77-8A5F-B946C3E064BF}.Release|Any
CPU.ActiveCfg = Release|Any CPU
- {482C8CC6-BC90-4E77-8A5F-B946C3E064BF}.Release|Any CPU.Build.0
= Release|Any CPU
{104B905C-F171-46F7-BEC5-9A9684AC01B5}.Debug|Any CPU.ActiveCfg
= Debug|Any CPU
{104B905C-F171-46F7-BEC5-9A9684AC01B5}.Debug|Any CPU.Build.0 =
Debug|Any CPU
{104B905C-F171-46F7-BEC5-9A9684AC01B5}.Release|Any
CPU.ActiveCfg = Release|Any CPU
@@ -209,6 +192,9 @@ Global
{D4763086-9F59-4066-846E-863A78F947F0}.Release|Any
CPU.ActiveCfg = Release|Any CPU
{D4763086-9F59-4066-846E-863A78F947F0}.Release|Any CPU.Build.0
= Release|Any CPU
EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{4314C047-AF0E-403E-A265-00916D245638} =
{BD7176DD-FCD1-449B-A22F-21B531EEE1C4}
{3BE468AC-9811-4D89-8A8F-50B5340677E0} =
{4314C047-AF0E-403E-A265-00916D245638}
@@ -254,10 +240,6 @@ Global
{E6374937-6C03-4992-AF19-75DC716F7DA3} =
{8DE1A69E-DA25-4EC3-8C16-AA35F3BC4DFE}
{424AE2AF-5995-4F1C-B70A-A9BC5C4930A5} =
{E6374937-6C03-4992-AF19-75DC716F7DA3}
{1C3CFD42-0D6A-4C73-81A9-B01B41EA2472} =
{424AE2AF-5995-4F1C-B70A-A9BC5C4930A5}
- {EC8259F7-CB8E-4A81-987C-7276AA0CDA47} =
{5A8A149D-818A-4855-85C8-B1B8012E44AE}
- {E937C096-FC3C-4A40-860A-4F0754284BB5} =
{EC8259F7-CB8E-4A81-987C-7276AA0CDA47}
- {5279B99C-5F45-4306-BDC5-4AA6C3D6BB04} =
{E937C096-FC3C-4A40-860A-4F0754284BB5}
- {482C8CC6-BC90-4E77-8A5F-B946C3E064BF} =
{5279B99C-5F45-4306-BDC5-4AA6C3D6BB04}
{D0EF8627-1610-4FDA-A5A4-F0B719A5ED01} =
{E6B54B35-609F-46F8-A47B-86B608471255}
{CBA60D6E-497E-42F2-972E-7A2028013534} =
{D0EF8627-1610-4FDA-A5A4-F0B719A5ED01}
{A0683138-F0F0-4336-9EEE-36214E5473CC} =
{CBA60D6E-497E-42F2-972E-7A2028013534}