Skip to content

Revert capnproto to submodule and restore the git subtree version #1880

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
22 changes: 0 additions & 22 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@ jobs:
with:
python-version: 3.6
- uses: actions/checkout@v2
with:
submodules: recursive
- run: ./.github/scripts/install_dependencies.sh

- uses: hendrikmuhs/ccache-action@v1
Expand Down Expand Up @@ -53,8 +51,6 @@ jobs:
with:
python-version: 3.6
- uses: actions/checkout@v2
with:
submodules: recursive
- run: ./.github/scripts/install_dependencies.sh

- name: Test
Expand All @@ -70,8 +66,6 @@ jobs:
with:
python-version: 3.6
- uses: actions/checkout@v2
with:
submodules: recursive
- run: ./.github/scripts/install_dependencies.sh

- name: Test
Expand All @@ -89,8 +83,6 @@ jobs:
with:
python-version: 3.6
- uses: actions/checkout@v2
with:
submodules: recursive
- run: ./.github/scripts/install_dependencies.sh

- uses: hendrikmuhs/ccache-action@v1
Expand Down Expand Up @@ -144,8 +136,6 @@ jobs:
with:
python-version: 3.6
- uses: actions/checkout@v2
with:
submodules: recursive
- run: ./.github/scripts/install_dependencies.sh

- uses: hendrikmuhs/ccache-action@v1
Expand Down Expand Up @@ -185,8 +175,6 @@ jobs:
with:
python-version: 3.6
- uses: actions/checkout@v2
with:
submodules: recursive
- run: ./.github/scripts/install_dependencies.sh

- uses: hendrikmuhs/ccache-action@v1
Expand All @@ -212,8 +200,6 @@ jobs:
with:
python-version: 3.6
- uses: actions/checkout@v2
with:
submodules: recursive
- run: ./.github/scripts/install_dependencies.sh

- uses: hendrikmuhs/ccache-action@v1
Expand All @@ -237,8 +223,6 @@ jobs:
with:
python-version: 3.6
- uses: actions/checkout@v2
with:
submodules: recursive
- run: ./.github/scripts/install_dependencies.sh

- uses: hendrikmuhs/ccache-action@v1
Expand Down Expand Up @@ -270,8 +254,6 @@ jobs:
with:
python-version: 3.6
- uses: actions/checkout@v2
with:
submodules: recursive
- run: ./.github/scripts/install_dependencies.sh

- uses: hendrikmuhs/ccache-action@v1
Expand Down Expand Up @@ -307,8 +289,6 @@ jobs:
with:
python-version: 3.6
- uses: actions/checkout@v2
with:
submodules: recursive
- run: ./.github/scripts/install_dependencies.sh

- uses: hendrikmuhs/ccache-action@v1
Expand Down Expand Up @@ -343,8 +323,6 @@ jobs:
with:
python-version: 3.6
- uses: actions/checkout@v2
with:
submodules: recursive
- run: ./.github/scripts/install_dependencies.sh

- uses: hendrikmuhs/ccache-action@v1
Expand Down
3 changes: 0 additions & 3 deletions .gitmodules

This file was deleted.

1 change: 0 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ export CTEST_OUTPUT_ON_FAILURE=TRUE
ifneq ($(MAKECMDGOALS),distclean)
ifneq ($(MAKECMDGOALS),clean)
all $(MAKECMDGOALS):
@ git submodule update --init --recursive
ifneq ($(BUILD_DIR),build)
ln -sf $(BUILD_DIR) build
endif
Expand Down
1 change: 0 additions & 1 deletion libs/EXTERNAL/capnproto
Submodule capnproto deleted from 3f44c6
76 changes: 76 additions & 0 deletions libs/EXTERNAL/capnproto/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Kenton's personal backup script.
/backup.sh

# Eclipse-generated stuff.
.cproject
.project
.pydevproject
.settings
.dist-buildwrapper
/c++/gen/

# Code you may want to map in from elsewhere.
/c++/src/base
/c++/src/capnp/compilerbin
/c++/src/ekam
/c++/src/os
/c++/src/protobuf
/c++/src/snappy
/c++/src/samples

# Ekam build artifacts.
/c++/tmp/
/c++/bin/

# setup-ekam.sh
/c++/.ekam

