logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class TombstonePlanner

    Plans the tombstones that make the first upgrade over an old install fully self-contained. For every path the previous release shipped under the owned framework roots that the current version no longer ships, the package carries an inert file at that exact path with that exact previous-release GUID: on import Unity overwrites the customer's orphan in place (same path + GUID = a normal asset update), so no stale code survives to break compilation, the just-imported cleaner loads in the SAME session, and it silently sweeps the tombstones — they are deliberately absent from the shipped snapshot. Pure: no Unity API calls, so it is unit-testable without a running editor.

    Inheritance
    object
    TombstonePlanner
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    Namespace: Serenity.Editor.PackageBootstrapper
    Assembly: Serenity.PackageBootstrapper.Editor.dll
    Syntax
    public static class TombstonePlanner

    Fields

    OwnedRootPrefixes

    Must stay equal to SerenityFrameworkOwnership.OwnedRoots (cleaner assembly — not referencable from here); a test asserts the two lists match so the scrubber's scorch and the tombstones can never cover different trees.

    Declaration
    public static readonly string[] OwnedRootPrefixes
    Field Value
    Type Description
    string[]

    Methods

    BuildDummyAssemblyName(string)

    Deterministic unique dummy assembly name derived from the tombstone's GUID.

    Declaration
    public static string BuildDummyAssemblyName(string guid)
    Parameters
    Type Name Description
    string guid
    Returns
    Type Description
    string

    BuildTombstoneContent(string, string, string)

    Inert content by extension: a .cs tombstone is a single comment (compiles empty); an .asmdef tombstone is a valid Editor-only assembly definition with a deterministic dummy name and no references; an .asmref tombstone points at the cleaner's assembly definition by GUID so it always resolves; every other extension becomes an empty file.

    Declaration
    public static string BuildTombstoneContent(string path, string guid, string cleanerAssemblyDefinitionGuid)
    Parameters
    Type Name Description
    string path
    string guid
    string cleanerAssemblyDefinitionGuid
    Returns
    Type Description
    string

    SelectTombstones(IReadOnlyList<ShippedAssetEntry>, IEnumerable<string>)

    Declaration
    public static List<ShippedAssetEntry> SelectTombstones(IReadOnlyList<ShippedAssetEntry> previousSnapshotEntries, IEnumerable<string> currentShippedPaths)
    Parameters
    Type Name Description
    IReadOnlyList<ShippedAssetEntry> previousSnapshotEntries
    IEnumerable<string> currentShippedPaths
    Returns
    Type Description
    List<ShippedAssetEntry>
    In this article
    © 2026 Serenity. All Rights Reserved