v0.5.0
As part of this release we had 86 issues closed.
- Packaged as a Docker container instead of as a
dotnet tool
- Adds the
analyze
command- Implements a new processing pipeline
- Relies on "language agent" executables for language-specific operations and
- Uses language-agent-generated CycloneDX file as a data-source computing LibYear.
- Adds the
cache prepare
command- Prepares the cache that's used by the
analyze
command. This is performed implicitly whenanalyze
is run and the cache does not already exist.
- Prepares the cache that's used by the
- Adds the
cache destroy
command- This command can be used to remove the cache
- Adds the
agents detect
command- This command is used to list all of the language agents that are available to the
freshli
executable. This operation is run implicitly whenanalyze
is run.
- This command is used to list all of the language agents that are available to the
- Adds the
agents verify
command- This command is used to verify that each language agent (or a specific language agent) behaves in a way that is compatible with the
freshli
command.
- This command is used to verify that each language agent (or a specific language agent) behaves in a way that is compatible with the
Note: the scan
command is now deprecated. It will be removed in the next release.
Bugs
- #123
CurrentCulture
is explicitly set toInvariantCulture
but where? - #133 Calling
freshli git clone ..
twice in a row, results in a git error - #175 Exceptions thrown by
IApplicationActivity.Handle
andIApplicationEvent.Handle
need to be more visible - #184 Make date time output format consistent with other Freshli projects
- #213 Compute history should be able to work with custom intervals like 2weeks or 3months
- #268 Change DateTimeOffset format string to 'o'
- #281 Generate error event if no agents are found
- #308 Analyzing repository with an interval bigger than it's age will fail
- #322 Use "as of" date when computing package LibYear value
- #342
git
is missing from production Docker container image - #343 Fix url for viewing results
- #344
PrepareCacheActivity
is ignoring the result of callingCacheManager.Prepare
- #345 The
PrepareCacheActivity
should not save aCachedAnalysis
object to the database - #346 Handle "database is locked" error when writing to cache database
- #347 Handle child modules in multi-module project
- #361 Prevent
process-manifests
from being called in parallel for the same directory
DevOps
- #33 Warning when adding assets to GitHub release in CI
- #41 Fixes #33, removes warning for GitReleaseManager on Add Asset
- #47 Workflows are referencing vulnerable actions
- #66 Configure Dependabot for auto upgrading dependencies
- #72 Upgrade GitVersion and GitReleaseManager to latest versions
- #74 Address warning messages during publish step
- #83 Add support for
*.rb
to the.editorconfig
file - #124
MainCommand.cs
keeps being edited by the formatter - #227 Fix failing CI on
main
branch - #316 Build production image and push to Docker Hub
- #317 Ensure Freshli Web API is deployed
- #359 Get CI passing on the
main
branch
Documentation
- #82 Document project style guidelines for C#
- #226 Clean up README file and NuGet
- #271 Auto-generate diagram for activities and events
Enhancements
- #25 Add Scan and Help commands
- #45 Specify level of debug information
- #49 Add
cache prepare
command - #50 Add
cache destroy
command - #51 Add
git clone
command - #52 Add
git compute-history
command - #53 Add
git checkout-histories
command - #54 Add
git checkout-history
command - #56 Add
analyze
command - #57 Add
bom generate-histories
command - #58 Add
bom generate-history
command - #59 Add
bom detect-all-manifests
command - #60 Add
bom process-all-manifests
command - #61 Add
agents detect
command - #62 Add
agents verify
command - #65 Change executable name to
freshli
- #87 Add
version
command - #97 Add
compute libyear
command - #137 Add a Message Bus
- #146 Prepare Cache
- #147 Start analysis
- #148 Clone git repository
- #149 Compute history
- #150 Checkout history
- #151 Detect Manifests
- #152 Generate bill of materials
- #153 Compute libyear
- #163 Cache Destroy
- #174 Use
cache prepare
activities and events to prepare cache fromCacheWasNotPreparedEvent
handler - #192 Create Docker image that includes
freshli-cli
andfreshli-agent-java
for runningfreshli analyze
- #205 Let
GitRepositoryClonedEvent.Handle
passComputeHistoryActivity
to the activity engine - #208 Let
HistoryIntervalStopFoundEvent.Handle
passCheckoutHistoryActivity
to the activity engine - #215 Let AnalysisStartedEvent.Handle pass CloneGitRepositoryActivity to the activity engine
- #232 Adjust number of workers that should be running
- #234 Add option to
analyze
command so that it does not collect historical metrics - #235 Send
analyze
results to Freshli-Web API - #237 Let
HistoryStopCheckedOutEvent.Handle
passDetectAgentsForDetectManifestsActivity
to the Activity Engine - #238
ManifestDetectedEvent
dispatchGenerateBillOfMaterialsActivity
- #239
BillOfMaterialsGeneratedEvent
dispatchComputeLibYearActivity
- #240 Flesh out acceptance tests
- #242
AnalyzeRunner
able to return a non-zero exit code in case something went wrong - #287 Analyze a codebase that already has been checked out
- #315 Add acceptance test for QuestDB repository
- #323 Spawn an activity for computing the LibYear of each package
- #324 Performance
- #357 Cache calls to
retrieve-release-history
Epics
- #55 [EPIC] Implement CycloneDX-based pipeline
- #135 [EPIC] Implement an CQRS-Lite architecture
- #318 [EPIC] Fix any bugs that might be found while during a run through of the script
Questions
- #187 Determine if history interval logic has been implemented as described in
analyze
- #188 Determine if commit history logic has been implemented as described in
analyze
Refactoring
Testing