RNS Logo

rns.recipes

Community Forum

Forum / Showcase / Github? We have github at home.

Github? We have github at home.

Started by Mark bc7291552be7a58f... ·

Mark bc7291552be7a58f...

a8d24177d946de4f1f0a0fe1af9a1338 on nomadnet

joakim b918e659eeedac9a...
edited

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.

  1. Will you add a pull/merge request feature or keep things old school with pushing of branches and communication over LXMF?
  2. Signed commits with rnid should be possible, right?
  3. You could convert md to mu on the fly (eg. https://codeberg.org/randogoth/md2txt.git)
r8io

Absolutely awesome! Simply beautiful! This is a game changer. Just what we need in these "interesting" times.

Mark bc7291552be7a58f...

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 :)

Mark bc7291552be7a58f...

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.

r8io

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 :)

Mark bc7291552be7a58f...

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.

joakim b918e659eeedac9a...
edited

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.

Mark bc7291552be7a58f...

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 :)

Ivan f1d9f8fad02f8674...

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.

Mark bc7291552be7a58f...

That's great Ivan! Thanks for adding it to MeshchatX so quickly!

K8 3c09de501dadb1c1...
edited

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/*
K8 3c09de501dadb1c1...
edited

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:

  • rnid commit signing like @joakim said. I can't wait to not have to use GPG... mutters and curses under breath
  • Allow rngit subcommands 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 rnsd and lxmd, 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!

Post a Reply

Markdown

Supports Markdown: **bold**, *italic*, `code`, ```code blocks```, [links](url)

Log in to upload images

Proof of work verification for anonymous posting

Copied to clipboard