Версии библиотек - QualitySolution/QSProjects GitHub Wiki

Мы поддерживаем версионирование библиотеки для того чтобы, можно было поддерживать версии программ в стабильно заморожено виде. При этом имея возможность исправлять ошибки, не обновляя при этом проекты под модификации в библиотеках, выполненные с момента выпуска релиза.

Все активно развивающиеся проекты, как правило собираются на ветке master. Для выпущенных и поддерживаемых веток\версий программ создаем соответствующие поддерживаемые версии библиотек release\x.y. Это означает что в них мы вносим только исправления. Максимально исключая изменения ломающие обратную совместимость.

Версии используемые различными проектами

Таблица внизу позволяет понять зависимость разных проектов от конкретных версий библиотеки, чтобы иметь общую картину о выпуске новой версии и что на ее будет завязано. И необходимости вносить исправления в старые релизы.

Проект Версия релиза Ветка Версия QSProjects
Workwear 2.3 release/2.3 1.1
2.4 release/2.4 1.4
2.5 release/2.5 1.5
2.5? edition/nlmk 1.5? - outdate
2.6 release/2.6 1.6
2.7 release/2.7 1.7
2.8 release/2.8 1.8
2.8 edition/sposhiv 1.8
2.9 master master
CarGlass 1.7 release/1.7 1.3.1
1.8 master 1.5
Bazar 2.3.20 salova 1.6
2.3.6 release/2.3 1.0
2.4.4 release/2.4 1.1 ???
QSInside 1.x master develop

Изменения ломающие обратную совместимость.

1.? - develop

  • Асинхронный UoW
  • Конфигурация приложения сильно переделана под DI частично под DI от MS.
  • Удалено много статических классов DeleteConfig, UnitOfWorkFactory, NotifyConfiguration ... используйте внедрение зависимостей.
  • UnitOfWork упрощен, оставлен только вариант без главной сущности. Все что касалось IUnitOfWorkGeneric и RootObject удалено. Сделано это для того чтобы UnitOfWork можно было создавать через DI, а не в диалогах, что делает бессмысленным UnitOfWorkProvider который тоже удален.
  • Удален интерфейс IBusinessObject и вся связанная с ним логика.

1.9 - master

  • Удалена библиотека QSCustomFields
  • Метод QSMain.CheckServer перенесен в отдельный класс ServerChecker.

1.8

  • Библиотека полностью переведена на использование MySqlConnector.
  • Удалена библиотека QSCurrency.
  • Удалена QS.MachineConfig, она была звязана на Nini которая давно не поддерживается. Небольшой рефакторинг окна входа.
  • Библиотеки полностью избавлены от Gtk.DataBindings.
  • PerformanceHelper перемещен в QS.Utilities.Debug.
  • В GammaBinding удалены давно помеченные устаревшими методы SetDataProperty.
  • GtkColorAttribute переименовал в ColorNameAttribute и перенес в библиотеку на NetStandart.
  • Добавлена библиотека QS.Project.Abstract часть базовых интерфейсов перенесена туда. Потребуется добавление в солюшены.
  • Отправка ошибок перенесена в QS.ErrorReporting. DesktopErrorReporter переименован в ErrorReporter, исправлена часть зависимостей.
  • Очередной рефактиринг QS.Updater, функциональность разделена на QS.Updater.App и QS.Update.DB.
  • Модуль обновления приложения переведен на новую службу работающую по GRPС.
  • Удален интерфейс IAutofacScopeHolder и свойство AutofacScope в журналах, с соответствующим рефаторингом создания дочерних view в журналах.
  • Удален QSValidator. ObjectValidator полностью его заменяет.
  • Для EntryEntity установка параметров фильтра через UseViewModelJournalAndAutocompleter больше не передает функцию действия в журнал, а применяет функцию сама. Что позволяет не добавлять в журнал лишнего кода.
  • Удалена SingleSubscribeOnEntity подписка из модуля подписки на обновления объектов.

