+ bdep new -t exe -l c++ hello
created new executable project hello in /tmp/hello/

+ tree hello
hello
├── build
│   ├── bootstrap.build
│   └── root.build
├── buildfile
├── hello
│   ├── buildfile
│   ├── hello.cxx
│   └── testscript
├── manifest
├── README.md
└── repositories.manifest

2 directories, 9 files

+ cd hello

+ cat hello/hello.cxx
#include <iostream>

int main (int argc, char* argv[])
{
  using namespace std;

  if (argc < 2)
  {
    cerr << "error: missing name" << endl;
    return 1;
  }

  cout << "Hello, " << argv[1] << '!' << endl;
}

+ cat hello/buildfile
libs =
#import libs += libhello%lib{hello}

exe{hello}: {hxx ixx txx cxx}{**} $libs testscript

cxx.poptions =+ "-I$out_root" "-I$src_root"

+ cat hello/testscript
: basics
:
$* 'World' >'Hello, World!'

: missing-name
:
$* 2>>EOE != 0
error: missing name
EOE

+ cat manifest
: 1
name: hello
version: 0.1.0-a.0.z
summary: hello C++ executable
license: other: proprietary ; Not free/open source.
description-file: README.md
url: https://example.org/hello
email: boris@codesynthesis.com
depends: * build2 >= 0.13.0-
depends: * bpkg >= 0.13.0-
#depends: libhello ^1.0.0

+ bdep init -C ../hello-gcc @gcc cc config.cxx=g++
initializing in project /tmp/hello/
created configuration @gcc /tmp/hello-gcc/ 1 default,forwarded,auto-synchronized
synchronizing:
  new hello/0.1.0-a.0.19700101000000

+ bdep init -C ../hello-clang @clang cc config.cxx=clang++-5.0
initializing in project /tmp/hello/
created configuration @clang /tmp/hello-clang/ 2 auto-synchronized
synchronizing:
  new hello/0.1.0-a.0.19700101000000

+ ls -d -1 ../hello ../hello-clang ../hello-gcc ../hello-gcc-1 ../hello.git
../hello
../hello-clang
../hello-gcc
../hello-gcc-1
../hello.git

+ bdep init -C ../hello-vc-debug @debug cc config.cxx=cl-15 config.cc.coptions=/MDd /Z7 config.cc.loptions=/DEBUG
initializing in project /tmp/hello/
created configuration @debug /tmp/hello-vc-debug/ 3 auto-synchronized
synchronizing:
  new hello/0.1.0-a.0.19700101000000

+ bdep init -C ../hello-vc-release @release cc config.cxx=cl-15 config.cc.coptions=/O2
initializing in project /tmp/hello/
created configuration @release /tmp/hello-vc-release/ 4 auto-synchronized
synchronizing:
  new hello/0.1.0-a.0.19700101000000

+ bdep status
hello configured 0.1.0-a.0.19700101000000

+ b
mkdir ../hello-gcc/hello/fsdir{hello/}
c++ hello/cxx{hello}@../hello-gcc/hello/hello/
ld ../hello-gcc/hello/hello/exe{hello}
ln ../hello-gcc/hello/hello/exe{hello} -> hello/

+ b test
test hello/testscript{testscript}@../hello-gcc/hello/hello/ ../hello-gcc/hello/hello/exe{hello}

+ hello/hello World
Hello, World!

+ tree ../hello-gcc
../hello-gcc
├── build
│   ├── bootstrap
│   │   └── pre-bdep-sync.build
│   ├── bootstrap.build
│   ├── config.build
│   └── root.build
├── buildfile
└── hello
    ├── build
    │   ├── bootstrap
    │   │   └── src-root.build
    │   └── config.build
    └── hello
        ├── hello
        ├── hello.d
        ├── hello.o
        └── hello.o.d

6 directories, 11 files

+ bdep status @clang
hello configured 0.1.0-a.0.19700101000000

+ b ../hello-clang/hello/
mkdir ../hello-clang/hello/fsdir{hello/}
c++ hello/cxx{hello}@../hello-clang/hello/hello/
ld ../hello-clang/hello/hello/exe{hello}

+ b test: ../hello-clang/hello/
test hello/testscript{testscript}@../hello-clang/hello/hello/ ../hello-clang/hello/hello/exe{hello}

+ ../hello-clang/hello/hello/hello World
Hello, World!
rm ../hello-clang/hello/hello/exe{hello}
rm ../hello-clang/hello/hello/obje{hello}
rm ../hello-clang/hello/fsdir{hello/}

+ bdep test @clang
mkdir ../hello-clang/hello/fsdir{hello/}
c++ hello/cxx{hello}@../hello-clang/hello/hello/
ld ../hello-clang/hello/hello/exe{hello}
test hello/testscript{testscript}@../hello-clang/hello/hello/ ../hello-clang/hello/hello/exe{hello}

