Skip to content
This repository has been archived by the owner on Nov 1, 2022. It is now read-only.

Draft Node.js Foundation Technical Governance Documents #30

Merged
merged 8 commits into from
Mar 30, 2015

Conversation

mkdolan
Copy link
Contributor

@mkdolan mkdolan commented Mar 25, 2015

This is Mike Dolan and Scott Nicholas from The Linux Foundation and we've been working with Bert Belder, James Snell, Mikeal Rogers and TJ Fontaine to create an initial draft of Node.js Foundation's technical governance documents. We used our standard Linux Foundation governance templates for foundations we've setup and inserted the io.js governance terms. The io.js governance terms were a good starting point to begin a discussion for moving forward. All members of the Node.js and io.js community and the advisory board are welcome and encouraged to post comments, questions and suggestions here. Our goal is to collaboratively develop a technical governance model that works to bridge the communities today and also set up a framework that will help guide future members of the community decades from now.

There are governance topics and details we often address in our projects that were not explicitly covered in any existing Node.js or io.js governance materials. Examples include whether/how to incubate new projects, connecting the technical committee with the Foundation's Board, and a few other areas you're likely to notice as you read through the materials I've posted. You may also notice gaps or details that have been addressed, but which are not reflected in our documents. We often set up a structure to capture the elements that a Board would approve in the formation and allow the TSC to determine the operational and logistic details through a development process that would be documented for the technical community. This is a long way of saying the technical documents I've shared are the essential elements to address to setup a TSC under a Foundation and leave details best determined by a TSC to the TSC.

There are three key documents that are used to build our typical technical governance framework.

A. TSC Charter.

The TSC Charter (which the Board approves) establishes a Technical Steering Committee under the Foundation. This is a formal document approved by the Board to set up the TSC and make it an official committee. The TSC will also be addressed in the Bylaws for the Foundation but at a very high level. This allows the TSC to be updated later without the scrutiny required of a change in the organization's Bylaws. The Charter sets up the committee, identifies who is eligible to participate in the committee and sets a framework for what the committee should do and how it will govern itself. The operational details and logistics are left to the TSC to determine in a development process.

B. TSC Policy

The TSC Policy (which the Board approves) sets the scope of the TSC and sets principles that the TSC should adhere to or abide by in the technical collaboration effort. This includes high level principles the community will be expected to adhere to and follow. The Policy is important to capture the high level principles, but should not be too detailed and become a burden or micro-manage how the TSC collaborates.

C. Project Lifecycle

This is perhaps a new concept as it relates to Node.js or io.js governance though it seems a few members of the community have been thinking about models for how projects enter a Foundation, mature and eventually become part of the core Node.js release. There may also be additional projects that will wish to participate under the Foundation. You'll see our project lifecycle terms enter the TSC Charter and TSC Policy documents in various sections to segment how projects of various maturity are treated and to differentiate between core subsystems/modules and other projects that may wish to participate under the foundation. A critical goal of the Project Lifecycle is to establish a mechanism to encourage new, innovative projects that need time to incubate and prove their value while establishing a roadmap and path for those projects to mature within the Foundation and within the release process of the project. It also attempts to create a home for additional related libraries, modules, etc that are looking for a “home” for their project.

As I mentioned above, the documents being committed are a starting point for the discussion and we encourage everyone interested in this subject to contribute your thoughts and suggestions for how we could improve them. If you like them as-is and would like to just voice general support for the direction they are going in, a +1 would be encouraged as well so we can gauge whether members of the community like the approach.


Multiple-candidate methods may be reduced to simple election by plurality when there are only two candidates for one position to be filled. No election is required if there is only one candidate and no objections to the candidates election. Elections shall be done within the Projects by the Collaborators active in the Project.

