Skip to content

Commit

Permalink
Merge branch 'abseil' into singleton
Browse files Browse the repository at this point in the history
Signed-off-by: Alyssa Wilk <[email protected]>
  • Loading branch information
alyssawilk committed Nov 20, 2017
2 parents fea701e + 48d5b5f commit e90ca87
Show file tree
Hide file tree
Showing 308 changed files with 4,072 additions and 14,038 deletions.
28 changes: 16 additions & 12 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# TODO(mattklein123): See if there is a way to put build SHA into a variable.
# In the meantime, it's required to edit the SHA in this file as well as envoy_build_sha.sh.
references:
envoy-build-image: &envoy-build-image
envoyproxy/envoy-build:516cdcd55326648978f8db1fe3a774ec759f5a13

version: 2
jobs:
release:
docker:
- image: envoyproxy/envoy-build:516cdcd55326648978f8db1fe3a774ec759f5a13
- image: *envoy-build-image
resource_class: xlarge
working_directory: /source
steps:
Expand All @@ -16,23 +17,23 @@ jobs:
- run: ci/docker_tag.sh
asan:
docker:
- image: envoyproxy/envoy-build:516cdcd55326648978f8db1fe3a774ec759f5a13
- image: *envoy-build-image
resource_class: xlarge
working_directory: /source
steps:
- checkout
- run: ci/do_circle_ci.sh bazel.asan
tsan:
docker:
- image: envoyproxy/envoy-build:516cdcd55326648978f8db1fe3a774ec759f5a13
- image: *envoy-build-image
resource_class: xlarge
working_directory: /source
steps:
- checkout
- run: ci/do_circle_ci.sh bazel.tsan
coverage:
docker:
- image: envoyproxy/envoy-build:516cdcd55326648978f8db1fe3a774ec759f5a13
- image: *envoy-build-image
resource_class: xlarge
working_directory: /source
steps:
Expand All @@ -43,7 +44,7 @@ jobs:
path: /build/envoy/generated/coverage
format:
docker:
- image: envoyproxy/envoy-build:516cdcd55326648978f8db1fe3a774ec759f5a13
- image: *envoy-build-image
resource_class: small
working_directory: /source
steps:
Expand All @@ -62,13 +63,13 @@ jobs:
- run: ci/build_container/docker_push.sh
docs:
docker:
- image: circleci/python:2.7
resource_class: small
- image: *envoy-build-image
resource_class: xlarge
working_directory: /source
steps:
- checkout
- run: docs/build.sh
- add_ssh_keys
- run: docs/publish.sh
- run: ci/do_circle_ci.sh docs
mac:
macos:
xcode: "8.3.3"
Expand All @@ -91,5 +92,8 @@ workflows:
- coverage
- format
- build_image
- docs
- docs:
filters:
tags:
only: /^v.*/
- mac
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ maximize the chances of your PR being merged.

# Communication

* Before starting work on a major feature, please reach out to us via GitHub, Gitter,
* Before starting work on a major feature, please reach out to us via GitHub, Slack,
email, etc. We will make sure no one else is already working on it and ask you to open a
GitHub issue.
* A "major feature" is defined as any change that is > 100 LOC altered (not including tests), or
Expand Down Expand Up @@ -98,7 +98,7 @@ maximize the chances of your PR being merged.
organization different from the PR author.* E.g., if Lyft authors a PR, at least one approver
should be from an organization other than Lyft. This helps us make sure that we aren't putting
organization specific shortcuts into the code.
* If there is a question on who should review a PR please discuss in Gitter.
* If there is a question on who should review a PR please discuss in Slack.
* Anyone is welcome to review any PR that they want, whether they are a committer or not.
* Please **clean up the commit message** before merging. By default, GitHub fills the squash merge
commit message with every individual commit from the PR. Generally, we want a commit message
Expand Down
10 changes: 10 additions & 0 deletions DEPRECATED.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@ As of release 1.3.0, Envoy will follow a

The following features have been DEPRECATED and will be removed in the specified release cycle.

## Version 1.5.0

* The outlier detection `ejections_total` stats counter has been deprecated and not replaced. Monitor
the individual `ejections_detected_*` counters for the detectors of interest, or
`ejections_enforced_total` for the total number of ejections that actually occurred.
* The outlier detection `ejections_consecutive_5xx` stats counter has been deprecated in favour of
`ejections_detected_consecutive_5xx` and `ejections_enforced_consecutive_5xx`.
* The outlier detection `ejections_success_rate` stats counter has been deprecated in favour of
`ejections_detected_success_rate` and `ejections_enforced_success_rate`.

## Version 1.4.0