+ bdep test @gcc @clang
in configuration @gcc:
test hello/testscript{testscript}@../hello-gcc/hello/hello/ ../hello-gcc/hello/hello/exe{hello}

in configuration @clang:
test hello/testscript{testscript}@../hello-clang/hello/hello/ ../hello-clang/hello/hello/exe{hello}

+ bdep init -C ../hello-mingw @mingw cc config.cxx=x86_64-w64-mingw32-g++
initializing in project /tmp/hello/
created configuration @mingw /tmp/hello-mingw/ 5 auto-synchronized
synchronizing:
  new hello/0.1.0-a.0.19700101000000

+ bdep update @mingw
mkdir ../hello-mingw/hello/fsdir{hello/}
c++ hello/cxx{hello}@../hello-mingw/hello/hello/
ld ../hello-mingw/hello/hello/exe{hello}

+ bdep test @mingw
test hello/testscript{testscript}@../hello-mingw/hello/hello/ ../hello-mingw/hello/hello/exe{hello}

+ ../hello-mingw/hello/hello/hello.exe Windows
Hello, Windows!

+ git add .

+ git commit -m Initial implementation
[master (root-commit) 4d5dc0f] Initial implementation
 13 files changed, 127 insertions(+)
 create mode 100644 .gitattributes
 create mode 100644 .gitignore
 create mode 100644 README.md
 create mode 100644 build/.gitignore
 create mode 100644 build/bootstrap.build
 create mode 100644 build/root.build
 create mode 100644 buildfile
 create mode 100644 hello/.gitignore
 create mode 100644 hello/buildfile
 create mode 100644 hello/hello.cxx
 create mode 100644 hello/testscript
 create mode 100644 manifest
 create mode 100644 repositories.manifest

+ git remote add origin git@github.com:boris-kolpackov/hello.git

+ git push origin master -u --force
To github.com:boris-kolpackov/hello.git
 + 04c937e...4d5dc0f master -> master (forced update)
Branch 'master' set up to track remote branch 'master' from 'origin'.

+ bdep ci --simulate success
submitting:
  to:      https://ci.stage.build2.org
  in:      https://github.com/boris-kolpackov/hello.git#master@4d5dc0f450c972b4f4eadaf59db44d40c244a50e
  package: hello
  version: 0.1.0-a.0.20200717153215.4d5dc0f450c9
continue? [y/n]   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
 79   812    0     0  100   649      0    434  0:00:01  0:00:01 --:--:--   434
100   812  100   163  100   649    109    434  0:00:01  0:00:01 --:--:--   434
CI request is queued: https://ci.stage.build2.org/@c59c5306-ac49-465f-a817-3a6972271ed4
reference: c59c5306-ac49-465f-a817-3a6972271ed4

+ bdep deinit @gcc @clang
deinitializing in project /tmp/hello/
in configuration @gcc:
synchronizing:
  drop hello

in configuration @clang:
synchronizing:
  drop hello

+ bdep new -C hello-gcc @gcc -t exe -l c++ hello cc config.cxx=g++
created new executable project hello in /tmp/hello/
created configuration @gcc /tmp/hello-gcc/ 1 default,forwarded,auto-synchronized
synchronizing:
  new hello/0.1.0-a.0.19700101000000

+ bdep init -C ../hello-clang @clang cc config.cxx=clang++-5.0
initializing in project /tmp/hello/
created configuration @clang /tmp/hello-clang/ 2 auto-synchronized
synchronizing:
  new hello/0.1.0-a.0.19700101000000

+ bpkg rep-info https://git.build2.org/hello/libhello.git
querying https://git.build2.org/hello/libhello.git
fetching from https://git.build2.org/hello/libhello.git
git:build2.org/hello/libhello https://git.build2.org/hello/libhello.git
prerequisite git:build2.org/hello/libprint##HEAD https://git.build2.org/hello/libprint.git##HEAD
prerequisite git:build2.org/hello/libformat##HEAD https://git.build2.org/hello/libformat.git##HEAD

libhello/1.1.0+6
libhello/1.0.0+6

+ bpkg rep-info https://git.build2.org/hello/libhello.git#HEAD
querying https://git.build2.org/hello/libhello.git
fetching from https://git.build2.org/hello/libhello.git
git:build2.org/hello/libhello#HEAD https://git.build2.org/hello/libhello.git#HEAD
prerequisite git:build2.org/hello/libprint##HEAD https://git.build2.org/hello/libprint.git##HEAD
prerequisite git:build2.org/hello/libformat##HEAD https://git.build2.org/hello/libformat.git##HEAD

libhello/1.1.0+6

