Skip to content

Commit 38043f2

Browse files
mvandebergcppalliance-bot
authored andcommitted
Update coverage data
0 parents  commit 38043f2

1,181 files changed

Lines changed: 6325911 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.clang-format

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
#
2+
# Copyright (c) 2026 Steve Gerbino
3+
#
4+
# Distributed under the Boost Software License, Version 1.0. (See accompanying
5+
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6+
#
7+
# Official repository: https://github.com/cppalliance/corosio
8+
#
9+
10+
Language: Cpp
11+
Standard: c++20
12+
13+
# Indentation
14+
IndentWidth: 4
15+
TabWidth: 4
16+
UseTab: Never
17+
IndentCaseLabels: false
18+
IndentPPDirectives: None
19+
NamespaceIndentation: None
20+
21+
# Brace wrapping - Allman style (opening brace on new line)
22+
BreakBeforeBraces: Custom
23+
BraceWrapping:
24+
AfterCaseLabel: true
25+
AfterClass: true
26+
AfterControlStatement: Always
27+
AfterEnum: true
28+
AfterFunction: true
29+
AfterNamespace: false
30+
AfterStruct: true
31+
AfterUnion: true
32+
AfterExternBlock: true
33+
BeforeCatch: true
34+
BeforeElse: true
35+
BeforeLambdaBody: false
36+
BeforeWhile: true
37+
IndentBraces: false
38+
SplitEmptyFunction: true
39+
SplitEmptyRecord: false
40+
SplitEmptyNamespace: false
41+
42+
# Alignment
43+
AlignAfterOpenBracket: AlwaysBreak
44+
AlignConsecutiveAssignments: Consecutive
45+
AlignConsecutiveDeclarations: false
46+
AlignEscapedNewlines: Left
47+
AlignOperands: DontAlign
48+
AlignTrailingComments: true
49+
ContinuationIndentWidth: 4
50+
51+
# Line breaking
52+
ColumnLimit: 80
53+
AllowShortBlocksOnASingleLine: Empty
54+
AllowShortCaseLabelsOnASingleLine: false
55+
AllowShortFunctionsOnASingleLine: Empty
56+
AllowShortIfStatementsOnASingleLine: Never
57+
AllowShortLambdasOnASingleLine: All
58+
AllowShortLoopsOnASingleLine: false
59+
AlwaysBreakAfterReturnType: TopLevelDefinitions
60+
AlwaysBreakBeforeMultilineStrings: false
61+
AlwaysBreakTemplateDeclarations: Yes
62+
BinPackArguments: true
63+
BinPackParameters: false
64+
BreakBeforeBinaryOperators: None
65+
BreakBeforeTernaryOperators: true
66+
BreakConstructorInitializers: BeforeComma
67+
BreakInheritanceList: BeforeComma
68+
BreakStringLiterals: true
69+
70+
# Spaces
71+
SpaceAfterCStyleCast: false
72+
SpaceAfterLogicalNot: false
73+
SpaceAfterTemplateKeyword: false
74+
SpaceBeforeAssignmentOperators: true
75+
SpaceBeforeCpp11BracedList: false
76+
SpaceBeforeCtorInitializerColon: true
77+
SpaceBeforeInheritanceColon: true
78+
SpaceBeforeParens: ControlStatements
79+
SpaceBeforeRangeBasedForLoopColon: true
80+
SpaceBeforeSquareBrackets: false
81+
SpaceInEmptyBlock: false
82+
SpaceInEmptyParentheses: false
83+
SpacesBeforeTrailingComments: 1
84+
SpacesInAngles: false
85+
SpacesInCStyleCastParentheses: false
86+
SpacesInConditionalStatement: false
87+
SpacesInContainerLiterals: false
88+
SpacesInParentheses: false
89+
SpacesInSquareBrackets: false
90+
91+
# Pointer and reference alignment
92+
DerivePointerAlignment: false
93+
PointerAlignment: Left
94+
95+
# Include sorting
96+
IncludeBlocks: Preserve
97+
SortIncludes: false
98+
99+
# Other
100+
AccessModifierOffset: -4
101+
AllowAllArgumentsOnNextLine: true
102+
AllowAllParametersOfDeclarationOnNextLine: true
103+
CompactNamespaces: false
104+
Cpp11BracedListStyle: true
105+
EmptyLineBeforeAccessModifier: Always
106+
FixNamespaceComments: true
107+
IndentAccessModifiers: false
108+
IndentWrappedFunctionNames: false
109+
InsertBraces: false
110+
InsertNewlineAtEOF: true
111+
KeepEmptyLinesAtTheStartOfBlocks: false
112+
MaxEmptyLinesToKeep: 1
113+
PackConstructorInitializers: CurrentLine
114+
ReflowComments: false
115+
SeparateDefinitionBlocks: Leave
116+
ShortNamespaceLines: 0
117+
118+
# Penalties
119+
PenaltyBreakAssignment: 2
120+
PenaltyBreakBeforeFirstCallParameter: 1
121+
PenaltyBreakComment: 300
122+
PenaltyBreakFirstLessLess: 120
123+
PenaltyBreakString: 1000
124+
PenaltyExcessCharacter: 1000000
125+
PenaltyReturnTypeOnItsOwnLine: 0