Each Core Project’s Collaborators shall elect one Maintainer from the Collaborators on the project to serve on the TSC. There may be only one Maintainer per Core Project that shall be nominated and elected by the Collaborators within the Core Project.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that the expected size of the TSC (as stated above) is 6-12, this implies that there will never be more than 12 core projects, correct? Or if that were to happen, would the TSC re-evaluate the project organizational structure as necessary?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be up to the TSC to evaluate in the current model. It sets the goal/expectation, but leaves the TSC empowered to define the structure. 6-12 was chosen as a range of what would ensure diversity but also make it manageable to easily communicate and operate as a cohesive working team.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's also possible that a single person is involved in multiple core projects and chosen to represent more than one on the TSC, so the target of 12 doesn't necessarily mean a total of 12 core projects.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense to me. Thanks for the clarification Mike and Mikeal.

* Detailed documentation available documenting the code
* Core Review
* Core-state proposal posted for two weeks
* Project is shown to be viable, necessary or broadly useful module, subsystem or component of Node.js

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels like one of the more important criteria for both Creation Review and Graduation Review. The following statement is in section 6 of the TSC charter:

...changes in the lifecycle of a Project, which will include consideration of the following criteria:

  • ...
  • Alignment with Node.js Foundation’s goals and priorities.

Would the "alignment" statement be useful to include in Creation Review to ensure that projects being incubated by the foundation / TSC are well within scope of the foundation's goals and priorities?

The only reason I ask this is that interpretation of something that is a "viable, necessary or broadly useful module, susbsystem or component of Node.js" could end up being very broad, and even extend to modules that may have historically been considered "user-land" modules. Unless that is the intent?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's possible that a user-land module is so fundamental to the platform that it deserves a TSC seat. IMO nan is already at that point.

@piscisaureus
Copy link
Contributor

@mkdolan I would suggest to give all the files a '.md' extension so github renders them properly.

* Meets Foundation’s policies (e.g. IP Policy)
* Proposal has been socialized with potentially interested or affected existing Projects
* Proposal email has been sent to the TSC mailing list
* Review by TSC: Confirm that the proposal is complete and the above listed requirements have been sufficiently met.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What qualifies as a "project"? Waiting two weeks to initally spin up a new working group for a repo (such as docker-iojs) would just be ludicrous.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The way I interpret this is only for projects that want to be under the umbrella of the Node.js Foundation. Nothing should stop anyone from creating a repo for any project wherever they would like, but that projects under the auspices of the Node.js project should have a bit more rigor around their setup.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chris' response was exactly the intent.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll just let future PR's resolve this. I.e. Totally impractical for research/test projects.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Fishrock123 how so? As I understand it, the projects can be created, and developed during that initial two weeks. What do you see as being a blocker for research/test projects?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #33

@Fishrock123
Copy link

So, do "Projects" replace io.js Working Groups?

The rules here seem very restrictive for those.

* has a significant impact on the codebase,
* is inherently controversial; or
* has failed to reach consensus amongst the Collaborators who are actively participating in the discussion.
* The TC should serve as the final arbiter where required.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TC --> TSC

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch - it looks like a remnant of our copy/paste effort from the io.js documents.

@mikeal
Copy link
Contributor

mikeal commented Mar 26, 2015

@Fishrock123 the short answer is "yes," Projects should replace io.js working group definitions. That said, there's a lot of work to be done to reconcile this definition with the io.js working group definition, which I'll be working on soon.

The LF has a pretty standard document for projects under a foundation which they have adapted as close as they can do our needs here. io.js Working Groups have been formed and a somewhat formal definition defined in an environment where we have no institutional or financial support. In contrast, this definition comes from the point of view of an institution which has certain liabilities (legal and financial) over any work that happens under its "umbrella."

I'll be preparing a pull request to this document (after it is merged) which tries to reconcile the concerns of the foundation with the lessons learned in io.js about working groups which can be a charter that supports all the existing io.js working groups as well as future projects.


## Section 3. Board’s Role in Setting Node.js Foundation’s Strategic Direction.

