├── README.md ├── COVENANT.md ├── GOVERNANCE.md └── CONTRIBUTING.md /README.md: -------------------------------------------------------------------------------- 1 | # Governance 2 | 3 | This repository contains governance documentation and information: 4 | 5 | * [GOVERNANCE.md](./GOVERNANCE.md) contains the governance bylaws for the technical steering committee (TSC). 6 | * [CONTRIBUTING.md](./CONTRIBUTING.md) is a guide to contributing to Lexicon Community. 7 | * [COVENANT.md](./COVENANT.md) is the contributor covenant and code of conduct. 8 | 9 | [Governance Discussions](https://github.com/lexicon-community/governance/discussions) is used for announcements, technical steering committee activity, and governance discussions. 10 | 11 | # Technical Steering Committee 12 | 13 | * Boris Mann `@bmann.ca` 14 | * Ms Boba `@essentialrandom.bsky.social` 15 | * Nick Gerakines `@ngerakines.me` 16 | * Rudy Fraser `@rudyfraser.com` 17 | * Ryan Barrett `@snarfed.org` 18 | * Tom Sherman `@tom.sherman.is` 19 | * Bluesky, PBC `@bsky.app` -------------------------------------------------------------------------------- /COVENANT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant 2 | 3 | ## Our Pledge 4 | 5 | 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. 6 | 7 | We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. 8 | 9 | ## Our Standards 10 | 11 | Examples of behavior that contributes to a positive environment for our community include: 12 | 13 | * Demonstrating empathy and kindness toward other people 14 | * Being respectful of differing opinions, viewpoints, and experiences 15 | * Giving and gracefully accepting constructive feedback 16 | * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience 17 | * Focusing on what is best not just for us as individuals, but for the overall community 18 | 19 | Examples of unacceptable behavior include: 20 | 21 | * The use of sexualized language or imagery, and sexual attention or advances of any kind 22 | * Trolling, insulting, or derogatory comments, and personal or political attacks 23 | * Public or private harassment 24 | * Publishing others' private information, such as a physical or email address, without their explicit permission 25 | * Other conduct which could reasonably be considered inappropriate in a professional setting 26 | 27 | ## Enforcement Responsibilities 28 | 29 | 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. 30 | 31 | 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. 32 | 33 | ## Scope 34 | 35 | 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 email address, posting via an official social media account, or acting as an appointed representative at an online or offline event. 36 | 37 | ## Enforcement 38 | 39 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the technical steering committee. All complaints will be reviewed and investigated promptly and fairly. 40 | 41 | All community leaders are obligated to respect the privacy and security of the reporter of any incident. 42 | 43 | ## Enforcement Guidelines 44 | 45 | Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: 46 | 47 | ### 1. Correction 48 | 49 | **Community Impact:** Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. 50 | 51 | **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. 52 | 53 | ### 2. Warning 54 | 55 | **Community Impact:** A violation through a single incident or series of actions. 56 | 57 | **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. 58 | 59 | ### 3. Temporary Ban 60 | 61 | **Community Impact:** A serious violation of community standards, including sustained inappropriate behavior. 62 | 63 | **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. 64 | 65 | ### 4. Permanent Ban 66 | 67 | **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. 68 | 69 | **Consequence:** A permanent ban from any sort of public interaction within the community. 70 | 71 | ## Attribution 72 | 73 | This Code of Conduct is adapted from the Contributor Covenant, version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. 74 | 75 | Community Impact Guidelines were inspired by Mozilla’s code of conduct enforcement ladder. 76 | 77 | For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations. -------------------------------------------------------------------------------- /GOVERNANCE.md: -------------------------------------------------------------------------------- 1 | # Governance 2 | 3 | ## The Organization 4 | 5 | The mission of the Lexicon Community is to create an effective, active blueprint for collective ownership of Lexicons in the ATMosphere and build a stable and thoughtful lexicon that can be used by application, system, and SDK developers. 6 | 7 | It does so through a partnership between Technical Steering Committee, Collaborators, and the broad AT Protocol community to work on a shared Lexicon and provide infrastructure to support it. 8 | 9 | The [lexicon-community/governance](https://github.com/lexicon-community/governance) project contains a list of contributors. 10 | 11 | ## Technical Steering Committee 12 | 13 | This project is collectively governed by a Technical Steering Committee (TSC) that has final authority over this project, including: 14 | 15 | * Technical direction 16 | * Lexicon additions and changes 17 | * Project governance and process 18 | * Collaborator and contribution governance 19 | * Project infrastructure 20 | 21 | Initial membership in the TSC was granted to individuals who have been active contributors to ATProtocol applications, libraries, and components. Membership will evolve and adapt to meet the project's needs. 22 | 23 | See the [Consent Seeking Decision Process](#consent-seeking-decision-process) below for further details on the consensus model used for governance. 24 | 25 | ## Collaborators 26 | 27 | Collaborators are individuals who contribute to the Lexicon Community. They may represent themselves or an organization. 28 | 29 | Collaborators' primary responsibility is contributing to the technical and non-technical discussions and proposals within the Lexicon Community. There is no requirement that collaborators are AT Protocol software developers. 30 | 31 | ## Working Groups 32 | 33 | The work of the Lexicon Community starts with working groups. Working groups are groups of individuals selected by the technical steering committee to collaborate for a specific purpose. 34 | 35 | Additions and significant changes to the Lexicon Community schema, infrastructure, and organization start with the designation of a working group with a vote of formation by the technical steering committee. Only TSC members may propose working groups, so non-TSC members must seek sponsorship. 36 | 37 | There are two requirements for forming a working group: 38 | 39 | 1. An objective that is documented and used by the working group to focus the scope of its work. 40 | 2. A vote by technical steering committee members. 41 | 42 | A working group's objective and the produced result do not need to be a finished product, and it is not expected that the produced result will be used as is. 43 | 44 | For example, the technical steering committee could form a working group with three volunteers to "Provide an initial lexicon schema with documentation and reference code for recipe data structures and present a recommendation to the TSC in 30 days." 45 | 46 | The TSC is ultimately responsible for ensuring working groups deliver on their objectives, taking further action, or disbanding working groups, and does so at its discretion. 47 | 48 | ## Consent Seeking Decision Process 49 | 50 | Lexicon Community follows a consent-seeking decision-making model, on the model of [Sociocratic organizations](https://www.sociocracyforall.org/consent-decision-making/) and the [IETF](https://datatracker.ietf.org/doc/html/rfc7282). 51 | 52 | After a discussion of an agenda item, the moderator goes around each voting party and asks, "Do you have any objection to the proposal?". If a valid objection is raised, the proposal cannot move forward as is, and must be amended until no objections are left. Amendments might include adding trial periods, reducing the scope of the proposal, or further research. 53 | 54 | A decision is made when there is no objection left. 55 | 56 | ### Valid Objections 57 | 58 | In consent-seeking decision-making, valid objections cannot be a matter of personal preference, but must represent a potential harm to the group’s purpose or strategy. By raising an objection, a person signals that the current proposal is outside their range of tolerance, and poses a risk they believe the group cannot afford to take. 59 | 60 | By not raising an objection, each participant agrees the proposal is: 61 | 62 | * "Good enough for now," moving the Lexicon Community towards its stated objectives. 63 | * "Safe enough to try," not causing irreparable or disproportionate harm to the Lexicon Community’s mission. 64 | 65 | ### Overriding Objections 66 | 67 | Since each objection is a signal that someone thinks irreparable harm might come to the group’s goals, it is paramount that the group listens to objections and deeply tries to understand the reasoning behind them, even when they might not seem to make sense at first. 68 | 69 | Overriding an objection should be a last resort, and might by itself harm the goals of the group in the long term. Should it become necessary, an objection can be overridden by majority vote. 70 | 71 | ## Announcements and News 72 | 73 | The Technical Steering Committee communicates official news and announcements in two ways: 74 | 75 | 1. Through "Announcement" categorized discussions in the [lexicon-community/governance](https://github.com/lexicon-community/governance) and [lexicon-community/lexicon](https://github.com/lexicon-community/lexicon) GitHub discussions 76 | 77 | 2. Through social media posts on the official [@lexicon.community](https://hopper.at/?aturi=at%3A%2F%2Flexicon.community) account. 78 | 79 | ## General Discourse 80 | 81 | The Technical Steering Committee and collaborators encourage and moderate collaboration with the intention of producing tangible contributions to the Lexicon Community. 82 | 83 | Discourse takes several forms, but official channels include: 84 | 85 | * GitHub Discussions, Issues, and Pull-Requests 86 | * Discord 87 | * Email 88 | 89 | Any comments, opinions, or writings of technical steering committee members and collaborators are their own and not of Lexicon Community unless explicitly indicated within the writing at the time. 90 | 91 | ## Contributor Guide and Covenant 92 | 93 | The Lexicon Community organization does not limit contributions to technical steering committee members and collaborators, but there are guidelines that everyone must follow. 94 | 95 | See [Contributor Guide](CONTRIBUTING.md) and [Contributor Covenant](COVENANT.md). 96 | 97 | Community members who refuse to adhere to the Contributor Guide or Contributor Covenant may be expelled from the project. 98 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributor Guide 2 | 3 | This document outlines what is expected of contributors to the Lexicon Community. 4 | 5 | ## Types of Contributions 6 | 7 | This organization is volunteer run and contributions come in many forms. Recognizing this is critical to having a diverse and inclusive organization. 8 | 9 | * Lexicon schema file changes, including the introduction and modification of `community.lexicon.*` changes. 10 | * Documentation and guidance on how Lexicon Community lexicons are used and referenced. 11 | * Reference material, including proof-of-concept code and writings, that provide context and examples for others on how to use Lexicon Community lexicons. 12 | * Policy, governance, and process contributions to improve how the Lexicon Community Technical Steering Committee and Collaborators work with the community and accomplish the project’s mission. 13 | 14 | There are other ways that people can contribute, and this is not an exclusive list. 15 | 16 | ## Lexicon Repository 17 | 18 | The [lexicon-community/lexicon](https://github.com/lexicon-community/lexicon) repository is the location that contains all of the official and approved lexicon schema files. 19 | 20 | The "main" branch contains lexicon schema files and related material that is considered “production”. Access to write to the main branch, including who has authority to merge content into it is moderated. 21 | 22 | ## Play Books 23 | 24 | ### How Do I Add A Lexicon? 25 | 26 | Lexicon additions and changes start with the formation of a working group at the direction of the technical steering committee. 27 | 28 | #### Working Group Formation 29 | 30 | Before any lexicon schema development occurs, a working group is formed. A working group is a short-lived group of 1-3 people that do the initial work for the lexicon. 31 | 32 | 1. In the [lexicon-community/governance](https://github.com/lexicon-community/governance) repository, a discussion is created by a technical steering committee that states the objective of the working group. It should include what the expected deliverable is as well as a general timeline. That technical steering committee member is the directly responsible individual and is charged with ensuring the objective is met. 33 | 2. Discussion occurs among technical steering committee members to get to agreement on the objective and goals. 34 | 3. In the lexicon-community/governance repository, an issue is created to bootstrap the working group. That issue is used to track all of the tasks needed to enable the working group to be successful. 35 | 36 | #### Working Group Day-to-Day 37 | 38 | Once the working group is formed, it is up to it’s members to go about the business of the working group to meet the objective. Working groups are meant to be self-organizing, but use official channels. 39 | 40 | Depending on the site and scope of the working group, a temporary repository (i.e. "wg-bookmarks-lexicon") will be forked off of [lexicon-community/lexicon](https://github.com/lexicon-community/lexicon). Access will be limited to the technical steering committee and collaborators. 41 | 42 | 1. The working group produces the lexicon schema definition files, documentation, and reference material needed to fulfill their objective. 43 | 2. The working group reports this to the technical steering committee and during that meeting, the next steps are worked out. 44 | 45 | Eventually the produced work takes the form of a pull-request in the [lexicon-community/lexicon](https://github.com/lexicon-community/lexicon) repository. These pull requests will have an agreed upon "do not merge before" date to allow for adequate time for discussion. 46 | 47 | Alternatively, if the working group concludes with no proposed changes, some form of report or discussion will be reported in the [lexicon-community/lexicon](https://github.com/lexicon-community/lexicon) discussion indicating such. 48 | 49 | #### Request For Feedback 50 | 51 | After the working group pull requests are created, a call for feedback is made to the broader community of collaborators and Lexicon Community contributors. 52 | 53 | This open, iterative process takes place publicly with discourse happening in [lexicon-community/lexicon](https://github.com/lexicon-community/lexicon) discussions. 54 | 55 | Once the "do not merge before" date has passed and if the changes have approval by at least 2 technical steering committee members, the changes can be merged and move forward to release. 56 | 57 | #### Release 58 | 59 | The release process for lexicon additions and changes includes several steps: 60 | 61 | 1. The changes are merged into the main branch. 62 | 2. The lexicon is published for discovery through official lexicon discovery paths, specifically PDS records and DNS records. 63 | 3. The lexicon is announced through the Lexicon Community social media channel 64 | 65 | ### How are Lexicons Updated? 66 | 67 | Lexicon modifications can take two forms. 68 | 69 | 1. Non-structural changes, including documentation and reference material, can be proposed by contributors in the form of pull requests. 70 | 2. Structural changes and feedback should take place in the form of a pull request or GitHub discussion 71 | 72 | A technical steering committee member or collaborator may make the determination that the change is large enough in scope to warrant additional discussion and scrutiny. In those cases, a working group will be formed to fully explore the change and its impact. 73 | 74 | #### Hotfixes 75 | 76 | An important caveat to this is the concept of a hotfix. In the event of a critical or breaking change, a technical steering committee member may create a hotfix pull request. A hotfix PR would require approval by at least two other TSC members to be merged and released. 77 | 78 | ### Lexicon Proposal Best Practices 79 | 80 | Lexicon schemas vary in complexity and there is no single design pattern to draw from. Instead, consider how you would answer the following questions when designing and proposing lexicon changes. 81 | 82 | What does the proposal accomplish and can it be accomplished with existing lexicons? 83 | 84 | Are common conventions used? Compared to adjacent Lexicon Community lexicon schema definition files, are fields and types that accomplish similar things named or presented in a way that makes them easy to understand? Are fields and types vague in naming or purpose? 85 | 86 | Do all fields and types have relevant and helpful documentation? Is there supplemental or localized documentation or writings supporting the proposal? 87 | 88 | Does the proposal include example records to demonstrate how they are used? Are the examples based on real-world scenarios that readers can use directly? 89 | 90 | Are there example applications or reference material in the form of code that demonstrate how records and methods are constructed and invoked? 91 | --------------------------------------------------------------------------------