PageSourceSearch

https://huronos.org/assets/js/7cdfb23c.9ee903aa.js

js huronos.org collected 2026-10-08 05:51:44 UTC 10,201 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkhuron_os_website=self.webpackChunkhuron_os_website||[]).push([[3571],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>p});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,o,i=function(e,t){if(null==e)return{};var n,o,i={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=o.createContext({}),d=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=d(e.components);return o.createElement(s.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=d(n),m=i,p=u["".concat(s,".").concat(m)]||u[m]||h[m]||a;return n?o.createElement(p,r(r({ref:t},c),{},{components:n})):o.createElement(p,r({ref:t},c))}));function p(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,r=new Array(a);r[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:i,r[1]=l;for(var d=2;d<a;d++)r[d]=n[d];return o.createElement.apply(null,r)}return o.createElement.apply(null,n)}m.displayName="MDXCreateElement"},9019:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var o=n(7462),i=(n(7294),n(3905));const a={sidebar_position:6},r="Development Standards",l={unversionedId:"development/development-standards",id:"version-0.4/development/development-standards",title:"Development Standards",description:"huronOS development requires writing code in different environments which can lead to the use of different editors like nano, vi, or GUI powered editors like vscode. In any case, we are still inclined to maintain certain quality standards in our codebase to keep collaboration simpler.",source:"@site/versioned_docs/version-0.4/development/development-standards.md",sourceDirName:"development",slug:"/development/development-standards",permalink:"/docs/development/development-standards",draft:!1,tags:[],version:"0.4",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"release-system",permalink:"/docs/development/release-system"},next:{title:"Tips for Developing huronOS",permalink:"/docs/development/tips-for-developing-huronOS"}},s={},d=[{value:"Editing Code",id:"editing-code",level:2},{value:"General Recommendations",id:"general-recommendations",level:2},{value:"Spelling",id:"spelling",level:3},{value:"Shell Scripting",id:"shell-scripting",level:2},{value:"Formating",id:"formating",level:3},{value:"Linting",id:"linting",level:3},{value:"Documentation",id:"documentation",level:2},{value:"Markdown",id:"markdown",level:3},{value:"Docusaurus Hot Reload",id:"docusaurus-hot-reload",level:3}],c={toc:d},u="wrapper";function h(e){let{components:t,...n}=e;return(0,i.kt)(u,(0,o.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"development-standards"},"Development Standards"),(0,i.kt)("p",null,"huronOS development requires writing code in different environments which can lead to the use of different editors like ",(0,i.kt)("em",{parentName:"p"},"nano"),", ",(0,i.kt)("em",{parentName:"p"},"vi"),", or GUI powered editors like ",(0,i.kt)("em",{parentName:"p"},"vscode"),". In any case, we are still inclined to maintain certain quality standards in our codebase to keep collaboration simpler."),(0,i.kt)("h2",{id:"editing-code"},"Editing Code"),(0,i.kt)("p",null,"We recommend you use vscode as the main editor as it provides you with several extensions that can help maintain the quality of code we're looking for at the codebase. Either way, there'll be a time when you'll have to use a terminal based editor, so we encourage you to polish your code as much as possible but don't forget to lint, format and check your code before committing it."),(0,i.kt)("h2",{id:"general-recommendations"},"General Recommendations"),(0,i.kt)("p",null,"We have several general recommendations for developing huronOS. "),(0,i.kt)("h3",{id:"spelling"},"Spelling"),(0,i.kt)("p",null,"English is the main language for all the code and documentation in huronOS, this is intentional mainly due to globalization, this way most of the people involved is able to familiarize themselvers with the codebase; that's why it is important to keep our code with the best spelling and grammar possible, from the variable naming, to the code comments, documentation and overall resources. We recommend using VScode's ",(0,i.kt)("a",{parentName:"p",href:"https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker"},"Spell Checker")," extension, to catch all the spelling issues as you write. You can also use your own tooling but please keep this request in mind when doing so."),
1(0,i.kt)("h2",{id:"shell-scripting"},"Shell Scripting"),(0,i.kt)("h3",{id:"formating"},"Formating"),(0,i.kt)("p",null,"All of the shell scripting styling follows the default configuration of ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/mvdan/sh"},"shfmt")," which can be integrated with several code editors or executed from the terminal.\nWe recommend the ",(0,i.kt)("a",{parentName:"p",href:"https://marketplace.visualstudio.com/items?itemName=foxundermoon.shell-format"},"VScode extension")," for ",(0,i.kt)("em",{parentName:"p"},"shfmt")," which can be activated on save, making it easier to follow the standard."),(0,i.kt)("h3",{id:"linting"},"Linting"),(0,i.kt)("p",null,"For shell scripting linting, we recommend using ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/koalaman/shellcheck"},"Shellcheck")," which provides static code analysis to catch important bugs when writing shell scripts, which can be actually challenging to debug, track and find. If you're using VScode, there's a ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/vscode-shellcheck/vscode-shellcheck"},"ShellCheck extension")," you can use."),(0,i.kt)("h2",{id:"documentation"},"Documentation"),(0,i.kt)("p",null,"Documentation is written on the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/equetzal/huronOS-build-tools"},"huronOS-build-tools")," repository, this keeps a relation between huronOS' versioning and its documentation. Documentation is built by using ",(0,i.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"Docusaurus"),", but the project is also the implementation of the ",(0,i.kt)("a",{parentName:"p",href:"https://huronos.org"},"huronos.org")," website, which its code is on the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/huronOS/huronOS-website"},"huronOS-website")," repository. The code submitted under the ",(0,i.kt)("inlineCode",{parentName:"p"},"huronOS-build-tools/docs")," directory triggers a Github action to commit those changes to the website repo, and automatically deploy those changes using the following rules:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Pulls/Merges on the ",(0,i.kt)("em",{parentName:"li"},"unstable")," branch, will commit on the website's ",(0,i.kt)("em",{parentName:"li"},"staging")," branch and deploy to Github Pages a.k.a. ",(0,i.kt)("a",{parentName:"li",href:"https://huronos.github.io/huronOS-website/"},"Staging"),"."),(0,i.kt)("li",{parentName:"ul"},"Pulls/Merges on the ",(0,i.kt)("em",{parentName:"li"},"main")," branch, will commit on the website's ",(0,i.kt)("em",{parentName:"li"},"main")," branch but will not be deployed."),(0,i.kt)("li",{parentName:"ul"},"When releasing on Github, the action will checkout the release tag and commit those changes to the website's ",(0,i.kt)("em",{parentName:"li"},"stable")," branch. This will create a new docusaurus documentation version and then will trigger a deploy on the ",(0,i.kt)("a",{parentName:"li",href:"https://huronos.org"},"huronos.org")," (production) website, which contains the documentation of all the official releases on huronOS-build-tools.")),(0,i.kt)("h3",{id:"markdown"},"Markdown"),(0,i.kt)("p",null,"All the documentation is written in the markdown ",(0,i.kt)("inlineCode",{parentName:"p"},".md")," extension. We don't use ",(0,i.kt)("inlineCode",{parentName:"p"},".mdx")," (docusaurus markdown equivalent to ",(0,i.kt)("inlineCode",{parentName:"p"},".jsx")," files) as it minimizes compatibility with several markdown render tools and limit our documentation to few tools. There's no VScode extension for rendering the Docusaurus markdown style, but we'd advise using the ",(0,i.kt)("em",{parentName:"p"},"Hot Reload")," feature.\nAs an alternative to hot reload, you can use the ",(0,i.kt)("a",{parentName:"p",href:"https://marketplace.visualstudio.com/items?itemName=bierner.markdown-preview-github-styles"},"Github Markdown Renderer")," VScode extension, but it will also render Docusaurus' specific metadata which might not be the ideal."),(0,i.kt)("h3",{id:"docusaurus-hot-reload"},"Docusaurus Hot Reload"),(0,i.kt)("p",null,"Please, clone the huronOS-website@staging and huronOS-build-tools@unstable repos at the same directory level, then run:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"cd huronOS-website\n./dev-start.sh\n")))}h.isMDXComponent=!0}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.