Skip to content

Releases: kephas-software/kephas

v11.1.0

13 Apr 16:54
Compare
Choose a tag to compare
  • Injection

    • Breaking change: Renamed IContextFactory to IInjectableFactory. Made more generic by renaming CreateContext(...) to Create(...).
    • NEW: Injection: Added IInjectable marker interface to signal injectable instances. Also, added Type.IsInjectable() extension method to indicate whether a Type is injectable or not.
    • NEW: Made IContext injectable.
  • Logging

    • Added new Loggable(IInjectableFactory) constructor.
  • Workflow

    • NEW: Added Conditional, ConditionalLoop, Sequence, Parallel, Set, and Const activities.
    • Improved IStateMachine definition.
    • NEW: Made activities (IActivity) injectable, so they can be deserialized and, at the same time, have assigned services.
    • Small improvements in RuntimeActivityInfo (give up eflection when invoking ExecuteAsync).
  • Operations

    • Cleaned up OperationsStrings.
  • Serialization.NewtonsoftJson

    • NEW: Added support for serializing/deserializing injectable instances.
  • Tests

    • Updated Plugin tests to use v11.0 when installing plugin.
    • Moved Behaviors tests to the new Kephas.Behaviors.Tests.
    • Fixed multiple messaging tests (Autofac).

v11.1.0-dev.3

31 Mar 12:22
Compare
Choose a tag to compare
v11.1.0-dev.3 Pre-release
Pre-release
  • Orchestration

    • Added AppVersion to RuntimeAppInfo
    • Improved app runtime information (version and features).
  • Abstractions

    • New: Added IEnumerable.ForEach async version (extension method).
  • TextProcessing

    • Breaking change: TokenizerSettings.WordSeparators is now a string containing all separator characters.
    • New: TokenizerSettings.WordMinLength (default 3) and .WordBlockSeparators - blocks of strings considered also word separators.

v11.1.0-dev.2

23 Mar 15:02
Compare
Choose a tag to compare
v11.1.0-dev.2 Pre-release
Pre-release
  • AspNetCore

    • WebApp moved to Kephas.Application.AspNetCore namespace.
  • Application

    • StartupAppBase.RunServiceAsync used instead of RunAsync in ApplicationStarted.Register. The base method just calls RunAsync, but the WebApp calls the base implementation of RunAsync, as it overrides RunAsync.
    • Breaking change: IApp.RunAsync() is now extension method instead of interface method.
  • Extensions.Hosting

    • Breaking change: Must provide an AmbientServices to HostBuilderExtensions.ConfigureAmbientServices.
  • Other

    • Added multiple README.md files.

v11.1.0-dev.1

23 Mar 11:25
Compare
Choose a tag to compare
v11.1.0-dev.1 Pre-release
Pre-release
  • Application.Abstractions

    • Breaking change: RequiredFeatureAttribute renamed to RequiresFeatureAttribute and moved to Application.Abstractions.
    • Breaking change: IFeatureInfo moved from Kephas.Application to KephasApplication.Abstractions, as well as IAppRuntime.GetFeatures() and IAppRuntime.ContainsFeature() from ApplicationExtensions to ApplicationAppRuntimeExtensions.
    • Breaking change: IFeatureInfo.Version : SemanticVersion instead of Version.
    • Breaking change: FeaturesKey is not public anymore, instead the IAppRuntime.SetFeatures() extension method.
  • Application

    • Breaking change: AppBase.RunAsync returns an AppRunResult instead of tuple.
    • New: Added IApp to Application abstractions and made apps async disposable.
    • New: Added SwitchApp, allowing to switch from multiple application instances, depending on some startup condition.
    • New: Added IApp.RunAsync(int errorCode)
  • Messaging

    • New: EnsureRequiredFeatureMessageProcessingBehavior will throw if a message is marked with RequiresFeature() and that feature is not present or enabled.
  • Workflow

    • Breaking change: Lowered requirements for IActivityContext.Scope to IDynamic.

v11.0.0

11 Mar 08:30
Compare
Choose a tag to compare

