Page MenuHomePhorge

Discuss the policy for contributing to prototype applications
Closed, ResolvedPublic

Description

The old policy for contributing to prototype applications stated that changes to prototype applications was not allowed with rare exceptions.

But today in Phorge, there are a good number of patches and contributions to prototype applications (including but not limited to Calendar and Packages). We are a community accepting more patches than Phabricator, as Phacility did not prioritize contributions to prototypes at all and relied on SaaS and paid priorization.

The Phabricator-Era Policy

No Prototype Changes

With rare exceptions, we do not accept patches for prototype applications for the same reasons that we don't accept feature requests or bug reports. To learn more about prototype applications, see User Guide: Prototype Applications.

Propsed Policy

Prototype Changes

We generally advise against submitting patches for prototype applications, as they are often subject to significant changes and may not be widely adopted and may need extra care from rare users who are particularly familiar with them. For the same reasons, we also discourage feature requests or bug reports for these applications, unless you are very familiar with their original design and their original workflows. As always, you can open a question in Ponder instead. To learn more about prototype applications, see
User Guide: Prototype Applications.

What We Agree On

  • Users must be familiar with prototypes' orginal design and workflows
  • User can ask about prototypes in here / Ponder.

Event Timeline

I do not think changes are necessarily needed, because it already says "With rare exceptions".
Regarding the proposal, I do not believe that "prototype applications [...] are often subject to significant changes" either.

I do not think changes are necessarily needed, because it already says "With rare exceptions".

Bug fixes and security patches are indeed exceptions but not rare exceptions, assuming they fix problems with rough prototypes.

Regarding the proposal, I do not believe that "prototype applications [...] are often subject to significant changes" either.

It is true that many prototype applications are not subject to significant changes but some usually have minor changes that build upon its original concept in the slow progress of unprototyping it.

My thought on this is that long term, we'll remove the concept of "prototype" completely in favor of Extensions.
The "Prototype" concept was a way for Phacility to experiment with things without committing - but we have a different model today.

Ideally, any current Prototype can be either promoted to Core, extracted to its own extension, or removed completely. Each extension/author can have their own policy on contributing.

Already, any new app that would be considered "Prototype" today should just go in its own extension, and we decided to remove a couple.

My thought on this is that long term, we'll remove the concept of "prototype" completely in favor of Extensions.

Prototypes that need a long way before being promoted to Core are those that should be separated into extensions.

The "Prototype" concept was a way for Phacility to experiment with things without committing - but we have a different model today.

Really!? Phacility SaaS instances do not allow enabling prototypes and self-hosted Support (from the Support application on admin.phacility.com that was oddly marked as Prototype) likely wasn't even available for prototype applications.

Ideally, any current Prototype can be either promoted to Core, extracted to its own extension, or removed completely. Each extension/author can have their own policy on contributing.

Already, any new app that would be considered "Prototype" today should just go in its own extension, and we decided to remove a couple.

It depends on who on the wild (including large private companies developing closed-source software) is using prototype applications on Phorge. This should let us know if it should be promoted to core, separated into an extension, or removed completely if no one uses it (like Releeph and Phragments). Or even better, hold a Slowvote for each prototype application's future and possibly have Phorge's customers to vote (maybe notify as much as possible by creating a blog post about the vote to notify those who use the Atom feed).

It depends on who on the wild (including large private companies developing closed-source software) is using prototype applications on Phorge.

See T15501: Voluntary Usage Survey App basically.

Or even better, hold a Slowvote

Please no popularity contests (with even higher self-selection bias)...

The "Prototype" concept was a way for Phacility to experiment with things without committing - but we have a different model today.

Really!? Phacility SaaS instances do not allow enabling prototypes and self-hosted Support (from the Support application on admin.phacility.com that was oddly marked as Prototype) likely wasn't even available for prototype applications.

Maybe not Phacility at the time, but what the Phabricator project was called back then. But the billing part was intended for paid support.

I think the driving force was to allow the code (and the application) to be changed heavily without impacting too many people.

Ideally, any current Prototype can be either promoted to Core, extracted to its own extension, or removed completely. Each extension/author can have their own policy on contributing.

Already, any new app that would be considered "Prototype" today should just go in its own extension, and we decided to remove a couple.

It depends on who on the wild (including large private companies developing closed-source software) is using prototype applications on Phorge. This should let us know if it should be promoted to core, separated into an extension, or removed completely if no one uses it (like Releeph and Phragments). Or even better, hold a Slowvote for each prototype application's future and possibly have Phorge's customers to vote (maybe notify as much as possible by creating a blog post about the vote to notify those who use the Atom feed).

I'm not sure that "usage" is really the best way to choose between "promote to core" and "extension"; The way I imagine it, in addition to the Core, we'll have a set of "highly recommended extensions" maintained, and a single step to install all of them when setting up a new machine. In that world, any app that can be separated out to an extension will be.
The prototypes can usually be curved out easily, without effecting the rest of the code.

Ideally, any current Prototype can be either promoted to Core, extracted to its own extension, or removed completely. Each extension/author can have their own policy on contributing.

Already, any new app that would be considered "Prototype" today should just go in its own extension, and we decided to remove a couple.

It depends on who on the wild (including large private companies developing closed-source software) is using prototype applications on Phorge. This should let us know if it should be promoted to core, separated into an extension, or removed completely if no one uses it (like Releeph and Phragments). Or even better, hold a Slowvote for each prototype application's future and possibly have Phorge's customers to vote (maybe notify as much as possible by creating a blog post about the vote to notify those who use the Atom feed).

I'm not sure that "usage" is really the best way to choose between "promote to core" and "extension"; The way I imagine it, in addition to the Core, we'll have a set of "highly recommended extensions" maintained, and a single step to install all of them when setting up a new machine. In that world, any app that can be separated out to an extension will be.
The prototypes can usually be curved out easily, without effecting the rest of the code.

So that means Phorge may have bundled extensions just like MediaWiki?

I'm not familiar with MediaWiki's packages - the model I'm copying is VSCode.
My thought is that in the install manual we'll say "now run ./bin/extensions install phorge-recommended-extensions" (near the ./bin/storage) step, and phorge-recommended-extensions would be the equivalent of "extension pack" hosted on the default Extension Store, which is hosted here.
(VSCode also has "bundled extensions", which I think doesn't work for us because we use "clone the repo" as the primary distribution system).