* Config option `statsd_local_udp_port` has been deprecated and has been replaced with
Expand Down
2 changes: 1 addition & 1 deletion DEVELOPER.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ To get started building Envoy locally, see the [Bazel quick start](https://githu

Below is a list of additional documentation to aid the development process:

- [General build and installation documentation](https://envoyproxy.github.io/envoy/install/install.html)
- [General build and installation documentation](https://www.envoyproxy.io/docs/envoy/latest/install/install)

- [Building and testing Envoy with Bazel](https://github.com/envoyproxy/envoy/blob/master/bazel/README.md)

Expand Down
69 changes: 51 additions & 18 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,63 @@
# Process for becoming a committer
# Process for becoming a maintainer

## Your organization is not yet a committer
## Your organization is not yet a maintainer

* Express interest to the senior committers that your organization is interested in becoming a
committer. Becoming a committer generally means that you are going to be spending substantial
* Express interest to the senior maintainers that your organization is interested in becoming a
maintainer. Becoming a maintainer generally means that you are going to be spending substantial
time (>25%) on Envoy for the foreseeable future. You should have domain expertise and be extremely
proficient in C++. Ultimately your goal is to become a senior committer that will represent your
proficient in C++. Ultimately your goal is to become a senior maintainer that will represent your
organization.
* We will expect you to start contributing increasingly complicated PRs, under the guidance
of the existing senior committers.
of the existing senior maintainers.
* We may ask you to do some PRs from our backlog.
* As you gain experience with the code base and our standards, we will ask you to do code reviews
for incoming PRs (i.e., all committers are expected to shoulder a proportional share of
for incoming PRs (i.e., all maintainers are expected to shoulder a proportional share of
community reviews).
* After a period of approximately 2-3 months of working together and making sure we see eye to eye,
the existing senior committers will confer and decide whether to grant commit status or not. We
make no guarantees on the length of time this will take, but 2-3 months is the approximate
the existing senior maintainers will confer and decide whether to grant maintainer status or not.
We make no guarantees on the length of time this will take, but 2-3 months is the approximate
goal.

## Your organization is currently a committer
## Your organization is currently a maintainer

* First decide whether your organization really needs more people with commit access. Valid reasons
are "blast radius", a large organization that is working on multiple unrelated projects, etc.
* Contact a senior committer for your organization and express interest.
* Start doing PRs and code reviews under the guidance of your senior committer.
* After a period of 1-2 months the existing senior committers will discuss granting "standard"
commit access.
* "Standard" commit access can be upgraded to "senior" commit access after another 1-2 months of
work and another conference of the existing senior committers.
* First decide whether your organization really needs more people with maintainer access. Valid
reasons are "blast radius", a large organization that is working on multiple unrelated projects,
etc.
* Contact a senior maintainer for your organization and express interest.
* Start doing PRs and code reviews under the guidance of your senior maintainer.
* After a period of 1-2 months the existing senior maintainers will discuss granting "standard"
maintainer access.
* "Standard" maintainer access can be upgraded to "senior" maintainer access aft

## Maintainer responsibilities

* Monitor email aliases.
* Monitor Slack (delayed response is perfectly acceptable).
* Triage GitHub issues and perform pull request reviews for other maintainers and the community.
* In general continue to be willing to spend at least 25% of ones time working on Envoy (~1.25
business days per week).
* Note that currently the above is performed by all maintainers in a best-effort/haphazard way. In
the future we may decide to move to an "on-call" rotation.

## When does a maintainer lose maintainer status

If a maintainer is no longer interested or cannot perform the maintainer duties listed above, they
should volunteer to be moved to emeritus status. In extreme cases this can also occur by a vote of
the maintainers per the voting process below.

# Conflict resolution and voting

In general, we prefer that technical issues and maintainer membership are amicably worked out
between the persons involved. If a dispute cannot be decided independently, the maintainers can be
called in to decide an issue. If the maintainers themselves cannot decide an issue, the issue will
be resolved by voting. The voting process is a simple majority in which each senior maintainer
receives two votes and each normal maintainer receives one vote.

# Adding new projects to the envoyproxy GitHub organization

New projects will be added to the envoyproxy organization via GitHub issue discussion in one of the
existing projects in the organization. Once sufficient discussion has taken place (~3-5 business
days but depending on the volume of conversation), the maintainers of *the project where the issue
was opened* (since different projects in the organization may have different maintainers) will
decide whether the new project should be added. See the section above on voting if the maintainers
cannot easily decide.
2 changes: 1 addition & 1 deletion ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ privacy concerns, sanitize the data prior to sharing the tarball/pasting.
*Admin and Stats Output*:
>Include the admin output for the following endpoints: /stats,
/clusters, /routes, /server_info. For more information, refer to the
[admin endpoint documentation.](https://envoyproxy.github.io/envoy/operations/admin.html)
[admin endpoint documentation.](https://www.envoyproxy.io/docs/envoy/latest/operations/admin)

>**Note**: If there are privacy concerns, sanitize the data prior to
sharing.
Expand Down
6 changes: 3 additions & 3 deletions OWNERS.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
* See [CONTRIBUTING.md](CONTRIBUTING.md) for general contribution guidelines.
* See [GOVERNANCE.md](GOVERNANCE.md) for governance guidelines.

# Senior committers
# Senior maintainers

* Matt Klein ([mattklein123](https://github.com/mattklein123)) ([email protected])
* Harvey Tuch ([htuch](https://github.com/htuch)) ([email protected])

# Committers
# Maintainers

* Constance Caramanolis ([ccaraman](https://github.com/ccaraman)) ([email protected])
* Jose Nino ([junr03](https://github.com/junr03)) ([email protected])
* Dan Noé ([dnoe](https://github.com/dnoe)) ([email protected])
* Alyssa Wilk ([alyssawilk](https://github.com/alyssawilk)) ([email protected])
* Daniel Hochman ([danielhochman](https://github.com/danielhochman)) ([email protected])

# Emeritus committers
# Emeritus maintainers

* Roman Dzhabarov ([RomanDzhabarov](https://github.com/RomanDzhabarov)) ([email protected])
* Bill Gallagher ([wgallagher](https://github.com/wgallagher)) ([email protected])
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
![Envoy Logo](https://github.com/envoyproxy/artwork/blob/master/PNG/Envoy_Logo_Final_PANTONE.png)

[C++ L7 proxy and communication bus](https://envoyproxy.github.io/)
[C++ L7 proxy and communication bus](https://www.envoyproxy.io/)

Envoy is hosted by the [Cloud Native Computing Foundation](https://cncf.io) (CNCF). If you are a company that wants to help shape the evolution of technologies that are container-packaged, dynamically-scheduled and microservices-oriented, consider joining the CNCF. For details about who's involved and how Envoy plays a role, read the CNCF [announcement](https://www.cncf.io/blog/2017/09/13/cncf-hosts-envoy/).

Expand All @@ -9,7 +9,7 @@ Envoy is hosted by the [Cloud Native Computing Foundation](https://cncf.io) (CNC

## Documentation

* [Official documentation](https://envoyproxy.github.io).
* [Official documentation](https://www.envoyproxy.io/).
* Watch [a video overview of Envoy](https://www.youtube.com/watch?v=RVZX4CwKhGE)
([transcript](https://www.microservices.com/talks/lyfts-envoy-monolith-service-mesh-matt-klein/))
to find out more about the origin story and design philosophy of Envoy.
Expand Down
9 changes: 7 additions & 2 deletions bazel/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
## Production environments

To build Envoy with Bazel in a production environment, where the [Envoy
dependencies](https://envoyproxy.github.io/envoy/install/requirements.html) are typically
dependencies](https://www.envoyproxy.io/docs/envoy/latest/install/requirements) are typically
independently sourced, the following steps should be followed:

1. [Install Bazel](https://bazel.build/versions/master/docs/install.html) in your environment.
2. Configure, build and/or install the [Envoy dependencies](https://envoyproxy.github.io/envoy/install/requirements.html).
2. Configure, build and/or install the [Envoy dependencies](https://www.envoyproxy.io/docs/envoy/latest/install/requirements).
3. Configure a Bazel [WORKSPACE](https://bazel.build/versions/master/docs/be/workspace.html)
to point Bazel at the Envoy dependencies. An example is provided in the CI Docker image
[WORKSPACE](https://github.com/envoyproxy/envoy/blob/master/ci/WORKSPACE) and corresponding
Expand All @@ -33,6 +33,11 @@ On Ubuntu, run the following commands:
apt-get install realpath
```

On Fedora (maybe also other red hat distros), run the following:
```
dnf install cmake libtool libstdc++
```

On OS X, you'll need to install several dependencies. This can be accomplished via Homebrew:
```
brew install coreutils # for realpath
Expand Down
6 changes: 6 additions & 0 deletions bazel/external/jinja.BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
py_library(
name = "jinja2",
srcs = glob(["jinja2/**/*.py"]),
visibility = ["//visibility:public"],
deps = ["@com_github_pallets_markupsafe//:markupsafe"],
)
5 changes: 5 additions & 0 deletions bazel/external/markupsafe.BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
py_library(
name = "markupsafe",
srcs = glob(["markupsafe/**/*.py"]),
visibility = ["//visibility:public"],
)
20 changes: 20 additions & 0 deletions bazel/git_repository_info.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/usr/bin/env python

# Quick-and-dirty Python to fetch git repository info in bazel/repository_locations.bzl.

import imp
import sys
import subprocess as sp

repolocs = imp.load_source('replocs', 'bazel/repository_locations.bzl')

if __name__ == '__main__':
if len(sys.argv) != 2:
print 'Usage: %s <repository name>' % sys.argv[0]
sys.exit(1)
repo = sys.argv[1]
if repo not in repolocs.REPOSITORY_LOCATIONS:
print 'Unknown repository: %s' % repo
sys.exit(1)
repoloc = repolocs.REPOSITORY_LOCATIONS[repo]
print '%s %s' % (repoloc['remote'], repoloc['commit'])
Loading

0 comments on commit e90ca87

Please sign in to comment.