Exosphere Contributor Skills
You don't need all the skills mentioned below to start contributing to Exosphere. We aim to create a welcoming environment where people can learn by doing.
Areas of Exosphere with Relevant Skills
Skill↓ | Area→ | User interface | Instance configuration | OpenStack interactions | Browser tests | Documentation |
---|---|---|---|---|---|
Elm Web Development | Essential | Optional | Essential | Optional | |
Linux and Ansible | Essential | Optional | Optional | ||
Cloud APIs | Optional | Optional | Essential | Optional | |
Python BDD Testing | Recommended | ||||
Interaction Design | Recommended | ||||
Git and GitLab | Essential | Essential | Essential | Essential | Optional |
Markdown | Essential | ||||
A+ Written English | Essential | Optional | Optional | Recommended | Essential |
Key:
- Essential: Must learn to contribute effectively
- Recommended: Can get started without but may need later
- Optional: Could be helpful some of the time
- (Blank): Not applicable
Skills, with links for learning more
- Elm Web Development
- An Introduction to Elm | The Official Elm Guide
- elm-ui
- Debugging with Elm | elm-lang.org (written for older version of Elm, but still useful)
- Learn Web Development | MDN
- Hypertext Transfer Protocol (HTTP) | MDN
- What are browser developer tools? | MDN
- Linux and Ansible
- Cloud APIs
- Python BDD (Behavior-Driven Development) Testing
- Interaction Design
- Git and GitLab
- GitLab is a very similar service to GitHub; if you're familiar with one, using the other is quite straightforward.
- Git | GitLab
- Learn GitLab with tutorials | GitLab
- Markdown
- A+ Written English
- This includes:
- In a user interface, the ability to write text that does not contain obvious mistakes or confuse the reader.
- In documentation, the ability to communicate technical concepts succinctly, with an awareness of the likely audience.
- Consistent use of grammar, punctuation, and capitalization.
- The Elements of Style
- Subject-verb agreement
- UX Writing Guide | PatternFly
- This includes:
On Git Skills
Git is an advanced version control system, so there are different levels of git skill.
To make your first Exosphere contribution, you only need basic familiarity with the clone
, switch
, add
, commit
, and push
commands. Our quick start section shows each git command to run. This is about the same skill level you'd need to host a small personal project on GitHub.
To work collaboratively on major changes to Exosphere's codebase, or to become a project maintainer, you will need deeper git knowledge. This includes knowing, at least roughly:
- How to write effective commit messages
- How to structure and order commits so that code reviewers can follow a multi-commit change
- How to manage multiple git remotes (one for each colleague)
- The difference between
git fetch
,git merge
, andgit pull
- The difference between a fast-forward merge and a two-parent merge
- How to rebase changes
- What merge conflicts are, and how to resolve them
- Optional but helpful, Git's basic data structure