VOOZH about

URL: https://deepwiki.com/Accenture/Ocaramba/7.2-nuget-package-structure

⇱ NuGet Package Structure | Accenture/Ocaramba | DeepWiki


Loading...
Last indexed: 6 June 2026 (fb3580)
Menu

NuGet Package Structure

The Ocaramba framework is distributed as a set of NuGet packages designed to provide flexible integration options for test automation projects. The packaging strategy separates core logic from specific driver dependencies, utilizes deterministic restore for environment consistency, and integrates advanced development tools like SourceLink and StyleCop for code quality.

Package Variants: Ocaramba vs. OcarambaLite

Ocaramba provides two primary NuGet packages to cater to different project requirements. Both projects target net8.0 and are configured to generate packages on build Ocaramba/Ocaramba.csproj4-15 OcarambaLite/OcarambaLite.csproj4-15

Ocaramba (Full)

The standard package designed for most users. It includes the core framework logic plus direct dependencies on common Selenium drivers to simplify the initial setup.

OcarambaLite

A lightweight version intended for advanced users or CI/CD environments where driver management is handled externally (e.g., via Docker or custom driver paths).

Dependency Mapping

The following diagram illustrates the relationship between the NuGet packages and their external dependencies as defined in the project files.

Package Dependency Hierarchy


Sources: Ocaramba/Ocaramba.csproj31-55 OcarambaLite/OcarambaLite.csproj29-34

Deterministic Restore and Security

Ocaramba employs packages.lock.json files to ensure deterministic NuGet restores. This locks the entire dependency graph, including transitive dependencies, to specific versions and content hashes, preventing "floating" version issues in CI/CD.

Sources: Ocaramba/Ocaramba.csproj64 OcarambaLite/OcarambaLite.csproj60 Ocaramba/packages.lock.json1-10 OcarambaLite/packages.lock.json1-10

Development and Quality Tools

The NuGet packages are built with integrated tools to support debugging and enforce coding standards across the solution.

SourceLink

Configured to allow users to step into Ocaramba source code during debugging by mapping the NuGet package back to the GitHub repository.

StyleCop.Analyzers

Ensures that the framework code adheres to consistent formatting and documentation standards.

Sources: Ocaramba/Ocaramba.csproj18-42 OcarambaLite/OcarambaLite.csproj18-39 Ocaramba/fxcop-sonarqube.tests.ruleset1-175

Release Pipeline and Publishing

The release process is automated via CI/CD pipelines (GitHub Actions and Azure Pipelines), handling versioning, artifact creation, and publishing to NuGet.org.

Pipeline Orchestration

The build process produces two types of artifacts for each package:

  • .nupkg: The standard NuGet package containing the compiled binaries.
  • .snupkg: The symbol package used for debugging, enabled via <IncludeSymbols>true</IncludeSymbols> and <SymbolPackageFormat>snupkg</SymbolPackageFormat> Ocaramba/Ocaramba.csproj21-22

Metadata Configuration

The .csproj files contain standard NuGet metadata properties used during the dotnet pack operation:

NuGet Packaging and Pipeline Flow


Sources: Ocaramba/Ocaramba.csproj9-30 OcarambaLite/OcarambaLite.csproj9-28