Export of internal Abseil changes.
-- f4e870453d02106c2685e0461816469a4704ad25 by Abseil Team <absl-team@google.com>: Expose TimeZone::NextTransition() and PrevTransition() now that we have absl::CivilSecond support in time.h. Note that these are for informational purposes only. General time code should not care when offset changes occur. PiperOrigin-RevId: 217177292 -- cfadd275c7333f7c27c4d682b9d167010d874e69 by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 217153577 -- 6ff5b8c61a1239b9c0478a7c62bcd2844b310307 by Jon Cohen <cohenjon@google.com>: Fix code examples in hash_testing.h. Includes random clang-format changes. PiperOrigin-RevId: 216898995 -- de124129d27f4627dabe193a10bf106a11783fba by Shaindel Schwartz <shaindel@google.com>: Add contribution guidelines describing how we decide whether to include an API in Abseil. PiperOrigin-RevId: 216886943 GitOrigin-RevId: f4e870453d02106c2685e0461816469a4704ad25 Change-Id: Ib9c6706f5bf931b71c0357bf1342053a3bee8ff7
This commit is contained in:
parent
a00bdd176d
commit
5b70a8910b
6 changed files with 193 additions and 19 deletions
|
|
@ -18,6 +18,53 @@ You generally only need to submit a CLA once, so if you've already submitted one
|
|||
(even if it was for a different project), you probably don't need to do it
|
||||
again.
|
||||
|
||||
## Contribution Guidelines
|
||||
|
||||
Potential contributors sometimes ask us if the Abseil project is the appropriate
|
||||
home for their utility library code or for specific functions implementing
|
||||
missing portions of the standard. Often, the answer to this question is "no".
|
||||
We’d like to articulate our thinking on this issue so that our choices can be
|
||||
understood by everyone and so that contributors can have a better intuition
|
||||
about whether Abseil might be interested in adopting a new library.
|
||||
|
||||
### Priorities
|
||||
|
||||
Although our mission is to augment the C++ standard library, our goal is not to
|
||||
provide a full forward-compatible implementation of the latest standard. For us
|
||||
to consider a library for inclusion in Abseil, it is not enough that a library
|
||||
is useful. We generally choose to release a library when it meets at least one
|
||||
of the following criteria:
|
||||
|
||||
* **Widespread usage** - Using our internal codebase to help gauge usage, most
|
||||
of the libraries we've released have tens of thousands of users.
|
||||
* **Anticipated widespread usage** - Pre-adoption of some standard-compliant
|
||||
APIs may not have broad adoption initially but can be expected to pick up
|
||||
usage when it replaces legacy APIs. `absl::from_chars`, for example,
|
||||
replaces existing code that converts strings to numbers and will therefore
|
||||
likely see usage growth.
|
||||
* **High impact** - APIs that provide a key solution to a specific problem,
|
||||
such as `absl::FixedArray`, have higher impact than usage numbers may signal
|
||||
and are released because of their importance.
|
||||
* **Direct support for a library that falls under one of the above** - When we
|
||||
want access to a smaller library as an implementation detail for a
|
||||
higher-priority library we plan to release, we may release it, as we did
|
||||
with portions of `absl/meta/type_traits.h`. One consequence of this is that
|
||||
the presence of a library in Abseil does not necessarily mean that other
|
||||
similar libraries would be a high priority.
|
||||
|
||||
### API Freeze Consequences
|
||||
|
||||
Via the
|
||||
[Abseil Compatibility Guidelines](https://abseil.io/about/compatibility), we
|
||||
have promised a large degree of API stability. In particular, we will not make
|
||||
backward-incompatible changes to released APIs without also shipping a tool or
|
||||
process that can upgrade our users' code. We are not yet at the point of easily
|
||||
releasing such tools. Therefore, at this time, shipping a library establishes an
|
||||
API contract which is borderline unchangeable. (We can add new functionality,
|
||||
but we cannot easily change existing behavior.) This constraint forces us to
|
||||
very carefully review all APIs that we ship.
|
||||
|
||||
|
||||
## Coding Style
|
||||
|
||||
To keep the source consistent, readable, diffable and easy to merge, we use a
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue