Skip to content

Commit 10d6e79

Browse files
authored
New schema changes (#23)
* fix: switched yaml references to yml * switched from spinal-case to camelCase * fix: switch to plurals instead of List in keys * fix: fixed typos * feat: Added repo info in README * feat: Converted settings file to italian * feat: added Italian README and Italian index page
1 parent d5ca747 commit 10d6e79

5 files changed

Lines changed: 177 additions & 30 deletions

File tree

README.it.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Lo Standard `publiccode.yml`
2+
3+
`publiccode.yml` è uno standard di metadati adatto a repository
4+
di software pubblico e di policy. Questo standard ha lo scopo
5+
di rendere il software sviluppato dalle Pubbliche Amministrazioni e Pubbliche
6+
Organizzazioni facile da individuare e, di conseguenza, riutilizzare. Proprio
7+
per questo motivo, è stato pensato per essere semplice da adottare sia per gli
8+
sviluppatori che per i non addetti ai lavori.
9+
10+
## Versioni
11+
12+
**Ultimo rilascio: [Versione
13+
0.1](https://github.com/italia/publiccode.yml/releases/latest)**
14+
15+
[Vedi tutte le versioni](https://github.com/italia/publiccode.yml/releases)
16+
17+
Questo progetto aderisce al modello di versioning [*Semantic
18+
Versioning*](https://semver.org/).
19+
20+
Inoltre, questo progetto usa i *branch* e i *tag* di git nel seguente modo:
21+
* il branch `master` contiene l'ultima versione stabile dello standard;
22+
* il branch `development` contiene gli aggiornamenti proposti e in discussione
23+
per la prossima versione dello standard;
24+
* La [release page](https://github.com/italia/publiccode.yml/releases) di
25+
GitHub contiene tutte le versioni rilasciate dello standard. Le *release*
26+
sono effettuate seguendo il nome del tag per questioni di coerenza (ad es.,
27+
il tag `v0.1` implica una release denominata `v0.1`).
28+
29+
Le specifiche `publiccode.yml` sono sviluppate dal [Team per la Trasformazione
30+
Digitale](https://teamdigitale.governo.it) e dagli [Autori](AUTHORS.md).
31+
32+
## A cosa serve questo file
33+
34+
Molto software di qualità è stato sviluppato da diverse Pubbliche
35+
Amministrazioni ma i casi di riuso sono scarsi. Alcune tra le ragioni per la bassa
36+
adozione di tali progetti sono la difficoltà nel rilevarli così come la
37+
difficoltà nel capire se un dato progetto possa funzionare o meno nel contesto
38+
di una Pubblica Amministrazione differente.
39+
40+
Lo standard `publiccode.yml` ha lo scopo di risolvere queste problematiche.
41+
Infatti, si tratta di un semplice file che può essere letto facilmente sia dai
42+
dipendenti pubblici, che vogliono capire se possono usare o meno un dato
43+
software, che da un calcolatore.
44+
Lo standard contiene informazioni quali:
45+
* il titolo e la descrizione del progetto o prodotto in inglese e/o altre
46+
lingue;
47+
* lo stato dello sviluppo ad es., `concept`, `development`, `beta`, `stable`,
48+
`obsolete`;
49+
* quale organizzazione ha sviluppato il progetto;
50+
* chi si sta occupando della sua manutenzione e quando finirà;
51+
* chi contattare per domande di tipo tecnico o di supporto;
52+
* per quale quadro giuridico è stato pensato questo progetto o prodotto;
53+
* quali dipendenze software esistono.
54+
55+
Il formato del file `publiccode.yml` è pensato per essere facilmente aggiunto
56+
ad ogni nuovo progetto e potrà cambiare ed adattarsi ai cambiamenti rispetto al
57+
contesto nel quale è stato originariamente sviluppato.
58+
59+
## La ricerca dei progetti
60+
61+
La ricerca dei progetti dipende da come le API sono state strutturate per ogni
62+
piattaforma di hosting. Ad esempio, per quanto riguarda la piattaforma GitHub,
63+
è possibile trovare tutti i progetti che adottano lo standard `publiccode.yml`
64+
attraverso l'interfaccia di frontend del portale oppure usando le API.
65+
66+
* [Ricerca tramite GitHub `filename:publiccode.yml
67+
path:/`](https://github.com/search?q=filename%3Apubliccode.yml+path%3A%2F)
68+
69+
Il Team per la Trasformazione Digitale sta anche lavorando per fornire uno
70+
scanner che cerchi tutti i file `publiccode.yml` su tutti i siti accessibili
71+
pubblicamente, per poi pubblicarli sotto forma di open data.
72+
73+
## Come contribuire
74+
75+
Sentitevi liberi di aprire delle [Pull Requests e di presentare un problema
76+
con una Issues](CONTRIBUTING.md).
77+
78+
## Licenza
79+
80+
Il progetto è coperto da una licenza [CC-0](LICENSE).

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ The `publiccode.yml` file is meant to solve all those problems. As such, it is
4040
an easily readable file for civil servants that are trying to figure out
4141
whether a project will work for them, and easily readable for computers as
4242
well. It contains information such as:
43-
4443
* the title and description of the project or product in English and/or other
4544
languages;
4645
* the development status, e.g. `concept`, `development`, `beta`, `stable`,
@@ -73,6 +72,13 @@ exposing them as open data.
7372

7473
Feel free to submit [Pull Requests and to file Issues](CONTRIBUTING.md).
7574

75+
This repository is structured in order to be compatible with the `Docs Italia`
76+
platform. As such, the markdown content in the relevant folders will be
77+
compiled and rendered on top of that platform. The `Docs Italia` platform is
78+
able to handle different releases and localised versions of the same file
79+
drawing from the document's GitHub repository. As such, the platform is to be
80+
considered the default landing page for the project.
81+
7682
## Licence
7783

7884
Licenced under the [CC-0](LICENSE)

_docs/en/schema.md

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
[< Back to version 0.1](index.html) -- this file is part of the [`publiccode.yml` specification](http://w3id.org/publiccode/).
2-
31
# The main schema
42

5-
This document the description of the schema of
6-
`publiccode.yml`.
3+
This document represents the description of the `publiccode.yml` schema.
74

85
## Structure
96

@@ -15,35 +12,38 @@ sense in specific countries, such as declaring compliance with local
1512
laws or regulations. The provided extension mechanism is the usage
1613
of country-specific sections.
1714

18-
All country-specific sections are contained in a section named with the two-letter lowercase [ISO 3166-1 alpha-2 country code](https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2).
19-
For instance `spid` is a property for Italian software declaring whether the software is integrated with the Italian Public Identification System.
15+
All country-specific extensions are contained in a section named with the
16+
two-letter lowercase [ISO 3166-1 alpha-2 country
17+
code](https://it.wikipedia.org/wiki/ISO_3166-1_alpha-2).
18+
For instance `spid` is a property for Italian software declaring whether the
19+
software is integrated with the Italian Public Identification System.
2020

2121
If a software is compliant I will find:
2222
```
2323
it:
2424
spid: yes
2525
```
2626

27-
Notice that country-specific keys within international sections are
28-
not allowed. Countries that want to extend the format should add one
29-
or many country-specific sections instead.
27+
Notice that country-specific extensions within international sections are
28+
not allowed. Countries that want to extend the format should add a
29+
country-specific section instead.
3030

31-
Documentation for country specific sections is maintained in separate
32-
files.
31+
Documentation for the keys contained in a country specific section is
32+
maintained in separate files.
3333

3434
* Italy: [Italian extensions](schema.it.md)
3535

3636

3737
## Top-level section
3838

39-
### Key `publiccode-yaml-version`
39+
### Key `publiccodeYmlVersion`
4040

4141
* Type: string
4242
* Presence: mandatory
43-
* Example: `"http://w3id.org/publiccode/version/0.1"`
43+
* Example: `"0.1"`
4444

4545
This key specifies the version to which the current `publiccode.yml`
46-
adheres to, for forward compatibility. Current version is `0.1`.
46+
adheres to, for forward compatibility.
4747

4848
### Key `name`
4949

@@ -108,7 +108,7 @@ specified repositories.
108108
### Key `softwareVersion`
109109

110110
* Type: string
111-
* Presence: mandatory
111+
* Presence: optional
112112
* Example: `"1.0"`, `"dev"`
113113

114114
This key contains the latest stable version number of the software.
@@ -131,12 +131,12 @@ and thus the version number is present.
131131

132132
### Key `logo`
133133

134-
* Type: string (path to file)
134+
* Type: string (relative path to file or absolute URL)
135135
* Presence: optional
136136
* Acceptable formats: SVG, SVGZ, PNG
137137
* Example: `img/logo.svg`
138138

139-
This key contains the logo of the software. Logos should be in vector
139+
This key contains the path to the logo of the software. Logos should be in vector
140140
format; raster formats are only allowed as a fallback. In this case, they should be transparent PNGs, minimum 1000px of
141141
width.
142142

@@ -291,17 +291,17 @@ This section contains a general description of the software. Parsers
291291
can use this section for instance to create a web page describing
292292
the software.
293293

294-
**Note** Since all the strings contained in this section are user-visible and written in a specific language, you **must** specify the language you are editing the text in (using [ISO 639-2](https://en.wikipedia.org/wiki/ISO_639-2) alpha-3 codes) by creating a section with that name.
294+
**Note** Since all the strings contained in this section are user-visible and written in a specific language, you **must** specify the language you are editing the text in (using [ISO 639-2](https://en.wikipedia.org/wiki/ISO_639-2) alpha-3 codes) by creating a sub-section with that name.
295295

296296
An example for English:
297-
```.yaml
297+
```.yml
298298
description:
299299
eng:
300300
shortDescription: ...
301301
longDescription: ...
302302
```
303303

304-
In the following part of the document, all keys are assumed to be in a section with the name of the language (we will note this with `[lang]`).
304+
In the following part of the document, all keys are assumed to be in a sub-section with the name of the language (we will note this with `[lang]`).
305305

306306
**Note:** It is mandatory to have *at least* one language in this section. All other languages are optional.
307307

@@ -413,7 +413,7 @@ Each tag must be in Unicode lowercase, and should not contain
413413
any Unicode whitespace character. The suggested character to
414414
separate multiple words is `-` (single dash).
415415

416-
### Key `description/[lang]/featureList`
416+
### Key `description/[lang]/features`
417417

418418
* Type: array of strings
419419
* Presence: mandatory (for at least one language)
@@ -461,6 +461,9 @@ be hosted on a video sharing website that supports the
461461
[oEmbed](https://oembed.com) standard; popular options are YouTube and
462462
Vimeo.
463463

464+
Since videos are an integral part of the documentation, it is recommended to
465+
publish them with an open license.
466+
464467
### Key `description/[lang]/awards`
465468

466469
* Type: array of strings
@@ -576,7 +579,8 @@ This section provides an overview of the localization features of the software.
576579
* Type: boolean
577580
* Presence: mandatory
578581

579-
If `yes`, the software has infrastructure in place or is otherwise designed to be multilingual. It does not need to be available in more than one language.
582+
If `yes`, the software has infrastructure in place or is otherwise designed to
583+
be multilingual. It does not need to be available in more than one language.
580584

581585
## Key `localisation/availableLanguages`
582586

@@ -585,8 +589,6 @@ If `yes`, the software has infrastructure in place or is otherwise designed to b
585589

586590
If present, this is the list of languages in which the software is available. Of course, this list will contain at least one language.
587591

588-
See also: https://en.wikipedia.org/wiki/ISO_639-2
589-
590592
### Section `dependsOn`
591593

592594
This section provides an overview on the system-level dependencies
@@ -638,15 +640,15 @@ A `dependency` is a complex object. The properties are the following:
638640
It is of course possible to use the various keys to specify a complex compatibility matrix.
639641

640642
*Ex. 1*
641-
```.yaml
643+
```.yml
642644
- name: PostgreSQL
643645
version: 3.2
644646
optional: yes
645647
```
646648
This snippet marks an optional dependency on PostgreSQL exactly version 3.2.
647649

648650
*Ex. 2*
649-
```.yaml
651+
```.yml
650652
- name: MySQL
651653
versionMin: 1.1
652654
versionMax: 1.3

document_settings.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
document:
2-
name: publiccode.yml Standard
2+
name: Standard publiccode.yml
33
description: |
4-
This documentation contains the `publiccode.yml` standard.
4+
Questa è la documentazione relativa allo standard `publiccode.yml`.
55
tags:
66
- publiccode.yml
77
- standard
8-
- interoperability
8+
- interoperabilità
9+
- riuso

index.it.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Lo Standard `publiccode.yml`
2+
3+
`publiccode.yml` è uno standard di descrizione di metadati ideato per essere
4+
inserito in repository contenenti software pubblici. Questo standard ha lo
5+
scopo di rendere il software sviluppato dalle Pubbliche Amministrazioni
6+
e Pubbliche Organizzazioni facile da individuare e, di conseguenza,
7+
riutilizzare. Proprio per questo motivo, è stato pensato per essere semplice da
8+
adottare sia per gli sviluppatori che per i non addetti ai lavori.
9+
10+
Nel corso degli anni, molto software di qualità è stato commissionato e/o
11+
sviluppato da diverse Pubbliche Amministrazioni, però i casi di riuso sono
12+
scarsi. Alcune tra le ragioni che hanno portato ad una bassa adozione di tali
13+
progetti sono state la difficoltà nel reperire informazioni riguardanti un dato
14+
progetto così come le perplessità nel capire se un dato progetto potesse essere
15+
adatto o meno nel contesto di una Pubblica Amministrazione diversa rispetto
16+
a quella che lo aveva originariamente commissionato.
17+
18+
Lo standard `publiccode.yml` si pone l'obiettivo di risolvere queste
19+
problematiche. Si tratta, infatti, di un *singolo file* che può essere letto
20+
facilmente sia dai dipendenti pubblici, che vogliono capire se possono
21+
beneficiare dall'adozione di un dato software, che da un calcolatore
22+
elettronico.
23+
24+
Tra le informazioni contenute in questo file vi sono:
25+
* il titolo e la descrizione del progetto o prodotto in inglese e/o altre
26+
lingue;
27+
* lo stato dello sviluppo ad es., `concept`, `development`, `beta`, `stable`,
28+
`obsolete`;
29+
* i riferimenti dell'organizzazione che ha sviluppato il progetto;
30+
* chi si sta occupando della sua manutenzione e quando il rapporto finirà;
31+
* chi contattare per domande di tipo tecnico o di supporto;
32+
* per quale quadro giuridico è stato pensato questo progetto o prodotto;
33+
* quali dipendenze software esistono. e molte altre informazioni rilevanti.
34+
35+
Il formato del file `publiccode.yml` è pensato per essere rapidamente aggiunto
36+
ad ogni nuovo progetto e potrà crescere ed adattarsi ai cambiamenti di
37+
contesto.
38+
39+
In aggiunta, il *Team per la Trasformazione Digitale* sta lavorando per
40+
realizzare uno *scanner* in grado di cercare tutti i file `publiccode.yml`
41+
presenti all'interno dei repository di codice sorgente accessibili
42+
pubblicamente, per poi elencarli e pubblicarli sotto forma di open data. In tal
43+
modo, sarà dunque popolato il catalogo del riuso del software per la Pubblica
44+
Amministrazione.
45+
Inoltre, il Team sta realizzando degli strumenti di supporto,
46+
come ad esempio un editor, che permettano di generare e/o validare un file
47+
`publiccode.yml` attraverso delle interfacce grafiche quindi facilitando anche
48+
il compito in fase di creazione.
49+
50+
.. toctree::
51+
:maxdepth: 2
52+
53+
Schema dello standard <_docs/it/schema.md>
54+
Estensioni italiane <_docs/it/schema.it.md>
55+
Fork e Varianti <_docs/it/forks.md>
56+
Tipi di Pubbliche Amministrazioni <_docs/it/pa-types.md>
57+
Lista dei tag accettati <_docs/it/tags.md>
58+
Strumenti di supporto <_docs/it/strumenti.md>

0 commit comments

Comments
 (0)