Un fichier project permet de décrire un projet. Les informations qui y sont présentées ne concernent qu’un seul projet et non une distribution. Elles peuvent être trouvées sur le site Web du projet, dans les fichiers README, COPYING, ... La rédaction de ce fichier est à la charge du développeur de Nbuild.
Le fichier project est un fichier de propriétés. Toutes les propriétés ne sont pas obligatoires mais elles sont fortement conseillées pour l’écriture d’un paquet Nbuild à partager.
Voici la liste des propriétés attendues dans le fichier.
Propriété : name
Description : nom officiel du projet
Présence : obligatoire
Contraintes : nom entièrement en minuscules ; nom identique à celui contenu dans le nom du fichier Nbuild ou NBA
Propriété : release.number
Description : numéro de sortie du projet
Présence : obligatoire
Contraintes : numéro alphanumérique sans caractère ‘-’ ; numéro identique à celui contenu dans le nom du fichier Nbuild ou NBA
Propriété : license
Description : license exacte du projet
Présence : facultative
Contraintes : aucune
Propriété : author
Description : auteur(s) ou équipe responsable(s) du projet
Présence : facultative
Contraintes : noms éventuellement séparés par des caractères ‘,’
Propriété : copyright
Description : terme du droit d’auteur appliqué au projet
Présence : facultative
Contraintes : nom alphanumérique
Propriété : homepage
Description : URL de la page d’accueil du projet
Présence : facultative
Contraintes : URL valide commençant par un protocole tel que http ou ftp
Propriété : purpose.<langue>.summary
Description : description sommaire du projet dans la langue précisée
Présence : facultative
Contraintes : texte ne dépassant pas 60 caractères
Propriété : purpose.<langue>.description
Description : description détaillée du projet dans la langue précisée
Présence : facultative
Contraintes : aucune
Propriété : domain.descriptor<identifiant>
Description : descripteur d’un domaine
Présence : facultative mais répétée (en itérant l’identifiant)
Contraintes : élément d’une liste prédéfinie
Propriété : resource.name<identifiant>
Description : nom d’un fichier de ressource ; nom pouvant contenir la variable ${release.number}
Présence : zéro à plusieurs (en itérant l’identifiant)
Contraintes : nom de fichier valide
Propriété : resource.name<identifiant1>.location<identifiant2>
Description : adresse du répertoire distant contenant le fichier de ressource de nom ‘name<identifiant1>’
Présence : un à plusieurs (en itérant l’identifiant 2) pour chaque fichier de ressource
Contraintes : URL de répertoire distant valide
Propriété : resource.name<identifiant1>.checksum
Description : somme de contrôle MD5 du fichier de ressource de nom ‘name<identifiant1>’
Présence : obligatoire pour chaque fichier de ressource
Contraintes : somme de contrôle valide (128 bits)