Tests: implement REUSE with SPDX identifiers
authorMichael Jeanson <mjeanson@efficios.com>
Thu, 6 Jul 2023 18:40:01 +0000 (14:40 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 10 Jan 2024 17:20:23 +0000 (12:20 -0500)
The SPDX identifiers [1] are a legally binding shorthand, which can be
used instead of the full boiler plate text. This is the first step
towards implementing the full REUSE spec [2] to help with copyright and
licensing audits and compliance.

This will reduce a lot a manual work required for the licensing audit
required in Debian on each update.

For files that lacked copyright and licensing information, I used the
following guidelines. If a clear author could be determined from the git
history use it, otherwise use 'EfficiOS Inc.'. For build system files,
use 'MIT', for documentation 'CC-BY-4.0' and for data files 'CC0-1.0'.

Freeform text files were converted to Markdown to allow licensing
comments.

[1] https://spdx.org/ids-how
[2] https://reuse.software/tutorial/

Change-Id: I3c391f15d97b5958bdfacc17eb4ab2abafd9d99d
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
45 files changed:
.reuse/dep5
tests/benchmark/Makefile.am
tests/benchmark/README [deleted file]
tests/benchmark/README.md [new file with mode: 0644]
tests/benchmark/ptime
tests/benchmark/test_benchmark
tests/compile/api0/ctf-types/README [deleted file]
tests/compile/api0/ctf-types/README.md [new file with mode: 0644]
tests/compile/api0/hello-many/Makefile.am
tests/compile/api0/hello-many/README [deleted file]
tests/compile/api0/hello-many/README.md [new file with mode: 0644]
tests/compile/api0/hello.cxx/Makefile.am
tests/compile/api0/hello.cxx/README [deleted file]
tests/compile/api0/hello.cxx/README.md [new file with mode: 0644]
tests/compile/api0/hello/Makefile.am
tests/compile/api0/hello/Makefile.example.bsd
tests/compile/api0/hello/Makefile.example.linux
tests/compile/api0/hello/README [deleted file]
tests/compile/api0/hello/README.md [new file with mode: 0644]
tests/compile/api1/hello-many/Makefile.am
tests/compile/api1/hello-many/README [deleted file]
tests/compile/api1/hello-many/README.md [new file with mode: 0644]
tests/compile/api1/hello.cxx/Makefile.am
tests/compile/api1/hello.cxx/README [deleted file]
tests/compile/api1/hello.cxx/README.md [new file with mode: 0644]
tests/compile/api1/hello/Makefile.am
tests/compile/api1/hello/Makefile.example.bsd
tests/compile/api1/hello/Makefile.example.linux
tests/compile/api1/hello/README [deleted file]
tests/compile/api1/hello/README.md [new file with mode: 0644]
tests/compile/api1/ust-fields/Makefile.am
tests/compile/api1/ust-fields/README [deleted file]
tests/compile/api1/ust-fields/README.md [new file with mode: 0644]
tests/regression/abi0-conflict/test_abi0_conflict
tests/unit/gcc-weak-hidden/b.c
tests/unit/gcc-weak-hidden/b.h
tests/unit/gcc-weak-hidden/libgcc-wh.h
tests/unit/gcc-weak-hidden/libgcc-wh1.c
tests/unit/gcc-weak-hidden/libgcc-wh2.c
tests/unit/libcommon/test_get_cpu_mask_from_sysfs
tests/unit/libcommon/test_get_max_cpuid_from_sysfs
tests/unit/ust-elf/data/main.c
tests/unit/ust-elf/data/pic/hello.c
tests/unit/ust-elf/data/pic/libhello.c
tests/unit/ust-elf/test_ust_elf

index 4c2bf6ac8ca6ef6e6dede316d11d9f22e748a7e3..4d8a74741458c0191a79549c6ca073ac17c7b661 100644 (file)
@@ -5,3 +5,7 @@ Upstream-Contact: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
 Files: extras/abi/2.*/* extras/abi/empty/*
 Copyright: 2023 EfficiOS, Inc.
 License: CC0-1.0
+
+Files: tests/unit/ust-elf/data/*
+Copyright: 2023 EfficiOS, Inc.
+License: LGPL-2.1-or-later
index 38b60f3c1bddb87e8908d6b707b353d02c9adec4..6b770958bbdb0dd186b09b9e388431e110259cfc 100644 (file)
@@ -18,4 +18,4 @@ bench2_LDADD = \
 
 dist_noinst_SCRIPTS = test_benchmark ptime
 
-EXTRA_DIST = README
+EXTRA_DIST = README.md
diff --git a/tests/benchmark/README b/tests/benchmark/README
deleted file mode 100644 (file)
index 3294f10..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-To run the benchmark:
-
-    ./test_benchmark
-
-You can specify the number of iterations, events and threads by setting
-environment variables ITERS, DURATION, NR_THREADS respectively:
-
-    ITERS=10 DURATION=20 NR_THREADS=4 ./test_benchmark
-
-NR_CPUS can also be configured, but by default is based on the contents of
-/proc/cpuinfo.
diff --git a/tests/benchmark/README.md b/tests/benchmark/README.md
new file mode 100644 (file)
index 0000000..50c2ba4
--- /dev/null
@@ -0,0 +1,17 @@
+<!--
+SPDX-FileCopyrightText: 2013 Zifei Tong <soariez@gmail.com>
+
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
+To run the benchmark:
+
+    ./test_benchmark
+
+You can specify the number of iterations, events and threads by setting
+environment variables `ITERS`, `DURATION`, `NR_THREADS` respectively:
+
+    ITERS=10 DURATION=20 NR_THREADS=4 ./test_benchmark
+
+`NR_CPUS` can also be configured, but by default is based on the contents of
+`/proc/cpuinfo`.
index 0413b94d132b29ca06accbedeadbf674de9d684b..8a478138f5d990d7978425c1069f212b3cbdee09 100755 (executable)
@@ -1,4 +1,6 @@
 #!/usr/bin/env python
+
+# SPDX-FileCopyrightText: 2023 EfficiOS, Inc
 #
 # SPDX-License-Identifier: LGPL-2.1-only
 
index 0da40a57c3b2c2b50cc559d99beb616d73f18350..33e5ed49a3c9ae3299b4a3f0ad2e525be55e7e23 100755 (executable)
@@ -1,4 +1,6 @@
 #!/bin/bash
+
+# SPDX-FileCopyrightText: 2023 EfficiOS, Inc
 #
 # SPDX-License-Identifier: LGPL-2.1-only
 
diff --git a/tests/compile/api0/ctf-types/README b/tests/compile/api0/ctf-types/README
deleted file mode 100644 (file)
index 0198653..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-This is a "hello world" application used to verify that an instrumented program
-with tracepoints using type declarations in CTF metadata can be built
-successfully.
diff --git a/tests/compile/api0/ctf-types/README.md b/tests/compile/api0/ctf-types/README.md
new file mode 100644 (file)
index 0000000..264634a
--- /dev/null
@@ -0,0 +1,9 @@
+<!--
+SPDX-FileCopyrightText: 2016 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
+This is a "hello world" application used to verify that an instrumented program
+with tracepoints using type declarations in CTF metadata can be built
+successfully.
index 15974ec85cd3115fd78eb28e3fc5ddd2ac57b0a4..20d65354a86f0a0e964aeccb2d2a99bf982be8f8 100644 (file)
@@ -8,3 +8,5 @@ noinst_PROGRAMS = hello-many
 hello_many_SOURCES = hello-many.c tp.c ust_tests_hello_many.h
 hello_many_LDADD = $(top_builddir)/src/lib/lttng-ust/liblttng-ust.la $(DL_LIBS)
 hello_many_CFLAGS = -Werror=old-style-definition $(AM_CFLAGS)
+
+EXTRA_DIST = README.md
diff --git a/tests/compile/api0/hello-many/README b/tests/compile/api0/hello-many/README
deleted file mode 100644 (file)
index a257254..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-This is a "hello world" application used to verify that an instrumented
-program which contains more than 30 tracepoints can be built successfully.
diff --git a/tests/compile/api0/hello-many/README.md b/tests/compile/api0/hello-many/README.md
new file mode 100644 (file)
index 0000000..2f26db3
--- /dev/null
@@ -0,0 +1,8 @@
+<!--
+SPDX-FileCopyrightText: 2018 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
+This is a "hello world" application used to verify that an instrumented
+program which contains more than 30 tracepoints can be built successfully.
index 8920f5b866331deede77afa77528618fb94224cc..7b3e12953576b74488360834a1459a68e909de50 100644 (file)
@@ -7,3 +7,5 @@ AM_CPPFLAGS += -I$(srcdir)
 noinst_PROGRAMS = hello
 hello_SOURCES = hello.cpp tp-cpp.cpp ust_tests_hello.h
 hello_LDADD = $(top_builddir)/src/lib/lttng-ust/liblttng-ust.la $(DL_LIBS)
+
+EXTRA_DIST = README.md
diff --git a/tests/compile/api0/hello.cxx/README b/tests/compile/api0/hello.cxx/README
deleted file mode 100644 (file)
index 48cb0d8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a "hello world" application used to verify that an instrumented
-program written in C++ can be built successfully.
-
-Only enabled if a C++ build environment is detected during configure.
diff --git a/tests/compile/api0/hello.cxx/README.md b/tests/compile/api0/hello.cxx/README.md
new file mode 100644 (file)
index 0000000..34acde7
--- /dev/null
@@ -0,0 +1,10 @@
+<!--
+SPDX-FileCopyrightText: 2009 Pierre-Marc Fournier <pierre-marc.fournier@polymtl.ca>
+
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
+This is a "hello world" application used to verify that an instrumented
+program written in C++ can be built successfully.
+
+Only enabled if a C++ build environment is detected during configure.
index f3f86f223b8c26477565891b5a9b02ffedee96ce..aa5fa263718060d0f68886fd6426c27a3ee09a55 100644 (file)
@@ -8,3 +8,8 @@ noinst_PROGRAMS = hello
 hello_SOURCES = hello.c tp.c ust_tests_hello.h
 hello_LDADD = $(top_builddir)/src/lib/lttng-ust/liblttng-ust.la $(DL_LIBS)
 hello_CFLAGS = -Werror=old-style-definition $(AM_CFLAGS)
+
+EXTRA_DIST = \
+       Makefile.example.bsd \
+       Makefile.example.linux \
+       README.md
index 607171c2ef0ebaac4e88e641949c2d33bee70aaf..ba617818afe324402bc64ea284ee2d7b5acb7a47 100644 (file)
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+#
+# SPDX-License-Identifier: MIT
+
 # Example makefile for build outside of the LTTng-UST tree.
 
 hello:
index c983f4c45f457fde9615208979817bb770291563..72b302fa452eff3be5ac9ce3fedcb6ff3e67d3de 100644 (file)
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+#
+# SPDX-License-Identifier: MIT
+
 # Example makefile for build outside of the LTTng-UST tree.
 
 hello:
diff --git a/tests/compile/api0/hello/README b/tests/compile/api0/hello/README
deleted file mode 100644 (file)
index 5d5100d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-This is a "hello world" application used to verify that an instrumented
-program can be built successfully.
\ No newline at end of file
diff --git a/tests/compile/api0/hello/README.md b/tests/compile/api0/hello/README.md
new file mode 100644 (file)
index 0000000..683b01d
--- /dev/null
@@ -0,0 +1,8 @@
+<!--
+SPDX-FileCopyrightText: 2009 Pierre-Marc Fournier <pierre-marc.fournier@polymtl.ca>
+
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
+This is a "hello world" application used to verify that an instrumented
+program can be built successfully.
index ce867fc723cf2a329e71f10d3a0bfce62f2c9ef4..af7085b8ebe0e94270f5d46b8cb6816b3e59fb49 100644 (file)
@@ -19,4 +19,4 @@ hello_many_compatapi1_LDADD = \
        $(top_builddir)/src/lib/lttng-ust/liblttng-ust.la \
        $(DL_LIBS)
 
-EXTRA_DIST = README
+EXTRA_DIST = README.md
diff --git a/tests/compile/api1/hello-many/README b/tests/compile/api1/hello-many/README
deleted file mode 100644 (file)
index a257254..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-This is a "hello world" application used to verify that an instrumented
-program which contains more than 30 tracepoints can be built successfully.
diff --git a/tests/compile/api1/hello-many/README.md b/tests/compile/api1/hello-many/README.md
new file mode 100644 (file)
index 0000000..2f26db3
--- /dev/null
@@ -0,0 +1,8 @@
+<!--
+SPDX-FileCopyrightText: 2018 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
+This is a "hello world" application used to verify that an instrumented
+program which contains more than 30 tracepoints can be built successfully.
index 6204069758db1fd18ab2f24ddb3c27fc396f6735..54213d88b6114506f9942368ea4887285c431bb7 100644 (file)
@@ -18,4 +18,4 @@ hello_compatapi1_LDADD = \
        $(top_builddir)/src/lib/lttng-ust/liblttng-ust.la \
        $(DL_LIBS)
 
-EXTRA_DIST = README
+EXTRA_DIST = README.md
diff --git a/tests/compile/api1/hello.cxx/README b/tests/compile/api1/hello.cxx/README
deleted file mode 100644 (file)
index 48cb0d8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a "hello world" application used to verify that an instrumented
-program written in C++ can be built successfully.
-
-Only enabled if a C++ build environment is detected during configure.
diff --git a/tests/compile/api1/hello.cxx/README.md b/tests/compile/api1/hello.cxx/README.md
new file mode 100644 (file)
index 0000000..34acde7
--- /dev/null
@@ -0,0 +1,10 @@
+<!--
+SPDX-FileCopyrightText: 2009 Pierre-Marc Fournier <pierre-marc.fournier@polymtl.ca>
+
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
+This is a "hello world" application used to verify that an instrumented
+program written in C++ can be built successfully.
+
+Only enabled if a C++ build environment is detected during configure.
index 206a4ce33ae73fe781a237bc47563ab0b9d2fbe9..04dce1e9e51c632c9ad6bef6c1b67de514885c8d 100644 (file)
@@ -19,4 +19,7 @@ hello_compatapi1_LDADD = \
        $(top_builddir)/src/lib/lttng-ust/liblttng-ust.la \
        $(DL_LIBS)
 
-EXTRA_DIST = README
+EXTRA_DIST = \
+       Makefile.example.bsd \
+       Makefile.example.linux \
+       README.md
index 35943945b285b9d87241ee4643ce54947df20285..ba617818afe324402bc64ea284ee2d7b5acb7a47 100644 (file)
@@ -1,5 +1,7 @@
-# SPDX-License-Identifier: LGPL-2.1-only
+# SPDX-FileCopyrightText: 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
 #
+# SPDX-License-Identifier: MIT
+
 # Example makefile for build outside of the LTTng-UST tree.
 
 hello:
index 74fda7bbdda0031ebcc80b38bda48ca09909a48a..60067763f59bcb026aae9c9ff69d6f8fa513f286 100644 (file)
@@ -1,5 +1,7 @@
-# SPDX-License-Identifier: LGPL-2.1-only
+# SPDX-FileCopyrightText: 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
 #
+# SPDX-License-Identifier: MIT
+
 # Example makefile to build outside of the LTTng-UST tree.
 
 hello:
diff --git a/tests/compile/api1/hello/README b/tests/compile/api1/hello/README
deleted file mode 100644 (file)
index 5d5100d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-This is a "hello world" application used to verify that an instrumented
-program can be built successfully.
\ No newline at end of file
diff --git a/tests/compile/api1/hello/README.md b/tests/compile/api1/hello/README.md
new file mode 100644 (file)
index 0000000..f1ef35b
--- /dev/null
@@ -0,0 +1,8 @@
+<!--
+SPDX-FileCopyrightText: 2009 Pierre-Marc Fournier <pierre-marc.fournier@polymtl.ca>
+
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
+This is a "hello world" application used to verify that an instrumented
+program can be built successfully.
\ No newline at end of file
index c186ccffed957803578d37940c8e7ebd59fbe5d4..2e70c96ffc2eae2ef96e53d7ca2bd7b175956a91 100644 (file)
@@ -18,4 +18,4 @@ ust_fields_compatapi1_LDADD = \
        $(top_builddir)/src/lib/lttng-ust/liblttng-ust.la \
        $(DL_LIBS)
 
-EXTRA_DIST = README
+EXTRA_DIST = README.md
diff --git a/tests/compile/api1/ust-fields/README b/tests/compile/api1/ust-fields/README
deleted file mode 100644 (file)
index 0198653..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-This is a "hello world" application used to verify that an instrumented program
-with tracepoints using type declarations in CTF metadata can be built
-successfully.
diff --git a/tests/compile/api1/ust-fields/README.md b/tests/compile/api1/ust-fields/README.md
new file mode 100644 (file)
index 0000000..264634a
--- /dev/null
@@ -0,0 +1,9 @@
+<!--
+SPDX-FileCopyrightText: 2016 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
+This is a "hello world" application used to verify that an instrumented program
+with tracepoints using type declarations in CTF metadata can be built
+successfully.
index 9dccbe12cbe94390460d2057379ca6051a03c642..3a98dc94a6c1e322aadad74a28bd7dd7808438e1 100755 (executable)
@@ -1,4 +1,7 @@
 #!/bin/bash
+
+# SPDX-FileCopyrightText: 2023 EfficiOS, Inc
+#
 # SPDX-License-Identifier: LGPL-2.1-only
 
 if [ "x${UST_TESTS_SRCDIR:-}" != "x" ]; then
index 5c9cee6f466413d3108fa2c5ce6fae8ecb5cc110..69dc125f3312bc193401d535b45b5d12fcbf9609 100644 (file)
@@ -1,6 +1,6 @@
-/*
- * SPDX-License-Identifier: LGPL-2.1-only
- */
+// SPDX-FileCopyrightText: 2023 EfficiOS, Inc
+//
+// SPDX-License-Identifier: LGPL-2.1-only
 
 #include "b.h"
 
index 88a708ad65eafa4e060a4c3ac307462c47fc7791..38353caa3ad408f6a019723aaa3471754d132c05 100644 (file)
@@ -1,6 +1,6 @@
-/*
- * SPDX-License-Identifier: LGPL-2.1-only
- */
+// SPDX-FileCopyrightText: 2023 EfficiOS, Inc
+//
+// SPDX-License-Identifier: LGPL-2.1-only
 
 #ifndef _UST_TEST_WEAK_B_H
 #define _UST_TEST_WEAK_B_H
index af2b2a13f4d2941f01217b07d4ba667a8bc172a7..2f787bf3b848c0abeaa02544c82ecc2031878fd2 100644 (file)
@@ -1,6 +1,6 @@
-/*
- * SPDX-License-Identifier: LGPL-2.1-only
- */
+// SPDX-FileCopyrightText: 2023 EfficiOS, Inc
+//
+// SPDX-License-Identifier: LGPL-2.1-only
 
 #ifndef _UST_TEST_WEAK_LIBGCC_H
 #define _UST_TEST_WEAK_LIBGCC_H
index d6ab0c9e482139c79df01ad35c78a972efc7e70c..dfdddc531dcc1187eae403c3cc83553371a4e4fb 100644 (file)
@@ -1,6 +1,6 @@
-/*
- * SPDX-License-Identifier: LGPL-2.1-only
- */
+// SPDX-FileCopyrightText: 2023 EfficiOS, Inc
+//
+// SPDX-License-Identifier: LGPL-2.1-only
 
 #include "libgcc-wh.h"
 
index 722f2f434fe9f0080b8fc4b86377c46c7247c228..f1eff130ab477db3da32b78321d5acca6e59a68d 100644 (file)
@@ -1,6 +1,6 @@
-/*
- * SPDX-License-Identifier: LGPL-2.1-only
- */
+// SPDX-FileCopyrightText: 2023 EfficiOS, Inc
+//
+// SPDX-License-Identifier: LGPL-2.1-only
 
 #include "libgcc-wh.h"
 
index 528ace2982ae2c341162bf99609c9e4736d40d83..dbd35150ff14439e46a678b7fa9c1a0e6915d480 100755 (executable)
@@ -1,4 +1,7 @@
 #!/bin/bash
+
+# SPDX-FileCopyrightText: 2023 EfficiOS, Inc
+#
 # SPDX-License-Identifier: LGPL-2.1-only
 
 if [ "x${UST_TESTS_SRCDIR:-}" != "x" ]; then
index 1d344bae4cb3abe21e54b1ef7bcc17f877e99568..f759bebc666cebaf0098e9e955015a4586f47588 100755 (executable)
@@ -1,4 +1,7 @@
 #!/bin/bash
+
+# SPDX-FileCopyrightText: 2023 EfficiOS, Inc
+#
 # SPDX-License-Identifier: LGPL-2.1-only
 
 if [ "x${UST_TESTS_SRCDIR:-}" != "x" ]; then
index 84fb21ab700f380b6e303c6185ac6f3e3b18d229..2505cc0a51f0ebdfca61356b5fabca2412a8acd2 100644 (file)
@@ -1,6 +1,6 @@
-/*
- * SPDX-License-Identifier: LGPL-2.1-only
- */
+// SPDX-FileCopyrightText: 2023 EfficiOS, Inc
+//
+// SPDX-License-Identifier: LGPL-2.1-only
 
 int main()
 {
index a45ce5d3cf7e1005d44915fb8fd6380eb926c998..98aa8be75c16c175ceda5b5ec84327ac7a450185 100644 (file)
@@ -1,6 +1,6 @@
-/*
- * SPDX-License-Identifier: LGPL-2.1-only
- */
+// SPDX-FileCopyrightText: 2023 EfficiOS, Inc
+//
+// SPDX-License-Identifier: LGPL-2.1-only
 
 #include <stdio.h>
 
index 6f990c564d55bd5694d9e2fd9a28f09fe0094ca6..768a0fb501db62e5ea232e2a44a57b679c40c083 100644 (file)
@@ -1,6 +1,6 @@
-/*
- * SPDX-License-Identifier: LGPL-2.1-only
- */
+// SPDX-FileCopyrightText: 2023 EfficiOS, Inc
+//
+// SPDX-License-Identifier: LGPL-2.1-only
 
 #include <stdio.h>
 
index afc6ecad2a88e4c440e986565d2c767e2afa6f49..cbadc73b0c0489fbab8e26ea66a54db5aadba056 100755 (executable)
@@ -1,4 +1,7 @@
 #!/bin/bash
+
+# SPDX-FileCopyrightText: 2023 EfficiOS, Inc
+#
 # SPDX-License-Identifier: LGPL-2.1-only
 
 if [ "x${UST_TESTS_SRCDIR:-}" != "x" ]; then
This page took 0.039149 seconds and 4 git commands to generate.