Skip to content

Commit 6469038

Browse files
committed
Docs: merge the 7.4.2-to-7.4.3 migration guide into the release notes
- inline the callback sweep recipe, drop the separate migration doc - repoint crystaljson links and the toc to releases/7.4.3.md
1 parent c6ce9da commit 6469038

11 files changed

Lines changed: 134 additions & 1756 deletions

File tree

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ Known accepted netfx differences (do not "fix" by changing shared code): doubles
9797

9898
The published NuGet packages are cut from [`Common/VersionInfo.props`](Common/VersionInfo.props). The reference **sample and sandbox projects are not part of the release**: they pin *published* `FoundationDB.*` package versions (so a reader can `restore` them like their own app), which means they legitimately lag the in-development version. Fold this sweep into the pre-tag routine:
9999

100-
- **Before the tag**, write the version documents from the commit log (which follows the `Area: summary` house form: `git log <prev-tag>..HEAD --format='- %s'`, grouped by area prefix, then curated into prose, never the raw log). [`Documentation/releases/<N>.md`](Documentation/releases/) is the complete release notes: every change from the previous STABLE version (not the previous rc), in full detail, grouped as highlights, new features, behavior changes, breaking changes, build and tooling. It is the authoritative notes the GitHub release points at. [`Documentation/migrations/<N-1>-to-<N>.md`](Documentation/migrations/) is the upgrade companion the breaking-change entries link to for the step-by-step recipes. Add a `releases/<N>.md` entry to [`Documentation/toc.yml`](Documentation/toc.yml). The GitHub release body stays slim: the highlights and the breaking-change list, pointing to `releases/<N>.md` for the full detail.
100+
- **Before the tag**, write [`Documentation/releases/<N>.md`](Documentation/releases/) from the commit log (which follows the `Area: summary` house form: `git log <prev-tag>..HEAD --format='- %s'`, grouped by area prefix, then curated into prose, never the raw log). It is the single release-notes and upgrade document: every change from the previous STABLE version (not the previous rc), ordered by what applications use, each behavior change inlining what to do about it, and a final Breaking changes section for the rest. There is no separate migration guide. Follow [`Documentation/writing-style.md`](Documentation/writing-style.md), and add a `releases/<N>.md` entry to [`Documentation/toc.yml`](Documentation/toc.yml). The GitHub release body stays slim: highlights and the breaking-change list, pointing to `releases/<N>.md` for the full detail.
101101
- **After** the new packages are live on NuGet (they must be restorable), and **before** locking the release with a git tag, bump the pinned `FoundationDB.*` versions in the standalone samples ([`samples/getting-started/`](samples/getting-started/)) and any sandbox projects to the just-published version, then `restore` + build them to confirm they still work against the shipping packages. Doing it before the tag keeps the tagged tree pointing at real, restorable versions; it cannot be done earlier because the packages do not exist yet.
102102

103103
## Coding conventions

Documentation/crystaljson/index.fr.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ vais-je obtenir » ne doit jamais dépendre du chemin. Les deux membres ci-dessu
118118
inclusion-plus-ignore-inconditionnel est refusée (`CJSON0008`). Le remède est toujours la
119119
scission : un *DTO* par contrat de format, chacun portant un seul jeu cohérent d'attributs. La
120120
même politique rejette la signature de *callback* de l'ère `DataContractJsonSerializer` plutôt que
121-
de l'approximer. Le [guide de migration](../migrations/7.4.2-to-7.4.3.md) documente chaque refus
121+
de l'approximer. Le [guide de migration](../releases/7.4.3.md) documente chaque refus
122122
avec son identifiant de diagnostic et son remède.
123123

124124
Notez que le *DTO* à double sortie est un besoin différent de servir des consommateurs *legacy* et

