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:
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"
}
]
}