diff --git a/docs/en/cli/index.md b/docs/en/cli/index.md index c02391eb42..8196ba993e 100644 --- a/docs/en/cli/index.md +++ b/docs/en/cli/index.md @@ -45,6 +45,7 @@ Here is the list of all available commands before explaining their details: - [new-package](../cli#new-package): Generates a new package based on the given template. - [update](../cli#update): Automatically updates all ABP related NuGet and NPM packages in a solution. - [clean](../cli#clean): Deletes all `BIN` and `OBJ` folders in the current folder. +- [clean-logs](../cli#clean-logs): Delete all `*logs.txt` files in the current folder and its subfolders. - [add-package](../cli#add-package): Adds an ABP package to a project. - [add-package-ref](../cli#add-package-ref): Adds package to given project. - [install-module](../cli#install-module): Adds a [multi-package application module](../modules/index.md) to a given module. @@ -476,6 +477,16 @@ Usage: abp clean ``` +### clean-logs + +Delete all `*logs.txt` files in the current folder and its subfolders. + +Usage: + +```bash +abp clean-logs +``` + ### add-package Adds an ABP package to a project by, diff --git a/docs/en/studio/release-notes.md b/docs/en/studio/release-notes.md index c07b95d054..f6c9e276f2 100644 --- a/docs/en/studio/release-notes.md +++ b/docs/en/studio/release-notes.md @@ -9,7 +9,18 @@ This document contains **brief release notes** for each ABP Studio release. Release notes only include **major features** and **visible enhancements**. Therefore, they don't include all the development done in the related version. -## 3.0.3 (2026-05-20) Latest +## 3.0.4 (2026-06-03) Latest + +* Blazor UI Selector: Added a built-in choice between MudBlazor and Blazorise for Blazor solution templates +* React Native Updates: Upgraded Expo to the latest version, improved keyboard handling, and ensured UI consistency +* Linux Support Enhancements: Improved system tool detection, terminal launching, and added full Linux publish/runtime support +* React Admin Security: Secured the React Admin Console sidebar menu by enforcing permission-based access gating +* Mobile Documentation: Added comprehensive setup guides and rules for React Native mobile templates +* Angular Microservice Fix: Resolved missing audit logging configurations and imports in microservice templates +* Modern Templates Licensing: Updated Modern architecture templates to be available exclusively for commercial/paid tiers +* Code & UI Stability: Fixed TypeScript compilation errors in React templates and resolved various minor system bugs + +## 3.0.3 (2026-05-20) * AI Agent Upgrades: Added browser automation tools and overall performance fixes * React Language Fix: Fixed language and localization settings being ignored in React templates diff --git a/docs/en/studio/version-mapping.md b/docs/en/studio/version-mapping.md index 14098122c2..d254004d4f 100644 --- a/docs/en/studio/version-mapping.md +++ b/docs/en/studio/version-mapping.md @@ -9,9 +9,10 @@ This document provides a general overview of the relationship between various versions of ABP Studio and the ABP version of the [ABP Solution Templates](../solution-templates/index.md) used when generating a new solution. Each version of ABP Studio is configured to create solutions with a specific ABP version. However, once a solution is created, you can easily update it to the latest version of ABP via ABP Studio or [ABP CLI](../cli/index.md#update). -| **ABP Studio Version** | **ABP Version of Startup Template** | +| **ABP Studio Version** | **ABP Version of Startup Template** | |------------------------|---------------------------| -| 3.0.3 | 10.4.0 | +| 3.0.4 | 10.4.1 | +| 3.0.3 | 10.4.0 | | 2.2.7 - 3.0.2 | 10.3.0 | | 2.2.5 - 2.2.6 | 10.2.0 | | 2.2.2 - 2.2.4 | 10.1.1 | diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs index b8af22ff19..25f9268ff2 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs @@ -75,6 +75,7 @@ public class AbpCliCoreModule : AbpModule options.Commands[CreateMigrationAndRunMigratorCommand.Name] = typeof(CreateMigrationAndRunMigratorCommand); options.Commands[InstallLibsCommand.Name] = typeof(InstallLibsCommand); options.Commands[CleanCommand.Name] = typeof(CleanCommand); + options.Commands[CleanLogsCommand.Name] = typeof(CleanLogsCommand); options.Commands[CliCommand.Name] = typeof(CliCommand); options.Commands[ClearDownloadCacheCommand.Name] = typeof(ClearDownloadCacheCommand); options.Commands[RecreateInitialMigrationCommand.Name] = typeof(RecreateInitialMigrationCommand); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CleanLogsCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CleanLogsCommand.cs new file mode 100644 index 0000000000..91d1b07d1f --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CleanLogsCommand.cs @@ -0,0 +1,57 @@ +using System.IO; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using Volo.Abp.Cli.Args; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Cli.Commands; + +public class CleanLogsCommand : IConsoleCommand, ITransientDependency +{ + public const string Name = "clean-logs"; + + public ILogger Logger { get; set; } + + public CleanLogsCommand(ILogger logger) + { + Logger = logger; + } + + public Task ExecuteAsync(CommandLineArgs commandLineArgs) + { + var logsEntries = Directory.EnumerateDirectories(Directory.GetCurrentDirectory(), "Logs", SearchOption.AllDirectories); + + Logger.LogInformation($"Removing 'Logs' files..."); + foreach (var path in logsEntries) + { + var files = Directory.GetFiles(path, "*logs.txt"); + + foreach (var file in files) + { + Logger.LogInformation($"Deleting: {file}"); + File.Delete(file); + } + } + Logger.LogInformation("Logs cleaned successfully!"); + return Task.CompletedTask; + } + + public string GetUsageInfo() + { + var sb = new StringBuilder(); + + sb.AppendLine(""); + sb.AppendLine("Usage:"); + sb.AppendLine(" abp clean-logs"); + sb.AppendLine(""); + sb.AppendLine("See the documentation for more info: https://abp.io/docs/latest/cli"); + + return sb.ToString(); + } + + public static string GetShortDescription() + { + return "Delete all *logs.txt files in the current folder and its subfolders."; + } +} \ No newline at end of file