Skip to content

TechSheet

TechSheet is an open standard to report technical details about software projects in a structured, uniform manner.

Supported by different build tools, a techsheet.yml or techsheet.json file is generated, containing all dependencies in a common, easy to read format.

Alpha Version

The project is currently under heavy development and still in alpha version. Many areas of development and documentation are still work-in-progress and not ready to be used productively. Also, the project is seeking maintainers and contributors. Visit github.com/techsheet for further information.

Specification

Find the YAML / JSON schema and specifications here:

Validation

Each specification version has a JSON schema to validate it, just take the version URL and attach /schema.json to it, e.g.: https://techsheet.org/spec/v1.0/schema.json.

In YAML files, the schema can be referenced by adding the following top-level line to the file, supported by most IDEs:

# yaml-language-server: $schema=https://techsheet.org/spec/v1.0/schema.json

Build tool plugins & generators will add the schema automatically.

File Naming & Placement

The TechSheet report is by default file-based. It is represented by one single YAML or JSON file per project, which is by default named techsheet.yml (or techsheet.json if you prefer JSON). The file is recommended to reside at the repository root, or in monorepos at project root. As a thumb rule, techsheet.yaml should be in the same directory as your build tool / package manager definition, e.g. build.gradle, pom.xml or packages.json.

While these are recommendations and can be customized, it is recommended to use standard file names and locations, so that the report is recognized. Keep in mind that tools and integrations, by default, only respect default names & locations, but provide configuration to customize.

Supported Build Tools

Reports & Integration

Examples

The following example shows a TechSheet YAML report which normally named techsheet.yml and located at the project root:

# yaml-language-server: $schema=https://techsheet.org/spec/v1.0/schema.json
version: "https://techsheet.org/spec/v1.0"
timestamp: "2018-11-13T20:20:39+00:00"
generator: "Gradle Plugin"
build-tool:
  name: "Gradle"
  version: "8.7"
  flavor: "Kotlin DSL"
plugins:
  - name: "org.jetbrains.kotlin.jvm"
    version: "2.0.0"
  - name: "org.springframework.boot"
    version: "3.3.0"
dependencies:
  - name: "org.jetbrains.kotlin:kotlin-test-junit5"
    version: "5.6.3"
  - name: "org.jetbrains.platform:junit-platform-commons"
    version: "1.6.3"

The same report can also be represented as json:

{
  "version": "https://techsheet.org/spec/v1.0",
  "timestamp": "2018-11-13T20:20:39+00:00",
  "generator": "Gradle Plugin",
  "build-tool": {
    "name": "Gradle",
    "version": "8.7",
    "flavor": "Kotlin DSL"
  },
  "plugins": [
    {
      "name": "org.jetbrains.kotlin.jvm",
      "version": "2.0.0"
    },
    {
      "name": "org.springframework.boot",
      "version": "3.3.0"
    }
  ],
  "dependencies": [
    {
      "name": "org.jetbrains.kotlin:kotlin-test-junit5",
      "version": "5.6.3"
    },
    {
      "name": "org.jetbrains.platform:junit-platform-commons",
      "version": "1.6.3"
    }
  ]
}