{"id":22096406,"url":"https://github.com/carbslinux/contributing","last_synced_at":"2026-01-06T03:12:15.696Z","repository":{"id":119353162,"uuid":"261223932","full_name":"CarbsLinux/contributing","owner":"CarbsLinux","description":"Contribution Guidelines","archived":false,"fork":false,"pushed_at":"2020-05-04T19:50:13.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-29T07:30:38.270Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CarbsLinux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-04T15:30:57.000Z","updated_at":"2020-05-04T19:50:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"1a165904-48fa-41a4-a4f3-751490ed584e","html_url":"https://github.com/CarbsLinux/contributing","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CarbsLinux%2Fcontributing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CarbsLinux%2Fcontributing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CarbsLinux%2Fcontributing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CarbsLinux%2Fcontributing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CarbsLinux","download_url":"https://codeload.github.com/CarbsLinux/contributing/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245191636,"owners_count":20575248,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-01T04:10:44.111Z","updated_at":"2026-01-06T03:12:15.658Z","avatar_url":"https://github.com/CarbsLinux.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"Carbs Linux Contribution Guidelines\n===================================\n\nThanks for taking your time to contribute! To maintain stylistic\nbehaviour throughout the repositories, you must adhere to these\nguidelines. Exceptions may occur with good reasoning.\n\n\u003c!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc --\u003e\n**Table of Contents**\n\n- [Carbs Linux Contribution Guidelines](#carbs-linux-contribution-guidelines)\n    - [General Conventions](#general-conventions)\n    - [Shell Conventions](#shell-conventions)\n    - [Plaintext Conventions (MarkDown)](#plaintext-conventions-markdown)\n    - [Git Conventions](#git-conventions)\n    - [C Conventions](#c-conventions)\n\n\u003c!-- markdown-toc end --\u003e\n\n\nGeneral Conventions\n-------------------\n\nThese apply to each and every file on our repositories.\n\n- Try to keep the file readable.\n  - Characters on a line shouldn't exceed 100 characters excluding indentation.\n  - Make sure you don't have code commented out during commit. Uncomment them or\n    remove them.\n  - Do not add comments following the code, add them to the top of the code. It\n    makes it harder to read, and lines longer.\n\nComments should look like this.\n\n    # Good way of commenting\n    your code goes here\n    \n    your code goes here  # Bad way of commenting\n\n\nShell Conventions\n-----------------\n\nShell is central to Carbs Linux projects. Most of the tools\nand packages are written in POSIX sh.\n\n- Use 4 spaces for indentation, instead of tabs.\n- Make sure you don't use bash-specific code.\n- Make sure you lint your code with `shellcheck` and if you\n  are new to POSIX sh, use `checkbashisms`.\n- Don't spawn new processes if you don't absolutely need to.\n  Especially during string manipulation.\n  - Never use awk. Use sed to a string if it is a complex string\n    manipulation.\n  - Instead of `basename $file` you should do `file=${file##*/}`.\n  - Instead of `dirname  $file` you should do `file=${file%/*}` .\n  - If `$file` has a suffix (`.asc`) you want to remove, instead of\n    `basename $file .asc` you should do `file=${file##*/} file=${file%.asc}`.\n\n\nPlaintext Conventions (MarkDown)\n-------------------------------\n\nMarkdown and Plaintext conventions are the same. Even if you are\nediting a Markdown file you should make it readable plaintext.\nIf a user downloads the repository, they should be able to read\nit without the help of Github rendering it. Most repositories on\nGithub fail to do this, making their README file completely\nunreadable when somebody decides to clone the Git repository.\n\n**Headings**\n\nInstead of `#` and `##` for headings use `=====` and `-----`\nrespectively. Using `#` is simpler, but underlines such as the\nlatter, give a natural sense of depth to the reader. Usage of\n`###` for headers are okay as there is no replacement for them.\n\nHeadings should have 2 preceding empty lines, and should be followed\nwith a single empty line.\n\n**Code Blocks**\n\nInstead of ``` (three backticks) for code blocks, use 4 spaces\nof indentation. Again, this gives the user a better sense of\ndepth when reading the file in plaintext.\n\n**Links**\n\nInstead of using `[link description](https://example.com/location)`,\nprefer the following format.\n\n    [link description]\n    \n    \n    At the end of the section/file\n    [link description]: https://example.com/location\n\n**Italic and Bold Faces**\n\nIn markdown `_italics_` and `*italics*`, and `**bold**` and `__bold__`\nproduce the same output. However, prefer `_italics_` and `**bold**`\nsince they are easier to distinguish and make sense of.\n\n\nGit Conventions\n---------------\n\n- You should commit a single change at a time. If you have\n  multiple unrelated changes in your file, commit them seperately.\n- In contrast, if you have multiple related changes across multiple\n  files, commit them together.\n\nYour commit message should be in the following format\n\n    \u003cfile/subject\u003e: \u003csmall commit message that will appear in shortlogs\u003e\n    \n    Further long explanation that can be viewed\n    in the long git logs or patches. (optional)\n\nHere is an example commit from [kiss]\n\n    kiss: better manifest checking\n    \n    This introduces a few changes in manifest checking.\n    * If KISS_FORCE is specified, we don't check the manifest.\n    * This will show every missing file, and won't die in the first manifest issue.\n    * kiss will announce dependency checking after manifest checking is complete.\n\n**Exceptions**\n\nExceptions are made for documentation, as it can be tedious to prepare\nin different hunks and such. There can be punctuation and spelling\nmistakes to fix. Just commit them with `file: update` where file stands\nfor the name of the file.\n\n[kiss]: https://github.com/CarbsLinux/kiss\n\n\nC Conventions\n-------------\n\nC is currently only used in the package manager itself, so these are\nsmall, and restrictive guidelines.\n\n- Use 2 spaces for indentation.\n- If a portable program exists, don't bother reimplementing it.\n- Don't use any header outside of the standard C library. The reason\n  C programs exist in the package manager is to ensure portability.\n  That's why you should never, ever use a header that isn't in `libc`.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarbslinux%2Fcontributing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarbslinux%2Fcontributing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarbslinux%2Fcontributing/lists"}