@prologic@twtxt.net This patch workflow looks complicated for no reason to me, it also leave everything to a maintainer to handle privately before touching the public repo.

Maybe a branch based approach like the one used in GitHub/Lab/tea is simpler but still doable? Maybe as part for legit fork?

⤋ Read More

@justamoment@twtxt.net I agree, the patch workflow is a bit complicated (especially for new users) and I find it a bit unfriendly too. Having to switch from an Email client to Command-line just to manage reviews and applying patches kind of sucks IMO. – Some nice way to manage incoming changes and communicate reviews and easily applying those changes would be nicer. – I even had this stupid idea of pushing patches to a special endpoint that create a new Twt in a per-repo Twtxt feed with a link to the “patch” (via a Web UI) and then you can communicate feedback over your own feeds 🤣 – Finally a “patch” is either #approved or #rejected and patch manager can look for those tags in the thread and deal with the UI appropriately.

⤋ Read More

@justamoment@twtxt.net Well what I mean to say is that git itself basically just houses some client-side “Metadata” about the repository and a bunch of objects that make up the contents and revision history. For example, there is a special file called .git/description that you can edit and there’s even git branch --edit to edit a branch’s description. But none of that is useful beyond a local client. That is to say, if you git clone or git push none of that information is published anywhere or made available to anyone else.

So Git’s “distributed data” is limited to well basically its revision history and series of objects I guess? 🤔

⤋ Read More

@justamoment@twtxt.net Yup pretty much. That’s what I’m thinking here… So the Web UI we build need to support IndieAuth I think (well it would be nice if it did I think) so we can manage repos… Repo descriptions can be stored/retrieved from .git/description – Likewise we can probably do something with SSH keys like storing the keys permitted for “write” access in .git/authorized_keys. What else? Hmmm 🤔

⤋ Read More

@justamoment@twtxt.net I guess we start with:

  • An interface to manager repos
  • Support for git push over SSH with key management

What already works (mostly):

  • Hosting
  • Cloning via git clone over HTTP/SSH

What still needs consideration/experimentation:

  • Code reviews
  • Issue tracking

⤋ Read More

@prologic@twtxt.net ok, for interface what do you mean exactly? Are you talking about editing the repo?

About the web interface, I’d suggest to use REST API as the main interface regardless of where it’s built, so you can use them both on client and server side with the same data structure and available actions.

For the client side of any external scripting or custom web clients you have pure data to work with, if on the server side you have the same structs to build the HTML.

This helps us avoid having to work on both in parallel like with Yarn.social and leaving one side behind the other.

⤋ Read More

@justamoment@twtxt.net Can we still maintain a nice SSR (Server-side Rendered) UI though? This is something I never quite managed to “get right”, it would be nice to not have any Javascript (or ever little) for the UI but to still power the SSR and API with the same data structures (which is what I think you’re talking about?)

⤋ Read More

@prologic@twtxt.net exactly, exposed as a struct and functions (for actions) in a dedicated layer, then the API would have GET from structs and POST for functions, on server you render html the same way, structs in templates and POST for actions.

A way to have them seamlessly would be to handle the same page with content-type but maybe it’s an overkill for this kind of project.

⤋ Read More

@justamoment@twtxt.net So, we’ll build a few data models that represents data we need to store and mutate and some logic to fetch that data and perform actions on it. Then an API layer will use that and serialise as either a JSON RPC API or JSON Rest API. Another layer will call the same code to fill out template contexts and render templates. Does this sound about right? 🤔

⤋ Read More

@justamoment@twtxt.net Yeah I’m kind of thinking that the JSON API / REST API + SSR Templating calls a “middle” layer. In other words, abstract out the actual data handling and logic with interfaces that can be used for a real response directly (content negotiated) or rendered with some HTML templates.

⤋ Read More

Participate

Login to join in on this yarn.