Releases: statiqdev/Statiq.Framework
Releases · statiqdev/Statiq.Framework
1.0.0-alpha.10
- Added extensions for CLI
IConfiguratorto allow more flexible direct configuration (such as command branches). - Removed configuration/settings debug output on startup as it could leak secrets via environment variables or other configuration providers.
- Fix for
GenerateJsonso it executes when no input documents are provided. - Fix for preview command when no output is generated and the output directory does not exist.
- Fix for clearing content with empty string in
ReplaceContent. - Renamed
EngineSettingstoConfigurationSettingsto reflect a broader use than just the engine.
1.0.0-alpha.9
- Added
IBootstrapper.AddDelegateCommand()fluent methods to configure delegate-based commands. - Added
IBootstrapper.AddBuildCommand()fluent methods to configure simple commands that build specified pipelines. - Refactored the base commands to allow consumers to derive from
EngineCommand. - Added a new
IEngineManagerinterface to expose the engine manager to commands that derive fromEngineCommand. - Refactored
IEngine.SettingsandIExecutionContext.Settingsto use aIConfigurationas the backing store and present it as metadata. - Lazily creates type-based pipelines using the DI container so they can have injected services (#59).
- Adds
INamedPipelineto allow pipeline instances to provide names. - Changes
Module.AfterExecution()andModule.AfterExecutionAsync()to pass a newExecutionOutputsclass instead of by ref (which doesn't work with async). - Some tweaks to the
MirrorResourcesretry policy.
1.0.0-alpha.8
- Adds
==overloads toNormalizedPath. - Adds a special
RenderSection()toStatiqRazorPagethat renders default content if the section is not defined. - Renamed
IDocument.GetStream()toIDocument.GetContentStream(). - Renamed
IDocument.GetStringAsync()toIDocument.GetContentStringAsync(). - Renamed
IDocument.GetBytesAsync()toIDocument.GetContentBytesAsync(). - Added
IEngine.SerialExecutionand--serialCLI argument to run pipelines and modules in serial (#58).
1.0.0-alpha.7
- Adds support for deployment pipelines (
IPipeline.Deployment) which run their output phase only after other output phases (#57). - Fixes a bug when specifying a setting on the CLI and the bootstrapper.
- Adds
StartProcess.WithErrorExitCode()to define a custom function for determining if the process existed in error. - Adds new
-d/--defaultsand a flag to the engine to indicate if default pipelines should be run independent of specified pipelines. - Renames
SimpleBuildCommandtoCustomBuildCommandand adds support for the default pipelines flag.
1.0.0-alpha.6
- Adds back a
ExecuteModulesmodule that works like the oldBranchmodule used to by dropping any output documents from the child modules. - Tweaks to the placeholder factory in
CreateTree. - Fix for the JavaScript engine getting reset on execution.
- No longer strips "Pipeline" from the end of pipeline classes for the pipeline name since
nameofis often used to refer to pipelines.
1.0.0-alpha.5
- Adds
StartProcess.KeepContent()to prevent replacing document content with process output. - Adds
StartProcess.OnlyOnce()to only execute the process once. - Renamed
PipelineTriggertoExecutionPolicy. - Adds type-based methods for adding pipelines.
- All
IPipelineimplementations from the entry assembly are added by the bootstrapper by default. - All
ICommandimplementations from the entry assembly are added by the bootstrapper by default. - Adds ability to specify which defaults to add to the bootstrapper.
- Made
EngineManagerpublic so it can be used by custom commands. - Adds a new
SimpleBuildCommandbase command to make creating new pipeline-specific build commands easier. - Adds
AddPipelines()andAddCommands()methods to add pipelines and commands from the entry or a given assembly. - Adds
MultiConfigModule,ParallelMultiConfigModule,SyncMultiConfigModule, andParallelSyncMultiConfigModulebase classes for modules that use multipleConfig<T>values. - Adds
ExecutionPipelinebase pipeline for use when a custom pipeline that runs code for each phase is needed. - Adds new
ZipDirectorymodule. - Renames the
Statiq.AmazonWebServicesextension library toStatiq.Aws. - Adds
Statiq.Azureextension library. - Adds new
DeployAppServicemodule.
1.0.0-alpha.4
- Updated to .NET Core 3.0 final
- Isolated pipelines can now be dependencies of other pipelines (but output documents still can't be accessed).
- Renames delegate-based
IBootstrapper.AddSettings()overload toIBoostrapper.ConfigureSettings(). - Renames
IBootstrapper.AddServices()toIBoostrapper.ConfigureServices(). - Adds
IBootstrapper.ConfigureEngine(). - Adds a
StartProcessmodule to start a process and create a document from it's output or run it in the background. - The bootstrapper now adds environment variables to the settings by default with ALL_CAPS keys.
- Any setting with an ALL_CAPS key is masked during debug output on startup.
- Ongoing console logging improvements.
- Added trigger conditions to pipelines to include always running or manually running.
- Added a
-p/--pipelineCLI argument to indicate which pipelines to execute.
1.0.0-alpha.3
- New execution summary table logged after execution.
- New console logger with better output.
- More refactoring of base
Modulebefore/after methods.
1.0.0-alpha.2
- Renamed the GitHub project/repo to "Statiq.Framework" to match forthcoming "Statiq.Web" and to distinguish between primary code repos (prefixed by "Statiq.") and themes, etc. Also note the upcoming Statiq app will be known as Statiq Web from now on (as opposed to Statiq Framework).
- The engine now returns a
IPipelineOutputswith the result documents from each pipeline. - Adds global events
BeforeModuleExecutionandAfterModuleExecutionwith ability to override outputs. - Adds a new global event mechanism via
IEventCollection,IReadOnlyEventCollection,IEngine.Events, andIExecutionContext.Events. - Refactored the base module classes to include a before/after execution method, made the execution methods
protected, and renamed the execution methods for clarity. - Added property setters with null checks to
Pipelineso it works better as a base class and you can define the phase modules directly as properties. - Cleaned up
ModuleListmethods to remove overload ambiguity betweenparams IModule[]andIEnumerable<IModule>. - Added an implicit operator from
IModule[]toModuleList. - Raw application arguments as well as application input are now surfaced through a new
IReadOnlyApplicationStateobject in theIExecutionContext, taking the place of theApplicationInputproperty. - Adds a bunch of
Config.FromSettings()methods that get values from aIReadOnlySettings. - "Pipeline" is now trimmed from the end of type names when types are added as a pipeline to a pipeline collection.
1.0.0-alpha.1
- Statiq Framework is comprehensive "reboot" of Wyam.