[17.0] Document breaking change: Docker Swarm `UpdateConfig.MaxFailureRatio` changed from `string?` to `double?`

Ouverte Adaptée aux débutants
#2,129 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 2 jours

Personne n'a encore pris cette issue.

Évaluation

Difficulté
1/5
Temps estimé
1-3 heures
Accessibilité débutants
82/100
Type d'issue
Documentation
Clarté
Clairement spécifiée
Activité
Active
Stack technique
csharp, docker
Domaine
documentation

Piste de recherche

Utilisez comme référence le tableau existant des changements incompatibles sur la page What's New d’Aspire 13.3. Lorsque la page What's New d’Aspire 17.0 sera ajoutée, ajoutez une ligne décrivant le passage de Docker Swarm de UpdateConfig.MaxFailureRatio de string? à double?, avec les valeurs avant et après de l’exemple de migration. Le travail est terminé lorsque l’entrée 17.0 explique clairement le changement incompatible et l’affectation numérique.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

In Aspire 17.0, Aspire.Hosting.Docker.Resources.ServiceNodes.Swarm.UpdateConfig.MaxFailureRatio in the stable Aspire.Hosting.Docker package changed from string? to double?. This breaks both source and binary compatibility, so it should be listed in the 17.0 breaking changes.

Why it changed

The Compose publisher quotes every string value, so MaxFailureRatio = "0.3" was published as max_failure_ratio: "0.3". Docker Swarm requires a number and rejects that file:

services.my-service.deploy.update_config.max_failure_ratio must be a number

The string? property could never produce a deployable value. As a double?, it's published as max_failure_ratio: 0.3.

Impact

  • Source: assigning a string, such as MaxFailureRatio = "0.3", no longer compiles (CS0029).
  • Binary: assemblies compiled against 13.x that get or set the property throw MissingMethodException at run time.

Migration

Assign a number instead of a string:

using Aspire.Hosting.Docker.Resources.ServiceNodes.Swarm;

builder.AddContainer("my-service", "my-image:latest")
    .PublishAsDockerComposeService((resource, service) =>
    {
        service.Deploy = new Deploy
        {
            UpdateConfig = new UpdateConfig
            {
                MaxFailureRatio = 0.3 // Aspire 13.x: MaxFailureRatio = "0.3"
            }
        };
    });

Where to document

Add a row to the ⚠️ Breaking changes table on the 17.0 What's new page. There's no whats-new/aspire-17*.mdx on main yet. Aspire 13.3 listed a similar change (microsoft/aspire#15566, which changed Parallelism from string? to int?) as "Docker Swarm UpdateConfig property types changed" in aspire-13-3.mdx. For this entry, include the before and after values from the example above.

Langage dominant
MDX
Étoiles
202
Forks
99
Merge moyen
2 j 10 h
PR mergées (30 j)
97

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de microsoft/aspire.dev

Toutes les issues de microsoft/aspire.dev

Issues similaires

Plus d'issues Documentation

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.