Skip to content

Latest commit

 

History

History
78 lines (59 loc) · 4.38 KB

CONTRIBUTING.md

File metadata and controls

78 lines (59 loc) · 4.38 KB

Contributing to Numix Core

So you want to contribute to the Numix app themes? Great! Make sure that you're doing the following so that we can get your contributions merged in as soon as possible.

General Process

All contributions, regardless of which bit of the project they're part of, must follow these steps:

  1. Fork our GitHub repository
  2. Make your changes and push them to your fork
    1. Remember to write a proper commit message
    2. If you're fixing an issue, close it using keywords
  3. Create a new pull request
  4. Make any changes requested and push again
  5. When the pull request is accepted you can delete your fork or sync it

Now you are ready to start again!

Icons

This section covers what to do when creating a new icon or changing the design for an existing icon. If you're wanting to add a symlink see the section on the data file.

  1. Make your icon using Inkscape (free and open source)
    1. You must follow our style guidelines
    2. Icons must be saved as an optimized SVG with these settings
    3. New icon need an entry in the data file
  2. Create a different pull request for each (unrelated) change you're submitting
    1. Pull requests must contain icons for Circle and Square at minimum
    2. Adding icons for other themes such as Shine and uTouch is optional
  3. Include a sample of your icon (example) to make review easier

Data File

The data.json file contains all the information needed for linking the icons to the names needed by different platforms. It has the following structure:

{
    "icon-entry": {
        "android": [
            "com.example.app/com.example.app.Activity"
        ],
        "linux": {
            "root": "PrimaryName",
            "symlinks": [
                "alternative-entry",
                "org.other.Entry"
            ]
        },
        "osx": [
            "icon-name",
            "alternative-name"
        ],
        "tags": ["tag1", "tag2", "tag3"]
    }
}
  • icon-entry is the name of the SVG file and should be meaningfully named using dash-case.
  • android is a list of components the icon should use, which can be gathered from the "ComponentInfo" here.
  • linux holds the names from the Icon=* line of *.desktop files
    • root holds the primary entry
    • symlinks holds alternative names
  • osx is a list of icon names to export for the macOS theme.
  • tags is a list of common design elements used by this SVG.

When editing this file for a pull request GitHub Actions will run a validation check to make sure you haven't made any errors, but please try and check before pushing to make review as easy as possible.

Code

The scripts used for theme building and validation are written in Python. Similarly to the data file, GitHub Actions will run a validation check using flake8 to make sure the coding style you've used is consistent with that used in the project. If you are working on this part of the project it's recommended that you check your changes using flake8 before creating a pull request.

Indentation

Throughout this project we use 4 spaces for JSON and Python files, and generally use 1 space for SVG. The easiest way to do this is to use the editorconfig included here. If you want to diverge, do it locally (e.g. using git filters).

Docs

Documentation is all written in markdown and should be markdownlint compliant.