1.7

  • Многие классы перемещены в библиотеки NetStandart, для доступности из dotnet проектов.
  • Библиотека мониторинга переписана на MVVM. Исправлена опечатка в названии колонки changed_entity_id в таблице history_changes.
  • Удален класс UnitOfWorkChild.
  • Из модуля удаления удален метод FillFromMetaInfo, так как он использовался для переходного периода.
  • Класс ParameterService вынесен в отдельную библиотеку QS.BaseParameters.
  • Удалены микро-обновлени, всегда используйте обычные обновления.
  • Отправка уведомлений об ошибках теперь идет к новой службе по GRPC в проекты необходимо добавить новую библиотеку QS.ErrorReporting.Client.
  • Модуль UnhandledExceptionHandler переписан, избавились от статики, дополнительные обработчики теперь классы, для получения зависимостей теперь используется Autofac.
  • Удалена библиотека QS.Osm и QSOsmBaseScripts

1.6

  • GammaBinding перенесен в репозиторий QSProjects
  • Gamma.Util переименована в Gamma.Utilities и переведена в NetStandard.
  • Класс ReplaceEntity перемещен в библиотеку QS.Project и сделан нестатическим.

1.5

  • Обновление пакетов по сравнению с 1.4
  • Виджеты LeftSidePanel, RightSidePanel и HideHorizontalSeparator перенесены в Gamma
  • Полностью удалены QS.Contacts и QSContacts
  • Часть классов переехала в QS.Project.Core и QS.Updater.Core на NetStarnart2.0 скорей всего потребуется добавить ее в зависимости к проектам.
  • Удален проект QS.Utilities.dotnet.csproj где он использовался надо переключится на QS.Utilities.csproj теперь он собирается под NetStandart2.0
  • Перенес интерфейс IInteractiveService в пространство имен QS.Dialog

1.4

  • Удалена полностью библиотека QSSupportLib
    • Атрибуты для Assambly с описанием проекта перенесены в QS.Project, сервис ApplicationVersionInfo доработан для получения их значений.
      • Атрибут с указанием редакции заменен на атрибуть AssemblyModification с указанием модификации, то есть отдельной ветки или отдельной сборки программы. Этот атрибут теперь не является обязательным. То есть сборка пол умолчанию не обязана иметь какую либо редакцию.
    • Пространство имен QS.Project.VersionControl переименовано в QS.Project.Versioning, так как первое ассоциировалось с git и прочими системами.
    • Все связанное с версиями перенесено в QS.Project.Versioning в том числе класс для проверки версий CheckBaseVersion.
      • MainSupport.GetTitle() -> IApplicationInfo.ProductTitle
    • Переписан механизм работы с параметрами базы, новый механизм расположен в QS.BaseParameters
    • Работа с серийными номерами перенесена в библиотеку QS.Features
    • Полностью удален старый механизм отправки сообщений об ошибках, который был в библиотеке QS.Support, используйте только механизм из QS.ErrorReporting
    • QSMain.RunAboutDialog() больше не существует, эта функциональность разнесена на AboutView и AboutViewModel, так как AboutView сделана в виде диалога Gtk, она корректно не откроется через NavigatorManager. Запускайте пока вручную. Пример:
using(var local = AutofacScope.BeginLifetimeScope()) {
	var about = local.Resolve<AboutView>();
	about.Run();
	about.Destroy();
}
  • Изменения в модуле QS.ErrorReporting
    • UnhandledExceptionHandler.GuiThread теперь настраивается в GtkGuiDispatcher.GuiThread
  • Большой рефакторинг модуля обновления QS.Updater *

1.3.1

  • Обновление пакетов по сравнению с 1.3
  • Удалена QS.FNS
  • QSMachineConfig обновлена до QS.MachineConfig

1.3

  • PhoneFormatter - изменен подход к установке формата телефона, изменен конструктор.
  • ModalDialogViewModelBase переименован в WindowDialogViewModelBase
  • Перенесен, обновлен и разделен на две библиотеки функционал меню новостей. Теперь он в отдельной библиотеке QS.NewsFeed.

1.2

⚠️ **GitHub.com Fallback** ⚠️