Currently, there doesn't seem to be a place where the development pipeline (edit, build, test, tweak, repeat) is documented, or really even defined.
There's small bits scattered around, but there doesn't appear to be a "getting started" doc anywhere, although automation is mentioned.
I've got a couple of raspberry pi units (an original-ish, a Zero W, and a second gen B+ I think?) that I'd like to use on my local network, but there's enough stuff I want to tweak that jumping into dev seems like the easiest answer given my scripting tendencies...
Is there a build script or doc I missed seeing somewhere?
@jakimfett
Hi,
Image build script is located: https://github.com/Fourdee/DietPi/issues/1285#issue-280771944
https://github.com/Fourdee/DietPi/blob/master/PREP_SYSTEM_FOR_DIETPI.sh
Currently, there doesn't seem to be a place where the development pipeline (edit, build, test, tweak, repeat) is documented, or really even defined.
In short:
dev
branch Basically, go for it, make any changes, send a PR. We'll explain in the PR as needed.
If unsure/missing info, please let me know.
Should this last bit of information added by @Fourdee be added to https://github.com/Fourdee/DietPi/blob/dev/BRANCH_SYSTEM.md#steps-to-use-the-dietpi-dev-branch?
It fits better to https://github.com/Fourdee/DietPi/blob/dev/CONTRIBUTING.md from my point of view, but would overload it perhaps. My suggestion is to start using the Wiki and define/add such information with more details there. Then add a link to the above md to the Git coders section.
It seems to me like having CONTRIBUTING.md
contain a sentence or two on the dev process, and then links to next steps, would make sense. Definitely want to keep the file concise, tho.
Thoughts on using an in-repo knowledge management (eg, something markdown based, in a docs
folder) rather than locking into Github's wiki system?
Very much looking forward to playing with this.
@jakimfett IIRC, some projects use https://readthedocs.org because you can host your documentation in a docs folder and, when pushing to it, automatically update it using web hooks.
requests
, a highly used library in the Python world uses this approach.
https://readthedocs.org/projects/requests/
https://github.com/requests/requests/tree/master/docs
Ideas I have is to use the GitHub wiki mainly for developer and super user information:
Much work, however I hope I can do a start with this soon.
Usual user information on the other hand can be found on the forum: https://dietpi.com/phpbb/
Things like CONTRIBUTING.md
and getting started
kinda can't be writen by core devs.
You need noobs to know what noobs need to know. Core devs have a lots of things taken for granted without realising it.
Jep I 100% agree. However we reply on pull requests or questions/hints. Beside we do our best to explain things as detailed as possible.
An open/ongoing task is still the wiki which I want to turn into a power user/contributor knowledge base, including the main topics of Debian and Linux derivatives on general to allow understanding how things work and how/why we handle on DietPi.
@msdos and @MichaIng the point I was (attempting) to make is that using an external doc source (eg, Github Wiki, forums, readthedocs, etc) is imo just adding an unnecessary external dependency.
Rolling the docs into the repo, and setting up a downstream presentation of docs (eg, hooks to update readthedocs) are two discrete steps, and I'm...hoping that I can nudge things towards avoiding the second bit, especially since I'm attempting to build my SBC infra with minimal human intervention.
My current workflow looks something like:
gitea
or murmur
. Am attempting to automate as much of this as possible, because I dislike solving the same problem multiple times, and dogfooding does wonders for revealing the kinks in your development/deploy pipeline.
===
Things like CONTRIBUTING.md and getting started kinda can't be writen by core devs.
@FredericGuilbault disagree.
IMO core devs are the only ones who have visibility on how users on the bleeding edge of the use spectrum can acceptably contribute.
Not everyone is able to write clear docs, but I've participated in enough collaborative projects to know that unless the process of generating those docs is closely monitored by the people who are going to have to put up with whatever PR bs shows up in their queue, it's better when core devs are involved in the process.
Without core dev's feedback in places like this, I'd just be swinging blind, and my main focus, in submitting this issue and interactions here, is to get the isolated knowledge (eg https://github.com/MichaIng/DietPi/issues/2263#issuecomment-441243668 and https://github.com/MichaIng/DietPi/issues/2263#issuecomment-440076742) rolled into something concise and accessible for so-called "power users" and sysadmins like myself who want to start using this amazing project in their home labs (or staging, if they're really brave).
@jakimfett
Thanks for your input. To reduce manual user input, we have currently two possibilities to run custom scripts, actually three: https://github.com/MichaIng/DietPi/blob/dev/dietpi.txt#L114-L124
/boot/Automation_Custom_PreScript.sh
, if present, runs before any other firstrun setup steps are done, especially before network is up. So special hardware, core system and network setup needs can be done by placing a script at this location./boot/Automation_Custom_Script.sh
respectively the chosen URL target script runs after dietpi-software
firstrun installs/setup have been done (APT access/time sync/network assured), which can as well be automated: https://github.com/MichaIng/DietPi/blob/dev/dietpi.txt#L53/var/lib/dietpi/postboot.d/
(ext4 partition access required) run as very last step before login, but persistently, not just on first boot.The only thing that needs to be done manually always is the initial login. There is an idea/request to allow auto-login as well on first boot, or run even dietpi-software installs without prior login: https://github.com/MichaIng/DietPi/issues/2520
About image creation:
dietpi-fs_partition_resize.service
is enabled to resize on target system.About docs:
About who should write docs: You are both right!
Finally yeah indeed there is still much documentation missing, if one needs more then just installing DietPi on ones single SBC at home and install a cloud, media server/player, web application or such. The initial aim was to make this things "just" run without much hassle. But for things beyond, there is deeper Linux/GNU/Debian knowledge required and manual work, as in every other server case.
I mark this as closed as we have a dedicated documentation page and repository now: https://github.com/MichaIng/DietPi-Docs
We're constantly adding more content there, including things that are currently in the main repo wiki. Suggestions and contributions are highly appreciated of course, there is still much to do and much more that can be done optionally 馃檪.
@MichaIng thank you so much for the attention and progress on this.
Most helpful comment
It fits better to https://github.com/Fourdee/DietPi/blob/dev/CONTRIBUTING.md from my point of view, but would overload it perhaps. My suggestion is to start using the Wiki and define/add such information with more details there. Then add a link to the above md to the Git coders section.