-
Notifications
You must be signed in to change notification settings - Fork 29.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Diffing io.js and the Node.js Foundation #1416
Comments
So are io.js and Node.js going to merge? I would love to see that. I realize that io has had a lot more freedom and progression but we were just barely able to get "official" approval to use Node at my current company - slow moving, I know; Point is, the "node" name means a lot to the community and has trust and maturity behind it for managers and conservative leads; I'd love to see the innovation and contributors of io come back under the "node" umbrella to get the best of both worlds :) |
Ok, huge update with what I could pull out of the dev policy before I passed out :) |
That has not been decided. What we're trying to do here is figure out what that would actually look like and push it in a direction that is acceptable to everyone. |
Why is it necessarily a major release? I feel like I might have missed something about V8 bumps and major versions and was under the impression that we were only bumping major (2.0) for the next V8 upgrade because it seemed like a good chance to throw some of the semver-major changes in. But, a V8 upgrade, even introducing language features, should generally only ever be a semver-minor unless they really screwed something up. I think we've created an exception around the C++ API and Chrome isn't very likely to break JavaScript-land stuff. |
btw, thanks for this @mikeal, makes it so much easier to grok for those of us who are time-poor. Overall the list looks fairly manageable if this really is all there is to it. |
@rvagg sorry, I'll try to state that better. What I meant is, I haven't seen v8 add language features in a release that didn't break ABI from its prior stable release. The policy as stated actually says that we're only going to increase the minor on a language addition but I'm pretty sure that in practice we'll end up eating a major version bump anyway for other reasons. |
Agree, so I apologise in advance if below should live somewhere else.
This needs to be improved:
Another small difference I've noted is that nodejs seems to prefer Finally, I haven't seen anything about how different commits should land in different branches. For now, io.js handled it by PR'ed merge-commits but I doubt that'll scale. Labels could simplify the life of the person merging, but who decides what goes where and when? |
Is this still true in io.js? I was under the impression that on primary platforms all the tests pass.
The "Platform Stability" section tries to address this. Basically, you can add OpenBSD to CI, and it'll run regularly, but it won't block a release. |
Yes and no. Jenkins tells us there's three failing slaves on the last run. Since some are only reproducible within a Jenkins environment it's arguably classified as heisenbugs. With language like that (even if platform stability addresses cases like new platforms) a critical bug fix release shouldn't go out even if the CI itself is to blame. The bigger picture is great though. We're in better shape than ever and will soon be 100% green (jenkins-speak: blue) -- but I'd rather be slightly less strict than "break the rules" when we end up in that situation. |
@jbergstroem interesting, can you log an issue on the dev-policy repo about that. |
@mikeal ... heh, I just put a new PR that would update some of the dev-policy details (simplify based on feedback). It would likely reduce some of the deltas. Tomorrow I'll go through your list above in detail and see if I can call out the possible changes. |
The suggested edits in the PR simplify some of the platform stability issues by collapsing the notions of "primary" and "secondary" into just "supported". I think it's an improvement but I'm operating on little sleep so additional eyes on it would be appreciated. |
I'm curious if there is any movement to include running automated tests on such "sizable" projects prior to a major or minor release (probably not needed for "patch")? Obviously the representatives of these projects could run them on their own, but would there be benefit to the community in providing automated test running for those larger projects? It wouldn't necessarily have to be blocking, perhaps just reported and available to any/all who might be interested in that. (Again, I'm thinking prior to a release, not post-release... By that time the projects should already be pulling in the newest and testing, but it's too late at that point to alter the release.) |
All-around it all sounds pretty good. I'm slightly concerned about only two points here:
The future seems to be good for for node and io.js |
Ok, so if you go take a look at the updated dev-policy draft, I've refined and simplified the LTS language and took out the troublesome strawman LTS process. The overall document is much more straightforward. There are also edits to the Platform Stability and Build stability pieces. |
@jakerella there is work underway to add automated ecosystem testing in. @jbergstroem as @mikeal suggests, it would be helpful to have an issue filed in the dev-policy issue tracker. It sounds like we may need to make some allowances for some failing tests but we'll need to craft some language around it. |
So, the io.js governance policy is intermingled with the dev policy and some other process definitions. In the foundation the TSC Charter is "as small as possible" because it's the only document that requires the board to approve changing it as a point of process. In a way, the charter is already "core" and everything else is in the dev policy (which is sizable) and can be changed more easily and under the normal majority voting rules. |
So all these "assets" will in the future be owned by the foundation:
In addition:
So not only will the foundation own the assets, the board of directors, which runs the foundation, will be able to change their mind in the future and lobby (using budget restrictions, their power through administration of funds) to disempower the TSC. Cant the TSC be the board of directors and hire managers to do all the formal stuff with which the TSC doesnt want to be concerned? Also software to automate processes could be written so that makes the "boring administration" part as simple as possible. Personally, by now I strongly prefer the name "iojs". A budget might have not been necessary in the past and in the future, efforts could be made to have a crowdsourcing (donation based) approach, where people can just donate for certain features or "github issues" to be solved. Something, that doesnt formally empower people, but changes are being made because all sides agree. |
@serapath ... one point that seems to be confusing for folks is this notion that the board will somehow be able to use it's management of the foundation budget to somehow control the TSC's decision making. It should be emphasized that the operation of the TSC is, in no way, dependent on the budget. The budget is intended to be used for things like paying for marketing, infrastructure, conferences, etc. One could argue, I suppose, that the board could refuse to pay for some bit of infrastructure needed by the project but then the board would very quickly end up with a revolt on their hands, which helps no one. It should also be pointed out that the board does not get a say on who is on the TSC or who gets to become a Collaborator. Those decisions are solely in the hands of the TSC itself. The only way for a company to influence the projects direction is to roll up their sleeves and become active Collaborators just like everyone else. |
Ok, to put it another way. I know, those "particular interest groups" will approach anyway, but it's not necessary to give them some special communication access. Why not make the TSC and all its WGs something open, that anyone could approach in an indiegogo like approach or maybe pledgebank The people actively engaged in open source development create something thats very beneficial to the community at large. Now some dudes surrounding joyent, the foundation and I dont know which particular interest, want an exclusive channel to have some power indirectly granted by all the open source developers that grant them this exclusive access. It is nothing that I feel is compatible with the core values of iojs and things should be open, transparent and especially create an environment, in which everyone is equal, can contribute and try next to everyone else to succeed and create value. We do not need certain people, many of them not even involved in creating open source code, to have exclusive access to those who are currently in "high demand" because of their exceptional skills and awesome contributions. That's my opinion. |
How does the board have "exclusive" access to the TSC? I'm not even certain I'm not sure where you're coming up with this "special communication" idea.
|
It's quite easy to theorize new models for funding projects and compare those idealistic models with any concrete proposal. We are not the first open source project to have these kinds of needs. We talked to many projects about how they resolved similar problems a year ago and found a model that is working for several of them (we also found a lot of projects that didn't like their arrangement and steered clear of those). The TC does not want to handle marketing, legal, etc directly. I've been involved more directly in this stuff than anyone and the idea of increasing our direct personal responsibility in these areas is not something I would be excited about or recommend. That is not to say that the TC does not want any influence or participation in these kinds of decisions, they just don't want to be responsible for the directly, and this foundation model is the most preferable. The Node.js Foundation's offer is compelling because it doesn't alter our current processes and lets us continue running the project as we've found most effective and brings the node.js assets to the table. The Linux Foundation has a lot experience doing "the rest" of the foundation work and they've put together something pretty good that we need to seriously consider and we aren't going to compare that against an entirely unproven proposal that requires we do a ton of extra work that takes time away from working and releasing the platform. It's beneficial to rely on the foundation's proven, and well funded, approach to tackling legal and PR so that we can continue to be bold and iterate on new models of project governance, collaboration models, and community building. |
@serapath you may also be interested in a previous comment I made about board influence https://github.com/joyent/nodejs-advisory-board/pull/30/files#r27698737 |
I'm not convinced of the necessity of having a board, but I'm too far away to understand the details. It's a bit sad, that the TC does not want to be responsible and lead and build the tools to automate the decision and management processes, but maybe that might happen in the future and for now it's nice to have the freedom to experiment a bit more and have a hopefully responsible board in the meantime. In the end, what will happen is what you and the other current members of the TC agree upon. |
A board is a legal requirement for having a non-profit.
This isn't a technical problem. If it were then LegalZoom would have a way for us to setup and manage the non-profit. Non-profit accounting and administration is somewhat specialized and the information not entirely accessible to everyone. This comes up whenever someone says "just start a foundation." It's not that simple, it's the opposite of simple, because the government really doesn't want people starting them. By comparison getting a company and handling the accounting is quite easy and straightforward, I have an LLC that I use to run the conferences under and it's a fair amount of work but was something I could figure out and find a lot of relevant documentation on. I clicked some buttons on LegalZoom and had a license in a few hours and a bank account a week later. That's because the government wants people to start businesses. Unfortunately having a for-profit entity owning project assets is what got us in this mess in the first place so this isn't an option. |
I know, I meant I'm not convinced of having a non-profit, but I understand. What you are telling in regard to the LLC, I'm trying the same with an UK Ltd. right now, after deciding against the german "GmbH" (which is what people use where I'm from) - because of too many legal complications. I hope a Ltd. can be enough of a "standard vehicle" now, to start thinking about setting up an orchestrated network of contracts between them, accessible through APIs. I don't understand the difference between "Non-Profit and For-Profit" anyway, feels to me like an accounting trick. |
In UK there is quickfile and in the US you have waveapp. Both don't charge. Waveapp has plans to make an API but probably phantomjs could be used to get there in the meantime. Quickfile already has an API. After a lot of searching I found a couple of accountants in the UK that offered to take care of all the filing requirements for a flat rate of 20 GBP a month, but the accounting rules around certain common business models can be researched and open sourced and modules can be written to automate that too and connect to electronic government interfacces. |
That just means, that members of the board or in general members of the foundation or that are introduced through the foundation can talk to members of the TSC and WGs more easily than some "random" person or organisation who approaches the TSC directly, just because through means of the foundation they will have more contact in general.
So they will do that instead of publishing it to everyone to get some funding from everyone who is willing to support it.
Yes and that is the exclusiveness that I talk about, compared to every other interested person on the planet that would like to make "suggestions" :-) |
This could be a good advice in general, but I'm afraid such exact wording in the official documents will only give an excuse to ship out node.js with 2 year old V8 engine. We've been there before. |
@rlidwka I'd agree, but as per yesterday's TC meeting, that is also the consensus for io.js, with the solution being, just do a major every v8, more or less. |
@Fishrock123 , then it contradicts this clause:
If we do major every v8, all new JS features will be majors as well. You can't bring JS without updating v8. I'm okay with switching to "browser versioning system". But updating v8 until it breaks ABI, then holding on that version several months/years until major release is really not cool. |
Nothing much was discussed last week. Re-add the tc-agenda label when more info is available maybe. |
Closing in favor of #1664 (progress yay!) |
The foundation policy drafts are here but the sheer size and volume of documentation is a little intimidating.
In order for the io.js community to evaluate what a merger looks like we need a better way for everyone to understand what could/would change.
I'd like to use this issue to track any differences between io.js and the Node.js Foundation policies. I don't want to make any judgement calls about these differences I merely want to expose each difference so that everyone can objectively evaluate it themselves.
Summary
I'll keep this summary up to date as people find more differences and post comments.
TSC Charter
Project Lifecycle
Development Policy
tsc-agenda
.Other
Trademark
Right now io.js has no trademark and as such it has no trademark policy. The foundation lawyers will be drafting a new trademark policy for node.js but it doesn't exist yet. Joyent's prior trademark policy will no longer exist.
Foundation Board of Directors
io.js is not a legal entity. Property is owned haphazardly between several individuals and a handful of companies. Such as:
A non-profit foundation is an actual legal entity and can own property. It is operated by the board of directors and elected executives. The board not only shares the task of administering the foundation but can, in some cases, be held legally and financially responsible for it.
In a foundation all the property is owned by the foundation (legal entity). The TSC is given autonomy to run the technical side of the project and do releases but the foundation sets the budget, administers funds, and handles all legal matters.
That means that if someone wants to sue the project they would sue the foundation, rather than Fedor (good luck he's Russian), or me, or NodeSource.
The text was updated successfully, but these errors were encountered: