Version 1 vs 2
Version 1 vs 2
Edits
Edits
- Delete by epriestley, Version 2
- Oct 11 2013 1:15 PM
- Edit by btrahan, Version 1
- May 3 2013 12:23 AM
| Original Change | Most Recent Change |
| Edit Older Version 1... |
Content Changes
Content Changes
= Overview =
This document contains two proposals for Phacility and Facebook working together in the future. The first is about creating a new Phabricator shell corporation to share control of the IP. The second is a bid from Phacility for specific project work for Facebook.
= Proposal 1 =
PREAMBLE. This charter defines a company to hold rights and property associated with open source software. The purpose of the company is to ensure the software is available under an open source license forever.
PROPERTY. This company holds all property fundamental to the software. The property includes names, marks, copyright, patents, and other intellectual property associated with the software. It also includes physical and virtual property necessary to administrate the software, such as domain names.
SOFTWARE. The software is: Phabricator, Arcanist, and libphutil.
LICENSE. The software held by the company will be made available under the Apache 2.0 License.
IMMUTABILITY. The property stays here. Property owned by the company may not be licensed, sold, transferred or assigned except under the aforementioned license.
ORGANIZATIONS. This charter designates member organizations. One member is the designated administrative organization.
MEMBERS. The members are Facebook, Inc. and Phacility, Inc.
ADMINISTRATOR. The administrator is Phacility, Inc.
ASSIGNMENT. Members assign all relevant property to the company when they join. As a precondition of membership, members must assign all property related to the software to the company. So long as organizations retain membership, they must assign any any new property related to the software that is generated or acquired to the company.
AMENDMENTS. Amendments to this document may be adopted by unanimous vote of all members, or by arbitration among members in the event of a dispute.
RESIGNATION. Members may resign at any time, without requiring a vote.
EQUALITY. Anyone can use the software, including commercially, as long as they adhere to the license. The company will treat member and non-member organizations equally with respect to use of the software.
INDEMNITY. If you are upset at a member of the company for something related to the company, you have to sue the company instead of them, and the company doesn't have any money so tough luck?
ADMINISTRATOR RIGHTS AND RESPONSIBILITIES.
DEVELOPMENT. The administrator will oversee development of the software, including: assuring it is publicly available under the license; maintaining a befitting public presence; and directing development for the benefit of all users.
COPYRIGHT ASSIGNMENT. The administrator will ensure contributions to the software have copyright assigned to the company.
FEES. Administrative, technical and other fees related to the software or company will be paid by the administrator.
NEGLECT. Administrators who substantially fail to fulfill their duties forfeit the position.
RIGHTS NOT ENUMERATED. All other rights and responsibilities related to administration of the software and property that are not explicitly enumerated in this document fall to the administrator.
REVOCATION. If any member organization is acquired or dissolved, its membership is revoked. If the administrator's membership is revoked, administration falls to the longest continuous member of the company.
INITIAL ASSIGNMENT. Facebook, Inc initially assigns the Phabricator trademark and name, all relevant software copyright, and the "phabricator.org" domain name to the company. Phacility, Inc initially assigns the "eye gear" mark, all relevant software copyright, and the "phabricator.com" domain name to the company.
= Proposal 2 =
TIMELINE
Delivery on or before 6 weeks from start of contract.
PERSONNEL
Phacility: Bob Trahan, Evan Priestley, Chad Little
Facebook: Edward Speyer
OVERVIEW
Phacility will assist in developing Releeph in the Phabricator upstream, with two goals:
- Bring Releeph to feature parity with the existing merge tool and assist Facebook in migrating deployment of "www" to Releeph.
- Bring Releeph "up to code" with respect to Phabricator quality conventions so that Phacility is comfortable maintaining it going forward and the application can be moved to Beta.
DELIVERABLES (Features)
- Tighter integration between Releeph and Diffusion so that manual merges are represented automatically.
- Improved automated handling of reverts.
- Resolve T2750: Show whether a branch has been cut or not.
- Resolve T2751: Validate trunkBranch exists when editing a ReleephProject (or kill it).
- Resolve T2752: Releeph shouldn't let you request the same code twice.
- Reasonable additional features to be discovered later, which are present in the Merge tool but not in Releeph.
- Phacility will provide a reasonable level of onsite support to assist the cutover.
DELIVERABLES (Quality)
- Migrate Releeph to ApplicationTransactions.
- Migrate Releeph to ApplicationSearch.
- Make Releeph policy-aware.
- Give Releeph an updated, consistent look-and-feel with responsive layouts.
- Clean up Differential action hooks.
- Clean up various ad-hoc queries against Diffusion.
- Provide and implement generic PHID hooks.
- Provide and implement generic user attribute hooks.
- Provide internationalization.
- Write user documentation for Releeph.
- We'd like to make Releeph easier to use and more approachable for organizations which aren't yet at Facebook's scale. This is probably mostly UX stuff.
- Remove weird alpha config and promote Releeph to beta.
CONTINUING SUPPORT
After bringing Releeph up to a satisfactory quality level, Phacility will support it as a first-class Phabricator application going forward. Note this support guarantees maintenance, but new features are not guaranteed unless also Phacility business priorities.
OUT OF SCOPE
- Merge in WWW has a bunch of IRC/notify magic which we'll probably provide hooks for but not implement in the upstream, given how closely tied it is to Facebook.
- Generally, any features which are deeply Facebook-specific will probably get hooks and a non-upstream implementation rather than upstream support.
- Automated cherry-pick is not in scope for this bid, see below.
- Arcanist integration, which we want to replace with automated cherry-pick.
- Any other support Phacility may provide to Facebook is not in scope of this proposal.
COST
$25,000
FOLLOWUP
If this bid is successful and everyone is happy with how things turned out, we intend to submit a followup bid for automated cherry-picking of merges via Drydock. However, this component is not critical and less straightforward than the work outlined here, so we figured we'd start with a smaller bid first.
= Overview =
This document contains two proposals for Phacility and Facebook working together in the future. The first is about creating a new Phabricator shell corporation to share control of the IP. The second is a bid from Phacility for specific project work for Facebook.
= Proposal 1 =
PREAMBLE. This charter defines a company to hold rights and property associated with open source software. The purpose of the company is to ensure the software is available under an open source license forever.
PROPERTY. This company holds all property fundamental to the software. The property includes names, marks, copyright, patents, and other intellectual property associated with the software. It also includes physical and virtual property necessary to administrate the software, such as domain names.
SOFTWARE. The software is: Phabricator, Arcanist, and libphutil.
LICENSE. The software held by the company will be made available under the Apache 2.0 License.
IMMUTABILITY. The property stays here. Property owned by the company may not be licensed, sold, transferred or assigned except under the aforementioned license.
ORGANIZATIONS. This charter designates member organizations. One member is the designated administrative organization.
MEMBERS. The members are Facebook, Inc. and Phacility, Inc.
ADMINISTRATOR. The administrator is Phacility, Inc.
ASSIGNMENT. Members assign all relevant property to the company when they join. As a precondition of membership, members must assign all property related to the software to the company. So long as organizations retain membership, they must assign any any new property related to the software that is generated or acquired to the company.
AMENDMENTS. Amendments to this document may be adopted by unanimous vote of all members, or by arbitration among members in the event of a dispute.
RESIGNATION. Members may resign at any time, without requiring a vote.
EQUALITY. Anyone can use the software, including commercially, as long as they adhere to the license. The company will treat member and non-member organizations equally with respect to use of the software.
INDEMNITY. If you are upset at a member of the company for something related to the company, you have to sue the company instead of them, and the company doesn't have any money so tough luck?
ADMINISTRATOR RIGHTS AND RESPONSIBILITIES.
DEVELOPMENT. The administrator will oversee development of the software, including: assuring it is publicly available under the license; maintaining a befitting public presence; and directing development for the benefit of all users.
COPYRIGHT ASSIGNMENT. The administrator will ensure contributions to the software have copyright assigned to the company.
FEES. Administrative, technical and other fees related to the software or company will be paid by the administrator.
NEGLECT. Administrators who substantially fail to fulfill their duties forfeit the position.
RIGHTS NOT ENUMERATED. All other rights and responsibilities related to administration of the software and property that are not explicitly enumerated in this document fall to the administrator.
REVOCATION. If any member organization is acquired or dissolved, its membership is revoked. If the administrator's membership is revoked, administration falls to the longest continuous member of the company.
INITIAL ASSIGNMENT. Facebook, Inc initially assigns the Phabricator trademark and name, all relevant software copyright, and the "phabricator.org" domain name to the company. Phacility, Inc initially assigns the "eye gear" mark, all relevant software copyright, and the "phabricator.com" domain name to the company.
= Proposal 2 =
TIMELINE
Delivery on or before 6 weeks from start of contract.
PERSONNEL
Phacility: Bob Trahan, Evan Priestley, Chad Little
Facebook: Edward Speyer
OVERVIEW
Phacility will assist in developing Releeph in the Phabricator upstream, with two goals:
- Bring Releeph to feature parity with the existing merge tool and assist Facebook in migrating deployment of "www" to Releeph.
- Bring Releeph "up to code" with respect to Phabricator quality conventions so that Phacility is comfortable maintaining it going forward and the application can be moved to Beta.
DELIVERABLES (Features)
- Tighter integration between Releeph and Diffusion so that manual merges are represented automatically.
- Improved automated handling of reverts.
- Resolve T2750: Show whether a branch has been cut or not.
- Resolve T2751: Validate trunkBranch exists when editing a ReleephProject (or kill it).
- Resolve T2752: Releeph shouldn't let you request the same code twice.
- Reasonable additional features to be discovered later, which are present in the Merge tool but not in Releeph.
- Phacility will provide a reasonable level of onsite support to assist the cutover.
DELIVERABLES (Quality)
- Migrate Releeph to ApplicationTransactions.
- Migrate Releeph to ApplicationSearch.
- Make Releeph policy-aware.
- Give Releeph an updated, consistent look-and-feel with responsive layouts.
- Clean up Differential action hooks.
- Clean up various ad-hoc queries against Diffusion.
- Provide and implement generic PHID hooks.
- Provide and implement generic user attribute hooks.
- Provide internationalization.
- Write user documentation for Releeph.
- We'd like to make Releeph easier to use and more approachable for organizations which aren't yet at Facebook's scale. This is probably mostly UX stuff.
- Remove weird alpha config and promote Releeph to beta.
CONTINUING SUPPORT
After bringing Releeph up to a satisfactory quality level, Phacility will support it as a first-class Phabricator application going forward. Note this support guarantees maintenance, but new features are not guaranteed unless also Phacility business priorities.
OUT OF SCOPE
- Merge in WWW has a bunch of IRC/notify magic which we'll probably provide hooks for but not implement in the upstream, given how closely tied it is to Facebook.
- Generally, any features which are deeply Facebook-specific will probably get hooks and a non-upstream implementation rather than upstream support.
- Automated cherry-pick is not in scope for this bid, see below.
- Arcanist integration, which we want to replace with automated cherry-pick.
- Any other support Phacility may provide to Facebook is not in scope of this proposal.
COST
$25,000
FOLLOWUP
If this bid is successful and everyone is happy with how things turned out, we intend to submit a followup bid for automated cherry-picking of merges via Drydock. However, this component is not critical and less straightforward than the work outlined here, so we figured we'd start with a smaller bid first.