Github? We have github at home.
Started by Mark bc7291552be7a58f... ·
a8d24177d946de4f1f0a0fe1af9a1338 on nomadnet
This is so cool, much better than I imagined! Nomadnet suddenly feels more powerful. Being able to run open source projects over Reticulum is huge.
- Will you add a pull/merge request feature or keep things old school with pushing of branches and communication over LXMF?
- Signed commits with
rnidshould be possible, right? - You could convert
mdtomuon the fly (eg. https://codeberg.org/randogoth/md2txt.git)
Absolutely awesome! Simply beautiful! This is a game changer. Just what we need in these "interesting" times.
Thanks joakim and r8io! I just released 1.2.1 with the page node functionality, and a bunch of other small improvements to rngit.
Signed commits should definitely be possible, and I was planning on that from the beginning, but I've only looked into it superficially for now. There's several options for doing it, and need to experiment with it to see what the best approach is.
Markdown conversion is included in 1.2.1 :)
Regarding pull/merge requests, I'm more a fan of the old-school workflow ;) You can always just git request-pull and send that to whoever you want. And now that you can run your actual own git repos over RNS, I think that provides a much more distributed and decentralized workflow. You could even have people pull directly from your computer, if you don't want a separate server to run it on. I'm trying hard not to go into a rant here about how silly it is for people's source code to ALL BE SITTING ON THE SAME COMPUTER (ok, it's a data center, lots of computers, but hey - same story). Git itself is completely decentralized, but services like GitHub made it very centralized. Ok.. Stop. Now.
That being said, I made rngit very extensible in it's architecture. I'll probably add plugin support at some point, so functionality like on-page PRs and such could easily be added via plugins.
Or, you can just create a loader script that monkey-patches extra page serving handlers and the required functionality, I ain't gonna judge. The entire program is a module and can be imported into your own programs, where you can mod it as you please :)
Oh, I also added some actual documentation on it to the manual. It probably helps to read that if anyone wants to set it up. Maybe I forgot something, in which case you will have to experiment.
Mark, rngit pages over Nomad Network are so much fun! The stats look cool, and the ablity to ruin the page design with my custom templates is the cherry on the cake :)
Lol, always the best to mess things up with weird templates :) Couldn't leave that out! Thanks for the appreciation r8io :) By the way, I just released 1.2.2, which now has release management functions, so you can actually publish releases and download files and such. You need the latest Nomad Network 1.0.1, caus I apparently forgot to enable query parameters for file downloads way back at some point, but it's out now as well.
Other nomadnet clients may need an update to support the query-parameter based file download links too. I'm not really sure how other people did their implementations, so it may work or not. But either way, should be an easy fix if not. It just needs to include the query parameters as data when actually sending the request to the node.
Just leaving that here if anyone is confused because it doesn't work in MeshchatX or something. Then again - I didn't test with the latest version of MeshchatX, so maybe it does work, or maybe not. Time will tell.
Oh, there's also a few other fun things in the new nn, such as a simple table renderer for micron. It's pretty basic, and for more advanced stuff, I'd still recommend just rendering the tables directly, since then you have full control over everything, but it does support text colors, markup inside table cells, cell alignments, max render widths, table alignment and such. But it's a convenient way to just add a quick table here or there.
I absolutely love how rngit is feature by feature making GitHub/GitLab/etc obsolete.
Regarding pull/merge requests, I'm more a fan of the old-school workflow ;)
I agree, this is how Git was supposed to work. Git + Reticulum + LXMF is a great match.
A lot of rngit improvements were just added in 1.2.5, especially in regards to markdown and micron rendering and syntax highlightin. Darn it's a maze to get all those three things working flawlessly together with stuff like markdown code blocks also having syntax highlighting, and then converting everything to micron, and then making sure the different formats don't have interactions that mess up rendering, and THEN ALL THE BLASTED NESTED ESCAPE SEQUENCES. Okay, okay, I think I got it right this time around.
There's also full support for handling repo-local links in markdown files now, which I personally really like :) That means you can have documentation, or anything really, that links to each other, and everything just works, and it's beautiful, and it even respects, branches, ref browsing and oh my goodness am I actually a bit tired of Git internals by now, but hey-ho, it's a joy to actually have it functional :)
Wow thanks for all the hard work on rngit Mark! Also MeshChatX 4.6.2 and above will support the query-parameter based file download links.
That's great Ivan! Thanks for adding it to MeshchatX so quickly!
EDIT: aaaaand we're back, all good now.
I'm having trouble fetching from Aleph. It was working earlier today, and I still have it working on my own node. I can also still browse the NomadNet page for Aleph, but fetches fail with:
% git fetch upstream
Establishing link...git-remote-rns failed: Failed to establish link
fatal: remote helper 'rns' aborted session
Did something change? Or am I missing something obvious? This is my remote configuration, url copied direct from the node:
[remote "upstream"]
url = rns://7649a50d84610232d1416b41d2896aff/reticulum/reticulum
fetch = +refs/heads/*:refs/remotes/upstream/*
I love this so much. For collaborating on software (without it being a big thing) this is going to be a lot better than GitHub or other centralized hosting approaches. There's a few things I want:
rnidcommit signing like @joakim said. I can't wait to not have to use GPG... mutters and curses under breath- Allow
rngitsubcommands to parse remotes from the git config of the current repository, so you don't have to use the full URL. - Release mirroring, so we can mirror your releases (fully signed with the release identity) onto other nodes for resiliency.
- Logfile path option in the config. (if you want them I have some rough patches to add this to
rnsdandlxmd, though only as a command line parameter–I didn't get around to plumbing it into the config files yet) - Filesystem monitoring so you don't have to restart the node for new repositories. It can probably be abstracted so that NomadNet can pick up the same functionality for pages and files.
- Even better than the previous, the ability to create new repositories remotely.
- Ability to manually specify operator destination hash so people using NN can easily reach out.
- Why do git nodes show an LXMF propagation node in NomadNet? Doesn't look like they are starting one. Actually, even regular NN nodes display the hash for their LXMF prop node when it's disabled.
It's all very usable as it is, though!