+ bdep status
fetching pkg:stage.build2.org (prerequisite of dir:/tmp/hello)
warning: authenticity of the certificate for repository pkg:stage.build2.org cannot be established
certificate is for **stage.build2.org, "Code Synthesis" <stage-admin@build2.org>
certificate SHA256 fingerprint:
37:CE:2C:A5:1D:CF:93:81:D7:07:46:AD:66:B3:C3:90:83:B8:96:9E:34:F0:E7:B3:A2:B0:6C:EF:66:A4:BE:65
trust this certificate? [y/n] hello configured 0.1.0-a.0.19700101000000 available 0.1.0-a.0.19700101000000#1

+ bdep sync
synchronizing:
  new libhello/1.0.0+5 (required by hello)
  upgrade hello/0.1.0-a.0.19700101000000#1

     0K ...                                                   100%  120M=0s
+ b
synchronizing /tmp/hello-gcc/:
  upgrade hello/0.1.0-a.0.19700101000000#2
mkdir ../hello-gcc/hello/fsdir{hello/}
version.in ../hello-gcc/libhello-1.0.0+5/libhello/version.hxx.in
c++ ../hello-gcc/libhello-1.0.0+5/libhello/cxx{hello}
c++ hello/cxx{hello}@../hello-gcc/hello/hello/
ld ../hello-gcc/libhello-1.0.0+5/libhello/libs{hello}
ld ../hello-gcc/hello/hello/exe{hello}
ln ../hello-gcc/hello/hello/exe{hello} -> hello/

+ bdep status -ai
in configuration @gcc:
hello configured 0.1.0-a.0.19700101000000#2
  libhello ^1.0.0 configured 1.0.0+5

in configuration @clang:
fetching pkg:stage.build2.org (prerequisite of dir:/tmp/hello)
hello configured 0.1.0-a.0.19700101000000 available 0.1.0-a.0.19700101000000#1

+ bdep sync -a
in configuration @gcc:

in configuration @clang:
synchronizing:
  new libhello/1.0.0+5 (required by hello)
  upgrade hello/0.1.0-a.0.19700101000000#1

     0K ...                                                   100% 75.8M=0s
+ bdep test -ai
in configuration @gcc:
c++ ../hello-gcc/libhello-1.0.0+5/tests/basics/cxx{driver}
ld ../hello-gcc/libhello-1.0.0+5/tests/basics/exe{driver}
test hello/testscript{testscript}@../hello-gcc/hello/hello/ ../hello-gcc/hello/hello/exe{hello}
test ../hello-gcc/libhello-1.0.0+5/tests/basics/exe{driver}

in configuration @clang:
mkdir ../hello-clang/hello/fsdir{hello/}
version.in ../hello-clang/libhello-1.0.0+5/libhello/version.hxx.in
c++ ../hello-clang/libhello-1.0.0+5/libhello/cxx{hello}
c++ hello/cxx{hello}@../hello-clang/hello/hello/
c++ ../hello-clang/libhello-1.0.0+5/tests/basics/cxx{driver}
ld ../hello-clang/libhello-1.0.0+5/libhello/libs{hello}
ld ../hello-clang/hello/hello/exe{hello}
ld ../hello-clang/libhello-1.0.0+5/tests/basics/exe{driver}
test hello/testscript{testscript}@../hello-clang/hello/hello/ ../hello-clang/hello/hello/exe{hello}
test ../hello-clang/libhello-1.0.0+5/tests/basics/exe{driver}

+ bdep status
hello configured 0.1.0-a.0.19700101000000#2 available 0.1.0-a.0.19700101000000#3

+ bdep sync
synchronizing:
  drop libhello/1.0.0+5 (unused)
  upgrade hello/0.1.0-a.0.19700101000000#3
synchronizing:
  new libhello/1.0.0+5 (required by hello)
  upgrade hello/0.1.0-a.0.19700101000000#4

     0K ...                                                   100% 71.2M=0s
+ bdep fetch
fetching git:build2.org/hello/libhello (prerequisite of dir:/tmp/hello)
querying https://git.build2.org/hello/libhello.git
fetching from https://git.build2.org/hello/libhello.git
fetching git:build2.org/hello/libformat##HEAD (prerequisite of git:build2.org/hello/libhello)
querying https://git.build2.org/hello/libformat.git
fetching from https://git.build2.org/hello/libformat.git
fetching git:build2.org/hello/libprint##HEAD (prerequisite of git:build2.org/hello/libhello)
querying https://git.build2.org/hello/libprint.git
fetching from https://git.build2.org/hello/libprint.git
fetching pkg:stage.build2.org (prerequisite of dir:/tmp/hello)

+ bdep status libhello
libhello configured 1.0.0+5 available [1.1.0+6] [1.0.0+6]

+ bdep sync libhello
synchronizing:
  new libformat/1.0.0+6 (required by libhello)
  new libprint/1.0.0+6 (required by libhello)
  upgrade libhello/1.1.0+6
  reconfigure hello/0.1.0-a.0.19700101000000#4
distributing libformat/1.0.0+6
distributing libprint/1.0.0+6
distributing libhello/1.1.0+6