Documentation/crystaljson/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ members above are **build errors**, not choices: the double name is refused (`CJ
109109
the include-plus-unconditional-ignore pair is refused (`CJSON0008`). The remedy is always the
110110
split: one DTO per format contract, each carrying a single coherent set of attributes. The same
111111
policy rejects the `DataContractJsonSerializer`-era callback signature rather than approximating
112-
it. The [migration guide](../migrations/7.4.2-to-7.4.3.md) documents each refusal with its
112+
it. The [migration guide](../releases/7.4.3.md) documents each refusal with its
113113
diagnostic id and remedy.
114114

115115
Note that the dual-output DTO is a different need than serving legacy and modern consumers from

Documentation/crystaljson/reference.fr.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Les tables de référence du travail quotidien : le *setup* du générateur de s
44
vous posez sur un type, les *settings* que vous passez à un appel, et les diagnostics de *build* que vous
55
pouvez rencontrer. Pour les guides pratiques, voir [Travailler avec CrystalJson](serializing.fr.md) ;
66
pour la conception, voir [Ce que c'est, et pourquoi](index.fr.md). Quand un comportement a changé
7-
entre deux versions, le [guide de migration 7.4.2 vers 7.4.3](../migrations/7.4.2-to-7.4.3.md) porte
7+
entre deux versions, le [guide de migration 7.4.2 vers 7.4.3](../releases/7.4.3.md) porte
88
l'histoire complète, et cette page y renvoie plutôt que de la répéter.
99

1010
Tous les exemples utilisent `using SnowBank.Data.Json;`.
@@ -55,7 +55,7 @@ produit, et quels types elle enrôle.
5555
| `[CrystalSerializable(typeof(T))]` | `SnowBank.Data` | enrôle un type ; répétable ; alimente chaque format que le *container* produit |
5656
| `[CrystalJsonOutput(...)]` | `SnowBank.Data.Json` | demande le format JSON et porte ses paramètres (profil, politique de nommage) |
5757
| `[CrystalJsonConverter(...)]` | `SnowBank.Data.Json` | alias : `[CrystalConverter]` + `[CrystalJsonOutput]` avec les mêmes paramètres, pour un *container* JSON seul |
58-
| `[CrystalJsonSelfSerializable]` | `SnowBank.Data.Json` | méta-attribut pour les types auto-sérialisables (un type sert de son propre *container*) ; voir le [guide de migration](../migrations/7.4.2-to-7.4.3.md#new-apis) |
58+
| `[CrystalJsonSelfSerializable]` | `SnowBank.Data.Json` | méta-attribut pour les types auto-sérialisables (un type sert de son propre *container*) ; voir le [guide de migration](../releases/7.4.3.md#new-apis) |
5959

6060
Un profil passé à `[CrystalJsonOutput(...)]` ou `[CrystalJsonConverter(...)]` fixe la forme de sortie
6161
par défaut du *container*, `CrystalJsonSerializerDefaults.Web` pour le *camelCase*,
@@ -97,7 +97,7 @@ Attention au piège de nommage : `Never` veut dire « ne jamais ignorer ».
9797
Pour les types `[DataContract]`, `[DataMember(Name = ...)]` renomme et
9898
`[DataMember(IsRequired = true)]` fait *throw* à la lecture quand le membre est absent. Les *containers*
9999
générés appliquent le modèle d'appartenance DataContract depuis la 7.4.3 ; le
100-
[guide de migration](../migrations/7.4.2-to-7.4.3.md#breaking-changes) en donne le détail.
100+
[guide de migration](../releases/7.4.3.md#breaking-changes) en donne le détail.
101101

102102
### Attributs d'autres sérialiseurs
103103

@@ -120,7 +120,7 @@ CrystalJson `[JsonProperty]`, puis `[JsonPropertyName]`, puis Newtonsoft `[JsonP
120120
attributs de nommage qui divergent sont une erreur de *build* (`CJSON0011`) : un type ne peut pas servir
121121
deux contrats de sortie. Un `[JsonConverter]` étranger qui nomme un type n'implémentant pas le contrat
122122
de convertisseur CrystalJson est ignoré, pas une erreur, donc un *DTO* à moitié porté reste
123-
sérialisable. Le [guide de migration](../migrations/7.4.2-to-7.4.3.md) donne les règles d'*interop*
123+
sérialisable. Le [guide de migration](../releases/7.4.3.md) donne les règles d'*interop*
124124
complètes.
125125

126126
## *Settings*
@@ -174,7 +174,7 @@ pas `WithTrailingData()` (qui parse la première valeur et jette le reste).
174174
Les codes `CJSON####` ci-dessous sont ceux qu'un auteur normal rencontre en écrivant des *DTO*. Chacun
175175
est rapporté au même endroit par les deux chemins : le générateur émet le diagnostic, et le chemin
176176
par réflexion *throw* le même message quand il construit le contrat du type. Le
177-
[guide de migration](../migrations/7.4.2-to-7.4.3.md) donne le traitement complet de chacun.
177+
[guide de migration](../releases/7.4.3.md) donne le traitement complet de chacun.
178178

179179
| Id | Sévérité | Refuse | Remède |
180180
|---|---|---|---|
@@ -191,4 +191,4 @@ par réflexion *throw* le même message quand il construit le contrat du type. L
191191

192192
Les diagnostics des types auto-sérialisables (`CJSON0004` à `CJSON0007`, `CJSON0020`, `CJSON0021`) et
193193
les codes du générateur XML (`CRYS####`, `CXML####`) sont couverts dans le
194-
[guide de migration](../migrations/7.4.2-to-7.4.3.md) et [CrystalXml](../CrystalXml.md).
194+
[guide de migration](../releases/7.4.3.md) et [CrystalXml](../CrystalXml.md).

Documentation/crystaljson/reference.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
The lookup tables for everyday work: the source generator setup, the attributes you put on a type,
44
the settings you pass to a call, and the build diagnostics you might hit. For the task guides see
55
[Working with CrystalJson](serializing.md); for the design see [What it is and why](index.md). Where
6-
a behavior changed between releases, the [7.4.2 to 7.4.3 migration guide](../migrations/7.4.2-to-7.4.3.md)
6+
a behavior changed between releases, the [7.4.2 to 7.4.3 migration guide](../releases/7.4.3.md)
77
carries the full story, and this page links to it rather than repeating it.
88

99
Every example uses `using SnowBank.Data.Json;`.
@@ -53,7 +53,7 @@ produces, and which types it enrolls.
5353
| `[CrystalSerializable(typeof(T))]` | `SnowBank.Data` | enrolls a type; repeatable; feeds every format the container produces |
5454
| `[CrystalJsonOutput(...)]` | `SnowBank.Data.Json` | requests the JSON format and carries its parameters (profile, naming policy) |
5555
| `[CrystalJsonConverter(...)]` | `SnowBank.Data.Json` | alias: `[CrystalConverter]` + `[CrystalJsonOutput]` with the same parameters, for a JSON-only container |
56-
| `[CrystalJsonSelfSerializable]` | `SnowBank.Data.Json` | meta-attribute for self-serializable types (a type acts as its own container); see the [migration guide](../migrations/7.4.2-to-7.4.3.md#new-apis) |
56+
| `[CrystalJsonSelfSerializable]` | `SnowBank.Data.Json` | meta-attribute for self-serializable types (a type acts as its own container); see the [migration guide](../releases/7.4.3.md#new-apis) |
5757

5858
A profile passed to `[CrystalJsonOutput(...)]` or `[CrystalJsonConverter(...)]` sets the container's
5959
default output form, `CrystalJsonSerializerDefaults.Web` for camelCase, `.DataContractCompat` for the
@@ -94,7 +94,7 @@ Note the naming trap: `Never` means "never ignore".
9494

9595
For `[DataContract]` types, `[DataMember(Name = ...)]` renames and `[DataMember(IsRequired = true)]`
9696
makes an absent member throw on read. Generated containers apply the DataContract membership model as
97-
of 7.4.3; the [migration guide](../migrations/7.4.2-to-7.4.3.md#breaking-changes) has the details.
97+
of 7.4.3; the [migration guide](../releases/7.4.3.md#breaking-changes) has the details.
9898

9999
### Attributes from other serializers
100100

@@ -116,7 +116,7 @@ CrystalJson `[JsonProperty]`, then `[JsonPropertyName]`, then Newtonsoft `[JsonP
116116
attributes that disagree are a build error (`CJSON0011`): one type cannot serve two output contracts.
117117
A foreign `[JsonConverter]` naming a type that does not implement the CrystalJson converter contract is
118118
ignored, not an error, so a half-ported DTO stays serializable. The
119-
[migration guide](../migrations/7.4.2-to-7.4.3.md) has the full interop rules.
119+
[migration guide](../releases/7.4.3.md) has the full interop rules.
120120

121121
## Settings
122122

@@ -168,7 +168,7 @@ To read several consecutive documents out of one buffer, use `CrystalJson.ParseF
168168
The `CJSON####` codes below are the ones a normal author hits while writing DTOs. Each is reported at
169169
the same place by both paths: the generator emits the diagnostic, and the reflection path throws the
170170
same message when it builds the type's contract. The
171-
[migration guide](../migrations/7.4.2-to-7.4.3.md) has the full treatment of each.
171+
[migration guide](../releases/7.4.3.md) has the full treatment of each.
172172

173173
| Id | Severity | Refuses | Remedy |
174174
|---|---|---|---|
@@ -185,4 +185,4 @@ same message when it builds the type's contract. The
185185

186186
The self-serializable diagnostics (`CJSON0004` to `CJSON0007`, `CJSON0020`, `CJSON0021`) and the XML
187187
generator codes (`CRYS####`, `CXML####`) are covered in the
188-
[migration guide](../migrations/7.4.2-to-7.4.3.md) and [CrystalXml](../CrystalXml.md).
188+
[migration guide](../releases/7.4.3.md) and [CrystalXml](../CrystalXml.md).

Documentation/crystaljson/serializing.fr.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Les gestes de tous les jours, une section par tâche. Cette page suppose que vou
44
CrystalJson et pourquoi il a un DOM (Document Object Model), des *proxies* et deux chemins de
55
sérialisation ; sinon, lisez [l'explication](index.fr.md) d'abord. Porter un parc
66
`DataContractJsonSerializer` ou Newtonsoft est un projet à part entière ; le
7-
[guide de migration](../migrations/7.4.2-to-7.4.3.md) couvre les diagnostics et les changements de
7+
[guide de migration](../releases/7.4.3.md) couvre les diagnostics et les changements de
88
comportement que vous rencontrerez. Les tables complètes des attributs, des *settings* et des
99
diagnostics sont dans la [référence](reference.fr.md).
1010

Documentation/crystaljson/serializing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
The everyday gestures, one section per task. This page assumes you know what CrystalJson is and
44
why it has a DOM (Document Object Model), proxies and two serialization paths; if not, read
55
[the explanation](index.md) first. Porting a `DataContractJsonSerializer` or Newtonsoft estate is
6-
its own project; the [migration guide](../migrations/7.4.2-to-7.4.3.md) covers the diagnostics and
6+
its own project; the [migration guide](../releases/7.4.3.md) covers the diagnostics and
77
behavior changes you will hit. The complete attribute, settings and diagnostics tables are in the
88
[reference](reference.md).
99

0 commit comments

Comments
 (0)