I'm wondering if there is anything in the works regarding perpetual edits, as first mentioned, I believe, in this post from @elvismercury: #306665
I know that @ek, @DarthCoin and I have also talked about it over the past few months. It would really help out with territory "directory" or "index" type posts.
We've talked about it a lot and want to do it. Somehow we don't have a github issue yet. I'll make one today.
I imagine the technical side is very straight forward and simple (like how bio posts are infinitely editable) what’s more vague is the requirements of “when should we allow this?”
It's the inverse!
We always want to allow editing but in a way that's technically nontrivial (and I'd argue still straightforward to the right person).
Technically, we want items to be immutable. Each edit would create a clone of the old, apply its modifications to the clone, and the old version would be kept along with the new so that there's an edit history.
It'd work roughly like the following:
The items we'd display would have "cloneDiedAt" = null, because only the most recent version would have "cloneDiedAt" = null, but the full edit history could be browsed.
Alternatively, we could create a "diff" between subsequent versions and store that for creating the edit history, but immutability is more straightforward imo.
Also, @ek is gonna blow up the DB with his edits ;)
Yeah this could be difficult to scale. Depending on how it's implemented it might also require a compound primary key on items because their id alone would no longer identify them.
I haven't looked into the diff approach much, but that'd be minimally invasive by comparison. I just don't have experience with it.
Yet another approach I think that might be the goldilocks (no need for a compound primary key on "Item") is the history table pattern[1]:
https://www.reddit.com/r/PostgreSQL/comments/kt1agc/what_is_the_best_way_of_implementing/ ↩
What do you think about allowing reposting of old good posts, but at a considerable markup to make the repost?
I'm always interested in increasing evergreenness of old content, but I'm not sure how to do it yet.
We could merge multiple edits in the same time window into a single edit. I think I've seen that on Github but it doesn't always seem to work that way.
or we could add a special case to limit my edits haha
maybe that is premature optimization?
Neat! I didn't realize the goal was to preserve edit history, but that makes sense!
How are deletes handled in this case? All clones are overwritten with deleted by author?
Ah good question! I hadn't considered it.
Yes, I think overwriting all clones is probably the least invasive thing.
Great!
Feature I'd love to see added with it: Subscribing to the post includes subscribing to edits as well as comments.
Yeah, having the "edit history" be a SN object would be interesting.
You can always copy the post you want to edit and post a new one. To copy the post to edit, simply add
/editto the post's URL. For example: #492553/editThis is a good idea, but there would be many of the same posts at the end and when it comes to looking for the post it would be a bit tiring.
In a writer sub, it is damn near imperative.
Long time ago I thought Signal had no edits because of cryptography, hash significantly changes if you edit input data and then they represented "edit" functionality.
I think possibility to perpetually edit messages here is possible but we need "edited lable".
This will be a good update, I think. And will probably decrease the number of posts like "deleted by author".
You mean being able to edit it after the first 10 minutes, right? In most forums this can be done.
Yes, that's what I mean, but it's a little complicated. I think the SN edit limit is good for discussion posts.
One possibility is after 10 min timeout, defaults to "add only" edits. That is you cant edit / remove existing text, only add to it at bottom.
That has its own set of pros/cons of course.
A fee could be proposed for certain posts that want to be edited, so only those who really have a real interest in editing it over time could be edited, maybe my idea is silly, but hey.
I like how it is.