Requirements for a 1.x.y.z release

It has been decided here to adopt for diaspora* avec SemVer system with a prefixed number.

That prefixed number was intended to “be increased at community decision instead of a major release.

With the majors changes introduced in 0.6.0.0 (port to BS3, federation gem, and, maybe, public API), I think the project would benefit from a discussion on the requirements for a public 1.x.y.z release.

IMHO, the major blocking point for such a release is the difficulty of installation and setup for non-developers. The diaspora package partly solves the problem but only on Debian. Here are a few ideas to isier this that could be a part of a milestone for that public release :

  • a graphic interface for configuration; it should be possible to edit the .yml file directly into the administration section,

  • a grafic setup page for database at the first install; when the source code has been cloned, the server should display a page to let the user configure the database connection before diaspora launches.

  • an automatic installation of RVM and gems; unhopfully, I have no idea on how to achive this.

  • other ideas ?


Note: This discussion was imported from Loomio. Click here to view the original discussion.

To me, we will be able to release diaspora* as 1.x when it will be possible for a non-techy person to have his own pod. That means the following points have to be easy:

  • Installation
  • Upgrade
  • Backup
  • Moderation
  • Performance (a pod of 10 users should run nicely with 1GB Ram)

I have several ideas about what can be done to improve those points, I don’t know if this thread is the place to discuss them on detail. There is at least one issue about admin task I opened a while ago: https://github.com/diaspora/diaspora/issues/4800

I have several ideas about what can be done to improve those points, I don’t know if this thread is the place to discuss them on detail.

It is. This is specifically its purpose, so you can go on :wink:

Backup

Backup of database ? I don’t think this is a realistic goal for a first release version. I’d let that one ou for a 1.0.0.0 version.

Performance (a pod of 10 users should run nicely with 1GB Ram)

Same thing here. Improve performance will be long and complicated. I don’t think this should be a blocking point for a first release.

Moderation

What more, apart from what is already existing ?

It is. This is specifically its purpose, so you can go on :wink:

This thread is general and I like it, I’d like to agree with everyone what should be included in 1.x. To decide about the “big picture”. How we specifically solve each point should be discussed on other threads to avoid pollute this one.

1.x means diaspora* is ready to be used by the world, so, as said in my previous comment, I think the focus for 1.x should be “allow a non-techy person to have his own pod”. Admin features are at this point more important to me than user features, that means, I don’t think any user feature (event, group, chat…) should block 1.x.

The backup point is here because we know that hard drive can crash so it was aim to avoid private key lost.

The backup point is here because we know that hard drive can crash so it was aim to avoid private key lost.

So, this should better be automatic, than administrator-driven.

Where did you see I wanted them administrator-driven and not automatic? :wink:

My personal list is more like

  • Seed migration
  • API
  • Chat (in a usable state)
  • Groups/Events
  • Federation 2.0
  • Redesign

ordered by importance. Especially seed migration was one of the core promises that we still couldn’t deliver, releasing a 1.0 without it seems wrong. The federation point is about an iteration or redesign of the federation protocol with better stability, resilience and new standards in mind.

Federation can be interresting, indeed. Maybe you could start a discussion on what improvement you’d see in a Federation 2.0 ?

Does each one justifies a release by itself to you or all of these, or… ?

ACK @ Jonne.
That’s also the list I had in mind.

The critical things for me are, sort of in order of importance:

  • Seed migration, which should be simple for the end-user.
  • API.
  • Performance: more reliable federation, and more economical with system resources.
  • Installation and maintenance of pods should be simple for the end-user, not requiring much specialist knowledge.

What constitutes an acceptable level of performance improvement or an acceptably simple installation/maintenance is a matter of debate.

Chat, groups and events, while important to a successful social network in the longer term, I would not personally consider necessary to v1.x.

Seed migration - Even in its most basic form of simply re-creating my aspects and contacts - not worried about old posts, just allow me to move pods!

I have lost count of the years I have been waiting for this core feature.

I have lost count of the years I have been waiting for this core feature.

Five, at most :stuck_out_tongue:

Ok, what is missing for a seed migration ? @jhass : what system do you have in mind for a feature like thins ? Would it take the form of a button “migrate my account to another pod” in the parameters section ?

I wrote up this https://github.com/diaspora/old_diaspora_wiki/blob/master/Seed-migration-proposal.md once.

Nice. Though, I don’t think it would really justify a 1.0 release if the user had to manually backup/import its data. As thae API is currently being develop, I can suggest the migration fonctionnality to be the first feature of it ? This way, a migration could simply take the form of an OAuth application installed on the old account that will be in charge of importing the whole account into tha new pod ?

I like to add that IMHO, an API wouldn’t be sufficient to justify a 1.0 release because I mainly see that work as a very long-term work over multiple release, one little step at a time.

No, I don’t think we should expose things like close account and fetching the private key over the API. That approach also has the huge downside of not going to work if the original pod goes offline. The archive approach can work as a backup you can restore anywhere.

And of course the API would need to reach a somewhat stable state first. After all these points are not “hit any and we’re good” but “should all most likely included”.

like close account and fetching the private key over the API.

I’ve never intended to expose the close account feature via the API, but about the private key, tha mecanism can stay unchanged from what you described, except that the user does not have to fetch the archive himself in all cases. The archive can be exchanged complitely encrypted between the pods. I’m not sure I see why it would be less secure than the user fetching the archive himself and then uploading it.

That you don’t see how potentially exposing a high risk feature to all third party clients due to potential bugs in the authorization layer is not so much of a good idea if it can be avoided, is a bit sad.

But anyway, we’re getting horrendously out of scope of this discussion, there has been quite some previous talk, please continue there.

“should all most likely included”

indeed. The four items I listed are those I consider essential to have been implemented in a fully working way before v1.0 is considered.