.clang-tidy

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#
2+
# Copyright (c) 2026 Steve Gerbino
3+
#
4+
# Distributed under the Boost Software License, Version 1.0. (See accompanying
5+
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6+
#
7+
# Official repository: https://github.com/cppalliance/corosio
8+
#
9+
10+
# Conservative config: high-signal checks, minimal false positives.
11+
# Run: clang-tidy -p build src/corosio/src/detail/epoll/scheduler.cpp
12+
13+
Checks: >
14+
-*,
15+
bugprone-*,
16+
-bugprone-branch-clone,
17+
-bugprone-easily-swappable-parameters,
18+
-bugprone-narrowing-conversions,
19+
-bugprone-switch-missing-default-case,
20+
clang-analyzer-*,
21+
-clang-analyzer-optin.*,
22+
concurrency-*,
23+
-concurrency-mt-unsafe,
24+
misc-redundant-expression,
25+
misc-unconventional-assign-operator,
26+
misc-unused-parameters,
27+
modernize-use-override,
28+
performance-*,
29+
-performance-enum-size,
30+
readability-container-size-empty,
31+
readability-redundant-smartptr-get,
32+
33+
HeaderFilterRegex: '(boost/corosio|src/detail)/'
34+
FormatStyle: file

.codecov.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Copyright 2019 - 2021 Alexander Grund
2+
# Distributed under the Boost Software License, Version 1.0.
3+
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
4+
#
5+
# Sample codecov configuration file. Edit as required
6+
7+
codecov:
8+
max_report_age: off
9+
require_ci_to_pass: yes
10+
notify:
11+
# Increase this if you have multiple coverage collection jobs
12+
after_n_builds: 1
13+
wait_for_ci: yes
14+
15+
# Fix paths from CI build to match repository structure
16+
# Coverage paths look like: /home/runner/work/corosio/corosio/boost-root/libs/corosio/include/...
17+
# Strip everything up to and including boost-root/libs/corosio/
18+
fixes:
19+
- "boost-root/libs/corosio/::"
20+
21+
# Make coverage checks informational (report but never fail CI)
22+
coverage:
23+
status:
24+
project:
25+
default:
26+
informational: true
27+
patch:
28+
default:
29+
informational: true
30+
31+
# Change how pull request comments look
32+
comment:
33+
layout: "reach,diff,flags,files,footer"
34+
35+
# Ignore specific files or folders. Glob patterns are supported.
36+
# See https://docs.codecov.com/docs/ignoring-paths
37+
ignore:
38+
- extra/*
39+
- extra/**/*
40+
- test/*
41+
- test/**/*

