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.
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
- 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:
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