diff --git a/.Rbuildignore b/.Rbuildignore index 5163d0b..ea2f4ce 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1 +1,7 @@ ^LICENSE\.md$ +^README\.Rmd$ +^CODE_OF_CONDUCT\.md$ +^README\.html$ +^\.github$ +^_pkgdown\.yml$ + diff --git a/.github/.gitignore b/.github/.gitignore new file mode 100644 index 0000000..2d19fc7 --- /dev/null +++ b/.github/.gitignore @@ -0,0 +1 @@ +*.html diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml new file mode 100644 index 0000000..d46a617 --- /dev/null +++ b/.github/workflows/R-CMD-check.yaml @@ -0,0 +1,52 @@ +# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples +# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help +on: + push: + branches: [main, master] + pull_request: + branches: [main, master] + +name: R-CMD-check.yaml + +permissions: read-all + +jobs: + R-CMD-check: + runs-on: ${{ matrix.config.os }} + + name: ${{ matrix.config.os }} (${{ matrix.config.r }}) + + strategy: + fail-fast: false + matrix: + config: + - {os: macos-latest, r: 'release'} + - {os: windows-latest, r: 'release'} + - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} + - {os: ubuntu-latest, r: 'release'} + - {os: ubuntu-latest, r: 'oldrel-1'} + + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + R_KEEP_PKG_SOURCE: yes + + steps: + - uses: actions/checkout@v4 + + - uses: r-lib/actions/setup-pandoc@v2 + + - uses: r-lib/actions/setup-r@v2 + with: + r-version: ${{ matrix.config.r }} + http-user-agent: ${{ matrix.config.http-user-agent }} + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: any::rcmdcheck + needs: check + + - uses: r-lib/actions/check-r-package@v2 + with: + upload-snapshots: true + build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")' diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml new file mode 100644 index 0000000..4bbce75 --- /dev/null +++ b/.github/workflows/pkgdown.yaml @@ -0,0 +1,50 @@ +# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples +# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help +on: + push: + branches: [main, master] + pull_request: + branches: [main, master] + release: + types: [published] + workflow_dispatch: + +name: pkgdown.yaml + +permissions: read-all + +jobs: + pkgdown: + runs-on: ubuntu-latest + # Only restrict concurrency for non-PR jobs + concurrency: + group: pkgdown-${{ github.event_name != 'pull_request' || github.run_id }} + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + + - uses: r-lib/actions/setup-pandoc@v2 + + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: any::pkgdown, local::. + needs: website + + - name: Build site + run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE) + shell: Rscript {0} + + - name: Deploy to GitHub pages 🚀 + if: github.event_name != 'pull_request' + uses: JamesIves/github-pages-deploy-action@v4.5.0 + with: + clean: false + branch: gh-pages + folder: docs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..daa30a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +README.html diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..4457bb2 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,126 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at codeofconduct@thinkr.fr. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][https://github.com/mozilla/inclusion]. + +For answers to common questions about this code of conduct, see the FAQ at +. Translations are available at . + +[homepage]: https://www.contributor-covenant.org diff --git a/NEWS.md b/NEWS.md new file mode 100644 index 0000000..10fc18e --- /dev/null +++ b/NEWS.md @@ -0,0 +1,3 @@ +# golem.lint 0.0.0.9000 + +- Development started diff --git a/R/golem.lint-package.R b/R/golem.lint-package.R new file mode 100644 index 0000000..a65cf64 --- /dev/null +++ b/R/golem.lint-package.R @@ -0,0 +1,6 @@ +#' @keywords internal +"_PACKAGE" + +## usethis namespace: start +## usethis namespace: end +NULL diff --git a/README.Rmd b/README.Rmd new file mode 100644 index 0000000..2070405 --- /dev/null +++ b/README.Rmd @@ -0,0 +1,50 @@ +--- +output: github_document +--- + + + +```{r, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>", + fig.path = "man/figures/README-", + out.width = "100%" +) +``` + +# golem.lint + + +[![R-CMD-check](https://github.com/ThinkR-open/golem.lint/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/ThinkR-open/golem.lint/actions/workflows/R-CMD-check.yaml) + +[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental) +[![Golemverse](https://img.shields.io/badge/Package%20of%20the%20Golemverse-8A2BE2)](https://golemverse.org/) + + +**{golem.lint}** is a comprehensive linting package designed for R developers using the [Golem framework](https://github.com/ThinkR-open/golem) to build `Shiny` applications. + +This package provides essential tools to help ensure your code adheres to best practices, enhancing the overall quality and maintainability of your applications. + +## Features + +- **Linting Tools**: Identify potential issues in your code, such as missing namespaces around IDs, ensuring your modules are well-structured. +- **Best Practices**: Promote adherence to coding standards and best practices specific to the Golem framework. +- **Improved Code Quality**: Enhance the reliability and maintainability of your `Shiny` applications through consistent linting. +- **Easy Integration**: Seamlessly integrate `golem.lint` into your existing Golem projects for a smooth development experience. + +## Installation + +You can install the development version of golem.lint from [GitHub](https://github.com/) with: + +```{r, eval=FALSE} +# install.packages("devtools") +devtools::install_github("ThinkR-open/golem.lint") +``` + + +## Code of Conduct + +Please note that the golem.lint project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/1/CODE_OF_CONDUCT.html). + +By contributing to this project, you agree to abide by its terms. diff --git a/README.md b/README.md new file mode 100644 index 0000000..bb171c2 --- /dev/null +++ b/README.md @@ -0,0 +1,53 @@ + + + +# golem.lint + + + +[![R-CMD-check](https://github.com/ThinkR-open/golem.lint/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/ThinkR-open/golem.lint/actions/workflows/R-CMD-check.yaml) + +[![Lifecycle: +experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental) +[![Golemverse](https://img.shields.io/badge/Package%20of%20the%20Golemverse-8A2BE2)](https://golemverse.org/) + + +**{golem.lint}** is a comprehensive linting package designed for R +developers using the [Golem +framework](https://github.com/ThinkR-open/golem) to build `Shiny` +applications. + +This package provides essential tools to help ensure your code adheres +to best practices, enhancing the overall quality and maintainability of +your applications. + +## Features + +- **Linting Tools**: Identify potential issues in your code, such as + missing namespaces around IDs, ensuring your modules are + well-structured. +- **Best Practices**: Promote adherence to coding standards and best + practices specific to the Golem framework. +- **Improved Code Quality**: Enhance the reliability and + maintainability of your `Shiny` applications through consistent + linting. +- **Easy Integration**: Seamlessly integrate `golem.lint` into your + existing Golem projects for a smooth development experience. + +## Installation + +You can install the development version of golem.lint from +[GitHub](https://github.com/) with: + +``` r +# install.packages("devtools") +devtools::install_github("ThinkR-open/golem.lint") +``` + +## Code of Conduct + +Please note that the golem.lint project is released with a [Contributor +Code of +Conduct](https://contributor-covenant.org/version/2/1/CODE_OF_CONDUCT.html). + +By contributing to this project, you agree to abide by its terms. diff --git a/_pkgdown.yml b/_pkgdown.yml new file mode 100644 index 0000000..d71acfb --- /dev/null +++ b/_pkgdown.yml @@ -0,0 +1,4 @@ +url: ~ +template: + bootstrap: 5 + diff --git a/man/golem.lint-package.Rd b/man/golem.lint-package.Rd new file mode 100644 index 0000000..38c694c --- /dev/null +++ b/man/golem.lint-package.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/golem.lint-package.R +\docType{package} +\name{golem.lint-package} +\alias{golem.lint} +\alias{golem.lint-package} +\title{golem.lint: Enhancing Code Quality for Golem Applications} +\description{ +The `golem.lint` package provides linting tools for building `Shiny` applications. It helps developers identify and correct potential issues in their code, ensuring adherence to best practices and improving overall code quality. +} +\author{ +\strong{Maintainer}: Colin Fay \email{contact@colinfay.me} (\href{https://orcid.org/0000-0001-7343-1846}{ORCID}) + +Authors: +\itemize{ + \item Arthur Bréant \email{arthur@thinkr.fr} +} + +Other contributors: +\itemize{ + \item ThinkR [copyright holder] +} + +} +\keyword{internal}