+ bdep status -r
hello configured 0.1.0-a.0.19700101000000#4
  libhello ^1.0.0 configured 1.1.0+6
    libformat ^1.0.0 configured 1.0.0+6
    libprint ^1.0.0 configured 1.0.0+6

+ bdep status -o libhello
libhello configured 1.1.0+6 available (1.1.0+6) [1.0.0+6] [1.0.0+5]

+ bdep sync libhello/1.0.0
synchronizing:
  drop libprint/1.0.0+6 (unused)
  drop libformat/1.0.0+6 (unused)
  downgrade libhello/1.0.0+6
  reconfigure hello/0.1.0-a.0.19700101000000#4
distributing libhello/1.0.0+6

+ bdep new -C libextra-gcc -t lib -l c++ libextra cc config.cxx=g++
created new library project libextra in /tmp/libextra/
created configuration /tmp/libextra-gcc/ 1 default,forwarded,auto-synchronized
synchronizing:
  new libextra/0.1.0-a.0.19700101000000

+ b install: libextra/ config.install.root=/tmp/unpkg-gcc
mkdir libextra-gcc/libextra/fsdir{libextra/}
version.in libextra/libextra/version.hxx.in
c++ libextra/libextra/cxx{extra}@libextra-gcc/libextra/libextra/
c++ libextra/libextra/cxx{extra}@libextra-gcc/libextra/libextra/
ar libextra-gcc/libextra/libextra/liba{extra}
ld libextra-gcc/libextra/libextra/libs{extra}
install unpkg-gcc/
install unpkg-gcc/include/
install unpkg-gcc/include/libextra/
install libextra/libextra/hxx{export}@libextra-gcc/libextra/libextra/
install libextra/libextra/hxx{extra}@libextra-gcc/libextra/libextra/
install unpkg-gcc/share/
install unpkg-gcc/share/doc/
install unpkg-gcc/share/doc/libextra/
install libextra/manifest{manifest}@libextra-gcc/libextra/
install libextra-gcc/libextra/libextra/hxx{version}
install libextra-gcc/libextra/libextra/liba{extra}
install libextra-gcc/libextra/libextra/libs{extra}
install libextra/doc{README.md}@libextra-gcc/libextra/

+ tree unpkg-gcc
unpkg-gcc
├── include
│   └── libextra
│       ├── export.hxx
│       ├── extra.hxx
│       └── version.hxx
├── lib
│   ├── libextra-0.1.0-a.0.19700101000000.so
│   ├── libextra.a
│   ├── libextra.so -> libextra-0.1.0-a.0.19700101000000.so
│   └── pkgconfig
│       ├── libextra.pc
│       ├── libextra.shared.pc
│       └── libextra.static.pc
└── share
    └── doc
        └── libextra
            ├── manifest
            └── README.md

7 directories, 11 files

+ bdep init -C ../hello-gcc-1 @gcc1 cc config.cxx=g++ config.cc.poptions=-I/tmp/unpkg-gcc/include config.cc.loptions=-L/tmp/unpkg-gcc/lib
initializing in project /tmp/hello/
created configuration @gcc1 /tmp/hello-gcc-1/ 3 auto-synchronized
fetching git:build2.org/hello/libhello (prerequisite of dir:/tmp/hello)
querying https://git.build2.org/hello/libhello.git
fetching from https://git.build2.org/hello/libhello.git
fetching git:build2.org/hello/libformat##HEAD (prerequisite of git:build2.org/hello/libhello)
querying https://git.build2.org/hello/libformat.git
fetching from https://git.build2.org/hello/libformat.git
fetching git:build2.org/hello/libprint##HEAD (prerequisite of git:build2.org/hello/libhello)
querying https://git.build2.org/hello/libprint.git
fetching from https://git.build2.org/hello/libprint.git
fetching pkg:stage.build2.org (prerequisite of dir:/tmp/hello)
synchronizing:
  new libformat/1.0.0+6 (required by libhello)
  new libprint/1.0.0+6 (required by libhello)
  new libhello/1.1.0+6 (required by hello)
  new hello/0.1.0-a.0.19700101000000
distributing libformat/1.0.0+6
distributing libprint/1.0.0+6
distributing libhello/1.1.0+6

