diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..1abc8d7d --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @{author_handle} diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..f88a8b8c --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,27 @@ +--- +name: Requesting a Feature or Improvement +about: "For feature requests. Please search for existing issues first. Also see CONTRIBUTING." +title: '' +labels: Feedback, Feature +assignees: '' + +--- + +## Instructions + +Please fill out the template below to the best of your ability and include a label indicating which tool/service you were working with when you encountered the problem. + +### Issue To Be Solved +(Replace This Text: Please present a concise description of the problem to be addressed by this feature request. Please be clear what parts of the problem are considered to be in-scope and out-of-scope.) + +### (Optional): Suggest A Solution +(Replace This Text: A concise description of your preferred solution. Things to address include: +* Details of the technical implementation +* Tradeoffs made in design decisions +* Caveats and considerations for the future + +If there are multiple solutions, please present each one separately. Save comparisons for the very end.) + +### (Optional): Context + + \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 00000000..78b28e25 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,28 @@ +--- +name: Reporting a Problem/Bug +about: Reporting a Problem/Bug +title: '' +labels: bug, Feedback +assignees: '' + +--- + +## Instructions + +Please fill out the template below to the best of your ability and include a label indicating which tool/service you were working with when you encountered the problem. + +### Problem + + + +### Steps to Reproduce + + + +### Acceptance Criteria + + + +### Context + + \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md new file mode 100644 index 00000000..f88a8b8c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -0,0 +1,27 @@ +--- +name: Requesting a Feature or Improvement +about: "For feature requests. Please search for existing issues first. Also see CONTRIBUTING." +title: '' +labels: Feedback, Feature +assignees: '' + +--- + +## Instructions + +Please fill out the template below to the best of your ability and include a label indicating which tool/service you were working with when you encountered the problem. + +### Issue To Be Solved +(Replace This Text: Please present a concise description of the problem to be addressed by this feature request. Please be clear what parts of the problem are considered to be in-scope and out-of-scope.) + +### (Optional): Suggest A Solution +(Replace This Text: A concise description of your preferred solution. Things to address include: +* Details of the technical implementation +* Tradeoffs made in design decisions +* Caveats and considerations for the future + +If there are multiple solutions, please present each one separately. Save comparisons for the very end.) + +### (Optional): Context + + \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..ec024db4 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,18 @@ +Closes: #??? + +## Description + + + +______ + +For contributor use: + +- [ ] Targeted PR against `master` branch +- [ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work. +- [ ] Code follows the [standards mentioned here](https://github.com/onflow/flow-nft/blob/master/CONTRIBUTING.md#styleguides). +- [ ] Updated relevant documentation +- [ ] Re-reviewed `Files changed` in the Github PR explorer +- [ ] Added appropriate labels \ No newline at end of file diff --git a/.github/labels.yml b/.github/labels.yml new file mode 100644 index 00000000..a3d6e1a0 --- /dev/null +++ b/.github/labels.yml @@ -0,0 +1,69 @@ +- color: fbca04 + description: "" + name: Breaking Change +- color: 3E4B9E + description: "" + name: Epic +- color: 0e8a16 + description: "" + name: Feature +- color: d4c5f9 + description: "" + name: Feedback +- color: 1d76db + description: "" + name: Improvement +- color: efbd7f + description: "" + name: Needs Definition +- color: f99875 + description: "" + name: Needs Estimation +- color: efa497 + description: "" + name: Needs Test Cases +- color: fcadab + description: "" + name: P-High +- color: bfd4f2 + description: "" + name: P-Low +- color: ddcd3e + description: "" + name: P-Medium +- color: CCCCCC + description: "" + name: Technical Debt +- color: d73a4a + description: Something isn't working + name: Bug +- color: c2e0c6 + description: "" + name: Bugfix +- color: cfd3d7 + description: This issue or pull request already exists + name: Duplicate +- color: 7057ff + description: Good for newcomers + name: Good First Issue +- color: d876e3 + description: Further information is requested + name: Question +- color: 0075ca + description: Improvements or additions to documentation + name: Documentation +- color: e8e843 + description: + name: Research +- color: d87394 + description: + name: Performance +- color: 54ba3f + description: + name: Regression +- color: 25acab + description: + name: Testing +- color: 80f59d + description: + name: Chore diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml new file mode 100644 index 00000000..ac3615cb --- /dev/null +++ b/.github/workflows/sync-labels.yml @@ -0,0 +1,20 @@ +name: Sync Labels + +on: + workflow_dispatch: + push: + branches: + - main + paths: + - .github/labels.yml + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: micnncim/action-label-syncer@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + manifest: .github/labels.yml diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..9b988b14 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers 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, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at os@dapperlabs.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..05157f53 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,91 @@ +# Contributing to the Non-Fungible Token Standard + +The following is a set of guidelines for contributing to the Flow NFT standard. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. + +#### Table Of Contents + +[How Can I Contribute?](#how-can-i-contribute) + +- [Reporting Bugs](#reporting-bugs) +- [Suggesting Enhancements](#suggesting-enhancements) +- [Pull Requests](#pull-requests) + +[Styleguides](#styleguides) + +- [Git Commit Messages](#git-commit-messages) + +[Additional Notes](#additional-notes) + + +## How Can I Contribute? + +You are free to contribute however you want! You can submit a bug report in an issue, suggest an enhancment, or even just make a PR for us to review. We just ask that you are clear in your communication and documentation of all your work so we can understand how you are trying to help. + +### Reporting Bugs + +#### Before Submitting A Bug Report + +- **Search existing issues** to see if the problem has already been reported. If it has **and the issue is still open**, add a comment to the existing issue instead of opening a new one. + +#### How Do I Submit A (Good) Bug Report? + +Explain the problem and include additional details to help maintainers reproduce the problem: + +- **Use a clear and descriptive title** for the issue to identify the problem. +- **Describe the exact steps which reproduce the problem** in as many details as possible. When listing steps, **don't just say what you did, but explain how you did it**. +- **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). +- **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior. +- **Explain which behavior you expected to see instead and why.** +- **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the problem. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. + +Provide more context by answering these questions: + +- **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens. + +Include details about your configuration and environment: + +- **What's the name and version of the OS you're using**? +- **What's the name and version of the flow-cli that you are using**? + +### Suggesting Enhancements + +#### Before Submitting An Enhancement Suggestion + +- **Perform a cursory search** to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. + +#### How Do I Submit A (Good) Enhancement Suggestion? + +Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue and provide the following information: + +- **Use a clear and descriptive title** for the issue to identify the suggestion. +- **Provide a step-by-step description of the suggested enhancement** in as many details as possible. +- **Provide specific examples to demonstrate the steps**. Include copy/pasteable snippets which you use in those examples, as [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). +- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. +- **Include screenshots and animated GIFs**. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. +- **Explain why this enhancement would be useful** to be included in the standard. + +### Pull Requests + +The process described here has several goals: + +- Maintain code quality +- Fix problems that are important to users + +Please follow the [styleguides](#styleguides) to have your contribution considered by the maintainers. +Reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted. + +## Styleguides + +Before contributing, make sure to examine the project to get familiar with the patterns and style already being used. + +### Git Commit Messages + +- Use the present tense ("Add feature" not "Added feature") +- Use the imperative mood ("Move cursor to..." not "Moves cursor to...") +- Limit the first line to 72 characters or less +- Reference issues and pull requests liberally after the first line + + +### Additional Notes + +Thank you for your interest in contributing to the Flow Token Standards! \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..fdddb29a --- /dev/null +++ b/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/README.md b/README.md new file mode 100644 index 00000000..b85c164f --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +# Repository template +A template enabled repository, including all necesary files to open source. +(create an issue with the following content if you want to track the repo configuration) + +## Repository settings and configuration +- [ ] Repository info + - [ ] Add repo description + - [ ] Update website to https://onflow.org + - [ ] Add relevant repository topics (i.e. `blockchain` `onflow`, etc) + - [ ] Check issue labels on `.github/labels.yml` and do any commit to main to get them synced +- [ ] Define merge workflow (create new branch protection rule) + - [ ] `main` branch rule: + - [ ] **Require pull request reviews before merging (2 approving reviews)** + - [ ] **Require review from Code Owners** + - [ ] **Require status checks to pass before merging** + - [ ] **Require branches to be up to date before merging** + - [ ] **Require linear history** + - [ ] **Restrict who can push to matching branches** + - [ ] Choose `onflow/flow` team + +- [ ] Add necessary team members, adjust access levels + - [ ] `onflow/flow-admin` ⇒ Admin access + - [ ] `onflow/flow-engineering ` ⇒ Write access diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..631d1159 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,11 @@ +# Responsible Disclosure Policy + +Flow was built from the ground up with security in mind. Our code, infrastructure, and development methodology helps us keep our users safe. + +We really appreciate the community's help. Responsible disclosure of vulnerabilities helps to maintain the security and privacy of everyone. + +If you care about making a difference, please follow the guidelines below. + +# **Guidelines For Responsible Disclosure** + +We ask that all researchers adhere to these guidelines [here](https://docs.onflow.org/bounties/responsible-disclosure/)