Skip to content

Commit 1bd398f

Browse files
committed
0 parents  commit 1bd398f

File tree

159 files changed

+24947
-0
lines changed

Some content is hidden

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

159 files changed

+24947
-0
lines changed

.Rbuildignore

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
script.R
2+
^README\.Rmd$
3+
^README\.html$
4+
^\.github$
5+
^README_cache$
6+
^.covrignore$
7+
^.clang-format$
8+
^LICENSE\.md$
9+
^Doxyfile$
10+
^.*\.Rproj$
11+
^\.Rproj\.user$
12+
^Makefile$
13+
^\.clangd$
14+
^compile_flags\.txt$
15+
^compile_commands\.json$
16+
^cpp11test$
17+
^codecov\.yml$
18+
^R/coverage\.R$
19+
^book$
20+
^vignettes/.*_cache$
21+
^_pkgdown\.yml$
22+
^cran-comments\.md$
23+
^CRAN-RELEASE$
24+
^revdep$
25+
^talk$
26+
\.cache$
27+
^MAINTENANCE\.md$
28+
^doc$
29+
^Meta$
30+
^CRAN-SUBMISSION$
31+
.vscode
32+
^\.cache$
33+
^docs$
34+
^pkgdown$

.clang-format

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
BasedOnStyle: Google
2+
DerivePointerAlignment: false
3+
ColumnLimit: 90
4+
IncludeBlocks: Preserve

.covrignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
R/coverage[.]R
2+
R/zzz.R

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
inst/include/fmt/* linguist-vendored

.github/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.html

.github/CODE_OF_CONDUCT.md

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, religion, or sexual identity and
10+
orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment for our
18+
community include:
19+
20+
* Demonstrating empathy and kindness toward other people
21+
* Being respectful of differing opinions, viewpoints, and experiences
22+
* Giving and gracefully accepting constructive feedback
23+
* Accepting responsibility and apologizing to those affected by our mistakes,
24+
and learning from the experience
25+
* Focusing on what is best not just for us as individuals, but for the overall
26+
community
27+
28+
Examples of unacceptable behavior include:
29+
30+
* The use of sexualized language or imagery, and sexual attention or
31+
advances of any kind
32+
* Trolling, insulting or derogatory comments, and personal or political attacks
33+
* Public or private harassment
34+
* Publishing others' private information, such as a physical or email
35+
address, without their explicit permission
36+
* Other conduct which could reasonably be considered inappropriate in a
37+
professional setting
38+
39+
## Enforcement Responsibilities
40+
41+
Community leaders are responsible for clarifying and enforcing our standards
42+
of acceptable behavior and will take appropriate and fair corrective action in
43+
response to any behavior that they deem inappropriate, threatening, offensive,
44+
or harmful.
45+
46+
Community leaders have the right and responsibility to remove, edit, or reject
47+
comments, commits, code, wiki edits, issues, and other contributions that are
48+
not aligned to this Code of Conduct, and will communicate reasons for moderation
49+
decisions when appropriate.
50+
51+
## Scope
52+
53+
This Code of Conduct applies within all community spaces, and also applies
54+
when an individual is officially representing the community in public spaces.
55+
Examples of representing our community include using an official e-mail
56+
address, posting via an official social media account, or acting as an appointed
57+
representative at an online or offline event.
58+
59+
## Enforcement
60+
61+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
62+
reported to the community leaders responsible for enforcement at [INSERT CONTACT
63+
METHOD]. All complaints will be reviewed and investigated promptly and fairly.
64+
65+
All community leaders are obligated to respect the privacy and security of the
66+
reporter of any incident.
67+
68+
## Enforcement Guidelines
69+
70+
Community leaders will follow these Community Impact Guidelines in determining
71+
the consequences for any action they deem in violation of this Code of Conduct:
72+
73+
### 1. Correction
74+
75+
**Community Impact**: Use of inappropriate language or other behavior deemed
76+
unprofessional or unwelcome in the community.
77+
78+
**Consequence**: A private, written warning from community leaders, providing
79+
clarity around the nature of the violation and an explanation of why the
80+
behavior was inappropriate. A public apology may be requested.
81+
82+
### 2. Warning
83+
84+
**Community Impact**: A violation through a single incident or series of
85+
actions.
86+
87+
**Consequence**: A warning with consequences for continued behavior. No
88+
interaction with the people involved, including unsolicited interaction with
89+
those enforcing the Code of Conduct, for a specified period of time. This
90+
includes avoiding interactions in community spaces as well as external channels
91+
like social media. Violating these terms may lead to a temporary or permanent
92+
ban.
93+
94+
### 3. Temporary Ban
95+
96+
**Community Impact**: A serious violation of community standards, including
97+
sustained inappropriate behavior.
98+
99+
**Consequence**: A temporary ban from any sort of interaction or public
100+
communication with the community for a specified period of time. No public or
101+
private interaction with the people involved, including unsolicited interaction
102+
with those enforcing the Code of Conduct, is allowed during this period.
103+
Violating these terms may lead to a permanent ban.
104+
105+
### 4. Permanent Ban
106+
107+
**Community Impact**: Demonstrating a pattern of violation of community
108+
standards, including sustained inappropriate behavior, harassment of an
109+
individual, or aggression toward or disparagement of classes of individuals.
110+
111+
**Consequence**: A permanent ban from any sort of public interaction within the
112+
community.
113+
114+
## Attribution
115+
116+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
117+
version 2.0,
118+
available at https://www.contributor-covenant.org/version/2/0/
119+
code_of_conduct.html.
120+
121+
Community Impact Guidelines were inspired by [Mozilla's code of conduct
122+
enforcement ladder](https://github.com/mozilla/diversity).
123+
124+
[homepage]: https://www.contributor-covenant.org
125+
126+
For answers to common questions about this code of conduct, see the FAQ at
127+
https://www.contributor-covenant.org/faq. Translations are available at https://
128+
www.contributor-covenant.org/translations.

.github/CONTRIBUTING.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Contributing to cpp11
2+
3+
This outlines how to propose a change to cpp11.
4+
For more detailed info about contributing to this, and other tidyverse packages, please see the
5+
[**development contributing guide**](https://rstd.io/tidy-contrib).
6+
7+
## Fixing typos
8+
9+
You can fix typos, spelling mistakes, or grammatical errors in the documentation directly using the GitHub web interface, as long as the changes are made in the _source_ file.
10+
This generally means you'll need to edit [roxygen2 comments](https://roxygen2.r-lib.org/articles/roxygen2.html) in an `.R`, not a `.Rd` file.
11+
You can find the `.R` file that generates the `.Rd` by reading the comment in the first line.
12+
13+
## Bigger changes
14+
15+
If you want to make a bigger change, it's a good idea to first file an issue and make sure someone from the team agrees that it’s needed.
16+
If you’ve found a bug, please file an issue that illustrates the bug with a minimal
17+
[reprex](https://www.tidyverse.org/help/#reprex) (this will also help you write a unit test, if needed).
18+
19+
### Pull request process
20+
21+
* Fork the package and clone onto your computer. If you haven't done this before, we recommend using `usethis::create_from_github("r-lib/cpp11", fork = TRUE)`.
22+
23+
* Install all development dependences with `devtools::install_dev_deps()`, and then make sure the package passes R CMD check by running `devtools::check()`.
24+
If R CMD check doesn't pass cleanly, it's a good idea to ask for help before continuing.
25+
* Create a Git branch for your pull request (PR). We recommend using `usethis::pr_init("brief-description-of-change")`.
26+
27+
* Make your changes, commit to git, and then create a PR by running `usethis::pr_push()`, and following the prompts in your browser.
28+
The title of your PR should briefly describe the change.
29+
The body of your PR should contain `Fixes #issue-number`.
30+
31+
* For user-facing changes, add a bullet to the top of `NEWS.md` (i.e. just below the first header). Follow the style described in <https://style.tidyverse.org/news.html>.
32+
33+
### Code style
34+
35+
* New code should follow the tidyverse [style guide](https://style.tidyverse.org).
36+
You can use the [styler](https://CRAN.R-project.org/package=styler) package to apply these styles, but please don't restyle code that has nothing to do with your PR.
37+
38+
* We use [roxygen2](https://cran.r-project.org/package=roxygen2), with [Markdown syntax](https://cran.r-project.org/web/packages/roxygen2/vignettes/rd-formatting.html), for documentation.
39+
40+
* We use [testthat](https://cran.r-project.org/package=testthat) for unit tests.
41+
Contributions with test cases included are easier to accept.
42+
43+
## Code of Conduct
44+
45+
Please note that the cpp11 project is released with a
46+
[Contributor Code of Conduct](CODE_OF_CONDUCT.md). By contributing to this
47+
project you agree to abide by its terms.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
name: Bug report or feature request
3+
about: Describe a bug you've seen or make a case for a new feature
4+
---
5+
6+
Please briefly describe your problem and what output you expect. If you have a question, please don't use this form. Instead, ask on <https://stackoverflow.com/> or <https://community.rstudio.com/>.
7+
8+
Please include a minimal reproducible example (AKA a reprex). If you've never heard of a [reprex](http://reprex.tidyverse.org/) before, start by reading <https://www.tidyverse.org/help/#reprex>.
9+
10+
Brief description of the problem
11+
12+
```r
13+
# insert reprex here
14+
```

.github/SUPPORT.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Getting help with cpp11
2+
3+
Thanks for using cpp11!
4+
Before filing an issue, there are a few places to explore and pieces to put together to make the process as smooth as possible.
5+
6+
## Make a reprex
7+
8+
Start by making a minimal **repr**oducible **ex**ample using the [reprex](https://reprex.tidyverse.org/) package.
9+
If you haven't heard of or used reprex before, you're in for a treat!
10+
Seriously, reprex will make all of your R-question-asking endeavors easier (which is a pretty insane ROI for the five to ten minutes it'll take you to learn what it's all about).
11+
For additional reprex pointers, check out the [Get help!](https://www.tidyverse.org/help/) section of the tidyverse site.
12+
13+
## Where to ask?
14+
15+
Armed with your reprex, the next step is to figure out [where to ask](https://www.tidyverse.org/help/#where-to-ask).
16+
17+
* If it's a question: start with [community.rstudio.com](https://community.rstudio.com/), and/or StackOverflow. There are more people there to answer questions.
18+
19+
* If it's a bug: you're in the right place, [file an issue](https://github.com/r-lib/cpp11/issues/new).
20+
21+
* If you're not sure: let the community help you figure it out!
22+
If your problem _is_ a bug or a feature request, you can easily return here and report it.
23+
24+
Before opening a new issue, be sure to [search issues and pull requests](https://github.com/r-lib/cpp11/issues) to make sure the bug hasn't been reported and/or already fixed in the development version.
25+
By default, the search will be pre-populated with `is:issue is:open`.
26+
You can [edit the qualifiers](https://help.github.com/articles/searching-issues-and-pull-requests/) (e.g. `is:pr`, `is:closed`) as needed.
27+
For example, you'd simply remove `is:open` to search _all_ issues in the repo, open or closed.
28+
29+
## What happens next?
30+
31+
To be as efficient as possible, development of tidyverse packages tends to be very bursty, so you shouldn't worry if you don't get an immediate response.
32+
Typically we don't look at a repo until a sufficient quantity of issues accumulates, then there’s a burst of intense activity as we focus our efforts.
33+
That makes development more efficient because it avoids expensive context switching between problems, at the cost of taking longer to get back to you.
34+
This process makes a good reprex particularly important because it might be multiple months between your initial report and when we start working on it.
35+
If we can’t reproduce the bug, we can’t fix it!

.github/workflows/R-CMD-check.yaml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
2+
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
3+
#
4+
# NOTE: This workflow is overkill for most R packages and
5+
# check-standard.yaml is likely a better choice.
6+
# usethis::use_github_action("check-standard") will install it.
7+
on:
8+
push:
9+
branches: [main, master]
10+
pull_request:
11+
branches: [main, master]
12+
13+
name: R-CMD-check
14+
15+
permissions: read-all
16+
17+
jobs:
18+
R-CMD-check:
19+
runs-on: ${{ matrix.config.os }}
20+
21+
name: ${{ matrix.config.os }} (${{ matrix.config.r }}) ${{ matrix.config.custom }}
22+
23+
strategy:
24+
fail-fast: false
25+
matrix:
26+
config:
27+
- {os: macos-13, r: 'oldrel'}
28+
- {os: macos-latest, r: 'release'}
29+
30+
- {os: windows-latest, r: 'release'}
31+
# use 4.1 to check with rtools40's older compiler
32+
- {os: windows-latest, r: '4.1'}
33+
34+
# Use older ubuntu to maximise backward compatibility
35+
- {os: ubuntu-22.04, r: 'devel', http-user-agent: 'release'}
36+
- {os: ubuntu-22.04, r: 'release'}
37+
- {os: ubuntu-22.04, r: 'release', custom: 'no-cpp11test'}
38+
- {os: ubuntu-22.04, r: 'oldrel-1'}
39+
- {os: ubuntu-22.04, r: 'oldrel-2'}
40+
- {os: ubuntu-22.04, r: 'oldrel-3'}
41+
- {os: ubuntu-22.04, r: 'oldrel-4'}
42+
43+
env:
44+
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
45+
R_KEEP_PKG_SOURCE: yes
46+
47+
steps:
48+
- uses: actions/checkout@v4
49+
50+
- uses: r-lib/actions/setup-pandoc@v2
51+
52+
- uses: r-lib/actions/setup-r@v2
53+
with:
54+
r-version: ${{ matrix.config.r }}
55+
http-user-agent: ${{ matrix.config.http-user-agent }}
56+
use-public-rspm: true
57+
58+
- name: Install macOS system dependencies
59+
if: runner.os == 'macOS'
60+
run: brew install --cask xquartz
61+
62+
- uses: r-lib/actions/setup-r-dependencies@v2
63+
with:
64+
extra-packages: any::rcmdcheck
65+
pak-version: devel
66+
needs: check
67+
68+
- name: Install cpp11test
69+
if: matrix.config.custom != 'no-cpp11test'
70+
run: |
71+
options(warn = 2)
72+
pak::local_install_dev_deps("cpp11test", dependencies = TRUE)
73+
install.packages(".", repos = NULL, type = "source")
74+
install.packages("cpp11test", repos = NULL, INSTALL_opts = "--install-tests", type = "source")
75+
shell: Rscript {0}
76+
77+
- uses: r-lib/actions/check-r-package@v2
78+
with:
79+
upload-snapshots: true
80+
build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")'
81+
82+
- name: Run cpp11test tests
83+
if: matrix.config.custom != 'no-cpp11test'
84+
run: |
85+
setwd("cpp11test/tests")
86+
library(testthat)
87+
library(cpp11test)
88+
test_check("cpp11test", reporter = "progress")
89+
shell: Rscript {0}

0 commit comments

Comments
 (0)