meson/docs/markdown/Creating-releases.md

32 lines
1.2 KiB
Markdown
Raw Normal View History

2017-05-03 04:20:35 +08:00
---
short-description: Creating releases
...
# Creating releases
2017-08-24 22:51:44 +08:00
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.
2017-05-03 04:20:35 +08:00
2017-08-24 22:51:44 +08:00
Meson provides a simple way of generating these. It consists of a
single command:
2017-05-03 04:20:35 +08:00
ninja dist
2017-08-24 22:51:44 +08:00
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
2019-03-01 20:27:00 +08:00
submodules (recursively). All revision control metadata is removed.
Meson then takes
2017-08-24 22:51:44 +08:00
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.
2017-05-03 04:20:35 +08:00
2017-08-24 22:51:44 +08:00
**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).