# super-test.sh
/tmp-staging

# Jekyll-generated site
/doc/_site

# Checkout of gh-pages made by /doc/push-site.sh
/doc/.gh-pages

# cabal-install artifacts
/compiler/dist/

# Make artefacts
/c++/.libs/
/c++/Makefile
/c++/Makefile.in
/c++/**/*.o
/c++/**/*.lo
/c++/**/.deps/
/c++/**/.dirstamp
/c++/stamp-h1
/c++/**/*.log
/c++/test_capnpc_middleman
/c++/**/test*.capnp.*
/c++/*.la
/c++/**/*.trs
/c++/aclocal.m4
/c++/autom4te.cache/
/c++/build-aux/
/c++/capnp
/c++/capnp-evolution-test
/c++/cmake/CapnProtoConfig.cmake
/c++/cmake/CapnProtoConfigVersion.cmake
/c++/pkgconfig/*.pc
/c++/capnp-test
/c++/capnpc-c++
/c++/capnpc-capnp
/c++/config.*
/c++/configure
/c++/libtool
/c++/m4/libtool.m4
/c++/m4/ltoptions.m4
/c++/m4/ltsugar.m4
/c++/m4/ltversion.m4
/c++/m4/lt~obsolete.m4
/c++/samples/addressbook

# editor artefacts
*~
77 changes: 77 additions & 0 deletions libs/EXTERNAL/capnproto/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
branches:
only:
- master
- /release-.*/
language: cpp
dist: trusty
sudo: false
addons:
apt:
packages:
- automake
- autoconf
- libtool
- pkg-config
# limit parallelism due to limited memory on Travis
script: CC=$MATRIX_CC CXX=$MATRIX_CXX ./super-test.sh -j2 quick

matrix:
include:
# Old GCC
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.9
env:
- MATRIX_CC=gcc-4.9
- MATRIX_CXX=g++-4.9

# New GCC
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
env:
- MATRIX_CC=gcc-7
- MATRIX_CXX=g++-7

# Old Clang
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-3.6
packages:
- clang-3.6
- libc++-dev # clang-3.6 can't compile C++14 against libstdc++, apparently.
env:
- MATRIX_CC=clang-3.6
- MATRIX_CXX=clang++-3.6

# New Clang
- os: linux
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-5.0
packages:
- clang-5.0
env:
- MATRIX_CC=clang-5.0
- MATRIX_CXX=clang++-5.0

# Mac. We only test Clang because Mac builds are expensive for Travis and probably any
# compiler-specific problems will be caught on the Linux matrix anyway.
- os: osx
osx_image: xcode9.3
env:
- MATRIX_CC=clang
- MATRIX_CXX=clang++
3 changes: 3 additions & 0 deletions libs/EXTERNAL/capnproto/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
cmake_minimum_required(VERSION 3.1)
project("Cap'n Proto Root" CXX)
add_subdirectory(c++)
23 changes: 23 additions & 0 deletions libs/EXTERNAL/capnproto/CONTRIBUTORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
The following people have made large code contributions to this repository.
Those contributions are copyright the respective authors and licensed by them
under the same MIT license terms as the rest of the library.

Kenton Varda <[email protected]> <[email protected]>: Primary Author
Jason Choy <[email protected]>: kj/threadlocal.h and other iOS tweaks, `name` annotation in C++ code generator
Remy Blank <[email protected]> (contributions copyright Google Inc.): KJ Timers
Joshua Warner <[email protected]>: cmake build, AnyStruct/AnyList, other stuff
Scott Purdy <[email protected]>: kj/std iostream interface
Bryan Borham <[email protected]>: Initial MSVC support
Philip Quinn <[email protected]>: cmake build and other assorted bits
Brian Taylor <[email protected]>: emacs syntax highlighting
Ben Laurie <[email protected]>: discovered and responsibly disclosed security bugs
Kamal Marhubi <[email protected]>: JSON parser
Oliver Kuckertz <[email protected]>: FdObserver POLLPRI support
Harris Hancock <[email protected]>: MSVC support
Branislav Katreniak <[email protected]>: JSON decode
Matthew Maurer <[email protected]>: Canonicalization Support
David Renshaw <[email protected]>: bugfixes and miscellaneous maintenance
Ingvar Stepanyan <[email protected]> <[email protected]>: Custom handlers for JSON decode

