Task #1973
open
Build tarball and upload to website
Added by Junxiao Shi about 10 years ago.
Updated about 5 years ago.
Description
Automate tarball creation as a build target.
./waf dist
should generate a tarball that contains all source code including git submodules.
During tarball creation, the version number (obtained from git describe --always
) should be saved to VERSION
file.
An automated process should create a tarball as described above for each tagged release, and upload to named-data.net website.
- Related to Task #1730: Create and publish source release tarballs added
This functionality already exists in NFD.
#1730 note-4 says:
I want to have some kind of automation for the process of tarball creation before closing this task.
What does that refer to?
./waf dist
creates a package with proper version.
I confirm that ./waf dist
is able to build a tarball with correct VERSION
file.
There are two problems:
nfd-*.tar.bz2
file is placed at the root directory of git repository, and .gitignore
does not exclude this file.
The file should either be placed in build/
, or be excluded in .gitignore
.
- If
git submodule update --init
is never executed, the tarball does not contain websocketpp/
directory.
The script should either execute git submodule update --init
command, or report an error if websocketpp/
is missing.
What you describing is not ./waf dist
's job, but job of the automation routine that we need to have to publish tarballs...
For the first problem in note-5, an easy solution is adding nfd-*.tar.bz2
to .gitignore
.
For the second problem in note-5, ./waf dist
could require git submodule update --init
to be invoked in an external script, but it should refuse to build the tarball if websocketpp/
is missing.
- Subject changed from Build tarball to Build tarball and upload to website
- Description updated (diff)
Updating with information gained from email exchanges with Alex.
This Feature can be implemented a cron job.
However, I doubt this is worth the effort.
NFD had five releases in five months.
Manually running two commands (./waf dist
and scp) once a month is easier than creating the cron job and routinely maintain the box that hosts this job.
I'm ok removing target version, but I would like to keep this task open, to remember that things need to be done manually for now.
- Target version changed from v0.3 to Unsupported
FTR, what I currently do to generate the source code tarballs is (assuming I already have a local up-to-date clone):
git checkout ${tag}
git submodule update --init
git clean -dfx
./waf dist
sha256sum ${tag/NFD/nfd}.tar.bz2 > ${tag/NFD/nfd}.tar.bz2.sha256
The steps in comment #12 assume Linux. On OS X, simply substitute 'sha256sum
' with 'shasum -a 256
'.
- Target version deleted (
Unsupported)
Also available in: Atom
PDF