Version: 2019.4
Naming your package
Adding tests to a package

Package layout

This is the package layout convention followed by official Unity packages:

<root>
  ├── package.json
  ├── README.md
  ├── CHANGELOG.md
  ├── LICENSE.md
  ├── Editor
  │   ├── Unity.[YourPackageName].Editor.asmdef
  │   └── EditorExample.cs
  ├── Runtime
  │   ├── Unity.[YourPackageName].asmdef
  │   └── RuntimeExample.cs
  ├── Tests
  │   ├── Editor
  │   │   ├── Unity.[YourPackageName].Editor.Tests.asmdef
  │   │   └── EditorExampleTest.cs
  │   └── Runtime
  │        ├── Unity.[YourPackageName].Tests.asmdef
  │        └── RuntimeExampleTest.cs
  └── Documentation~
       └── [YourPackageName].md

Location Description
package.json The package manifest, which defines the package dependencies and other metadata.
README.md Developer package documentation. This is generally documentation to help developers who want to modify the package or push a new change on the package master source repository.
CHANGELOG.md Description of package changes in reverse chronological order. It is good practice to use a standard format, like Keep a Changelog.
LICENSE.md Contains the package license text. Usually the Package Manager copies the text from the selected SPDX list website.
Editor/ Editor platform-specific Assets folder. Unlike Editor folders under Assets, this is only a convention and does not affect the Asset import pipeline. See Assembly definition and packages to properly configure Editor-specific assemblies in this folder.
Runtime/ Runtime platform-specific Assets folder. This is only a convention and does not affect the Asset import pipeline. See Assembly definition and packages to properly configure runtime assemblies in this folder.
Tests/ Package tests folder.
Tests/Editor/ Editor platform specific tests folder. See Assembly definition and packages to properly configure Editor-specific test assemblies in this folder.
Tests/Runtime/ Runtime platform specific tests. See Assembly definition and packages to properly configure runtime test assemblies in this folder.
Documentation~ Optional folder for documentation for the package.
Naming your package
Adding tests to a package