diff --git a/.github/ISSUE_TEMPLATE/BUG_REPORT.md b/.github/ISSUE_TEMPLATE/BUG_REPORT.md new file mode 100644 index 0000000..3f9be66 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/BUG_REPORT.md @@ -0,0 +1,36 @@ +--- +name: Bug Report +about: Report a bug to help us improve +title: '' +labels: '' +assignees: '' + +--- + +## Description + +Please provide a description of the problem. + +## Expected Behaviour + +Please describe what you expected would happen. + +## Actual Behaviour + +Please describe what happened instead. + +## Affected Version + +Please provide the version number where this issue was encountered. + +## Steps to Reproduce + +1. First step +1. Second step +1. etc. + +## Checklist + + +- [ ] I have read the [contributing guidelines](https://github.com/wayfair-incubator/oss-template/blob/main/CONTRIBUTING.md) +- [ ] I have verified this does not duplicate an existing issue diff --git a/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md new file mode 100644 index 0000000..2af6aba --- /dev/null +++ b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md @@ -0,0 +1,25 @@ +--- +name: Feature Request +about: Suggest a feature for this project +title: '' +labels: '' +assignees: '' + +--- + +## Problem Statement + +Please describe the problem to be addressed by the proposed feature. + +## Proposed Solution + +Please describe what you envision the solution to this problem would look like. + +## Alternatives Considered + +Please briefly describe which alternatives, if any, have been considered, including merits of alternate approaches and +tradeoffs being made. + +## Additional Context + +Please provide any other information that may be relevant. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..b24db89 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,25 @@ +## Description + +Please provide a meaningful description of what this change will do, or is for. Bonus points for including links to related issues, other PRs, or technical references. + +Note that by _not_ including a description, you are asking reviewers to do extra work to understand the context of this change, which may lead to your PR taking much longer to review, or result in it not being reviewed at all. + +## Type of Change + +- [ ] Bug Fix +- [ ] New Feature +- [ ] Breaking Change +- [ ] Refactor +- [ ] Documentation +- [ ] Other (please describe) + +## Checklist + + +- [ ] I have read the [contributing guidelines](https://github.com/wayfair-incubator/oss-template/blob/main/CONTRIBUTING.md) +- [ ] Existing issues have been referenced (where applicable) +- [ ] I have verified this change is not present in other open pull requests +- [ ] Functionality is documented +- [ ] All code style checks pass +- [ ] New code contribution is covered by automated tests +- [ ] All new and existing tests pass diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..6a2b3aa --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,27 @@ +name: lint + +on: # Rebuild any PRs and main branch changes + push: + branches: + - main + - develop + pull_request: + +jobs: + markdown: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: โฌ‡๏ธ lint markdown files # Lints all markdown (.md) files + uses: avto-dev/markdown-lint@v1 + with: + config: '.markdownlint.json' + args: '**/*.md .github/**/*.md' + renovate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: ๐Ÿงผ lint renovate config # Validates changes to renovate.json config file + uses: suzuki-shunsuke/github-action-renovate-config-validator@v0.1.3 + with: + config_file_path: 'renovate.json' diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000..6d219b1 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,25 @@ +name: stale + +on: + schedule: + - cron: "0 0 * * 0" + +jobs: + stale: + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + steps: + - name: ๐Ÿ“† mark stale PRs # Automatically marks inactive PRs as stale + uses: actions/stale@v8 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + days-before-stale: 60 + stale-issue-label: 'stale' + stale-pr-label: 'stale' + stale-issue-message: 'Automatically marking issue as stale due to lack of activity' + stale-pr-message: 'Automatically marking pull request as stale due to lack of activity' + days-before-close: 7 + close-issue-message: 'Automatically closing this issue as stale' + close-pr-message: 'Automatically closing this pull request as stale' diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 0000000..2a820e7 --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,16 @@ +{ + "default": true, + "MD013": { + "line_length": 10000, + "headings": false, + "code_blocks": false, + "tables": false + }, + "MD024": { + "siblings_only": true + }, + "MD025": { + "front_matter_title": "" + }, + "MD041": false +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..0e01bcc --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,135 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### TBA + +## [0.3.9] - 2022-11-08 + +### Changed + +- Leveraging [hosted presets](https://docs.renovatebot.com/config-presets/) for `renovate.json` config + +## [0.3.8] - 2022-08-15 + +### Added + +- Recommended configuration for [renovate](https://github.com/renovatebot/renovate) +- Linting workflow for `renovate.json` config + +### Changed + +- Pinned v4 of [github-pages-deploy-action](https://github.com/marketplace/actions/deploy-to-github-pages) +- Removed [dependabot](https://github.com/dependabot) configuration + +## [0.3.7] - 2022-04-04 + +### Changed + +- Update lint workflow trigger behavior + +## [0.3.6] - 2022-03-22 + +### Added + +- Adds new template badges to README + +### Changed + +- Bumps [actions/checkout](https://github.com/marketplace/actions/checkout) from v2 to v3 + +## [0.3.5] - 2021-10-21 + +### Added + +- Add step to update contact information in Code of Conduct + +## [0.3.4] - 2021-10-19 + +### Added + +- Dependabot configuration + +## [0.3.3] - 2021-10-07 + +### Added + +- Markdown linting + +## [0.3.2] - 2021-08-24 + +### Added + +- Version badge in README links to this changelog + +## [0.3.1] - 2021-08-02 + +### Added + +- This changelog + +### Changed + +- Add versioning badge to README +- Add step to remove contents of changelog to prevent confusion + +## [0.3.0] - 2021-07-21 + +### Added + +- Integrate stale action + +### Changed + +- Add "Before you begin" section to README + +## [0.2.1] - 2021-06-08 + +### Changed + +- Add explanation of why PR descriptions are so important + +## [0.2.0] - 2021-06-03 + +### Added + +- Pull request template +- Bug report template +- Feature request template + +## [0.1.1] - 2021-05-24 + +### Changed + +- Be more explicit about where the code of conduct applies + +## [0.1.0] - 2021-05-11 + +### Added + +- Contributor Covenant +- Contribution guidelines +- Maintainers file +- README template +- Security guidance + +[unreleased]: https://github.com/wayfair-incubator/oss-template/compare/v0.3.9...HEAD +[0.3.9]: https://github.com/wayfair-incubator/oss-template/compare/v0.3.8...v0.3.9 +[0.3.8]: https://github.com/wayfair-incubator/oss-template/compare/v0.3.7...v0.3.8 +[0.3.7]: https://github.com/wayfair-incubator/oss-template/compare/v0.3.6...v0.3.7 +[0.3.6]: https://github.com/wayfair-incubator/oss-template/compare/v0.3.5...v0.3.6 +[0.3.5]: https://github.com/wayfair-incubator/oss-template/compare/v0.3.4...v0.3.5 +[0.3.4]: https://github.com/wayfair-incubator/oss-template/compare/v0.3.3...v0.3.4 +[0.3.3]: https://github.com/wayfair-incubator/oss-template/compare/v0.3.2...v0.3.3 +[0.3.2]: https://github.com/wayfair-incubator/oss-template/compare/v0.3.1...v0.3.2 +[0.3.1]: https://github.com/wayfair-incubator/oss-template/compare/v0.3.0...v0.3.1 +[0.3.0]: https://github.com/wayfair-incubator/oss-template/compare/v0.2.1...v0.3.0 +[0.2.1]: https://github.com/wayfair-incubator/oss-template/compare/v0.2.0...v0.2.1 +[0.2.0]: https://github.com/wayfair-incubator/oss-template/compare/v0.1.1...v0.2.0 +[0.1.1]: https://github.com/wayfair-incubator/oss-template/compare/v0.1.0...v0.1.1 +[0.1.0]: https://github.com/wayfair-incubator/oss-template/releases/tag/v0.1.0 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..111f191 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,132 @@ +# 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 +[INSERT CONTACT METHOD]. +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.0, available at +[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available +at [https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..26da5eb --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,47 @@ +# How to Contribute + +Thanks for your interest in contributing to ``! Here are a few general guidelines on contributing and +reporting bugs that we ask you to review. Following these guidelines helps to communicate that you respect the time of +the contributors managing and developing this open source project. In return, they should reciprocate that respect in +addressing your issue, assessing changes, and helping you finalize your pull requests. In that spirit of mutual respect, +we endeavour to review incoming issues and pull requests within 10 days, and will close any lingering issues or pull +requests after 60 days of inactivity. + +Please note that all of your interactions in the project are subject to our [Code of Conduct](CODE_OF_CONDUCT.md). This +includes creation of issues or pull requests, commenting on issues or pull requests, and extends to all interactions in +any real-time space (eg. Slack, Discord, etc). + +## Reporting Issues + +Before reporting a new issue, please ensure that the issue was not already reported or fixed by searching through our +[issues list](https://github.com/org_name/repo_name/issues). + +When creating a new issue, please be sure to include a **title and clear description**, as much relevant information as +possible, and, if possible, a test case. + +**If you discover a security bug, please do not report it through GitHub. Instead, please see security procedures in +[SECURITY.md](SECURITY.md).** + +## Sending Pull Requests + +Before sending a new pull request, take a look at existing pull requests and issues to see if the proposed change or fix +has been discussed in the past, or if the change was already implemented but not yet released. + +We expect new pull requests to include tests for any affected behavior, and, as we follow semantic versioning, we may +reserve breaking changes until the next major version release. + +## Other Ways to Contribute + +We welcome anyone that wants to contribute to `` to triage and reply to open issues to help troubleshoot +and fix existing bugs. Here is what you can do: + +- Help ensure that existing issues follows the recommendations from the _[Reporting Issues](#reporting-issues)_ section, + providing feedback to the issue's author on what might be missing. +- Review and update the existing content of our [Wiki](https://github.com/org_name/repo_name/wiki) with up-to-date + instructions and code samples. +- Review existing pull requests, and testing patches against real existing applications that use ``. +- Write a test, or add a missing test case to an existing test. + +Thanks again for your interest on contributing to ``! + +:heart: diff --git a/MAINTAINERS.md b/MAINTAINERS.md new file mode 100644 index 0000000..422fdc0 --- /dev/null +++ b/MAINTAINERS.md @@ -0,0 +1,5 @@ +# Maintainers + +- [GitHub Username](https://github.com/username) +- [GitHub Username](https://github.com/username) +- [GitHub Username](https://github.com/username) diff --git a/README.md b/README.md new file mode 100644 index 0000000..07a47b5 --- /dev/null +++ b/README.md @@ -0,0 +1,97 @@ +# Open Source Project Template + +[![Release](https://img.shields.io/github/v/release/wayfair-incubator/oss-template?display_name=tag)](CHANGELOG.md) +[![Lint](https://github.com/wayfair-incubator/oss-template/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/wayfair-incubator/oss-template/actions/workflows/lint.yml) +[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](CODE_OF_CONDUCT.md) +[![Maintainer](https://img.shields.io/badge/Maintainer-Wayfair-7F187F)](https://wayfair.github.io) + +## Before You Start + +As much as possible, we have tried to provide enough tooling to get you up and running quickly and with a minimum of effort. This includes sane defaults for documentation; templates for bug reports, feature requests, and pull requests; and [GitHub Actions](https://github.com/features/actions) that will automatically manage stale issues and pull requests. This latter defaults to labeling issues and pull requests as stale after 60 days of inactivity, and closing them after 7 additional days of inactivity. These [defaults](.github/workflows/stale.yml) and more can be configured. For configuration options, please consult the documentation for the [stale action](https://github.com/actions/stale). + +In trying to keep this template as generic and reusable as possible, there are some things that were omitted out of necessity and others that need a little tweaking. Before you begin developing in earnest, there are a few changes that need to be made: + +- [ ] โœ… Select an appropriate license for your project. This can easily be achieved through the 'Add File' button on the GitHub UI, naming the file `LICENSE`, and selecting your desired license from the provided list. +- [ ] Update the `` placeholder in this file to reflect the name of the license you selected above. +- [ ] Replace `[INSERT CONTACT METHOD]` in [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) with a suitable communication channel. +- [ ] Change references to `org_name` to the name of the org your repo belongs to (eg. `wayfair-incubator`): + - [ ] In [`README.md`](README.md) + - [ ] In [`CONTRIBUTING.md`](CONTRIBUTING.md) +- [ ] Change references to `repo_name` to the name of your new repo: + - [ ] In [`README.md`](README.md) + - [ ] In [`CONTRIBUTING.md`](CONTRIBUTING.md) +- [ ] Update the link to the contribution guidelines to point to your project: + - [ ] In [`.github/ISSUE_TEMPLATE/BUG_REPORT.md`](.github/ISSUE_TEMPLATE/BUG_REPORT.md) + - [ ] In [`.github/PULL_REQUEST_TEMPLATE.md`](.github/PULL_REQUEST_TEMPLATE.md) +- [ ] Replace the `` placeholder with the name of your project: + - [ ] In [`CONTRIBUTING.md`](CONTRIBUTING.md) + - [ ] In [`SECURITY.md`](SECURITY.md) +- [ ] Add names and contact information for actual project maintainers to [`MAINTAINERS.md`](MAINTAINERS.md). +- [ ] Delete the content of [`CHANGELOG.md`](CHANGELOG.md). We encourage you to [keep a changelog](https://keepachangelog.com/en/1.0.0/). +- [ ] Configure [`renovate.json`](renovate.json) for your project's language and tooling dependencies. + - [ ] Note that the base `renovate.json` file included with this template inherits most of its configuration logic from Wayfair OSPO's recommended presets, hosted [here](https://github.com/wayfair/ospo-automation/blob/main/default.json). If your project does not require advanced dependency configuration, this may be sufficient for your needs. + - [ ] ๐Ÿ’ก To learn more about using and configuring [Renovate](http://renovatebot.com/), check out our [wayfair.github.io](https://wayfair.github.io) article: **[Managing Project Dependencies](https://wayfair.github.io/docs/managing-dependencies/)**. +- [ ] Replace the generic content in this file with the relevant details about your project. +- [ ] Acknowledge that some features like [branch protection rules](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule) are only available when the repo is `public`. +- [ ] ๐Ÿšจ Delete this section of the `README`! + +## About The Project + +Provide some information about what the project is/does. + +## Getting Started + +To get a local copy up and running follow these simple steps. + +### Prerequisites + +This is an example of how to list things you need to use the software and how to install them. + +- npm + + ```sh + npm install npm@latest -g + ``` + +### Installation + +1. Clone the repo + + ```sh + git clone https://github.com/org_name/repo_name.git + ``` + +2. Install NPM packages + + ```sh + npm install + ``` + +## Usage + +Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources. + +_For more examples, please refer to the [Documentation](https://example.com) or the [Wiki](https://github.com/org_name/repo_name/wiki)_ + +## Roadmap + +See the [open issues](https://github.com/org_name/repo_name/issues) for a list of proposed features (and known issues). + +## Contributing + +Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. For detailed contributing guidelines, please see [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +Distributed under the `` License. See [LICENSE](LICENSE) for more information. + +## Contact + +Your Name - [@twitter_handle](https://twitter.com/twitter_handle) - email + +Project Link: [https://github.com/org_name/repo_name](https://github.com/org_name/repo_name) + +## Acknowledgements + +This template was adapted from +[https://github.com/othneildrew/Best-README-Template](https://github.com/othneildrew/Best-README-Template). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..054eb81 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,39 @@ +# Security Policies and Procedures + +This document outlines security procedures and general policies for the +`` project. + +- [Reporting a Bug](#reporting-a-bug) +- [Disclosure Policy](#disclosure-policy) +- [Comments on this Policy](#comments-on-this-policy) + +## Reporting a Bug + +The `` team and community take all security bugs in +`` seriously. Thank you for improving the security of +``. We appreciate your efforts and responsible disclosure and +will make every effort to acknowledge your contributions. + +Report security bugs by emailing `OpenSource@wayfair.com`. + +The lead maintainer will acknowledge your email within 48 hours, and will send a +more detailed response within 48 hours indicating the next steps in handling +your report. After the initial reply to your report, the security team will +endeavor to keep you informed of the progress towards a fix and full +announcement, and may ask for additional information or guidance. + +## Disclosure Policy + +When the security team receives a security bug report, they will assign it to a +primary handler. This person will coordinate the fix and release process, +involving the following steps: + +- Confirm the problem and determine the affected versions. +- Audit code to find any potential similar problems. +- Prepare fixes for all releases still under maintenance. These fixes will be + released as quickly as possible. + +## Comments on this Policy + +If you have suggestions on how this process could be improved please submit a +pull request. diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..d6da822 --- /dev/null +++ b/renovate.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "description": "Wayfair OSPO recommended presets (https://github.com/wayfair/ospo-automation/blob/main/default.json)", + "extends": [ + "github>wayfair/ospo-automation" + ] +}