OSDN Git Service

Merge pull request #8 from salva09/master
[instantos/instantARCH.git] / CONTRIBUTING.md
1 ## Contributing to instantARCH
2
3 Before implementing a feature make sure the feature is actually wanted. 
4 You can do this by discussing it on our Discord or any of the other methods mentioned on the
5 [support site](https://instantos.github.io/instantos.github.io/support)
6
7 Any change to instantARCH should meet the following requirements. 
8
9 It should be available in both the CLI and the GUI version.
10 A good starting point for that is the imenu script which creates menus that adapt to running in either GUI or CLI mode. 
11
12 It should keep the installer usable for people with little technical knowledge. 
13 instantARCH is meant to provide a similar experience to installers Calamares or Ubuntu's Ubiquity installer. 
14 Any features that require more technical skill to understand and use should not require mandatory user input during installation.
15 Anything like that is an unavoidable obstacle for casual users. 
16 That said, any addition to instantARCH is more than welcome, all that means is that complex functionality should be put in an "advanced options" menu of some sort. 
17
18 Anything requiring user input should be asked before installation. 
19 This works by putting it in the ask.sh script and saving the result with the iroot utility. 
20 and later reading it out during installation. 
21 You should be able to answer all questions before installation and then letting the computer sit for a while. 
22 There's nothing more frustrating than letting your computer with german internet sit for an entire night to discover that it stopped at some confirmation prompt you didn't anticipate. 
23
24 ## Getting started with instantARCH development
25
26 instantARCH uses different modules for different stages of the installation. 
27 This allows for reordering them and potentially reusing them or making some of them optional (like the uefi grub module)
28 The central installer script asks all questions using ask.sh first and then saves the answers using the iroot utility. 
29 Then it calls all the modules that read out the answers during installation. 
30 It is important to distinguish between escript modules that run in the installation medium and chrootscript modules
31 that get executed inside the (unfinished) installation.