aboutsummaryrefslogtreecommitdiff
path: root/docs/markdown
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-05-12 19:37:31 +0300
committerGitHub <noreply@github.com>2017-05-12 19:37:31 +0300
commit84012a509939d3babb741f0f61aec921e3ec34e4 (patch)
tree9f49d0cfc30729c0a8ed7d36d7f1dda177ea9e02 /docs/markdown
parente99cfdfbc73ae4dd6dfd37fc674088aac01ec63e (diff)
parent8068fc0d1dc5f8975a2df3719e5547f6eb195dd4 (diff)
downloadmeson-84012a509939d3babb741f0f61aec921e3ec34e4.zip
meson-84012a509939d3babb741f0f61aec921e3ec34e4.tar.gz
meson-84012a509939d3babb741f0f61aec921e3ec34e4.tar.bz2
Merge pull request #1669 from mesonbuild/dist
Create a dist target
Diffstat (limited to 'docs/markdown')
-rw-r--r--docs/markdown/Creating-releases.md15
-rw-r--r--docs/markdown/Release-notes-for-0.41.0.md15
2 files changed, 30 insertions, 0 deletions
diff --git a/docs/markdown/Creating-releases.md b/docs/markdown/Creating-releases.md
new file mode 100644
index 0000000..b0149a6
--- /dev/null
+++ b/docs/markdown/Creating-releases.md
@@ -0,0 +1,15 @@
+---
+short-description: Creating releases
+...
+
+# Creating releases
+
+In addition to development, almost all projects provide periodical source releases. These are standalone packages (usually either in tar or zip format) of the source code. They do not contain any revision control metadata, only the source code.
+
+Meson provides a simple way of generating these. It consists of a single command:
+
+ ninja dist
+
+This creates a file called `projectname-version.tar.xz` in the build tree subdirectory `meson-dist`. This archive contains the full contents of the latest commit in revision control including all the submodules. All revision control metadata is removed. Meson then takes this archive and tests that it works by doing a full compile + test + install cycle. If all these pass, Meson will then create a SHA-256 checksum file next to the archive.
+
+**Note**: Meson behaviour is different from Autotools. The Autotools "dist" target packages up the current source tree. Meson packages the latest revision control commit. The reason for this is that it prevents developers from doing accidental releases where the distributed archive does not match any commit in revision control (especially the one tagged for the release).
diff --git a/docs/markdown/Release-notes-for-0.41.0.md b/docs/markdown/Release-notes-for-0.41.0.md
index 8a7f263..c93fee8 100644
--- a/docs/markdown/Release-notes-for-0.41.0.md
+++ b/docs/markdown/Release-notes-for-0.41.0.md
@@ -38,3 +38,18 @@ pkg.generate(libraries : libs,
description : 'A simple demo library.',
variables : ['datadir=${prefix}/data'])
```
+
+## A target for creating tarballs
+
+Creating distribution tarballs is simple:
+
+ ninja dist
+
+This will create a `.tar.xz` archive of the source code including
+submodules without any revision control information. This command also
+verifies that the resulting archive can be built, tested and
+installed. This is roughly equivalent to the `distcheck` target in
+other build systems. Currently this only works for projects using Git
+and only with the Ninja backend.
+
+