1e41f4b71Sopenharmony_ci# Specifications for README.OpenSource
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci## Purpose
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ciTo better trace the original information about third-party open-source software, the following principle is stipulated in [Introducing Open-Source Software](introducing-open-source-software.md): "Provide the **README.OpenSource** file in the root directory of the software repository. Include the following information in the file: software name, license, license file location, version, upstream community address of the corresponding version, software maintenance owner, function description, and introduction reason." However, developers often raise questions about how to write a **README.OpenSource** file. This document aims to standardize the writing requirements of the **README.OpenSource** file. In the near future, the **README.OpenSource** file can be automatically generated based on the imported information during the introduction of the third-party open-source software.
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci## Scope
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ciThis document applies to all contributors to the OpenHarmony community, especially when they want to introduce third-party open-source software to an OpenHarmony project.
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## Improvements and Revisions
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci- This document is drafted and maintained by the OpenHarmony Compliance SIG. What you are reading now is the latest version of this document.
14e41f4b71Sopenharmony_ci- Any addition, modification, or deletion of the specifications mentioned in this document can be traced in the tracing system.
15e41f4b71Sopenharmony_ci- The PMC reviews and finalizes the specifications after thorough discussion in the community.
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci## Rules for Fields in README.OpenSource
18e41f4b71Sopenharmony_ciREADME.OpenSource example
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci```
21e41f4b71Sopenharmony_ci[
22e41f4b71Sopenharmony_ci    {
23e41f4b71Sopenharmony_ci        "Name": "linux",                   # Full name of the upstream open-source software
24e41f4b71Sopenharmony_ci        "License": "GPL-2.0+",             # License information contained in the upstream open-source software
25e41f4b71Sopenharmony_ci        "License File": "COPYING",         # Path of the license file
26e41f4b71Sopenharmony_ci        "Version Number": "5.10.93",       # Version of the upstream open-source software
27e41f4b71Sopenharmony_ci        "Owner": "xxx@xxx.com",            # Maintenance personnel and email address of the open-source software in the OpenHarmony community
28e41f4b71Sopenharmony_ci        "Upstream URL": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-5.10.93.tar.gz",   # URL of the upstream open-source software package
29e41f4b71Sopenharmony_ci        "Description": "XXXXXXX"           # Description of the upstream open-source software
30e41f4b71Sopenharmony_ci    },
31e41f4b71Sopenharmony_ci    {
32e41f4b71Sopenharmony_ci        ...
33e41f4b71Sopenharmony_ci    }
34e41f4b71Sopenharmony_ci]
35e41f4b71Sopenharmony_ci```
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci- **Name**: full name of the upstream open-source software, of which the source code is contained in the current code repository. If there are multiple pieces of software, describe them one by one in a pair of braces ({}). Each pair contains a group of metadata about the open-source software.
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci  > **NOTE**
40e41f4b71Sopenharmony_ci  >
41e41f4b71Sopenharmony_ci  > Assume that software A depends on software B. If the source code of software B is stored in the repository of software A (A and B form an include dependency tree), both software A and B must be declared. If a dedicated code repository has been created for software B under the OpenHarmony community and GN is used to specify the dependencies through code repository directories during build (A and B form a build dependency tree), you do not need to declare software B.
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci- **License**: Use the standard short identifier provided in the SPDX License List. Include one license only. If either license can be used, specify the license selected. If the code repository uses multiple licenses, describe them one by one in a pair of braces ({}).
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci- **License File**: path of the license file relative to the root directory of the code repository, including the file name. If there are multiple license files, the rules are the same as those for the **License** field.
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci- **Version Number**: officially released version number of the open-source software. The version number must be the same as the text of the upstream version number.
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci- **Owner**: maintenance personnel of the open-source software in the OpenHarmony code repository, not the author of the software.
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci- **Upstream URL**: URL of the source package of the upstream software.
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci- **Description**: brief description about the open-source software.