+ b test: ../hello-gcc-1/
mkdir ../hello-gcc-1/hello/fsdir{hello/}
version.in ../hello-gcc-1/libprint-1.0.0+6/libprint/version.hxx.in
version.in ../hello-gcc-1/libformat-1.0.0+6/libformat/version.hxx.in
version.in ../hello-gcc-1/libhello-1.1.0+6/libhello/version.hxx.in
c++ ../hello-gcc-1/libhello-1.1.0+6/libhello/cxx{hello}
c++ ../hello-gcc-1/libformat-1.0.0+6/tests/basics/cxx{driver}
c++ ../hello-gcc-1/libprint-1.0.0+6/libprint/cxx{print}
c++ ../hello-gcc-1/libprint-1.0.0+6/tests/basics/cxx{driver}
c++ hello/cxx{hello}@../hello-gcc-1/hello/hello/
c++ ../hello-gcc-1/libhello-1.1.0+6/tests/basics/cxx{driver}
c++ ../hello-gcc-1/libformat-1.0.0+6/libformat/cxx{format}
ld ../hello-gcc-1/libprint-1.0.0+6/libprint/libs{print}
ld ../hello-gcc-1/libprint-1.0.0+6/tests/basics/exe{driver}
ld ../hello-gcc-1/libformat-1.0.0+6/libformat/libs{format}
ld ../hello-gcc-1/libformat-1.0.0+6/tests/basics/exe{driver}
ld ../hello-gcc-1/libhello-1.1.0+6/libhello/libs{hello}
ld ../hello-gcc-1/libhello-1.1.0+6/tests/basics/exe{driver}
ld ../hello-gcc-1/hello/hello/exe{hello}
test hello/testscript{testscript}@../hello-gcc-1/hello/hello/ ../hello-gcc-1/hello/hello/exe{hello}
test ../hello-gcc-1/libhello-1.1.0+6/tests/basics/exe{driver}
test ../hello-gcc-1/libprint-1.0.0+6/tests/basics/exe{driver}
test ../hello-gcc-1/libformat-1.0.0+6/tests/basics/exe{driver}

+ b configure: ../hello-gcc/ config.cc.poptions+=-I/tmp/unpkg-gcc/include config.cc.loptions+=-L/tmp/unpkg-gcc/lib
save ../hello-gcc/build/config.build
save ../hello-gcc/hello/build/config.build
save ../hello-gcc/libhello-1.0.0+6/build/config.build
save ../hello-gcc/libhello-1.0.0+6/tests/build/config.build

+ b test
c++ ../hello-gcc/libhello-1.0.0+6/libhello/cxx{hello}
c++ hello/cxx{hello}@../hello-gcc/hello/hello/
ld ../hello-gcc/libhello-1.0.0+6/libhello/libs{hello}
ld ../hello-gcc/hello/hello/exe{hello}
ln ../hello-gcc/hello/hello/exe{hello} -> hello/
test hello/testscript{testscript}@../hello-gcc/hello/hello/ ../hello-gcc/hello/hello/exe{hello}

