Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

[Feat]: Clarify nullability and optionality of the spec API

Ouverte
#506 1 commentaire 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é
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Refactorisation
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
java
Domaine
api

Piste de recherche

Examinez les classes Task et TaskStatus dans le module spec afin de comprendre les modèles actuels de nullabilité. Examinez les principes de conception et les règles de cohérence de l’API spec. Déterminez quels champs devraient être Optional et quelles collections devraient être vides par défaut. Mettez à jour les classes, assurez la rétrocompatibilité et révisez Javadoc en conséquence.

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

Description

Is your feature request related to a problem? Please describe.

The spec API is not consistent with this expectation for the nullability and optionality of objects.

For example, the Task class
will always instantiate its history and artifact with (potentially empty) collections while its metatada can be null.
The API should be consistent unless there is a good reason not to.
In that case, the metadata should also be an empty Map if the parameter is null.

For case where we want to record that a field can have a value or be null, we could also leverage Optional.
For example, in TaskStatus, the message is optional. We could make its type Optional<String> to constrain its contract.

Describe the solution you'd like

Update the spec API to:

  • be consistent with the nullabitity of fields (especially collections)
  • use the Optional type for optional fields
  • update the javadoc when there is exception to this general rule
Describe alternatives you've considered

No response

Additional context

No response

Code of Conduct
  • I agree to follow this project's Code of Conduct
Langage dominant
Java
Étoiles
507
Forks
192
Merge moyen
3 j 8 h
PR mergées (30 j)
23

Préparer son environnement

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 a2aproject/a2a-java

Toutes les issues de a2aproject/a2a-java

Issues similaires

Plus d'issues Java

Recevez les nouvelles issues par e-mail

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