Skin:Cosmos/How to contribute

Thank you for showing interest in contributing! This document describes several ways on how you can contribute to the project, based on what kind of user you are. We value any kind of contribution either way. This guide will help instruct you on how to best contribute, so that we can help you in the best way possible. Please also keep in mind that this skin is developed by a group of volunteers, and that we may not be able to respond something immediately.


 * User: You are a regular user of the Cosmos skin and interested in reporting a security issue, bug, feature request, or have a question related to the documentation.


 * Developer: You are interested in contributing to the source code of the Cosmos skin.

This repository is convered under the Code of Conduct for Wikimedia technical spaces. Please be sure to read this policy before making a contribution. By contributing to the Cosmos skin, you agree to this Code of Conduct. Thank you.

For users

 * Before you do anything, please view the existing workboard; your issue may have already been reported!


 * If you would like live assistance, the Cosmos skin has a public Discord server that is available for [ https://discord.gg/GPVgFTaQTJ anyone to join]. Be sure to respect the rules on the Discord server.

How to report a security issue
To report a security issue, do not create a public phabricator task. Instead, use the proper security form to report a security issue. Please make sure:


 * Give the security issue a proper name, describing what the security issue is.


 * You accurately describe how to reproduce the issue. What instructions can the viewer take to experience the same issue you have found?


 * List the expected result, and the actual result.


 * Add the following developers as subscribers (only Cosmos developers with C+2 access to the Cosmos skin should be added, other members of the Security-Team and Security tag will be able to view the task): Universal Omega, SamanthaNguyen, AmazingWikis, and Alistair3149.

How to report a bug

 * Describe the bug
 * A clear and concise description of what the bug is.


 * To Reproduce **
 * Steps to reproduce the behavior:


 * Go to '...'
 * Click on '....'
 * Scroll down to '....'
 * See error


 * Expected behavior
 * A clear and concise description of what you expected to happen.


 * Screenshots
 * If applicable, add screenshots to help explain your problem.


 * Desktop (please complete the following information):


 * OS: [e.g. iOS]


 * Browser [e.g. chrome, safari]


 * Version [e.g. 22]


 * Smartphone (please complete the following information):


 * Device: [e.g. iPhone6]


 * OS: [e.g. iOS8.1]


 * Browser [e.g. stock browser, safari]


 * Version [e.g. 22]


 * Additional context


 * Add any other context about the problem here.

How to request a feature

 * Is your feature request related to a problem? Please describe.


 * A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]


 * Describe the solution you'd like


 * A clear and concise description of what you want to happen.


 * Describe alternatives you've considered


 * clear and concise description of any alternative solutions or features you've considered.


 * Additional context


 * Add any other context or screenshots about the feature request here.

How to update documentation, or asking a question related to the documentation
Any users on MediaWiki.org can edit the wiki. If there's an issue you see, and you are familiar with how to use wikitext, be bold and update the documentation!

Installing the skin and development packages

 * 1) Clone the repository with an SSH connection from Gerrit (not from GitHub): https://gerrit.wikimedia.org/r/admin/repos/mediawiki/skins/Cosmos


 * 1) Install development packages:
 * 1) In LocalSettings.php:
 * 1) In LocalSettings.php:

Install all soft-dependent extensions that Cosmos is compatible with, listed below. This step is not required, but highly recommended.


 * AdminLinks
 * CookieWarning
 * CreateRedirect
 * DismissableSiteNotice
 * Echo
 * SocialProfile
 * VisualEditor

How to submit a patch

 * A good commit message: Follow the guidelines for writing a high-quality commit message. A high-quality commit message is designed for keeping accurate records of history, and to help show whoever is looking at the commit/patch specifically not just what is being done, but why something is being done.


 * Follow Wikimedia coding standards: Wikimedia's technical spaces has coding conventions for the languages that we use. We use:


 * MediaWiki PHP CodeSniffer: for fixing PHP formatting issues to conform to PHP coding standards


 * ESLint (eslint-config-wikimedia): For fixing JS formatting issues to conform to JS coding standards


 * Stylelint (stylelint-config-wikimedia): For fixing issues to CSS-like languages (CSS/LESS) to conform to CSS/LESS coding standards


 * Keeping patches in-scope: Your patches should always only be doing one thing and one thing only; anything out-of-scope of the specific patch's purpose should be made in a separate patch.