This file does not list people who maintain their own Cap'n Proto
implementations as separate projects. Those people are awesome too! :)
24 changes: 24 additions & 0 deletions libs/EXTERNAL/capnproto/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Copyright (c) 2013-2017 Sandstorm Development Group, Inc.; Cloudflare, Inc.;
and other contributors. Each commit is copyright by its respective author or
author's employer.

Licensed under the MIT License:

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

9 changes: 9 additions & 0 deletions libs/EXTERNAL/capnproto/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Unix: [![Unix Build Status](https://travis-ci.org/capnproto/capnproto.svg?branch=master)](https://travis-ci.org/capnproto/capnproto) Windows: [![Windows Build Status](https://ci.appveyor.com/api/projects/status/9rxff2tujkae4hte?svg=true)](https://ci.appveyor.com/project/kentonv/capnproto)

<img src='http://kentonv.github.com/capnproto/images/infinity-times-faster.png' style='width:334px; height:306px; float: right;'>

Cap'n Proto is an insanely fast data interchange format and capability-based RPC system. Think
JSON, except binary. Or think [Protocol Buffers](https://github.com/google/protobuf), except faster.
In fact, in benchmarks, Cap'n Proto is INFINITY TIMES faster than Protocol Buffers.

[Read more...](http://kentonv.github.com/capnproto/)
67 changes: 67 additions & 0 deletions libs/EXTERNAL/capnproto/RELEASE-PROCESS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
How to release
==============

**Developing**

* First, develop some new features to release! As you do, make sure to keep the documentation
up-to-date.

**Testing**

* Run `super-test.sh` on as many platforms as you have available. Remember that you can easily run
on any machine available through ssh using `./super-test.sh remote [hostname]`. Also run in
Clang mode. (If you are Kenton and running from Kenton's home machine and network, use
`./mega-test.py mega-test.cfg` to run on all supported compilers and platforms.)

* Manually test Windows/MSVC -- unfortunately this can't be automated by super-test.sh.

* Manually run the pointer fuzz tests under Valgrind. This will take 40-80 minutes.

valgrind ./capnp-test -fcapnp/fuzz-test.c++

* Manually run the AFL fuzz tests by running `afl-fuzz.sh`. There are three test cases, and ideally each should run for 24 hours or more.

**Documenting**

* Write a blog post discussing what is new, placing it in doc/_posts.

* Run jekyll locally and review the blog post and docs.

**Releasing**

* Check out the master branch in a fresh directory. Do NOT use your regular repo, as the release
script commits changes and if anything goes wrong you'll probably want to trash the whole thing
without pushing. DO NOT git clone the repo from an existing local repo -- check it out directly
from github. Otherwise, when it pushes its changes back, they'll only be pushed back to your
local repo.

* Run `./release.sh candidate`. This creates a new release branch, updates the version number to
`-rc1`, builds release tarballs, copies them to the current directory, then switches back to the
master branch and bumps the version number there. After asking for final confirmation, it will
upload the tarball to S3 and push all changes back to github.

* Install your release candidates on your local machine, as if you were a user.

* Go to `c++/samples` in the git repo and run `./test.sh`. It will try to build against your
installed copy.

* Post the release candidates somewhere public and then send links to the mailing list for people
to test. Wait a bit for bug reports.

* If there are any problems, fix them in master and start a new release candidate by running
`./release.sh candidate <commit>...` from the release branch. This will cherry-pick the specified
commits into the release branch and create a new candidate. Repeat until all problems are fixed.
Be sure that any such fixes include tests or process changes so that they don't happen again.

* You should now be ready for an official release. Run `./release.sh final`. This will remove the
"-rcN" suffix from the version number, update the version number shown on the downloads page,
build the final release package, and -- after final confirmation -- upload the binary, push
changes to git, and publish the new documentation.

* Submit the newly-published blog post to news sites and social media as you see fit.

* If problems are discovered in the release, fix them in master and run
`./release.sh candidate <commit>...` in the release branch to start a new micro release. The
script automatically sees that the current branch's version no longer contains `-rc`, so it starts
a new branch. Repeat the rest of the process above. If you decide to write a blog post (not
always necessary), do it in the master branch and cherry-pick it.
Loading