The Breakdown

Project Breakdown

Every project within the Legesher portfolio follows a similar guideline and flow. Here's the inside scoop to understand how everything works together. 👍

Issues

We rely heavily on our repository issues to inform us of minor bugs, feedback from users, and to host our roadmap. Many of the repositories relate to one another, as do the issues. Keep an eye on our public roadmap to better understand where Legesher is headed.

Issue Labels

For issues in any repository, they follow the same conventions in terms of the labels that are available. They follow the same style guide for consistency sake across projects.

We group labels by color, according to broad categories. In most cases, each issue will assign a label from each category.

Labels are consistent across repositories, except for a few repository specific concepts. This is for the purpose of making the process of creating new issues and contributing to any repository in the Legesher portfolio easy and consistent.

Opportunity Labels

Opportunities describe the type of contribution that the issue is requesting. This follows the all-contributors description of recognizing all types of contributions.

Color: Blue (#66CCFF) 💬 Opportunity: Question: Answering Questions in Issues, Stack Overflow, Gitter, Slack, etc. 🐛 Opportunity: Bug: Links to issues reported by the user on this project 📝 Opportunity: Blog: Links to the blog post 💼 Opportunity: Business: People who execute on the business end 💻 Opportunity: Code: Links to commits by the user on this project 🖋 Opportunity: Content: e.g. website copy, blog posts are separate 📖 Opportunity: Documentation: Links to commits by the user on this project, Wiki, or other source of documentation 🎨 Opportunity: Design: Links to the logo/iconography/visual design/etc. 💡 Opportunity: Example: Links to the examples 📋 Opportunity: Event Organizing: Links to event page 💵 Opportunity: Financial: People or orgs who provide financial support, links to relevant page 🔍 Opportunity: Funding Finding: People who help find financial support 🤔 Opportunity: Ideas: People who help with ideas and planning 🚇 Opportunity: Infra: Hosting, Build-Tools, etc. Links to source file (like travis.yml) in repo, if applicable 🚧 Opportunity: Maintenance: People who help in maintaining the repo, links to commits by the user on this project 💌 Opportunity: Marketing : People who help in marketing the repo/project 📦 Opportunity: Platform: Porting to support a new platform 🔌 Opportunity: Plugin: Links to the repo home 📆 Opportunity: Project Management: Aids in the initiating, planning, controlling, and closing of a project 👀 Opportunity: Review: People who review the repo 🛡️ Opportunity: Security: Identify and/or reduce security threats, GDPR, Privacy, etc 🔧 Opportunity: Tool: Links to the repo home 🌍 Opportunity: Translation: Links to the translated content ⚠️ Opportunity: Test: Links to commits by the user on this project ✅ Opportunity: Tutorial: Links to the tutorial 📢 Opportunity: Talk: Links to the slides/recording/repo/etc 📓 Opportunity: User Testing: Links to user test notes 📹 Opportunity: Video: Links to the video

Status Labels

Color: Yellow (#E9FF70) Status: Available: the issue has been through sprint cleaning is available for delegation Status: Accepted: the issue has been accepted by development team to be completed in the upcoming sprint Color: Light Orange (#FFD670) Status: In Progress: the issue is currently a work in progress Status: On Hold: the issue has been placed on hold Color: Red (#FF6666) Status: Blocked: the issue has been blocked Color: Orange (#FF9770) Status: Review Needed: the issue needs further review in order to be marked complete Status: Revision Needed:the issue needs further revision before placed in review Color: Green (#70FF74) Status: Completed: the issue has been completed Color: Grey (#CFD3D7) Status: Abandoned: the issue has been abandoned, may revisit at a later time

Type Labels

Color: Coral (#FF70A6) Type: Bug: this issue is a bug related fix/issue Type: Epic: this issue is a larger snapshot of a feature Type: Duplicate: this issue has already been mentioned elsewhere

Priority Labels

Color: Purple (#D1A4FF) Priority: Critical: this issue is at the upmost importance and needs to be completed asap Priority: High: this issue is to have top preference as the project cannot proceed without Priority: Medium: this issue's resolution has a flexible or extended deadline Priority: Low: this issue's resolution is non-immediate

Dialect Labels

Color: Dark Pink (#CD5A86) Dialect: English: English spoken language Dialect: French: French spoken language Dialect: German: German spoken language Dialect: Spanish: Spanish spoken language Dialect: Italian: Italian spoken language Dialect: Polish: Polish spoken language Dialect: Portuguese: Portuguese spoken language Dialect: Russian: Russian spoken language Dialect: Ukrainian: Ukrainian spoken language Dialect: Afar : Afar spoken language Dialect: Abkhazian : Abkhazian spoken language Dialect: Afrikaans : Afrikaans spoken language Dialect: Akan : Akan spoken language Dialect: Amharic : Amharic spoken language Dialect: Aragonese : Aragonese spoken language Dialect: Arabic : Arabic spoken language Dialect: Assamese : Assamese spoken language Dialect: Avar : Avar spoken language Dialect: Aymara : Aymara spoken language Dialect: Azerbaijani : Azerbaijani spoken language Dialect: Chechen : Chechen spoken language Dialect: Bashkir : Bashkir spoken language Dialect: Belarusian : Belarusian spoken language Dialect: Bulgarian : Bulgarian spoken language Dialect: Bihari : Bihari spoken language Dialect: Bislama : Bislama spoken language Dialect: Bambara : Bambara spoken language Dialect: Bengali : Bengali spoken language Dialect: Tibetan : Tibetan spoken language Dialect: Breton : Breton spoken language Dialect: Bosnian : Bosnian spoken language Dialect: Catalan : Catalan spoken language Dialect: Chamorro : Chamorro spoken language Dialect: Corsican : Corsican spoken language Dialect: Cree : Cree spoken language Dialect: Czech : Czech spoken language Dialect: Old Church Slavonic / Old Bulgarian : Old Church Slavonic / Old Bulgarian spoken language Dialect: Chuvash : Chuvash spoken language Dialect: Welsh : Welsh spoken language Dialect: Danish : Danish spoken language Dialect: Divehi : Divehi spoken language Dialect: Dzongkha : Dzongkha spoken language Dialect: Ewe : Ewe spoken language Dialect: Esperanto : Esperanto spoken language Dialect: Estonian : Estonian spoken language Dialect: Basque : Basque spoken language Dialect: Peul : Peul spoken language Dialect: Finnish : Finnish spoken language Dialect: Fijian : Fijian spoken language Dialect: Faroese : Faroese spoken language Dialect: West Frisian : West Frisian spoken language Dialect: Irish : Irish spoken language Dialect: Galician : Galician spoken language Dialect: Guarani : Guarani spoken language Dialect: Manx : Manx spoken language Dialect: Hausa : Hausa spoken language Dialect: Hebrew : Hebrew spoken language Dialect: Hindi : Hindi spoken language Dialect: Hiri Motu : Hiri Motu spoken language Dialect: Haitian : Haitian spoken language Dialect: Hungarian : Hungarian spoken language Dialect: Armenian : Armenian spoken language Dialect: Croatian : Croatian spoken language Dialect: Herero : Herero spoken language Dialect: Interlingua : Interlingua spoken language Dialect: Indonesian : Indonesian spoken language Dialect: Interlingue : Interlingue spoken language Dialect: Igbo : Igbo spoken language Dialect: Sichuan Yi : Sichuan Yi spoken language Dialect: Inupiak : Inupiak spoken language Dialect: Ido : Ido spoken language Dialect: Icelandic : Icelandic spoken language Dialect: Inuktitut : Inuktitut spoken language Dialect: Japanese : Japanese spoken language Dialect: Javanese : Javanese spoken language Dialect: Georgian : Georgian spoken language Dialect: Kongo : sKongo poken language Dialect: Kikuyu : Kikuyu spoken language Dialect: Kuanyama : Kuanyama spoken language Dialect: Kazakh : Kazakh spoken language Dialect: Greenlandic : Greenlandic spoken language Dialect: Cambodian : Cambodian spoken language Dialect: Kannada : Kannada spoken language Dialect: Korean : Korean spoken language Dialect: Kanuri : Kanuri spoken language Dialect: Kashmiri : Kashmiri spoken language Dialect: Kurdish : Kurdish spoken language Dialect: Komi : Komi spoken language Dialect: Cornish : Cornish spoken language Dialect: Kirghiz : Kirghiz spoken language Dialect: Latin : Latin spoken language Dialect: Luxembourgish : Luxembourgish spoken language Dialect: Ganda : Ganda spoken language Dialect: Limburgian : Limburgian spoken language Dialect: Laotian : Laotian spoken language Dialect: Lithuanian : Lithuanian spoken language Dialect: Latvian : Latvian spoken language Dialect: Malagasy : Malagasy spoken language Dialect: Marshallese :Marshallese spoken language Dialect: Maori : Maori spoken language Dialect: Malayalam : Malayalam spoken language Dialect: Mongolian : Mongolian spoken language Dialect: Moldovan : Moldovan spoken language Dialect: Marathi : Marathi spoken language Dialect: Malay : Malay spoken language Dialect: Maltese : Maltese spoken language Dialect: Burmese : Burmese spoken language Dialect: Nauruan : Nauruan spoken language Dialect: North Ndebele : North Ndebele spoken language Dialect: Nepali : Nepali spoken language Dialect: Ndonga : Ndonga spoken language Dialect: Dutch : Dutch spoken language Dialect: Norwegian Nynorsk : Norwegian Nynorsk spoken language Dialect: Norwegian : Norwegian spoken language Dialect: South Ndebele : South Ndebele spoken language Dialect: Navajo : Navajo spoken language Dialect: Chichewa : Chichewa spoken language Dialect: Occitan : Occitan spoken language Dialect: Ojibwa : Ojibwa spoken language Dialect: Oromo : Oromo spoken language Dialect: Oriya : Oriya spoken language Dialect: Ossetian / Ossetic : Ossetian / Ossetic spoken language Dialect: Panjabi / Punjabi : Panjabi / Punjabi spoken language Dialect: Pali : Pali spoken language Dialect: Pashto : Pashto spoken language Dialect: Quechua : Quechua spoken language Dialect: Raeto Romance : Raeto Romance spoken language Dialect: Kirundi : Kirundi spoken language Dialect: Romanian : Romanian spoken language Dialect: Rwandi : Rwandi spoken language Dialect: Sanskrit : Sanskrit spoken language Dialect: Sardinian : Sardinian spoken language Dialect: Sindhi : Sindhi spoken language Dialect: Northern Sami : Northern Sami spoken language Dialect: Sango : Sango spoken language Dialect: Serbo-Croatian : Serbo-Croatian spoken language Dialect: Sinhalese : Sinhalese spoken language Dialect: Slovak : Slovak spoken language Dialect: Slovenian : Slovenian spoken language Dialect: Samoan : Samoan spoken language Dialect: Shona : Shona spoken language Dialect: Somalia : Somalia spoken language Dialect: Albanian : Albanian spoken language Dialect: Serbian : Serbian spoken language Dialect: Swati : Swati spoken language Dialect: Southern Sotho : Southern Sotho spoken language Dialect: Sundanese : Sundanese spoken language Dialect: Swedish : Swedish spoken language Dialect: Swahili : Swahili spoken language Dialect: Tamil : Tamil spoken language Dialect: Telugu : Telugu spoken language Dialect: Tajik : Tajik spoken language Dialect: Thai : Thai spoken language Dialect: Tigrinya : Tigrinya spoken language Dialect: Turkmen : Turkmen spoken language Dialect: Tagalog : Tagalog spoken language Dialect: Tswana : Tswana spoken language Dialect: Tonga : Tonga spoken language Dialect: Turkish : Turkish spoken language Dialect: Tsonga : Tsonga spoken language Dialect: Tatar : Tatar spoken language Dialect: Twi : Twi spoken language Dialect: Tahitian : Tahitian spoken language Dialect: Uyghur : Uyghur spoken language Dialect: Urdu : Urdu spoken language Dialect: Uzbek : Uzbek spoken language Dialect: Venda : Venda spoken language Dialect: Vietnamese : Vietnamese spoken language Dialect: Wolof : Wolof spoken language Dialect: Xhosa : Xhosa spoken language Dialect: Yiddish : Yiddish spoken language Dialect: Yoruba : Yoruba spoken language Dialect: Zhuang : Zhuang spoken language Dialect: Chinese : Chinese spoken language

Programming Language Labels

Color: Coral (#F48370) Language: Atom: Atom programming language Language: Agda: Agda programming language Language: AFL: AFL programming language Language: Bash: Bash programming language Language: C: C programming language Language: C#: C# programming language Language: Fluent: Fluent programming language Language: Golang: Golang programming language Language: Haskell: Haskell programming language Language: HTML/CSS: HTML/CSS programming language Language: Java: Java programming language Language: JavaScript: JavaScript programming language Language: Julia: Julia programming language Language: JSDoc: JSDoc programming language Language: JSON: JSON programming language Language: Node: Node programming language Language: OCaml: OCaml programming language Language: PHP: PHP programming language Language: Python: Python programming language Language: Razor: Razor programming language Language: RegEx: RegEx programming language Language: Ruby: Ruby programming language Language: Rust: Rust programming language Language: Scala: Scala programming language Language: Swift: Swift programming language Language: TypeScript: TypeScript programming language Language: Verilog: Verilog programming language

Technical Experience

Color: Teal (#2EC4B6) Technical Experience: None: Issue that does not require a technical background Technical Experience: Beginner: Issue that requires a beginner technical background Technical Experience: Intermediate: Issue that requires an intermediate technical background Technical Experience: Advanced: Issue that requires an advanced technical background

Universal Labels

Color: Grey (#E9EBF8) first-timers-only: Issues that welcome first-time contributors! up-for-grabs: Indicates the issue still needs an owner. help wanted: Indicates we want help on an issue or pull request. good first issue: Indicates the issue is great for beginners to open source / legesher

Label Templates

In order to update or add the labels to a new project repository, navigate to legesher-docs/guide/legesher/labels and run the command ruby legesher-issue-labels.rb.

Becoming a Part of the Flock

We love our people and we love empowering them to contribute what they know to push the project forward. We've attempted to make a simple flow for users who want to get more involved, to automate as much of the mundane process as possible.

If you would like to contribute to the project

If you would like to view the public roadmap

We use ZenHub for our roadmap and sprint backlog. Unfortunately, the roadmap cannot be visible without being a member of the different repositories. The best way to receive access is to contribute to the project. Outside contributors will receive access as their email is readily available through GitHub. You can also add your email here to request access to the roadmap.

GitHub Milestones

For managing the Legesher project, sprints are described in GitHub as milestones. Each sprint is 2-weeks comprised of around 80 story points (as the project progresses thus number may fluctuate).

The Sprint Syntax

The sprint syntax follows the syntax: Sprint [START_DATE] where the START_DATE follows the date format MM/DD/YY.

Story Points

Each issue when it is accepted into the current sprint will be given story points. These serve as an estimate of the amount of work that it will take to complete the specific issue. As time progresses, our estimate of how long each issue will take will improve. 1 & 2 story points permit a small change that might include a waiting period, but very little work. 40 story points is a large undertaking and consuming the majority of a contributor's time.

Epics

Epics are described as larger feature goals that are set for the project. Epics are usually comprised of multiple issues that all feed into the epic's completion. These have their own label Epic.

For example, one of our current epics include Preparing for Open Source Release. On GitHub it looks like a normal issue with another label, but within the ZenHub project management tool it contains a snapshot of all the issues that are associated with the epic, current status of all of the issues as well as their story point estimations.

This is what it might look like on ZenHub:

Pipelines

Within the ZenHub Project Management tool, the issues are then organized into pipelines depending on the status of the issue.

  • New Issues: When issues are created, they first reside here

  • Epic: Where all the major Epics live

  • Incubator: In the icebox - issues/features that are +6 months out

  • Development Backlog: Work that is sprint-ready, but not yet accepted and planned into the upcoming Milestone

  • Sprint Backlog: Work that has been committed to, and accepted into the upcoming Sprint

  • In Progress: For items that are in the current sprint

  • Review/QA: For items that are waiting approval

  • Done: Issues that have been completed within the specific sprint.

  • Closed: When issues are completed, they go here

Releases

Releases are the larger moments that the public are aware of. When a new version of a software is released, it is included in a "Release". Some may be a patch because a certain bug was found to full on version upgrades.

Assignees

On each issue an individual or team of people will be assigned when it is added to a Milestone/Sprint. If you are assigned to the issue it is your responsibility to complete the assignment. As always, we are more than willing to help and involve the community as best as you can - even documenting your thought process along the way. If you would like to be assigned to the issue and help solve the issue, please comment on the issue and take the initiative. We love that!! ❤️

  • We have contributor guidelines that are to ensure you're not wasting your time with mundane tasks and additionally so we maintain consistency across the project. When you have contributed to the project, we would like to honor you and thank you for your contribution. When your contribution is accepted, you will receive instructions to receive your gift. 🎁