The Board will set the overall TSC Policy. The policy will describe the overarching scope of the Node.js Foundation initiative, Node.js Foundation’s technical vision and direction and project release expectations in the form of expected cadence and intent. The Board will use the TSC as a delegate body for governing technical implementation, individual project scope and direction while they remain within the scope and direction of the policies as described in the TSC Policy document and approved by the Board.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't Technical Lead come before Business Lead, or is that not legally possible?

I suppose i.e. what good reason does the board have to be able to change the TSC policy?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Board is the legal fiduciary for running the independent legal entity that will be the Foundation. It's a corporate governance matter. We try to setup the TSC to run as independently as possible, but there are some things we just cannot avoid based on corporation requirements and responsibilities of a Board. "Non-profit organizations" are filed as (typically Delaware) corporations, then they seek IRS approval for 501(c)(3) or 501(c)(6) non-profit status. As a corporation, they need a Board that is responsible for the entity. By way of an extreme example, if the TSC decided to change the TSC Policy to focus the community on developing nuclear and biological weapons, the Board of the entity would ultimately be responsible for the outcome ;-)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps it could be possible that the TSC / it's members hold the responsibility? That way maybe it could be laid out without requiring the board's potential ability to interfere.

Edit: discussion here in irc: http://logs.libuv.org/io.js/latest#19:57:12.833

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Fishrock123 I talked with you a bit on IRC the other day about the required order of operations. But something else I should say: we need to create structures and policies which provide the right incentives and to do that we need to understand the motivations of the people involved.

The board doesn't actually want to make technical decisions. They want the project to run successfully in a way that doesn't hurt their business without needing to involve themselves directly. Those business interests vary from company to company and that's why it's actually quite nice to have a board of them so they can figure out what the commonalities are and share any concerns they might have with the TSC (who would be foolish to ignore input from the majority of businesses supporting the platform they are building). The concerns we had that lead to creating io.js are shared by many of those companies, otherwise the foundation wouldn't be trying to reconcile the projects. Those companies are now on a board or directors which is administering this foundation and if for some reason they ever did go crazy and try to make technical decisions they'd have to convince the other members of the board on those same technical decisions. Even more importantly, they would have to do all of this publicly.

These "what if" concerns are the same kinds of concerns you could have about anything, even io.js. What if more than 50% of the io.js TC decided to move the project to Java? It could happen if they all agreed to it but we all know it's so unlikely to happen that it's not worth even considering as a possibility and the reason it's so unlikely is that there are too many incentives for all the actors involved not to do it.

What you don't see in these documents are the legal, marketing, and public relations efforts. That is where these companies do want to be more involved. And being that all of those things cost money and they are the ones putting up that money I don't see why we shouldn't let them run it. Besides, they are actually quite a bit better at doing those things than a bunch of developers are. I'm sure there will end up being collaboration with the technical side on legal matters and evangelism on the marketing because there are incentives for everyone involved to collaborate together because we all bring something important to the table, we just need a place to facilitate that collaboration and that is what the foundation is meant to be.

We aren't going to all work together because we all have guns on the table pointed at each other. We're going to work together because one set of people have peanut butter, another jelly, and another some bread and a PB&J is far more delicious than any of those things individually :)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mikeal This is a wonderful explanation. I was concerned myself, but it seems the concerns about the Board being able to change the TSC policy come from the mental model of viewing the Board and TSC as adversaries. As you point out, that's a flawed way of looking at it; if we ever reach that point, it's likely a symptom of deeper issues.

Is it worth some thought about what happens if there is a disagreement between the TSC and Board? At least in my experience, business interests and technical interests don't always coincide; in your mind, how would such a conflict be resolved?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Morgul this is where the "wall" comes in handy between the TSC and the board. The TSC has autonomy, they have the final call on technical issues. If the board is unhappy with one they can't change it or veto it, all they can do is complain and if the TSC members care enough about that unhappiness it might influence them.

@Qard
Copy link

Qard commented Mar 26, 2015