.coderabbit.yaml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# https://docs.coderabbit.ai/reference/configuration
2+
3+
language: en
4+
5+
early_access: false
6+
7+
chat:
8+
auto_reply: true
9+
10+
reviews:
11+
auto_review:
12+
enabled: true
13+
ignore_title_keywords:
14+
- "WIP"
15+
drafts: false
16+
base_branches:
17+
- master
18+
- develop
19+
20+
high_level_summary: true
21+
22+
# Generate sequence diagrams for complex code flows
23+
sequence_diagrams: true
24+
25+
poem: true
26+
review_status: true
27+
collapse_walkthrough: true
28+
changed_files_summary: true
29+
request_changes_workflow: false
30+
31+
pre_merge_checks:
32+
description:
33+
mode: warning # Options: off, warning, error
34+
docstrings:
35+
mode: off # Disabled: cannot exclude detail namespaces from coverage
36+
37+
path_filters:
38+
- "!**/bench/**"
39+
- "!**/build/**"
40+
- "!**/context/**"
41+
- "!**/doc/**"
42+
- "!**/meta/**"
43+
- "!**/papers/**"
44+
- "!**/test/**"
45+
46+
# Custom review instructions for specific file patterns
47+
path_instructions:
48+
- path: "**/*.{cpp,hpp}"
49+
instructions: |
50+
Documentation Best Practices
51+
- Docstrings are required for all classes and functions in public
52+
headers in non-detail namespaces. Docstrings should include a brief
53+
description of purpose, document all parameters, return values, and
54+
any preconditions, postconditions, or exceptions. For template
55+
parameters, document constraints or concepts required. Warn if a
56+
class or function is missing a docstring or if the docstring fails
57+
to cover these elements.
58+
- Avoid redundant documentation that merely restates the obvious from
59+
the name and signature. Docstrings should add value beyond what the
60+
declaration already communicates. Do not warn about terse
61+
documentation for self-explanatory accessors or trivial type aliases.
62+
- Document thread-safety guarantees and exception specifications where
63+
applicable, particularly for classes intended for concurrent use or
64+
functions that may throw.
65+
- Files containing non-trivial implementation logic should include a
66+
`/* */` block comment after the includes that provides a high-level
67+
overview of how the implementation works. This should highlight
68+
anything tricky or non-obvious that a maintainer might need to know
69+
in order to reason effectively about the code. Warn if such files
70+
lack this overview or if the overview appears stale relative to the
71+
code.
72+
- Single-line `//` comments within code should be used sparingly and
73+
judiciously, explaining the why (not the what or how) when it is
74+
non-obvious. Warn about comments that merely restate what the code
75+
does or excessive commenting that adds noise rather than clarity.

.cursor/rules/doc-awaitable.mdc

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
description: doc javadoc for async awaitable functions of I/O objects
3+
alwaysApply: false
4+
---
5+
6+
**Checklist for an outstanding awaitable function javadoc:**
7+
- **Brief** — One-sentence summary starting with a verb, e.g. "Read data from the stream asynchronously."
8+
- **Extended description** — Short paragraph explaining what the function does. State that it is an asynchronous operation that suspends the calling coroutine until completion. If composed, state which underlying operations it is implemented in terms of.
9+
- **Completion conditions** — Bulleted `@li` list of conditions under which the operation completes and the coroutine resumes (e.g. "The supplied buffers are full", "An error occurs", "The operation was canceled").
10+
- **Concurrency and overlap** — State which operations may be simultaneously in flight. E.g. for a read: "At most one write operation may be in flight concurrently with this read operation. No other read operations may be in flight until this operation completes." Clarify that simultaneous in-flight operations does *not* imply that the initiating calls themselves may be made concurrently; all calls to the stream must be made from the same implicit or explicit serialization context.
11+
- **`@param` for each parameter** — Including ownership/lifetime semantics. For buffers: state that the caller retains ownership and must guarantee validity until the operation completes. For string/view parameters: state whether the implementation copies the data or requires it to remain valid for the duration.
12+
- **`@return`** — Describe the returned aggregate and its elements. The first element is always `error_code`. Name and describe each subsequent element (e.g. "bytes_transferred", "endpoint"). Note that the result is customarily destructured by the caller.
13+
- **Error conditions** — Document the notable `error_code` values or conditions that may appear in the first element. E.g. `capy::cond::canceled` if the stop token was activated or the i/o object's `cancel()` was called, EOF conditions, protocol-specific errors, etc. State that error codes should be compared to error conditions, not specific values.
14+
- **`@throws`** — Typically only for precondition violations. State which preconditions trigger exceptions, or state that no exceptions are thrown during normal operation.
15+
- **Cancellation** — State that the operation supports cancellation via `stop_token` propagated through the IoAwaitable protocol, or via the i/o object's `cancel()` member. State that the resulting error compares equal to `capy::cond::canceled`.
16+
- **`@par Example`** — Two or three `@code` blocks showing different usage patterns: typical happy path with destructuring, error handling, cancellation, different overloads, etc.
17+
- **`@note` / `@par Remarks`** — Behavioral gotchas. E.g. "This operation may not read all of the requested bytes." Or equivalence to another overload.
18+
- **`@tparam`** — For non-variadic template parameters. State the concept requirement (e.g. "The type must satisfy the *AsyncStream* concept"). Don't document `Args...`.
19+
- **`@see`** — Always last. Cross-references to related functions, concepts, and relevant RFC sections.
20+
- Keep the ascii-art to a minimum, only add dividers if the class declaration is very long
21+
- Don't emit @tparam for deduced types or concepts

0 commit comments

Comments
 (0)