Final 11.0.0 Release

Highlights

  • Added support for multi-tenant.
  • Added support for templating (simple and Razor).
  • Added data repositories based on Redis.
  • Added abstractions for connectivity based on host URI and credentials. Used in MailKit and Redis.
  • Enhanced support for modules in Python scripting.

Change log

  • Redis

    • Fix RedisConnectionFactory.
  • Orchestration

    • Added memory usage to IRuntimeAppInfo.
  • Scheduling.Endpoints

    • Added description to some job messages.
  • Plugins

    • Fix EnablePlugins when provided in the AppArgs

v11.0.0-dev.7

07 Mar 09:24
Compare
Choose a tag to compare
v11.0.0-dev.7 Pre-release
Pre-release
  • Scheduling

    • Breaking change: Refactored Scheduling: moved interfaces to Kephas.Scheduling.Abstractions.
    • Added initialization and finalization logic in InProcessScheduler relative to the job store.
    • The Scheduler returns disposable queries.
  • Data.Redis

    • Small improvements
  • Abstractions

    • NEW: Added IDisposableQueryable.
  • Mail.MailKit

    • Added support for IUserPasswordCredentials and IUserClearTextPasswordCredentials in MailKitImapConnection.
  • Messaging

    • Messaging behavior improvement (default method implementation).
  • Core.Endpoints

    • Fixed GetSettingsTypesHandler, retrieving also the metadata.

v11.0.0-dev.5

28 Feb 09:14
Compare
Choose a tag to compare
v11.0.0-dev.5 Pre-release
Pre-release
  • Injection

    • NEW: Added NullEnabled*ServiceCollection services to avoid unnecessary Kephas.Behaviors reference.
  • Security

    • NEW: Added credentials type: UserClearTextPasswordCredentials.
    • All credential types have a corresponding interface.
    • Added README.md
  • Connectivity

    • Breaking change: the host, credentials and kind are now arguments in CreateConnection and are set into the context.
  • Mail.MailKit

    • Breaking change: Updated connectivity changes.
  • Redis

    • Breaking change: refactored to use connectivity. Redis connections are created through IConnectionProvider service.
    • Removed the RedisClientSettings: each Redis client is responsible for defining its connection.
  • Data.Redis

    • updated to support Kephas.Connectivity.
  • Messaging.Distributed.Redis

    • Replaced RedisClientSettings with RedisRoutingSettings and used connectivity instead.
  • Messaging.Distributed

    • Breaking change: refactored InProcessMessageRouter (renamed to DefaultAppMessageRouter) by extracting the inner queing service to IMessageQueueStore/InProcessMessageQueueStore. Also, made this service based on a non-static queue dictionary - for testing purposes there is now another InProcessStaticMessageQueueStore service in tests.

v11.0.0-dev.4

24 Feb 14:27
Compare
Choose a tag to compare
v11.0.0-dev.4 Pre-release
Pre-release
  • Injection

    • Breaking change: INamedServiceResolver removed, replaced by IInjector.Resolve(serviceName).
  • Abstractions

    • NEW: Added ILocationsManager and FolderLocationsManager (default implementation). This should be overwritten in Tenants with TenantFolderLocations for tenant support.
    • FileSystem - added support for hidden locations (prefixed by dot '.').
  • Application.Abstractions

    • AppRuntimeBase: Make GetLocations available in inheritors.
  • Templating

    • New: Added InterpolationTemplatingEngine, FileTemplate, StreamTemplate.
  • Templating.Razor

  • Tenants

    • NEW: Added TenantFolderLocationsManager as tenant specific implementation of ILocationsManager. AmbientServices.WithTenantSupport(appArgs) extension method replaces the default ILocationsManager service with the tenant specific one.
    • By default, the tenant locations are hidden (prefixed by dot '.').
    • For a list of features please check the README at Kephas.Tenants
  • Plugins

    • Made PluginsAppRuntime play nice with tenant support (use the ILocationsManager for plugin locations).
  • Plugins.NuGet

    • Update NuGet.* references to 6.1.0.
  • Scripting

    • Breaking change: Split StringScript, StreamScript, and FileScript from Script. Added Name to IScript.
    • Added support for arguments deconstruction in ScriptGlobals.
    • Breaking change: IScriptProcessor will configure the execution context instead of providing it as parameter. The script execution context will be added to ScriptingContext during configuration.
  • Scripting.CSharp

    • Upgraded Scripting.CSharp to C#10.
  • Scripting.Python

    • Upgraded Python to Python 3.4 (alpha)
  • Other

    • Added README.md files to multiple packages (Scripting, Templating, and Tenants).