Certainly the tracing working group doesn't really fit well in the boundaries of a project. We're very research-oriented currently, and don't have a clearly-defined task beyond "make tracing better".

The way "projects" are currently defined is not really conducive to research-oriented work or any forward-thinking effort, like NG that has no set "shipping" criteria.

@Fishrock123
Copy link

I'll be preparing a pull request to this document (after it is merged)

@mikeal does the document being pulled in have any significance to anything? I'd think those changes should be made here?

@mikeal
Copy link
Contributor

mikeal commented Mar 26, 2015

@Fishrock123 my expectation is that this PR will be merged shortly and that there will be a period of time where we all make comments and alterations to those documents before they become official. That's why there are giant headings at the top of each document stating that they are drafts for public comment. As a practical matter it's easier to merge this and then discuss additional pull requests here than to send changes to a fork.

@ghost
Copy link

ghost commented Mar 26, 2015

I couldn't find one "open governance" once in this page. Did I screw up or did no one really mentioned it?

@Fishrock123
Copy link

I'd like to also see how the Board's governance will run, although I suppose that may come in a separate PR?

@mikeal
Copy link
Contributor

mikeal commented Mar 26, 2015

@Fishrock123 I've seen the foundation membership agreements before, they were worked out before the announcement at Node Summit although I don't know if/where they are posted publicly. It's a pretty standard open source 501(c)6 where corporate membership is set at 3 levels, the top getting a board seat and the other 2 levels electing a certain number of board seats to represent them.

@mikeal
Copy link
Contributor

mikeal commented Mar 26, 2015

@mrseth the TSC charter describes an open governance model, it probably doesn't say the words "open governance" because it would be redundant.

@mikeal
Copy link
Contributor

mikeal commented Mar 26, 2015

@Qard yup, I'll be working on a big PR to revise the project life cycle so that it can work for our existing io.js working groups as well as future projects/wg's we can imagine wanting to house in the foundation.

@mkdolan
Copy link
Contributor Author

mkdolan commented Mar 26, 2015

To the point about stating "open governance" explicitly, our projects at the LF normally assume that to be the case. We have in Section 1 what I have considered to be a statement of operating under an open governance model. I understand this community may be operating in a different political context at the moment, and while I personally think it's redundant given the terms in the document define the open governance model, we could insert the words explicitly in Section 1 if it's helpful to people.

* Confirmed acceptance and successful integration of contributions/code to partner/upstream projects. 
* Testing/integration environment defined and mature, tests and integration run successfully
* Detailed documentation available documenting the code
* Core Review

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks to me like the Core Review should be a level 3 heading rather than a bullet under Graduation Review:

Graduation Review

  • Graduation proposal posted for two weeks:
  • ...

Core Review

  • Core-state proposal posted for two weeks
  • ...

Termination Review

  • Termination proposal posted for two weeks
  • ...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, you're right. I just fixed that - thanks for the extra set of eyes on it :-)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're welcome! Its been fun to watch the project evolve and to be able to
make contributions—even if they're just nits :-)
On Mar 30, 2015 10:48 AM, "Mike Dolan" [email protected] wrote:

In governance-proposal/TSC-Project-Lifecycle.md
#30 (comment)
:

  • * Proposal email has been sent to the TSC mailing list
    +* Review by TSC: Confirm that the proposal is complete and the above listed requirements have been sufficiently met.
    +
    +### Graduation Review
    +* Graduation proposal posted for two weeks:
  • * The Project demonstrates stable output (code base, documents, tests)
  • * Active community working on the Project
  • * History of successful, consistent releases in accordance with the release process
    +* TSC review
  • * Working and stable code base exists
  • * Active community exists
  • * Project has demonstrated a history of releases following the release process and cadence
  • * Confirmed acceptance and successful integration of contributions/code to partner/upstream projects.
  • * Testing/integration environment defined and mature, tests and integration run successfully
  • * Detailed documentation available documenting the code
    +* Core Review

Yes, you're right. I just fixed that - thanks for the extra set of eyes on
it :-)


