From af4fd66439a0456fc3664eeac1979b524248dceb Mon Sep 17 00:00:00 2001 From: Andrew Lee Rubinger Date: Wed, 25 Sep 2024 12:37:20 -0700 Subject: [PATCH 01/10] Initial commit --- .github/ISSUE_TEMPLATE/bug-report.md | 31 ++++ .github/ISSUE_TEMPLATE/config.yml | 4 + CODEOWNERS | 24 +++ CODE_OF_CONDUCT.md | 136 +++++++++++++++++ CONTRIBUTING.md | 214 +++++++++++++++++++++++++++ GOVERNANCE.md | 67 +++++++++ LICENSE | 203 +++++++++++++++++++++++++ README.md | 38 +++++ 8 files changed, 717 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug-report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 CODEOWNERS create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 GOVERNANCE.md create mode 100644 LICENSE create mode 100644 README.md diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 00000000..25f0bc5e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,31 @@ +--- +name: 🐛 Bug Report +about: Thank you for taking the time, please report a reproducible bug +title: "[Bug] " +labels: bug +assignees: add codeowner's @name here + +--- + +**Describe the bug** +*A clear and concise description of what the bug is.* + +**To Reproduce:** +*Steps to reproduce the behavior:* +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior:** +*A clear and concise description of what you expected to happen.* + +**Supporting Material** +*If applicable, add screenshots, output log and/or other documentation to help explain your problem.* + +**Environment (please complete the following information):** + - OS: [ex: iOS] + - Version + +**Additional context** +Add any other context that you feel is relevant about the problem here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..ce71f103 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,4 @@ +contact_links: + - name: ❓ Questions and Help 🤔 + url: https://discord.gg/tbd (/add your discord channel if applicable) + about: This issue tracker is not for support questions. Please refer to the community for more help. diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000..21ecf13a --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,24 @@ +# This CODEOWNERS file denotes the project leads +# and encodes their responsibilities for code review. + +# Instructions: At a minimum, replace the '@GITHUB_USER_NAME_GOES_HERE' +# here with at least one project lead. + +# Lines starting with '#' are comments. +# Each line is a file pattern followed by one or more owners. +# The format is described: https://github.blog/2017-07-06-introducing-code-owners/ + +# These owners will be the default owners for everything in the repo. +* @GITHUB_USER_NAME_GOES_HERE + + +# ----------------------------------------------- +# BELOW THIS LINE ARE TEMPLATES, UNUSED +# ----------------------------------------------- +# Order is important. The last matching pattern has the most precedence. +# So if a pull request only touches javascript files, only these owners +# will be requested to review. +# *.js @octocat @github/js + +# You can also use email addresses if you prefer. +# docs/* docs@example.com \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..8128d59c --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,136 @@ + +# TBD Code of Conduct + +TBD builds infrastructure for the next wave of innovation in financial services — which we believe will be decentralized, permissionless, and non-custodial. This means opening the global economy to everyone. We extend the same principles of inclusion to our developer ecosystem. We are excited to build with you. So we will ensure our community is truly open, transparent and inclusive. Because of the global nature of our project, diversity and inclusivity is paramount to our success. We not only welcome diverse perspectives, we **need** them! + +The code of conduct below reflects the expectations for ourselves and for our community. + + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, physical appearance, 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 and welcoming 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 + +The TBD Open Source Governance Committee (GC) is 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. + +The GC has 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 project spaces, and it also applies when an individual is representing the project or its community in public spaces. 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, or any space where the project is listed as part of your profile. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the TBD Open Source Governance Committee (GC) at +`tbd-open-source-governance@squareup.com`. +All complaints will be reviewed and investigated promptly and fairly. + +The GC is obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +The GC 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 the GC, 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 and forums. + +Although this list cannot be exhaustive, we explicitly honor diversity in age, culture, ethnicity, gender identity or expression, language, national origin, political beliefs, profession, race, religion, sexual orientation, socioeconomic status, and technical ability. We will not tolerate discrimination based on any of the protected characteristics above, including participants with disabilities. + +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 +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +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.1]: https://www.contributor-covenant.org/version/2/1/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 00000000..95b8a6fa --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,214 @@ +# Contribution Guide + +There are many ways to be an open source contributor, and we're here to help you on your way! You may: + +* Propose ideas in our + [discord](https://discord.gg/tbd) +* Raise an issue or feature request in our [issue tracker](LINK_HERE) ___***FIX LINK AND REMOVE THIS NOTICE***___ +* Help another contributor with one of their questions, or a code review +* Suggest improvements to our Getting Started documentation by supplying a Pull Request +* Evangelize our work together in conferences, podcasts, and social media spaces. + +This guide is for you. + +## Development Prerequisites + +___***UPDATE TABLE OF PROJECT DEPS AND INSTALLATION NOTES***___ + +| Requirement | Tested Version | Installation Instructions | +|-------------|----------------|------------------------------------------------------| +| Go | 1.17.6 |[go.dev](https://go.dev/doc/tutorial/compile-install) | +| Mage | 1.12.1 |[magefile.org](https://magefile.org/) | +| Java | 17.0.2 | Below, recommended via [SDKMan](https://sdkman.io) | + +### Go + +This project is written in Go, a modern, open source programming language. + +You may verify your `go` installation via the terminal: + +``` +$> go version +go version go1.17.6 darwin/amd64 +``` + +If you do not have go, we recommend installing it by: + +#### MacOS + +##### Homebrew +``` +$> brew install go +``` + +#### Linux + +See the [Go Installation Documentation](https://go.dev/doc/install). + +### Mage + +The build is run by Mage. + +You may verify your `mage` installation via the terminal: + +``` +$> mage --version +Mage Build Tool 1.12.1 +Build Date: 2021-12-15T21:00:02Z +Commit: 2f1ec40 +built with: go1.17.6 +``` + +#### MacOS + +##### Homebrew + +``` +$> brew install mage +``` + +#### Linux + +Installation instructions are on the [Magefile home page](https://magefile.org/). + +### Java + +This project is written in Java, a typesafe, compiled programming language. + +You may verify your `java` installation via the terminal by running `java -version`. + +If you do not have Java, we recommend installing it +via [SDKMan](https://sdkman.io/install). This is a project which will allow you +to easily install the Java Development Kit (JDK), runtime (JRE), and related frameworks, +build tools, and runtimes. + +After you've installed SDKMan, you may install Java: + +#### SDKMan (cross-platform instructions) + +```shell +$> sdk install java + ... +Do you want java 17.0.2-open to be set as default? (Y/n): Y +Setting java 17.0.2-open as default. +``` + +You may test your installation: + +```shell +$> java -version +openjdk version "17.0.2" 2022-01-18 +OpenJDK Runtime Environment (build 17.0.2+8-86) +OpenJDK 64-Bit Server VM (build 17.0.2+8-86, mixed mode, sharing) +``` + +--- +**NOTE** + +You may additionally look for other Java versions to install by running `sdk list java`: + +...or other installation candidates like Apache Ant, Apache Maven, etc, by running `sdk list`. + +Consult the SDKMan documentation for more info. + +--- + +## Build (Mage) + +``` +$> mage build +``` + +## Build (Java / Gradle) + +### macOS / Linux +```shell +$> ./gradlew build +``` + +### Windows +```shell +$> gradlew.bat build +``` + +## Test (Mage) + +``` +$> mage test +``` + +## Test (Java / Gradle) + +### macOS / Linux +```shell +$> ./gradlew test +``` + +### Windows +```shell +$> gradlew.bat test +``` + +--- +**NOTE** + +You may also combine Gradle build targets in one call, like: + +```shell +$> ./gradlew clean build test +``` + +--- + +## Communications + +### Issues + +Anyone from the community is welcome (and encouraged!) to raise issues via +[GitHub Issues](LINK_HERE) ___***FIX LINK AND REMOVE THIS NOTICE***___. + +### Discussions + +Design discussions and proposals take place in our [discord](https://discord.gg/tbd). + +We advocate an asynchronous, written debate model - so write up your thoughts and invite the community to join in! + +### Continuous Integration + +Build and Test cycles are run on every commit to every branch on [CircleCI](LINK_HERE). + + ___***FIX LINK ABOVE AND REMOVE THIS NOTICE***___ + +## Contribution + +We review contributions to the codebase via GitHub's Pull Request mechanism. We have +the following guidelines to ease your experience and help our leads respond quickly +to your valuable work: + +* Start by proposing a change either in Issues (most appropriate for small + change requests or bug fixes) or in Discussions (most appropriate for design + and architecture considerations, proposing a new feature, or where you'd + like insight and feedback) +* Cultivate consensus around your ideas; the project leads will help you + pre-flight how beneficial the proposal might be to the project. Developing early + buy-in will help others understand what you're looking to do, and give you a + greater chance of your contributions making it into the codebase! No one wants to + see work done in an area that's unlikely to be incorporated into the codebase. +* Fork the repo into your own namespace/remote +* Work in a dedicated feature branch. Atlassian wrote a great + [description of this workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow) +* When you're ready to offer your work to the project, first: +* Squash your commits into a single one (or an appropriate small number of commits), and + rebase atop the upstream `main` branch. This will limit the potential for merge + conflicts during review, and helps keep the audit trail clean. A good writeup for + how this is done is + [here](https://medium.com/@slamflipstrom/a-beginners-guide-to-squashing-commits-with-git-rebase-8185cf6e62ec), and if you're + having trouble - feel free to ask a member or the community for help or leave the commits as-is, and flag that you'd like + rebasing assistance in your PR! We're here to support you. +* Open a PR in the project to bring in the code from your feature branch. +* The maintainers noted in the `CODEOWNERS` file will review your PR and optionally + open a discussion about its contents before moving forward. +* Remain responsive to follow-up questions, be open to making requested changes, and... + You're a contributor! +* And remember to respect everyone in our global development community. Guidelines + are established in our `CODE_OF_CONDUCT.md`. diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 00000000..d02f5ad2 --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,67 @@ +# TBD Open Source Project Governance + + + +* [Contributors](#contributors) +* [Maintainers](#maintainers) +* [Governance Committee](#governance-committee) + + + +## Contributors + +Anyone may be a contributor to TBD projects. Contribution may take the form of: + +* Asking and answering questions on the Discord or GitHub Issues +* Filing an issue +* Offering a feature or bug fix via a Pull Request +* Suggesting documentation improvements +* ...and more! + +Anyone with a GitHub account may use the project issue trackers and communications channels. We welcome newcomers, so don't hesitate to say hi! + +## Maintainers + +Maintainers have write access to GitHub repositories and act as project administrators. They approve and merge pull requests, cut releases, and guide collaboration with the community. They have: + +* Commit access to their project's repositories +* Write access to continuous integration (CI) jobs + +Both maintainers and non-maintainers may propose changes to +source code. The mechanism to propose such a change is a GitHub pull request. Maintainers review and merge (_land_) pull requests. + +If a maintainer opposes a proposed change, then the change cannot land. The exception is if the Governance Committee (GC) votes to approve the change despite the opposition. Usually, involving the GC is unnecessary. + +See: + +* [List of maintainers - `MAINTAINERS.md`](./MAINTAINERS.md) +* [Contribution Guide - `CONTRIBUTING.md`](./CONTRIBUTING.md) + +### Maintainer activities + +* Helping users and novice contributors +* Contributing code and documentation changes that improve the project +* Reviewing and commenting on issues and pull requests +* Participation in working groups +* Merging pull requests + +## Governance Committee + +The TBD Open Source Governance Committee (GC) has final authority over this project, including: + +* Technical direction +* Project governance and process (including this policy) +* Contribution policy +* GitHub repository hosting +* Conduct guidelines +* Maintaining the list of maintainers + +The current GC members are: + +* Ben Boeser, Technical Partnerships Lead, TBD +* Angie Jones, Head of Developer Relations, TBD +* Julie Kim, Head of Legal, TBD +* Nidhi Nahar, Head of Patents and Open Source, Block +* Andrew Lee Rubinger, Head of Open Source, TBD + +Members are not to be contacted individually. The GC may be reached through `tbd-open-source-governance@squareup.com` and is an available resource in mediation or for sensitive cases beyond the scope of project maintainers. It operates as a "Self-appointing council or board" as defined by Red Hat: [Open Source Governance Models](https://www.redhat.com/en/blog/understanding-open-source-governance-models). diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..ebd7b4b0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,203 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Copyright 2023 Block, Inc. + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 00000000..c8ba3b38 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# $PROJECT_NAME README + +Congrats, project leads! You got a new project to grow! + +This stub is meant to help you form a strong community around your work. It's yours to adapt, and may +diverge from this initial structure. Just keep the files seeded in this repo, and the rest is yours to evolve! + +## Introduction + +Orient users to the project here. This is a good place to start with an assumption +that the user knows very little - so start with the Big Picture and show how this +project fits into it. It may be good to reference/link the broader architecture in the +`collaboration` repo or the developer site here. + +Then maybe a dive into what this project does. + +Diagrams and other visuals are helpful here. Perhaps code snippets showing usage. + +Project leads should complete, alongside this `README`: +* [CODEOWNERS](./CODEOWNERS) - set project lead(s) +* [CONTRIBUTING.md](./CONTRIBUTING.md) - Fill out how to: install prereqs, build, test, run, access CI, chat, discuss, file issues +* [Bug-report.md](.github/ISSUE_TEMPLATE/bug-report.md) - Fill out `Assignees` add codeowners @names +* [config.yml](.github/ISSUE_TEMPLATE/config.yml) - remove "(/add your discord channel..)" and replace the url with your Discord channel if applicable + +The other files in this template repo may be used as-is: +* [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) +* [GOVERNANCE.md](./GOVERNANCE.md) +* [LICENSE](./LICENSE) + +## Project Resources + +| Resource | Description | +| ------------------------------------------ | ------------------------------------------------------------------------------ | +| [CODEOWNERS](./CODEOWNERS) | Outlines the project lead(s) | +| [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) | Expected behavior for project contributors, promoting a welcoming environment | +| [CONTRIBUTING.md](./CONTRIBUTING.md) | Developer guide to build, test, run, access CI, chat, discuss, file issues | +| [GOVERNANCE.md](./GOVERNANCE.md) | Project governance | +| [LICENSE](./LICENSE) | Apache License, Version 2.0 | From a1b377ce3a9356f9931ec1593688f3f70110d568 Mon Sep 17 00:00:00 2001 From: Andrew Lee Rubinger Date: Wed, 25 Sep 2024 12:40:58 -0700 Subject: [PATCH 02/10] Adapt CoC for Block --- CODE_OF_CONDUCT.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 8128d59c..88e832ae 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,11 +1,10 @@ -# TBD Code of Conduct +# Block Code of Conduct -TBD builds infrastructure for the next wave of innovation in financial services — which we believe will be decentralized, permissionless, and non-custodial. This means opening the global economy to everyone. We extend the same principles of inclusion to our developer ecosystem. We are excited to build with you. So we will ensure our community is truly open, transparent and inclusive. Because of the global nature of our project, diversity and inclusivity is paramount to our success. We not only welcome diverse perspectives, we **need** them! +Block's mission is Economic Empowerment. This means opening the global economy to everyone. We extend the same principles of inclusion to our developer ecosystem. We are excited to build with you. So we will ensure our community is truly open, transparent and inclusive. Because of the global nature of our project, diversity and inclusivity is paramount to our success. We not only welcome diverse perspectives, we **need** them! The code of conduct below reflects the expectations for ourselves and for our community. - ## Our Pledge We as members, contributors, and leaders pledge to make participation in our @@ -43,7 +42,7 @@ Examples of unacceptable behavior include: ## Enforcement Responsibilities -The TBD Open Source Governance Committee (GC) is responsible for clarifying and enforcing our standards of +The Block Open Source Governance Committee (GC) is 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. @@ -60,8 +59,8 @@ This Code of Conduct applies within all project spaces, and it also applies when ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the TBD Open Source Governance Committee (GC) at -`tbd-open-source-governance@squareup.com`. +reported to the Block Open Source Governance Committee (GC) at +`TODO Create Google Group` (Issue #1) All complaints will be reviewed and investigated promptly and fairly. The GC is obligated to respect the privacy and security of the From 10449fba25c62c70bd1dffa635115e10a2b22771 Mon Sep 17 00:00:00 2001 From: Andrew Lee Rubinger Date: Wed, 25 Sep 2024 12:46:22 -0700 Subject: [PATCH 03/10] Adapt GOVERNANCE.md to Block --- GOVERNANCE.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index d02f5ad2..8e81acc8 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -1,4 +1,4 @@ -# TBD Open Source Project Governance +# Block Open Source Project Governance @@ -10,7 +10,7 @@ ## Contributors -Anyone may be a contributor to TBD projects. Contribution may take the form of: +Anyone may be a contributor to Block open source projects. Contribution may take the form of: * Asking and answering questions on the Discord or GitHub Issues * Filing an issue @@ -47,7 +47,7 @@ See: ## Governance Committee -The TBD Open Source Governance Committee (GC) has final authority over this project, including: +The Block Open Source Governance Committee (GC) has final authority over this project, including: * Technical direction * Project governance and process (including this policy) @@ -58,10 +58,8 @@ The TBD Open Source Governance Committee (GC) has final authority over this proj The current GC members are: -* Ben Boeser, Technical Partnerships Lead, TBD -* Angie Jones, Head of Developer Relations, TBD -* Julie Kim, Head of Legal, TBD -* Nidhi Nahar, Head of Patents and Open Source, Block +* Manik Surtani, Head of Open Source Program Office, Block * Andrew Lee Rubinger, Head of Open Source, TBD +* Nidhi Nahar, Head of Patents and Open Source, Block -Members are not to be contacted individually. The GC may be reached through `tbd-open-source-governance@squareup.com` and is an available resource in mediation or for sensitive cases beyond the scope of project maintainers. It operates as a "Self-appointing council or board" as defined by Red Hat: [Open Source Governance Models](https://www.redhat.com/en/blog/understanding-open-source-governance-models). +Members are not to be contacted individually. The GC may be reached through `TODO Update this` and is an available resource in mediation or for sensitive cases beyond the scope of project maintainers. It operates as a "Self-appointing council or board" as defined by Red Hat: [Open Source Governance Models](https://www.redhat.com/en/blog/understanding-open-source-governance-models). From 07ec524fc1d55f1dae85b436adfed3c882fa407e Mon Sep 17 00:00:00 2001 From: Andrew Lee Rubinger Date: Wed, 25 Sep 2024 12:48:03 -0700 Subject: [PATCH 04/10] Adapt README.md further to Block --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index c8ba3b38..8cc8f9e3 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,7 @@ diverge from this initial structure. Just keep the files seeded in this repo, an Orient users to the project here. This is a good place to start with an assumption that the user knows very little - so start with the Big Picture and show how this -project fits into it. It may be good to reference/link the broader architecture in the -`collaboration` repo or the developer site here. +project fits into it. Then maybe a dive into what this project does. From 91f53290195cd6dfedef155ed70e5da744e55b5e Mon Sep 17 00:00:00 2001 From: Andrew Lee Rubinger Date: Tue, 12 Nov 2024 00:29:16 -0800 Subject: [PATCH 05/10] Update GOVERNANCE.md Strip titles for public viewing --- GOVERNANCE.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 8e81acc8..b7904a8c 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -58,8 +58,8 @@ The Block Open Source Governance Committee (GC) has final authority over this pr The current GC members are: -* Manik Surtani, Head of Open Source Program Office, Block -* Andrew Lee Rubinger, Head of Open Source, TBD -* Nidhi Nahar, Head of Patents and Open Source, Block +* Manik Surtani +* Andrew Lee Rubinger +* Nidhi Nahar Members are not to be contacted individually. The GC may be reached through `TODO Update this` and is an available resource in mediation or for sensitive cases beyond the scope of project maintainers. It operates as a "Self-appointing council or board" as defined by Red Hat: [Open Source Governance Models](https://www.redhat.com/en/blog/understanding-open-source-governance-models). From 1189d587c74c611d144949953ed1b08483e20a8c Mon Sep 17 00:00:00 2001 From: Andrew Lee Rubinger Date: Tue, 12 Nov 2024 00:36:58 -0800 Subject: [PATCH 06/10] Issue #1 - Update GOVERNANCE.md --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index b7904a8c..a09870ca 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -62,4 +62,4 @@ The current GC members are: * Andrew Lee Rubinger * Nidhi Nahar -Members are not to be contacted individually. The GC may be reached through `TODO Update this` and is an available resource in mediation or for sensitive cases beyond the scope of project maintainers. It operates as a "Self-appointing council or board" as defined by Red Hat: [Open Source Governance Models](https://www.redhat.com/en/blog/understanding-open-source-governance-models). +Members are not to be contacted individually. The GC may be reached through `open-source-governance@block.xyz` and is an available resource in mediation or for sensitive cases beyond the scope of project maintainers. It operates as a "Self-appointing council or board" as defined by Red Hat: [Open Source Governance Models](https://www.redhat.com/en/blog/understanding-open-source-governance-models). From 074eed53292768c9e1a2c336188c66178a4dc747 Mon Sep 17 00:00:00 2001 From: Andrew Lee Rubinger Date: Tue, 12 Nov 2024 00:37:58 -0800 Subject: [PATCH 07/10] Issue #1 - Update CODE_OF_CONDUCT.md --- CODE_OF_CONDUCT.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 88e832ae..b8e82186 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -60,8 +60,8 @@ This Code of Conduct applies within all project spaces, and it also applies when Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the Block Open Source Governance Committee (GC) at -`TODO Create Google Group` (Issue #1) -All complaints will be reviewed and investigated promptly and fairly. +`open-source-governance@block.xyz`. All complaints will be reviewed and +investigated promptly and fairly. The GC is obligated to respect the privacy and security of the reporter of any incident. From e36a025ccb41a0c42b35bda942a2f919eb923c65 Mon Sep 17 00:00:00 2001 From: Andrew Lee Rubinger Date: Wed, 13 Nov 2024 11:10:04 -0800 Subject: [PATCH 08/10] Remove member list from GOVERNANCE.md Future-proof this as membership of GC may change over time and copies of this may get stale --- GOVERNANCE.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index a09870ca..aa2f1a03 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -56,10 +56,4 @@ The Block Open Source Governance Committee (GC) has final authority over this pr * Conduct guidelines * Maintaining the list of maintainers -The current GC members are: - -* Manik Surtani -* Andrew Lee Rubinger -* Nidhi Nahar - -Members are not to be contacted individually. The GC may be reached through `open-source-governance@block.xyz` and is an available resource in mediation or for sensitive cases beyond the scope of project maintainers. It operates as a "Self-appointing council or board" as defined by Red Hat: [Open Source Governance Models](https://www.redhat.com/en/blog/understanding-open-source-governance-models). +The GC may be reached through `open-source-governance@block.xyz` and is an available resource in mediation or for sensitive cases beyond the scope of project maintainers. It operates as a "Self-appointing council or board" as defined by Red Hat: [Open Source Governance Models](https://www.redhat.com/en/blog/understanding-open-source-governance-models). From 732f429ce68427f429cb7408d923cdcfc90482a6 Mon Sep 17 00:00:00 2001 From: Andrew Lee Rubinger Date: Wed, 13 Nov 2024 15:17:43 -0800 Subject: [PATCH 09/10] Issue #2 - Update CONTRIBUTING.md for Block --- CONTRIBUTING.md | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 95b8a6fa..ae4a0a7f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,10 +1,25 @@ # Contribution Guide +## Notice for Project Leads +--- +___***THIS IS A TEMPLATE; SECTIONS FLAGGED LIKE THIS are for project leads to fill out***___ +This is a template and offers suggestions for orienting your community to: +* Build +* Install Build Prereqs +* Contribute + +It's likely that you'll customize this to your project's needs, and the areas of focus here are a starting point for you to fill out, remove, expand -- whatever serves project success. + +If you note an area where this template itself could be improved - have at it! You may file an issue or PR in https://github.com/block/oss-project-template. + +--- + There are many ways to be an open source contributor, and we're here to help you on your way! You may: * Propose ideas in our - [discord](https://discord.gg/tbd) -* Raise an issue or feature request in our [issue tracker](LINK_HERE) ___***FIX LINK AND REMOVE THIS NOTICE***___ + [Discord](https://discord.gg/SOMETHING) ___***DETERMINE IF APPLICABLE, UPDATE LINK AND REMOVE THIS NOTICE***___ +* Raise an issue or feature request in our [issue tracker](LINK_HERE) ___***UPDATE LINK AND REMOVE THIS NOTICE***___ +* Raise an issue or feature request in our [discussions](LINK_HERE) ___***DETERMINE IF APPLICABLE, UPDATE LINK AND REMOVE THIS NOTICE***___ * Help another contributor with one of their questions, or a code review * Suggest improvements to our Getting Started documentation by supplying a Pull Request * Evangelize our work together in conferences, podcasts, and social media spaces. @@ -169,13 +184,13 @@ Anyone from the community is welcome (and encouraged!) to raise issues via ### Discussions -Design discussions and proposals take place in our [discord](https://discord.gg/tbd). +Design discussions and proposals take place in our [Discord](https://discord.gg/SOMETHING). ___***DETERMINE IF APPLICABLE, FIX LINK AND REMOVE THIS NOTICE***___. We advocate an asynchronous, written debate model - so write up your thoughts and invite the community to join in! ### Continuous Integration -Build and Test cycles are run on every commit to every branch on [CircleCI](LINK_HERE). +Build and Test cycles are run on every commit to every branch on [GitHub Actions](LINK_HERE). ___***FIX LINK ABOVE AND REMOVE THIS NOTICE***___ From b5bb56be86ec820e392e129eea2b0a7eee7ccf72 Mon Sep 17 00:00:00 2001 From: Andrew Lee Rubinger Date: Wed, 13 Nov 2024 23:03:51 -0800 Subject: [PATCH 10/10] Update config.yml to Block from TBD --- .github/ISSUE_TEMPLATE/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index ce71f103..827b7922 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,4 +1,4 @@ contact_links: - name: ❓ Questions and Help 🤔 - url: https://discord.gg/tbd (/add your discord channel if applicable) + url: https://discord.gg/block (/add your discord channel if applicable) about: This issue tracker is not for support questions. Please refer to the community for more help.