v11.0.0-dev.2

18 Feb 20:09
Compare
Choose a tag to compare
v11.0.0-dev.2 Pre-release
Pre-release
  • Abstractions

    • Added IAdapter and IAdapter interfaces.
    • Soft breaking change: Moved Priority, IHasOverridePriority and IHasProcessingPriority from Injection to Abstractions.
  • Connectivity

    • NEW: Added Kephas.Connectivity to handle various connections in a uniform way. Intended to be used with MailKit, Redis, MongoDB, other.
    • Added IConnection.OpenAsync.
  • Data.MongoDB

    • Upgraded MongoDB packages to 2.14.1
  • Data.Abstractions

    • NEW: Moved some abstractions from Kephas.Data to Kephas.Data.Abstractions
    • Breaking change: Moved IIdGenerator to Kephas.Data.Abstractions from Kephas.Core.
  • Other

    • Breaking change: Remove support for .NET 5 (out of support).
    • Deployment scripts: added support for single package sign/push.
  • Mail.MailKit

    • Upgraded MailKit to latest version.
    • Breaking change: refactored Kephas.Mail.MailKit to use the adapter pattern (IAdapter).
    • NEW: Added MailKitImapConnection and MailKitConnectionFactory.
  • Logging.Log4net

    • Updated log4net.
  • Logging.Serilog

    • Updated Serilog.
  • Scripting.Python

    • Updated IronPython.
  • Scripting.Lua

    • Upgraded NeoLua.
  • Templating.Razor

    • NEW: Added Kephas.Templating.Razor, implementation for Razor (cshtml) templating.
  • Reflection

    • Added support for closed generics in QualifiedFullName.
    • Fix: DefaultTypeResolver.ResolveType would not resolve generic types if they were defined in different assemblies.

v11.0.0-dev.1

07 Feb 11:46
Compare
Choose a tag to compare
v11.0.0-dev.1 Pre-release
Pre-release
  • Data.Redis

    • NEW: Added primary support for Redis Database.
  • Templating

    • NEW: Added Kephas.Templating component, primary support for templating.
  • Tenants

    • NEW: Added primary support for tenants (Kephas.Tenants). The application receives the tenant either from the application arguments or from the environment variable DOTNET_TENANT.
    • Added primary configuration for tenants and TenantsAdmin permission.
    • Added IContext.Tenant() and IAppArgs.Tenant() extension methods.
  • Application

    • NEW: AppArgs load also values from environment variables starting with KEPHASAPP_. The prefix can be changed/customized by invoking right at application start AppArgs.SetEnvironmentAppArgsPrefix("MYAPP_").
    • Breaking change: IAppRuntime.GetAppFramework() moved to RuntimeEnvironment.GetAppFrameworkMoniker(). Also, AppRuntimeBase.GetAppFrameworkName() moved to RuntimeEnvironment.GetAppFrameworkName().
  • Abstractions

    • Added support for ILocations/FolderLocations to be used for Config, Licenses and other.
  • Reflection

    • Fix: RuntimePropertyInfo would always fail to compile a delegate for the property setter.
  • Data.IO

    • Fix: AssemblyEmbeddedResourcesDataInstallerBase would not order the embedded files properly for .NET 5.0+, as the file extension should be ignored.
  • Tests

    • Fixed multiple tests.
    • Split Kephas.Reflection.Tests and Kephas.Reflection.Dynamic.Tests from Kephas.Core.Tests