Reply to this email directly or view it on GitHub
https://github.com/joyent/nodejs-advisory-board/pull/30/files#r27414126.

@mikeal
Copy link
Contributor

mikeal commented Mar 27, 2015

I've got a draft of a new Project Lifecycle off in a branch. I'd like to send it as a PR as soon as this is merged but until then:

https://github.com/mikeal/nodejs-advisory-board/blob/new-lifecycle/governance-proposal/TSC-Project-Lifecycle.md

The biggest change is to the incubation and proposal phases. Basically, "Incubation" has two paths, either "bootstrapped" (inside the foundation) or a project matures outside the foundation to a significant point and then would like to join. In both cases incubation happens before a proposal or charter is defined. This allows us to experiment and create projects with less barriers but keep them at arms length (provisional status can be shut down at any time, no monetary or legal resources committed) and allow them to mature before we write the charter.

In the io.js working groups we've found that it's best to remove barriers to people forming groups and getting work done and that it's much better to have groups write a proposal/charter after they've been doing work successfully.

This change to the incubation phase actually reduced the number of levels and reviews, simplifying the process quite a bit.

There are some other smaller edits and changes in the review processes that are trying to bring it more in line with the working groups we have in io.js which aren't strictly code projects with their own releases.

@ghost
Copy link

ghost commented Mar 28, 2015

What will happen to current Working Groups?

piscisaureus added a commit that referenced this pull request Mar 30, 2015
Draft Node.js Foundation technical governance documents
@piscisaureus piscisaureus merged commit 0609b04 into joyent:master Mar 30, 2015
@mikeal
Copy link
Contributor

mikeal commented Mar 30, 2015

@BenjaminProgram

I'm working on a PR to this that brings the Project Lifecycle in-line with Working Groups enough that we could migrate them over under that structure.

@piscisaureus
Copy link
Contributor

I've merged this PR so people can propose more updates as individual pull requests.
For those who are not so familiar with github: a list of open pull requests can be found here

@luke-john
Copy link

These are starting to look good @mkdolan. Thank you for working with the various groups to help make this happen.

I have a few questions;

Is it possible for the bylaws to contain a provision that allows the TSCs board representative to veto any motion that is at odds with the Technical Community?

Would it be possible for control of the brand and any copyrights to be held in such a way that if the TSC decided to leave the foundation they would remain in control of them. Requiring the Foundation to re-brand itself.

Will the foundations bylaws be made public in the same way as the other draft documents for community feedback?

@ghost
Copy link

ghost commented Apr 14, 2015

I can't believe how bad this is looking for io.js.

@jasnell
Copy link

jasnell commented Apr 14, 2015

@mrseth care to explain your concern?

@ghost
Copy link

ghost commented Apr 14, 2015

@jasnell It restricts way too much the developers while offering nothing that io.js is lacking at the moment. People are promising funds, power, users but NONE of that made a difference for node.js. It doesnt matter how many money and users you have if you are being smothered by clueless C level executives like the node foundation is going to do. On the meanwhile 1.7 was just released, io.js keeps increasing the distance between it and node and shows no signs of slowing down.

@mbonaci
Copy link
Contributor

mbonaci commented Apr 15, 2015