+ bdep sync ?sys:libsqlite3
synchronizing:
  configure sys:libsqlite3/*
  upgrade hello/0.1.0-a.0.19700101000000#5

+ bdep new -C hello-gcc @gcc -t exe -l c++ hello cc config.cxx=g++
created new executable project hello in /tmp/hello/
created configuration @gcc /tmp/hello-gcc/ 1 default,forwarded,auto-synchronized
synchronizing:
  new hello/0.1.0-a.0.19700101000000
To github.com:boris-kolpackov/hello.git
 - [deleted]         build2-control
To github.com:boris-kolpackov/hello.git
 - [deleted]         v0.1.0-a.1
To github.com:boris-kolpackov/hello.git
 - [deleted]         v0.1.0
[master (root-commit) e49d672] Initial implementation
 13 files changed, 127 insertions(+)
 create mode 100644 .gitattributes
 create mode 100644 .gitignore
 create mode 100644 README.md
 create mode 100644 build/.gitignore
 create mode 100644 build/bootstrap.build
 create mode 100644 build/root.build
 create mode 100644 buildfile
 create mode 100644 hello/.gitignore
 create mode 100644 hello/buildfile
 create mode 100644 hello/hello.cxx
 create mode 100644 hello/testscript
 create mode 100644 manifest
 create mode 100644 repositories.manifest
To github.com:boris-kolpackov/hello.git
 + 4d5dc0f...e49d672 master -> master (forced update)
Branch 'master' set up to track remote branch 'master' from 'origin'.

+ bdep status
hello configured 0.1.0-a.0.19700101000000 available 0.1.0-a.0.20200717153600.e49d672fb0c8

+ b info
project: hello
version: 0.1.0-a.0.20200717153600.e49d672fb0c8
summary: hello C++ executable
url: https://example.org/hello
src_root: /tmp/hello/
out_root: /tmp/hello-gcc/hello/
amalgamation: ../
subprojects: 
operations: update clean test update-for-test install uninstall update-for-install
meta-operations: perform configure disfigure dist info

+ bdep sync
synchronizing:
  upgrade hello/0.1.0-a.0.20200717153600.e49d672fb0c8

+ bdep status
hello configured 0.1.0-a.0.20200717153600.e49d672fb0c8
[master 5f5f95b] Another commit
 1 file changed, 1 insertion(+)

+ bdep status
hello configured 0.1.0-a.0.20200717153600.e49d672fb0c8 available 0.1.0-a.0.20200717153604.5f5f95b67e7b

+ bdep release --alpha --push
releasing:
  package: hello
  current: 0.1.0-a.0.z
  release: 0.1.0-a.1
  open:    0.1.0-a.1.z
  commit:  yes
  tag:     v0.1.0-a.1
  push:    origin/master
continue? [y/n] [master 4be6af2] Release version 0.1.0-a.1
 1 file changed, 1 insertion(+), 1 deletion(-)
[master a5ac778] Change version to 0.1.0-a.1.z
 1 file changed, 1 insertion(+), 1 deletion(-)
pushing branch master, tag v0.1.0-a.1

+ bdep release --no-open --push
releasing:
  package: hello
  current: 0.1.0-a.1.z
  release: 0.1.0
  commit:  yes
  tag:     v0.1.0
  push:    origin/master
continue? [y/n] [master 6180433] Release version 0.1.0
 1 file changed, 1 insertion(+), 1 deletion(-)
pushing branch master, tag v0.1.0

+ bdep publish --simulate success
synchronizing:
  upgrade hello/0.1.0
publishing:
  to:      https://cppget.org
  as:      Boris Kolpackov <boris@codesynthesis.com>
  package: hello
  version: 0.1.0
  project: hello
  section: alpha
  control: https://github.com/boris-kolpackov/hello.git
warning: publishing using staged build2 toolchain
continue? [y/n] pushing branch build2-control
remote: 
remote: Create a pull request for 'build2-control' on GitHub by visiting:        
remote:      https://github.com/boris-kolpackov/hello/pull/new/build2-control        
remote: 
Branch 'build2-control' set up to track remote branch 'build2-control' from 'origin'.
submitting hello-0.1.0.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
100  1970    0     0  100  1970      0    888  0:00:02  0:00:02 --:--:--   888
100  2086  100   116  100  1970     50    864  0:00:02  0:00:02 --:--:--   864
package submission is queued: https://queue.cppget.org/hello/0.1.0
reference: a5825131bec6

+ bdep release --open --push
opening:
  package: hello
  current: 0.1.0
  open:    0.2.0-a.0.z
  commit:  yes
  push:    origin/master
continue? [y/n] [master 59b015a] Change version to 0.2.0-a.0.z
 1 file changed, 1 insertion(+), 1 deletion(-)
pushing branch master

+ bdep new -C hello-gcc @gcc -t exe -l c++ hello cc config.cxx=g++
created new executable project hello in /tmp/hello/
created configuration @gcc /tmp/hello-gcc/ 1 default,forwarded,auto-synchronized
synchronizing:
  new hello/0.1.0-a.0.19700101000000

+ bdep init -C ../hello-clang @clang cc config.cxx=clang++-5.0
initializing in project /tmp/hello/
created configuration @clang /tmp/hello-clang/ 2 auto-synchronized
synchronizing:
  new hello/0.1.0-a.0.19700101000000

+ bdep new -t lib -l c++ libhello
created new library project libhello in /tmp/libhello/

+ tree libhello
libhello
├── build
│   ├── bootstrap.build
│   ├── export.build
│   └── root.build
├── buildfile
├── libhello
│   ├── buildfile
│   ├── export.hxx
│   ├── hello.cxx
│   ├── hello.hxx
│   └── version.hxx.in
├── manifest
├── README.md
├── repositories.manifest
└── tests
    ├── basics
    │   ├── buildfile
    │   └── driver.cxx
    ├── build
    │   ├── bootstrap.build
    │   └── root.build
    └── buildfile

5 directories, 17 files

+ cd libhello

+ bdep init -A ../hello-gcc @gcc
initializing in project /tmp/libhello/
added configuration @gcc /tmp/hello-gcc/ 1 default,forwarded,auto-synchronized
synchronizing:
  new libhello/0.1.0-a.0.19700101000000

+ bdep init -A ../hello-clang @clang
initializing in project /tmp/libhello/
added configuration @clang /tmp/hello-clang/ 2 auto-synchronized
synchronizing:
  new libhello/0.1.0-a.0.19700101000000

+ cd ../hello

+ bdep test -i
synchronizing:
  upgrade hello/0.1.0-a.0.19700101000000#1
mkdir ../hello-gcc/libhello/fsdir{libhello/}
mkdir ../hello-gcc/hello/fsdir{hello/}
mkdir ../hello-gcc/libhello/tests/fsdir{basics/}
version.in ../libhello/libhello/version.hxx.in
c++ ../libhello/libhello/cxx{hello}@../hello-gcc/libhello/libhello/
c++ hello/cxx{hello}@../hello-gcc/hello/hello/
c++ ../libhello/tests/basics/cxx{driver}@../hello-gcc/libhello/tests/basics/
ld ../hello-gcc/libhello/libhello/libs{hello}
ld ../hello-gcc/libhello/tests/basics/exe{driver}
ld ../hello-gcc/hello/hello/exe{hello}
test hello/testscript{testscript}@../hello-gcc/hello/hello/ ../hello-gcc/hello/hello/exe{hello}
test ../hello-gcc/libhello/tests/basics/exe{driver}

+ bdep new -C hello-gcc @gcc -t exe -l c++ hello cc config.cxx=g++
created new executable project hello in /tmp/hello/
created configuration @gcc /tmp/hello-gcc/ 1 default,forwarded,auto-synchronized
synchronizing:
  new hello/0.1.0-a.0.19700101000000

+ cd hello

+ bdep init -C ../hello-clang @clang cc config.cxx=clang++-5.0
initializing in project /tmp/hello/
created configuration @clang /tmp/hello-clang/ 2 auto-synchronized
synchronizing:
  new hello/0.1.0-a.0.19700101000000

+ bdep new --package -t lib -l c++ libhello
created new library package libhello in /tmp/hello/libhello/

+ cat packages.manifest
: 1
location: libhello/

+ cd libhello

+ bdep init -a
initializing in project /tmp/hello/
in configuration @gcc:
synchronizing:
  upgrade hello/0.1.0-a.0.19700101000000#1
  new libhello/0.1.0-a.0.19700101000000

in configuration @clang:
synchronizing:
  upgrade hello/0.1.0-a.0.19700101000000#1
  new libhello/0.1.0-a.0.19700101000000

+ cd ..

+ bdep test
synchronizing:
  upgrade hello/0.1.0-a.0.19700101000000#2
mkdir ../hello-gcc/libhello/fsdir{libhello/}
mkdir ../hello-gcc/hello/fsdir{hello/}
mkdir ../hello-gcc/libhello/tests/fsdir{basics/}
version.in libhello/libhello/version.hxx.in
c++ libhello/libhello/cxx{hello}@../hello-gcc/libhello/libhello/
c++ hello/hello/cxx{hello}@../hello-gcc/hello/hello/
c++ libhello/tests/basics/cxx{driver}@../hello-gcc/libhello/tests/basics/
ld ../hello-gcc/libhello/libhello/libs{hello}
ld ../hello-gcc/hello/hello/exe{hello}
ld ../hello-gcc/libhello/tests/basics/exe{driver}
test hello/hello/testscript{testscript}@../hello-gcc/hello/hello/ ../hello-gcc/hello/hello/exe{hello}
test ../hello-gcc/libhello/tests/basics/exe{driver}

+ bpkg create -d tools cc config.cxx=g++ config.cc.coptions=-O3 config.install.root=/opt/tools config.install.sudo=sudo config.bin.rpath=/opt/tools/lib
created new configuration in /tmp/tools/

+ cd tools

+ bpkg build hello@https://git.build2.org/hello/hello.git
added git:build2.org/hello/hello
fetching git:build2.org/hello/hello
querying https://git.build2.org/hello/hello.git
fetching from https://git.build2.org/hello/hello.git
fetching git:build2.org/hello/libhello (prerequisite of git:build2.org/hello/hello)
querying https://git.build2.org/hello/libhello.git
fetching from https://git.build2.org/hello/libhello.git
fetching git:build2.org/hello/libformat##HEAD (prerequisite of git:build2.org/hello/libhello)
querying https://git.build2.org/hello/libformat.git
fetching from https://git.build2.org/hello/libformat.git
fetching git:build2.org/hello/libprint##HEAD (prerequisite of git:build2.org/hello/libhello)
querying https://git.build2.org/hello/libprint.git
fetching from https://git.build2.org/hello/libprint.git
  new libformat/1.0.0+6 (required by libhello)
  new libprint/1.0.0+6 (required by libhello)
  new libhello/1.1.0+6 (required by hello)
  new hello/1.0.0+5
continue? [Y/n] distributing libformat/1.0.0+6
checked out libformat/1.0.0+6
configured libformat/1.0.0+6
distributing libprint/1.0.0+6
checked out libprint/1.0.0+6
configured libprint/1.0.0+6
distributing libhello/1.1.0+6
checked out libhello/1.1.0+6
configured libhello/1.1.0+6
distributing hello/1.0.0+5
checked out hello/1.0.0+5
configured hello/1.0.0+5
version.in libhello-1.1.0+6/libhello/version.hxx.in
version.in libformat-1.0.0+6/libformat/version.hxx.in
version.in libprint-1.0.0+6/libprint/version.hxx.in
c++ libprint-1.0.0+6/libprint/cxx{print}
c++ libhello-1.1.0+6/libhello/cxx{hello}
c++ libformat-1.0.0+6/libformat/cxx{format}
c++ hello-1.0.0+5/hello/cxx{hello}
ld libprint-1.0.0+6/libprint/libs{print}
ld libformat-1.0.0+6/libformat/libs{format}
ld libhello-1.1.0+6/libhello/libs{hello}
ld hello-1.0.0+5/hello/exe{hello}
updated hello/1.0.0+5

+ bpkg install hello
ld libhello-1.1.0+6/libhello/libs{hello}
ld hello-1.0.0+5/hello/exe{hello}
install /opt/tools/
install /opt/tools/include/
install /opt/tools/include/libhello/
install libhello-1.1.0+6/libhello/hxx{export}
install libhello-1.1.0+6/libhello/hxx{hello}
install /opt/tools/share/
install /opt/tools/share/doc/
install /opt/tools/share/doc/libhello/
install libhello-1.1.0+6/manifest{manifest}
install libhello-1.1.0+6/libhello/hxx{version}
install /opt/tools/include/libprint/
install libprint-1.0.0+6/libprint/hxx{print}
install libprint-1.0.0+6/libprint/hxx{export}
install /opt/tools/share/doc/libprint/
install libprint-1.0.0+6/manifest{manifest}
install libprint-1.0.0+6/libprint/hxx{version}
install libprint-1.0.0+6/libprint/libs{print}
install /opt/tools/include/libformat/
install libformat-1.0.0+6/libformat/hxx{export}
install libformat-1.0.0+6/libformat/hxx{format}
install /opt/tools/share/doc/libformat/
install libformat-1.0.0+6/manifest{manifest}
install libformat-1.0.0+6/libformat/hxx{version}
install libformat-1.0.0+6/libformat/libs{format}
install libhello-1.1.0+6/libhello/libs{hello}
install /opt/tools/bin/
install hello-1.0.0+5/hello/exe{hello}
install /opt/tools/share/doc/hello/
install hello-1.0.0+5/manifest{manifest}
installed hello/1.0.0+5

+ /opt/tools/bin/hello World
Hello, World!

+ tree /opt/tools
/opt/tools
├── bin
│   └── hello
├── include
│   ├── libformat
│   │   ├── export.hxx
│   │   ├── format.hxx
│   │   └── version.hxx
│   ├── libhello
│   │   ├── export.hxx
│   │   ├── hello.hxx
│   │   └── version.hxx
│   └── libprint
│       ├── export.hxx
│       ├── print.hxx
│       └── version.hxx
├── lib
│   ├── libformat-1.0.so
│   ├── libformat.so -> libformat-1.0.so
│   ├── libhello-1.1.so
│   ├── libhello.so -> libhello-1.1.so
│   ├── libprint-1.0.so
│   ├── libprint.so -> libprint-1.0.so
│   └── pkgconfig
│       ├── libformat.shared.pc
│       ├── libhello.shared.pc
│       └── libprint.shared.pc
└── share
    └── doc
        ├── hello
        │   └── manifest
        ├── libformat
        │   └── manifest
        ├── libhello
        │   └── manifest
        └── libprint
            └── manifest

13 directories, 23 files

+ bpkg uninstall hello
uninstall hello-1.0.0+5/manifest{manifest}
uninstall /opt/tools/share/doc/hello/
uninstall hello-1.0.0+5/hello/exe{hello}
uninstall /opt/tools/bin/
uninstall libhello-1.1.0+6/libhello/libs{hello}
uninstall libformat-1.0.0+6/libformat/libs{format}
uninstall libformat-1.0.0+6/libformat/hxx{version}
uninstall libformat-1.0.0+6/manifest{manifest}
uninstall /opt/tools/share/doc/libformat/
uninstall libformat-1.0.0+6/libformat/hxx{format}
uninstall libformat-1.0.0+6/libformat/hxx{export}
uninstall /opt/tools/include/libformat/
uninstall libprint-1.0.0+6/libprint/libs{print}
uninstall libprint-1.0.0+6/libprint/hxx{version}
uninstall libprint-1.0.0+6/manifest{manifest}
uninstall /opt/tools/share/doc/libprint/
uninstall libprint-1.0.0+6/libprint/hxx{export}
uninstall libprint-1.0.0+6/libprint/hxx{print}
uninstall /opt/tools/include/libprint/
uninstall libhello-1.1.0+6/libhello/hxx{version}
uninstall libhello-1.1.0+6/manifest{manifest}
uninstall /opt/tools/share/doc/libhello/
uninstall /opt/tools/share/doc/
uninstall /opt/tools/share/
uninstall libhello-1.1.0+6/libhello/hxx{hello}
uninstall libhello-1.1.0+6/libhello/hxx{export}
uninstall /opt/tools/include/libhello/
uninstall /opt/tools/include/
uninstall /opt/tools/
uninstalled hello/1.0.0+5

+ bpkg drop hello
following dependencies were automatically built but will no longer be used:
  libhello
  libformat
  libprint
drop unused packages? [Y/n]   drop hello
  drop libhello
  drop libformat
  drop libprint
continue? [Y/n] disfigured hello
disfigured libhello
disfigured libformat
disfigured libprint
purged hello
purged libhello
purged libformat
purged libprint