diff --git a/docs/fork/strip-reports/v0.16.22.json b/docs/fork/strip-reports/v0.16.22.json new file mode 100644 index 0000000..e3efc18 --- /dev/null +++ b/docs/fork/strip-reports/v0.16.22.json @@ -0,0 +1,318 @@ +{ + "ref": "v0.16.22", + "commit": "474dd0229cb20cf513036619781ed97bd8073c3f", + "removed_files": [ + "crates/common/src/enterprise/alerts.rs", + "crates/common/src/enterprise/config.rs", + "crates/common/src/enterprise/license.rs", + "crates/common/src/enterprise/llm.rs", + "crates/common/src/enterprise/masked.rs", + "crates/common/src/enterprise/mod.rs", + "crates/common/src/telemetry/metrics/store.rs", + "crates/common/src/telemetry/metrics/test_data.rs", + "crates/common/src/telemetry/tracers/store.rs", + "crates/http/src/api/telemetry.rs", + "crates/jmap/src/registry/mapping/archived_item.rs", + "crates/jmap/src/registry/mapping/masked_email.rs", + "crates/jmap/src/registry/mapping/telemetry.rs", + "crates/scim-proto/src/attributes.rs", + "crates/scim-proto/src/etag.rs", + "crates/scim-proto/src/filter.rs", + "crates/scim-proto/src/json.rs", + "crates/scim-proto/src/lib.rs", + "crates/scim-proto/src/message/bulk.rs", + "crates/scim-proto/src/message/error.rs", + "crates/scim-proto/src/message/list.rs", + "crates/scim-proto/src/message/mod.rs", + "crates/scim-proto/src/message/patch.rs", + "crates/scim-proto/src/message/search.rs", + "crates/scim-proto/src/path.rs", + "crates/scim-proto/src/schema/group.rs", + "crates/scim-proto/src/schema/mod.rs", + "crates/scim-proto/src/schema/spc.rs", + "crates/scim-proto/src/schema/user.rs", + "crates/scim/src/auth.rs", + "crates/scim/src/bulk.rs", + "crates/scim/src/context.rs", + "crates/scim/src/discovery.rs", + "crates/scim/src/error.rs", + "crates/scim/src/groups/get.rs", + "crates/scim/src/groups/mod.rs", + "crates/scim/src/groups/patch.rs", + "crates/scim/src/groups/set.rs", + "crates/scim/src/lib.rs", + "crates/scim/src/query/cursor.rs", + "crates/scim/src/query/mod.rs", + "crates/scim/src/request.rs", + "crates/scim/src/users/get.rs", + "crates/scim/src/users/mod.rs", + "crates/scim/src/users/patch.rs", + "crates/scim/src/users/set.rs", + "crates/spam-filter/src/analysis/llm.rs", + "crates/store/src/backend/composite/mod.rs", + "crates/store/src/backend/composite/read_replica.rs", + "crates/store/src/backend/composite/sharded_blob.rs", + "crates/store/src/backend/composite/sharded_lookup.rs", + "crates/trc/src/serializers/binary.rs", + "tests/src/directory/oidc.rs", + "tests/src/scim/auth.rs", + "tests/src/scim/bulk.rs", + "tests/src/scim/discovery.rs", + "tests/src/scim/groups.rs", + "tests/src/scim/limits.rs", + "tests/src/scim/mod.rs", + "tests/src/scim/query.rs", + "tests/src/scim/users.rs", + "tests/src/system/archiving.rs", + "tests/src/system/tenant.rs" + ], + "removed_snippets": { + "crates/common/src/auth/authentication.rs": 2, + "crates/common/src/auth/mod.rs": 2, + "crates/common/src/auth/permissions.rs": 1, + "crates/common/src/cache/directory.rs": 6, + "crates/common/src/cache/invalidate.rs": 1, + "crates/common/src/cache/principals.rs": 2, + "crates/common/src/cache/reload.rs": 1, + "crates/common/src/config/mod.rs": 2, + "crates/common/src/config/telemetry.rs": 4, + "crates/common/src/lib.rs": 2, + "crates/common/src/manager/boot.rs": 1, + "crates/common/src/network/mta.rs": 1, + "crates/common/src/scripts/plugins/llm_prompt.rs": 1, + "crates/common/src/storage/quota.rs": 2, + "crates/common/src/telemetry/metrics/mod.rs": 1, + "crates/common/src/telemetry/metrics/prometheus.rs": 1, + "crates/common/src/telemetry/mod.rs": 1, + "crates/common/src/telemetry/tracers/mod.rs": 1, + "crates/http/src/api/mod.rs": 4, + "crates/http/src/auth/permissions.rs": 1, + "crates/http/src/request.rs": 4, + "crates/jmap/src/registry/get.rs": 1, + "crates/jmap/src/registry/mapping/mod.rs": 1, + "crates/jmap/src/registry/mapping/principal.rs": 3, + "crates/jmap/src/registry/mapping/queued_message.rs": 1, + "crates/jmap/src/registry/mapping/task.rs": 1, + "crates/jmap/src/registry/mod.rs": 1, + "crates/jmap/src/registry/query.rs": 1, + "crates/jmap/src/registry/set.rs": 2, + "crates/main/src/main.rs": 1, + "crates/services/src/task_manager/alarm.rs": 1, + "crates/services/src/task_manager/imip.rs": 1, + "crates/services/src/task_manager/index.rs": 2, + "crates/services/src/task_manager/maintenance.rs": 3, + "crates/services/src/task_manager/scheduler.rs": 8, + "crates/spam-filter/src/analysis/mod.rs": 1, + "crates/spam-filter/src/analysis/score.rs": 2, + "crates/store/src/backend/mod.rs": 1, + "crates/store/src/backend/mysql/main.rs": 1, + "crates/store/src/backend/postgres/main.rs": 1, + "crates/store/src/build/blob.rs": 2, + "crates/store/src/build/lookup.rs": 1, + "crates/store/src/build/memory.rs": 2, + "crates/store/src/dispatch/blob.rs": 6, + "crates/store/src/dispatch/lookup.rs": 10, + "crates/store/src/dispatch/mod.rs": 1, + "crates/store/src/dispatch/search.rs": 6, + "crates/store/src/dispatch/store.rs": 8, + "crates/store/src/lib.rs": 6, + "crates/trc/src/serializers/mod.rs": 1 + }, + "cargo_edits": [ + { + "file": "crates/main/Cargo.toml", + "line": 50, + "before": "default = [\"rocks\", \"enterprise\"]", + "after": "default = [\"rocks\"]" + }, + { + "file": "tests/Cargo.toml", + "line": 22, + "before": "store = { path = \"../crates/store\", features = [\"test_mode\", \"enterprise\"] }", + "after": "store = { path = \"../crates/store\", features = [\"test_mode\"] }" + }, + { + "file": "tests/Cargo.toml", + "line": 24, + "before": "directory = { path = \"../crates/directory\", features = [\"test_mode\", \"enterprise\"] }", + "after": "directory = { path = \"../crates/directory\", features = [\"test_mode\"] }" + }, + { + "file": "tests/Cargo.toml", + "line": 25, + "before": "coordinator = { path = \"../crates/coordinator\", features = [\"test_mode\", \"enterprise\"] }", + "after": "coordinator = { path = \"../crates/coordinator\", features = [\"test_mode\"] }" + }, + { + "file": "tests/Cargo.toml", + "line": 26, + "before": "jmap = { path = \"../crates/jmap\", features = [\"test_mode\", \"enterprise\"] }", + "after": "jmap = { path = \"../crates/jmap\", features = [\"test_mode\"] }" + }, + { + "file": "tests/Cargo.toml", + "line": 35, + "before": "http = { path = \"../crates/http\", features = [\"test_mode\", \"enterprise\"] }", + "after": "http = { path = \"../crates/http\", features = [\"test_mode\"] }" + }, + { + "file": "tests/Cargo.toml", + "line": 37, + "before": "scim = { path = \"../crates/scim\", features = [\"test_mode\", \"enterprise\"] }", + "after": "scim = { path = \"../crates/scim\", features = [\"test_mode\"] }" + }, + { + "file": "tests/Cargo.toml", + "line": 39, + "before": "services = { path = \"../crates/services\", features = [\"test_mode\", \"enterprise\"] }", + "after": "services = { path = \"../crates/services\", features = [\"test_mode\"] }" + }, + { + "file": "tests/Cargo.toml", + "line": 41, + "before": "smtp = { path = \"../crates/smtp\", features = [\"test_mode\", \"enterprise\"] }", + "after": "smtp = { path = \"../crates/smtp\", features = [\"test_mode\"] }" + }, + { + "file": "tests/Cargo.toml", + "line": 42, + "before": "common = { path = \"../crates/common\", features = [\"test_mode\", \"enterprise\"] }", + "after": "common = { path = \"../crates/common\", features = [\"test_mode\"] }" + }, + { + "file": "tests/Cargo.toml", + "line": 44, + "before": "email = { path = \"../crates/email\", features = [\"test_mode\", \"enterprise\"] }", + "after": "email = { path = \"../crates/email\", features = [\"test_mode\"] }" + }, + { + "file": "tests/Cargo.toml", + "line": 45, + "before": "spam-filter = { path = \"../crates/spam-filter\", features = [\"test_mode\", \"enterprise\"] }", + "after": "spam-filter = { path = \"../crates/spam-filter\", features = [\"test_mode\"] }" + }, + { + "file": "tests/Cargo.toml", + "line": 46, + "before": "trc = { path = \"../crates/trc\", features = [\"enterprise\"] }", + "after": "trc = { path = \"../crates/trc\", features = [] }" + }, + { + "file": "tests/Cargo.toml", + "line": 47, + "before": "managesieve = { path = \"../crates/managesieve\", features = [\"test_mode\", \"enterprise\"] }", + "after": "managesieve = { path = \"../crates/managesieve\", features = [\"test_mode\"] }" + } + ], + "dangling_mods": [ + { + "file": "crates/common/src/telemetry/metrics/mod.rs", + "line": 12, + "module": "test_data", + "lines": [ + "#[cfg(any(feature = \"dev_mode\", feature = \"test_mode\"))]", + "pub mod test_data;" + ] + }, + { + "file": "tests/src/directory/mod.rs", + "line": 10, + "module": "oidc", + "lines": [ + "pub mod oidc;" + ] + }, + { + "file": "tests/src/lib.rs", + "line": 27, + "module": "scim", + "lines": [ + "#[cfg(test)]", + "pub mod scim;" + ] + }, + { + "file": "tests/src/system/mod.rs", + "line": 8, + "module": "archiving", + "lines": [ + "pub mod archiving;" + ] + }, + { + "file": "tests/src/system/mod.rs", + "line": 19, + "module": "tenant", + "lines": [ + "pub mod tenant;" + ] + } + ], + "problems": [], + "feature_gates": { + "crates/common/src/cache/reload.rs": 1, + "crates/common/src/manager/boot.rs": 1, + "crates/common/src/storage/mod.rs": 1, + "crates/common/src/storage/quota.rs": 1, + "crates/common/src/telemetry/metrics/prometheus.rs": 1, + "crates/http/src/api/mod.rs": 1, + "crates/http/src/auth/permissions.rs": 1, + "crates/jmap/src/registry/get.rs": 1, + "crates/jmap/src/registry/mapping/principal.rs": 2, + "crates/jmap/src/registry/mapping/queued_message.rs": 1, + "crates/jmap/src/registry/mapping/task.rs": 1, + "crates/jmap/src/registry/set.rs": 1, + "crates/services/src/task_manager/alarm.rs": 1, + "crates/services/src/task_manager/imip.rs": 1, + "crates/services/src/task_manager/index.rs": 1, + "crates/services/src/task_manager/maintenance.rs": 1, + "crates/services/src/task_manager/scheduler.rs": 1, + "crates/store/src/lib.rs": 1 + }, + "edition_checks": {}, + "schema": { + "objects": [ + "x:AiModel", + "x:Alert", + "x:ArchivedItem", + "x:MaskedEmail", + "x:MetricsStore", + "x:SpamLlm", + "x:Tenant", + "x:Trace", + "x:TracingStore" + ], + "fields": [ + "x:AcmeProvider.memberTenantId", + "x:ArfExternalReport.memberTenantId", + "x:Authentication.defaultTenantRoleIds", + "x:CalendarAlarm.template", + "x:CalendarScheduling.emailTemplate", + "x:CalendarScheduling.httpRsvpTemplate", + "x:DataRetention.archiveDeletedAccountsFor", + "x:DataRetention.archiveDeletedItemsFor", + "x:DataRetention.holdMetricsFor", + "x:DataRetention.holdTracesFor", + "x:DataRetention.metricsCollectionInterval", + "x:Dkim1Signature.memberTenantId", + "x:Dkim2Signature.memberTenantId", + "x:DmarcExternalReport.memberTenantId", + "x:Domain.allowScimProvisioning", + "x:Domain.directoryId", + "x:Domain.logo", + "x:Domain.memberTenantId", + "x:Email.maxMaskedAddresses", + "x:Enterprise.logoUrl", + "x:GroupAccount.externalId", + "x:LdapDirectory.memberTenantId", + "x:MySqlStore.readReplicas", + "x:OidcDirectory.memberTenantId", + "x:PostgreSqlStore.readReplicas", + "x:Search.indexTelemetry", + "x:Search.indexTracingFields", + "x:SqlDirectory.memberTenantId", + "x:TlsExternalReport.memberTenantId", + "x:UserAccount.externalId" + ] + } +} \ No newline at end of file diff --git a/docs/fork/strip-reports/v0.16.22.md b/docs/fork/strip-reports/v0.16.22.md new file mode 100644 index 0000000..4d21d20 --- /dev/null +++ b/docs/fork/strip-reports/v0.16.22.md @@ -0,0 +1,159 @@ +# Strip report: upstream v0.16.22 (474dd0229cb2) + +- Enterprise-only files removed or emptied: **63** +- Enterprise-only snippets removed: **117** in 50 files +- Cargo edits turning `enterprise` off: **14** +- Dangling module declarations removed: **5** +- Verification: **clean** +- Left for the rebuilt features to replace: 19 `enterprise` feature gates in 18 files; 0 `is_enterprise_edition()` checks in 0 files +- Upstream schema flags 9 objects and 30 fields as Enterprise + +## Removed files + +- `crates/common/src/enterprise/alerts.rs` +- `crates/common/src/enterprise/config.rs` +- `crates/common/src/enterprise/license.rs` +- `crates/common/src/enterprise/llm.rs` +- `crates/common/src/enterprise/masked.rs` +- `crates/common/src/enterprise/mod.rs` +- `crates/common/src/telemetry/metrics/store.rs` +- `crates/common/src/telemetry/metrics/test_data.rs` +- `crates/common/src/telemetry/tracers/store.rs` +- `crates/http/src/api/telemetry.rs` +- `crates/jmap/src/registry/mapping/archived_item.rs` +- `crates/jmap/src/registry/mapping/masked_email.rs` +- `crates/jmap/src/registry/mapping/telemetry.rs` +- `crates/scim-proto/src/attributes.rs` +- `crates/scim-proto/src/etag.rs` +- `crates/scim-proto/src/filter.rs` +- `crates/scim-proto/src/json.rs` +- `crates/scim-proto/src/lib.rs` +- `crates/scim-proto/src/message/bulk.rs` +- `crates/scim-proto/src/message/error.rs` +- `crates/scim-proto/src/message/list.rs` +- `crates/scim-proto/src/message/mod.rs` +- `crates/scim-proto/src/message/patch.rs` +- `crates/scim-proto/src/message/search.rs` +- `crates/scim-proto/src/path.rs` +- `crates/scim-proto/src/schema/group.rs` +- `crates/scim-proto/src/schema/mod.rs` +- `crates/scim-proto/src/schema/spc.rs` +- `crates/scim-proto/src/schema/user.rs` +- `crates/scim/src/auth.rs` +- `crates/scim/src/bulk.rs` +- `crates/scim/src/context.rs` +- `crates/scim/src/discovery.rs` +- `crates/scim/src/error.rs` +- `crates/scim/src/groups/get.rs` +- `crates/scim/src/groups/mod.rs` +- `crates/scim/src/groups/patch.rs` +- `crates/scim/src/groups/set.rs` +- `crates/scim/src/lib.rs` +- `crates/scim/src/query/cursor.rs` +- `crates/scim/src/query/mod.rs` +- `crates/scim/src/request.rs` +- `crates/scim/src/users/get.rs` +- `crates/scim/src/users/mod.rs` +- `crates/scim/src/users/patch.rs` +- `crates/scim/src/users/set.rs` +- `crates/spam-filter/src/analysis/llm.rs` +- `crates/store/src/backend/composite/mod.rs` +- `crates/store/src/backend/composite/read_replica.rs` +- `crates/store/src/backend/composite/sharded_blob.rs` +- `crates/store/src/backend/composite/sharded_lookup.rs` +- `crates/trc/src/serializers/binary.rs` +- `tests/src/directory/oidc.rs` +- `tests/src/scim/auth.rs` +- `tests/src/scim/bulk.rs` +- `tests/src/scim/discovery.rs` +- `tests/src/scim/groups.rs` +- `tests/src/scim/limits.rs` +- `tests/src/scim/mod.rs` +- `tests/src/scim/query.rs` +- `tests/src/scim/users.rs` +- `tests/src/system/archiving.rs` +- `tests/src/system/tenant.rs` + +## Removed snippets + +- `crates/common/src/auth/authentication.rs`: 2 +- `crates/common/src/auth/mod.rs`: 2 +- `crates/common/src/auth/permissions.rs`: 1 +- `crates/common/src/cache/directory.rs`: 6 +- `crates/common/src/cache/invalidate.rs`: 1 +- `crates/common/src/cache/principals.rs`: 2 +- `crates/common/src/cache/reload.rs`: 1 +- `crates/common/src/config/mod.rs`: 2 +- `crates/common/src/config/telemetry.rs`: 4 +- `crates/common/src/lib.rs`: 2 +- `crates/common/src/manager/boot.rs`: 1 +- `crates/common/src/network/mta.rs`: 1 +- `crates/common/src/scripts/plugins/llm_prompt.rs`: 1 +- `crates/common/src/storage/quota.rs`: 2 +- `crates/common/src/telemetry/metrics/mod.rs`: 1 +- `crates/common/src/telemetry/metrics/prometheus.rs`: 1 +- `crates/common/src/telemetry/mod.rs`: 1 +- `crates/common/src/telemetry/tracers/mod.rs`: 1 +- `crates/http/src/api/mod.rs`: 4 +- `crates/http/src/auth/permissions.rs`: 1 +- `crates/http/src/request.rs`: 4 +- `crates/jmap/src/registry/get.rs`: 1 +- `crates/jmap/src/registry/mapping/mod.rs`: 1 +- `crates/jmap/src/registry/mapping/principal.rs`: 3 +- `crates/jmap/src/registry/mapping/queued_message.rs`: 1 +- `crates/jmap/src/registry/mapping/task.rs`: 1 +- `crates/jmap/src/registry/mod.rs`: 1 +- `crates/jmap/src/registry/query.rs`: 1 +- `crates/jmap/src/registry/set.rs`: 2 +- `crates/main/src/main.rs`: 1 +- `crates/services/src/task_manager/alarm.rs`: 1 +- `crates/services/src/task_manager/imip.rs`: 1 +- `crates/services/src/task_manager/index.rs`: 2 +- `crates/services/src/task_manager/maintenance.rs`: 3 +- `crates/services/src/task_manager/scheduler.rs`: 8 +- `crates/spam-filter/src/analysis/mod.rs`: 1 +- `crates/spam-filter/src/analysis/score.rs`: 2 +- `crates/store/src/backend/mod.rs`: 1 +- `crates/store/src/backend/mysql/main.rs`: 1 +- `crates/store/src/backend/postgres/main.rs`: 1 +- `crates/store/src/build/blob.rs`: 2 +- `crates/store/src/build/lookup.rs`: 1 +- `crates/store/src/build/memory.rs`: 2 +- `crates/store/src/dispatch/blob.rs`: 6 +- `crates/store/src/dispatch/lookup.rs`: 10 +- `crates/store/src/dispatch/mod.rs`: 1 +- `crates/store/src/dispatch/search.rs`: 6 +- `crates/store/src/dispatch/store.rs`: 8 +- `crates/store/src/lib.rs`: 6 +- `crates/trc/src/serializers/mod.rs`: 1 + +## Dangling module declarations removed + +- `crates/common/src/telemetry/metrics/mod.rs:12`: `mod test_data` (#[cfg(any(feature = "dev_mode", feature = "test_mode"))] / pub mod test_data;) +- `tests/src/directory/mod.rs:10`: `mod oidc` (pub mod oidc;) +- `tests/src/lib.rs:27`: `mod scim` (#[cfg(test)] / pub mod scim;) +- `tests/src/system/mod.rs:8`: `mod archiving` (pub mod archiving;) +- `tests/src/system/mod.rs:19`: `mod tenant` (pub mod tenant;) + +## Cargo edits + +- `crates/main/Cargo.toml:50`: `default = ["rocks", "enterprise"]` → `default = ["rocks"]` +- `tests/Cargo.toml:22`: `store = { path = "../crates/store", features = ["test_mode", "enterprise"] }` → `store = { path = "../crates/store", features = ["test_mode"] }` +- `tests/Cargo.toml:24`: `directory = { path = "../crates/directory", features = ["test_mode", "enterprise"] }` → `directory = { path = "../crates/directory", features = ["test_mode"] }` +- `tests/Cargo.toml:25`: `coordinator = { path = "../crates/coordinator", features = ["test_mode", "enterprise"] }` → `coordinator = { path = "../crates/coordinator", features = ["test_mode"] }` +- `tests/Cargo.toml:26`: `jmap = { path = "../crates/jmap", features = ["test_mode", "enterprise"] }` → `jmap = { path = "../crates/jmap", features = ["test_mode"] }` +- `tests/Cargo.toml:35`: `http = { path = "../crates/http", features = ["test_mode", "enterprise"] }` → `http = { path = "../crates/http", features = ["test_mode"] }` +- `tests/Cargo.toml:37`: `scim = { path = "../crates/scim", features = ["test_mode", "enterprise"] }` → `scim = { path = "../crates/scim", features = ["test_mode"] }` +- `tests/Cargo.toml:39`: `services = { path = "../crates/services", features = ["test_mode", "enterprise"] }` → `services = { path = "../crates/services", features = ["test_mode"] }` +- `tests/Cargo.toml:41`: `smtp = { path = "../crates/smtp", features = ["test_mode", "enterprise"] }` → `smtp = { path = "../crates/smtp", features = ["test_mode"] }` +- `tests/Cargo.toml:42`: `common = { path = "../crates/common", features = ["test_mode", "enterprise"] }` → `common = { path = "../crates/common", features = ["test_mode"] }` +- `tests/Cargo.toml:44`: `email = { path = "../crates/email", features = ["test_mode", "enterprise"] }` → `email = { path = "../crates/email", features = ["test_mode"] }` +- `tests/Cargo.toml:45`: `spam-filter = { path = "../crates/spam-filter", features = ["test_mode", "enterprise"] }` → `spam-filter = { path = "../crates/spam-filter", features = ["test_mode"] }` +- `tests/Cargo.toml:46`: `trc = { path = "../crates/trc", features = ["enterprise"] }` → `trc = { path = "../crates/trc", features = [] }` +- `tests/Cargo.toml:47`: `managesieve = { path = "../crates/managesieve", features = ["test_mode", "enterprise"] }` → `managesieve = { path = "../crates/managesieve", features = ["test_mode"] }` + +## Flagged Enterprise in upstream's schema + +**Objects:** `x:AiModel`, `x:Alert`, `x:ArchivedItem`, `x:MaskedEmail`, `x:MetricsStore`, `x:SpamLlm`, `x:Tenant`, `x:Trace`, `x:TracingStore` + +**Fields:** `x:AcmeProvider.memberTenantId`, `x:ArfExternalReport.memberTenantId`, `x:Authentication.defaultTenantRoleIds`, `x:CalendarAlarm.template`, `x:CalendarScheduling.emailTemplate`, `x:CalendarScheduling.httpRsvpTemplate`, `x:DataRetention.archiveDeletedAccountsFor`, `x:DataRetention.archiveDeletedItemsFor`, `x:DataRetention.holdMetricsFor`, `x:DataRetention.holdTracesFor`, `x:DataRetention.metricsCollectionInterval`, `x:Dkim1Signature.memberTenantId`, `x:Dkim2Signature.memberTenantId`, `x:DmarcExternalReport.memberTenantId`, `x:Domain.allowScimProvisioning`, `x:Domain.directoryId`, `x:Domain.logo`, `x:Domain.memberTenantId`, `x:Email.maxMaskedAddresses`, `x:Enterprise.logoUrl`, `x:GroupAccount.externalId`, `x:LdapDirectory.memberTenantId`, `x:MySqlStore.readReplicas`, `x:OidcDirectory.memberTenantId`, `x:PostgreSqlStore.readReplicas`, `x:Search.indexTelemetry`, `x:Search.indexTracingFields`, `x:SqlDirectory.memberTenantId`, `x:TlsExternalReport.memberTenantId`, `x:UserAccount.externalId` diff --git a/docs/spec/SPEC.md b/docs/spec/SPEC.md index 5876874..7d10911 100644 --- a/docs/spec/SPEC.md +++ b/docs/spec/SPEC.md @@ -100,6 +100,18 @@ repository. Instead: does what a fork's rebase would, without the history. - The upstream clone the tool reads from lives outside the fork's repository and is never pushed anywhere. +- Each import's full strip report is committed on `main` under + `docs/fork/strip-reports/.md` (and `.json`), beside the merge that + brought the release in. +- The snapshot includes upstream's `.github/` workflows, release automation + included. They're kept on `upstream` as upstream shipped them, but must be + disabled or replaced on `main` before the repository is ever pushed + anywhere that runs them. + +Layout on `main`: the server source at the root, exactly as upstream lays it +out (so merges line up), the specs under `docs/spec/`, strip reports under +`docs/fork/`, and the fork tooling under `tools/fork/`. Upstream has no +top-level `docs/` or `tools/`, so these never collide. ### 2.3 Where the rebuilt features go