Skip to content

Commit 9634361

Browse files
authored
Port to rst for DocsItalia compatibility (#27)
Breaking changes: * feat: moved all files to RST format * feat: removed md files * fix: mv index.it.md to rst * fix: conversion errors in index.it.rst * fix: typos
1 parent 8359181 commit 9634361

26 files changed

+2803
-2193
lines changed

docs/en/forks.md

Lines changed: 0 additions & 101 deletions
This file was deleted.

docs/en/forks.rst

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
Forks and variants
2+
==================
3+
4+
This document describes how to best handle software forks in the context
5+
of updating ``publiccode.yml``. We define two different semantics that
6+
require different handling: technical forks and software variants.
7+
8+
Technical forks (i.e. to publish patches)
9+
-----------------------------------------
10+
11+
A technical fork is a fork made by a developer for the purpose of
12+
working on the original code base or sending improvements to the
13+
original authors, without any explicit goal of creating and publishing
14+
an alternative variant of the original software.
15+
16+
In the context of distributed control systems and collaborative code
17+
hosting platforms like GitHub, forking is almost always used by
18+
developers as a step to work on a contribution on an existing codebase,
19+
by sending “pull requests”.
20+
21+
Because of the way forking works on GitHub and other platforms,
22+
developers publish their forks as perfect copies of the original
23+
software, thus including also ``publiccode.yml``. However, parsers need
24+
to be able to distinguish such technical forks from the original
25+
codebase.
26+
27+
Parsers
28+
~~~~~~~
29+
30+
Parsers **SHOULD** identify a technical fork by noticing that the
31+
top-level ``url`` key does not point to the repository in which the
32+
``publiccode.yml`` is found.
33+
34+
Parsers **MIGHT** identify a technical fork also through metadata that
35+
might be exposed by the code hosting platform (eg: GitHub marks forks
36+
explicitly as forks)
37+
38+
Authors
39+
~~~~~~~
40+
41+
Authors of technical forks **SHOULD NOT** modify ``publiccode.yml`` in
42+
any way. Specifically, they **MUST NOT** modify the top-level ``url``
43+
key that **MUST** continue pointing to the original repository.
44+
45+
There is no explicit key to mark a fork as a technical fork. This is a
46+
conscious design decision because we do not want authors of technical
47+
forks to be aware of ``publiccode.yml`` and necessarily be aware of how
48+
to modify it. The current design does not require authors to do
49+
anything.
50+
51+
Software variants
52+
-----------------
53+
54+
A software variant is a fork that is offered as an alternative to the
55+
original upstream software.
56+
57+
It contains modifications that are still not part of the upstream
58+
version, like more features, different dependencies, optimizations, etc.
59+
60+
By marking a fork as a variant, the author indicates that they believe
61+
that the variant includes a complete and working set of modifications
62+
that might be useful to other people.
63+
64+
Marking a fork as a variant does **not** relate to the willingness of
65+
contributing upstream; the author might still plan to contribute the
66+
modifications upstream, or even being in the process of doing so. Thus,
67+
even if the fork will eventually be merged upstream, it might make sense
68+
to mark it as a variant during the process, so that others might
69+
discover it and benefit from it.
70+
71+
.. _parsers-1:
72+
73+
Parsers
74+
~~~~~~~
75+
76+
Parsers **SHOULD** identify a variant by noticing that the top-level
77+
``url`` key matches to the repository in which the ``publiccode.yml`` is
78+
found, **AND** a top-level ``isBasedOn`` exists and points to a
79+
different repository.
80+
81+
Parsers should expect and analyze other differences in
82+
``publiccode.yml`` between variants of the software. Specifically
83+
``description/features`` is designed to be compared across variants to
84+
identify and show user-visible differences.
85+
86+
.. _authors-1:
87+
88+
Authors
89+
~~~~~~~
90+
91+
Authors that are willing to publish a fork as a variant **MUST** at
92+
least:
93+
94+
- add a key ``isBasedOn`` pointing to one or more upstream repositories
95+
from which this variant is derived.
96+
- Change the value for ``url`` to point to the repository holding the
97+
variant.
98+
- Change the value for ``legal/repoOwner`` to refer to the themselves
99+
(the authors of the variant).
100+
- Revisit the ``maintenance`` section to refer to the maintenance
101+
status of the variant.
102+
103+
Moreover, authors **SHOULD** evaluate the following changes:
104+
105+
- add the features that differentiate the variant to the
106+
``description/features`` key. Existing features **SHOULD NOT** be
107+
edited or removed from this list unless they have been removed from
108+
the variant, to allow parsers to easily compare feature lists.

docs/en/index.md

Lines changed: 0 additions & 18 deletions
This file was deleted.

docs/en/index.rst

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
``publiccode.yml``
2+
==================
3+
4+
A PublicCode file written following this specification is guaranteed to
5+
remain compatible with all parsers implementing any 0.x release.
6+
7+
For more information on version numbering see
8+
`SemVer.org <https://semver.org/>`__.
9+
10+
Schema documentation
11+
--------------------
12+
13+
- `Schema <schema.md>`__
14+
- `Italian extension to the schema <schema.it.md>`__
15+
- `List of acceptable tags <tags.md>`__
16+
17+
Concepts and lexicon
18+
--------------------
19+
20+
- `How to work with forks and variants <forks.md>`__
21+
22+
Examples
23+
--------
24+
25+
- `Minimal Example <example/publiccode.minimal.yml>`__
26+
- `Full Example <example/publiccode.yml>`__

docs/en/pa-types.md

Lines changed: 0 additions & 56 deletions
This file was deleted.

0 commit comments

Comments
 (0)