Обновления
2018-10-30, вторник
Проект
Версия
-
x.y.z: гарантированная совместимость, возможно добавление функций (для поэтапной разработки версии), исправление или настройка версии (будет удалено с использованием // Deprecated: descript text
или пояснения).
-
x.y: несовместимая версия, удаление устаревших методов.
-
x: значительные (революционные) изменения, важные вехи в разработке.
Будущее
v1.4.x
v1.4.2/2024-1
Завершение работы над версией 1.4 и оптимизация кода (обратная совместимость).
- fix: Исправлены ошибки, обнаруженные инструментом golangci-lint, путём массового исправления.
- move: Перемещение пакета util.ListIndex в rock.ListIndex.
- feat: Добавлена функция GetBuildInfo для поддержки параметра
-ldflags
инструмента go build.
Культура/пиньинь
- feat: Добавлен список Polyphony для получения многотональных китайских иероглифов.
- feat: Добавлена проверка IsEmpty на пустоту.
- pref: pinyin.SearchAlpha ищет китайские иероглифы, начинающиеся с заданного китайского иероглифа, и поддерживает несколько китайских иероглифов.
- pref: Функция PyinNumber добавляет параметр, который позволяет ей поддерживать разделение символов, поскольку она не заменяет их на месте.
Cmd/uymas
- pref: В команде pinyin отображается несколько китайских иероглифов.
- pref: Команда datediff/dd добавляет опцию -add для выполнения операций сложения и вычитания времени.
- pref: Поддержка конфигурации анализа командной строки в команде test.
Bin
- feat: Добавлено ArgConfig для настройки длинных и коротких опций и символов равенства.
- feat: Поддержка CLI.RunWith и Args.NewArgWith для ArgConfig.
- pref: Оптимизация Bin.CliApp для обеспечения согласованности с исходной функцией и предоставления подсказки о несуществующих командах по умолчанию.
Bin/butil
- feat: Добавление функции Pwd для получения текущего рабочего каталога.
Bin/color
- feat: Добавление функций AnsiClearFn и AnsiClear для очистки строк проверки.
Util
- feat: Добавление функции ListNoRepeat для фильтрации повторяющихся элементов массива.
- del: Перенос универсального обработчика пакетов в rock и переименование его в псевдоним.
- pref: Расширение поддержки универсальных типов для функций ExtractParam, ExtractParamFunc и ExtractParamIndex, что позволяет им поддерживать все типы.
Str
- feat: Добавление функции ParseDuration для анализа строкового времени.
Logger
- pref: Улучшение функции NewLogger за счёт уменьшения количества уровней if-операторов. Исходный текст на английском языке:
Fix: CliCmd.parseArgs parameter parsing ignores the value --key=value
logger
- doc: Add example code NewLogger
- feat: Increase log drive support (buffer) and drive constants (built-in: stdout/file/buffer)
- feat!: Increase "basic control log output function" (generator) and use it to re-log level output
- feat: Increase "basic callback function" (generator) and implement callback log output control function
- pref: Make the NewLogger function support default parameters
- fix: Fix the OutputDir configuration file to be an absolute address when it is invalid
number
- doc: According to godoc rules, add example code and optimize documentation
xsql
- feat: increase Xsql structure so that it can be executed directly from SQL to database
- doc: add example code, as well as update documentation.
TODO
After introducing the data receiver, the binary compilation size doubled
all
- optimize) Optimize comments according to IDE prompts, and further switch Chinese to English.
- optimize) Callback function parameters try not to write actual parameters (writing style)
bin
- +) CLI.hookBeforeCall new hook mechanism, implementing a request event before calling a callback.
- +) CliCmd.AppendData new data merge interface, allowing CliCmd to support external data import.
- +) CLI.UnLoadScriptSyntax supports optional (--file,-f) language collection script files, (--script,-s) language text parsing.
- +) CLI.CliAppCompleteInterface, and make it support system built-in fixed methods such as: construct > command > help > unmatched > index (ordered rule).
- +) CliCmd.ArgStringSlice used to get array-like parameters
- +) Cmd2StringMap user number implements command string conversion to golang-style string, and uses it to optimize command line routing
- +) CommandAlias/SubCommandAlias/CommandAliasAll/SubCommandAliasAll add built-in alias mechanism (suitable for AppCmd-style).
- -) Remove deprecated items: FormatStr, CliCmd.HasSetting
- optimize) bin.FormatTable uses reflect extender to support any 2-dimensional array formatting.
- optimze) CLI.router route rewrite will process code into multiple function calls, undeclared method registration detection more extensive.
- optimize) CliCmd.parseArgs simplifies code, uses functions to eliminate redundancy, and makes it better support option parameter parsing.
- optimize) bin.FormatKv optimized support struct or map, util.StructToMap adds support for pointers.
- change) Rename CLI.RegisterUnfind --> CLI.RegisterAny
parser
- +) DataReceiver new data receiver, implements parsing support for json/url data formats.
- +) NewScriptFile new function for parsing scripts, initial support for shell syntax.
- +) ParseLine new line parsing, no longer simple splitting based on spaces.
syntax initial increase in language syntax support, commonly used
- +) NumberOpera implements string equality operations
fs
- +) DirScanner increased parallel scanning implementation (to be optimized) [Experimental]
- -) remove deprecated items: Struct --> ByteSize
- fixed) DirScanner scan directory error file filtering rules.
str
- -) remove deprecated items: Func -> UcWords
- -) str.WriterToContent remove experimental word method, use language support library.
- +) GetNotEmpty use multiple strings to get non-empty strings
- +) StrQueueToAny string slice converted to any type slice
number
- -) remove deprecated items: Struct -> One
util
- -) remove deprecated items: Func -> Sec, SecCall, SecCallStr
- +) new method ToMapLStyleIgnoreEmpty and move map to object.go inside
parse/xini
- change) GetFunc -> SetFunc
- optimize) Container.HasKey extends support for multiple key value detection
cmd/uymas
- optimize) Use classes to rewrite the application, avoid one function internal code too long
logger
- feat) new log base package support stdout, file output, used for log base package enhancement. (from project development)
pinyin
- +) new text material prepared for embedding
alpha version
v1.1.0-a1/20210702
v1.1.0-ea1/20210713
- ea stands for experimental alpha experimental alpha version
- rename github.com to gitee.com (package name) (expected to be merged to develop branch on 2021-07-20)
v1.1.0-ea3/20211215
1.0.x
1.0.2/2021-07-02
v1.0 fix version
number
- +) BitSize add methods Bit/Byte to complete free acquisition of different units
- optimize) BitSize default output uses 1024 system instead of original 1000
- +) Unit method used to complete free acquisition of different units
- +) Bytes method used for byte quick conversion to BitSize method
bin
- +) StructToMap and StructToMapLStyle new struct to map methods
- +) CliCmd.AppendData new data merging interface, enabling CliCmd to support external data imports.
- optimize) FormatQue uses reflection to adjust its support for any type of array/slice data
util
- +) InQueAny new method to support any type of array/slice data key-value detection
- +) SendTimeDiff new method for calculating more statistical time consumption, used to replace old methods: Sec, SecCall, SecCallStr.
str
- +) IsLatinAlpha judge whether it is Latin alphabet letter
- +) LowerStyle convert peak-dot naming rule to lowercase style naming standard
- +) CamelCase use snake case (snake) to CamelCase implementation
fs
- +) GetMemStatsRange new method for calculating program memory consumption
- +) MemUsage new structure used to quickly calculate system memory usage situation
cmd/uymas
- optimize) scan, sc increase memory usage monitoring, time consumption monitoring.
1.0.1/2021-06-11
cmd/uymas
-
+) Use Go 1.16 embed feature, add text-based command document
bin
-
+) new method GetHelpEmbed used to read command line document format Запрос помощи по cmd
-
uymas/bin
- (+) добавление метода
CallCmdHelp(key string) bool
для реализации метода помощи по командам cmd.
- (+) добавление метода
Rwd() string
для получения каталога, в котором находится программа командной строки.
-
uymas/util
- (+) добавление базовой реализации класса Error.
-
uymas/util/str
- (+) добавление метода
Lcfirst
для преобразования первой буквы в нижний регистр.
-
uymas/fs
- (+) добавление метода
CheckDir
для автоматической проверки существования каталога и попытки его создания при отсутствии.
- (+) добавление метода
IsDir(dir string)
для проверки существования каталога.
v0.2.0/20181106
(Оптимизация) uymas/bin для реализации распределения вторичных команд.
(+) Добавление пакета uymas/fs.
-
uymas/bin
- (Исправление)
runAppRouter
— некорректный анализ свойства Setting.
- (+) Добавление структуры SubCmdAlias.
-
Command
- (+) Добавление свойства SubCmdAlias.
- (+) Реализация метода
InnerDistribute
для распределения внутренних команд (вторичное распределение команд).
- (Оптимизация) *Поддержка вторичного распределения команд через псевдоним в методе Init; преобразование функции команды из (comand *Command) в (c Comand).
-
uymas/util
- (+) Добавление метода
InstruQuei
для нечувствительного к регистру поиска.
- (Оптимизация) Перенос кода, связанного с временем выполнения, из других мест.
-
uymas/fs
- (+) Новый пакет для обработки файлов.
- (+) Добавление реализации на основе интерфейса чтения и записи io.
0.1.x
Базовая настройка проекта.
- Добавление пакета uymas/bin — вспомогательная программа командной строки.
- Добавление пакета uymas/util — пакет инструментов проекта.
- Добавление пакета uymas/util/str — пакет строковых инструментов.
v0.1.1/20181105
Оптимизация проекта.
(+) uymas/bin поддерживает псевдонимы команд и параметры вторичных свойств (по умолчанию включено).
-
uymas/bin
- (+) Метод
Alias(cmd string, alias ...string)
используется для поддержки псевдонимов команд.
- (+) Метод
AliasMany(alias map[string][]string)
— пакетное назначение псевдонимов.
- (+) Метод
getCommandByAlias(command string) string
реализует поддержку анализа псевдонимов команд.
- (+) Свойство
SubCommand(able bool)
реализует запрет на вторичные команды (по умолчанию разрешено).
-
App
- (+) Метод
QueueNext(key string) string
получает значение следующего элемента в очереди.
- (Оптимизация) Оптимизация структуры App: удаление Option (переименовано в Setting), добавление вторичных команд и других свойств.
- (Оптимизация) (HasOptions -> HasSetting) проверка наличия конфигурации.
v0.1.0/20181030
Инициализация проекта.
-
uymas/bin
-
router
- (+) Реализация маршрутизации программы командной строки с использованием механизма отражения и регистрации приложений для маршрутизации приложений.
- (+) Первоначальная реализация анализа приложений cmd.
-
App
- (+) Реализация класса App, предоставляющего базовые методы обработки команд.
-
Command
- (+) Реализация базового класса Command для фактического применения наследования; управление входом в программу командной строки.
-
uymas/util
- (+) Предоставление метода определения существования среза.
-
uymas/util/str
- (+) Метод
Ucfirst
используется для изменения первой буквы на верхний регистр.
Опубликовать ( 0 )