I agree with @mrseth.
What does Joyent bring to the table except few enterprise customers (no, this is not a rhetorical question, I'd really like to get an answer in a form of bulleted list)?
We are all aware of their "Node stewardship" track record.

I also cannot fathom why is IBM given a board seat (don't tell me node-red or AIX)?
I was unfortunate enough to be working with IBM products (from the Collaboration and ECM portfolios, e.g Datacap, FileNet, Domino, WebSphere, DB2, ...) for a few years and let me tell you, the products are nothing short of a terrible bloatware, all closed/proprietary (of course), licensing is incomprehensible unless you have a dedicated person that deals only with that. Vendor lock-in is the phrase they like the most.
What can we learn from IBM? Let's face it, besides couple of worthy efforts (Navigator (Dojo), Orion) it's a dinosaur.

Don't get me started on their release cycles.
E.g. this shameful document: ftp://public.dhe.ibm.com/software/java/docs/IBMSDKforNodejs.pdf is IBM SDK for Node.js v1.1 documentation (from 02/2014, with apparently no new versions).
TLDR; inside is this.
And they have the nerve to sit on the board.

IO.js track record is impeccable. Versions are flying out, V8 is finally caught up with, new language features are here, working groups turned out to be so successful, that they are becoming a new model for large-scale modular software development ("one thing and one thing well"), @rvagg's "give ownership"-style package management is spreading, ...

Given all that, IMHO, in order to buy into foundation the model would have stay exactly the same as it is (at IO.js). The board would have to be under TC, not the other way around, with only one goal: to serve and support TC. I don't care what those bodies are called or what Linux foundation's rules say, this is how it's supposed to be. Reconciliation terms are upside down.

@mikeal, in my eyes you are the primary reason for IO.js success and the whole community has faith in you. Please don't let these corporate-style paperwork-bullying make you ease up on your principles. Don't back off one bit from the original requirements for going into foundation.

Also, the way @tjfontaine is downplaying IO.js made me a bit uncomfortable. Like "We were going to do the foundation thing anyway".
And again, selling the "stability story", which couldn't be further from the truth.

@mikeal
Copy link
Contributor

mikeal commented Apr 15, 2015

I'm working to ensure that the progress we've made in io.js is preserved in the Node.js Foundation were we to decide to move there. There's a lot of documents that define the policies for the foundation and for io.js so I've been working on a better summary that diffs the proposed policies of the foundation with those of io.js.

nodejs/node#1416

As it stands I can't find a difference between them that is objectionable. In fact, this whole process has lead to a lot of existing io.js' practices being documented and more well defined.

We've wanted a foundation and have been actively pursuing it for a year. In fact, we advocate for a foundation structure this way and bootstrapped with the help of the Linux Foundation. It exists now, and it has the node.js IP in it. Now what we need is the policies, practices and governance that allow us to run io.js successfully and, so far, that's what we've been getting.

@jasnell
Copy link

jasnell commented Apr 15, 2015

@mbonaci and @mrseth ... I'm not going to bother attempting to change either of your minds here... but, I would just point out that the IBM SDK for Node.js is simply IBM's straight port of Node.js onto Z and Power systems with a very small amount of additional debugging mechanism bolted in. It's currently on v0.10.38 (http://www.ibm.com/developerworks/web/nodesdk/). Our team has been working with V8 first to ensure that V8 will run on System Z and ppc systems. We use it directly within our BlueMix environment which is, of course, based on the OpenSource CloudFoundry and OpenStack projects.

Perhaps a more productive question for the two of you (and others) would be: do you see anything particularly troubling in the draft documents themselves? Specifically, things that would be actively harmful or disruptive to the node.js/io.js community as a whole. So far the drafts have been reviewed by members of both project TC's but community review is absolutely helpful.


The TSC members shall consist of Maintainers from Core Projects as defined in the project lifecycle document and Section 7.

The TSC shall meet regularly using tools that enable participation by the community (e.g. weekly on a Google Hangout On Air, or through any other appropriate means selected by the TSC). The meeting shall be directed by the TSC Chairperson. Minutes or an appropriate recording shall be taken and made available to the community through accessible public postings.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I strongly approve of the openness being enforced here.

@Burstaholic
Copy link

As long as the foundation's board has legal responsibility for the project, it has to be the final authority. That's just the way the legalities work. It's not feasible for the board to be legally responsible for something it has no authority over (i.e. the TSC).

You could argue against the whole idea of a foundation, but I think that has been pretty well hashed out.

I agree that strong community representation on the board is a good idea for many reasons, including counterbalancing specific corporate interests, and discussion on how exactly to ensure that needs to move forward.

@ghost
Copy link

ghost commented Apr 20, 2015

A recurring argument that I read is that io.js would be benefited, despite the compromises, by a reconciliation.
That it would increase adoption, because it would then have "legitimacy" in the eyes of managers taking decisions that are unable of mathematical and logical thinking.
Because if they were capable, then it wouldn't be necessary to hide behind names and say "b-but all the big kids are doing it", we have the data to prove the superiority of io.js.
Adoption that didn't keep node.js from becoming stagnant and causing io.js to born, mind you.
But have these same people tried to actually fight for these changes in these companies that they don't even own?
If they care SO MUCH about the technology being adopted, have they stood to what they believe to be the best course of action and put themselves in the line?
Have they considered looking for a new job in a company that isn't stuck with dated technologies? Have they considered starting their own companies?
No, of course they haven't. After all is much safer to just sit doing nothing and wait while others bend to the will of the ignorant and the coward until the tool is nothing but a shadow of it could have been.
What is the meaning of adopting a technology if you have corrupted and damaged it for doing so?
Why must everyone suffer from one's lack of spirit for promoting what is right and not what is acceptable in the eyes of the ignorant?
Io.js' development proved time and again that it just doesn't need whatever a reconciliation has to offer, that is a fact.
Why must it have it's wings clipped for those who can't just accept how better it is and adopt it?
If you care so much about it's adoption then fight for it, don't ask for it to be brought down to it's knees.

@Morgul
Copy link

Morgul commented Apr 21, 2015

@mrseth Your position seems rather clear; you feel the compromises being made are to the detriment of io.js, and see no value in the proposed benefits. Is that an accurate summary?

While I personally disagree with your arguments against the benefits (your proposing the sisyphean task of changing a prevailing corporate culture; one I've never seen changed at any of the organizations I've worked for, despite numerous attempts to do so) that argument is actually besides the point. I'm more interested in engaging you on the position I summarized above.

Can you elaborate more on what you feel the negative compromises are, and how they harm io.js? Please, be as specific as possible. A general "have it's wings clipped" won't help drive changes to the proposal; can you break out your concerns into a point by point list? (Even better if you have suggestions for how to improve or change those!) I'd love to understand your concerns more in depth.

@mbonaci
Copy link
Contributor

mbonaci commented Apr 21, 2015

@Morgul I onced asked for a point by point list

What does Joyent bring to the table except few enterprise customers (no, this is not a rhetorical question, I'd really like to get an answer in a form of bulleted list)?

I think that foundation proponents should bear that question, not the other way around.
Since we do have a bad experience with Joyent (some of us with IBM also, not to mention Microsoft) and IO.js is functioning great, the first question should be "What do we gain by joining?".

Then, and only if we're happy with that answer, should we ask "What do we lose by joining?".

So, with good faith, let me start:

  • communities would reunite
  • corporate clients would get reassured about the future of the project
  • "a lot of existing io.js' practices will be documented and more well defined" (by @mikeal)

@mrseth as per the second bullet: I know, you're right, but this is the world we're living in.

Anyone care to add a bullet or two?

EDIT (2015-04-25):
No?
You see, it's easy to hide behind pages and pages of paperwork, but not so easy to boil it down to a simple list.
Or you think this is not a legitimate question?
It's the ultimate question!

@sandro-pasquali
Copy link

One of the best ideas to ever come out of the Node.js community was to aim for, and stop at, a tiny STDLIB. You might say recognize the compact, unique revolution that Github + npm + OSS + Javascript represents and stop creating new features ad nauseam. Does this foundation aim for a similar goal? I anticipate forking the new Node.js (again) whenever this boss becomes the same as the old boss.

@mikeal
Copy link
Contributor

mikeal commented May 3, 2015

@sandro-pasquali this is addressed in the Development Policy

https://github.com/jasnell/dev-policy#guiding-principles

"[..]keeping Node.js focused on providing a minimal kernel of core functionality while deferring, as much as possible, additional capabilities and features to add-on modules or applications."

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.