{"action":"created","issue":{"url":"https://api.github.com/repos/iojs/io.js/issues/633","labels_url":"https://api.github.com/repos/iojs/io.js/issues/633/labels{/name}","comments_url":"https://api.github.com/repos/iojs/io.js/issues/633/comments","events_url":"https://api.github.com/repos/iojs/io.js/issues/633/events","html_url":"https://github.com/iojs/io.js/pull/633","id":55711520,"number":633,"title":"docs: lower the maximum stability level to \"stable\"","user":{"login":"jonathanong","id":643505,"avatar_url":"https://avatars.githubusercontent.com/u/643505?v=3","gravatar_id":"","url":"https://api.github.com/users/jonathanong","html_url":"https://github.com/jonathanong","followers_url":"https://api.github.com/users/jonathanong/followers","following_url":"https://api.github.com/users/jonathanong/following{/other_user}","gists_url":"https://api.github.com/users/jonathanong/gists{/gist_id}","starred_url":"https://api.github.com/users/jonathanong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonathanong/subscriptions","organizations_url":"https://api.github.com/users/jonathanong/orgs","repos_url":"https://api.github.com/users/jonathanong/repos","events_url":"https://api.github.com/users/jonathanong/events{/privacy}","received_events_url":"https://api.github.com/users/jonathanong/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/iojs/io.js/labels/tc-agenda","name":"tc-agenda","color":"5319e7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-01-28T04:01:34Z","updated_at":"2015-01-28T18:01:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/iojs/io.js/pulls/633","html_url":"https://github.com/iojs/io.js/pull/633","diff_url":"https://github.com/iojs/io.js/pull/633.diff","patch_url":"https://github.com/iojs/io.js/pull/633.patch"},"body":"personally never liked \"frozen\" or \"locked\" stability levels. although it makes sense from a maintainer's perspective, it somewhat alienates the community. i'd rather have maintainers destroy feature requests with reasoning instead of \"the API is locked. this issue is closed\". instead, i want the community to actively suggest ways to make iojs better, regardless of how much change it may introduce.\r\n\r\nI also do not believe these stability levels to be true. \r\n\r\n- assert is probably going to change with https://github.com/iojs/io.js/pull/621\r\n- with es6, modules are very likely to change (though we have no idea yet)\r\n- timers have changed (in functionality, not necessarily API) almost every minor version of node/iojs\r\n- `.getMaxListeners()` was recently added to events"},"comment":{"url":"https://api.github.com/repos/iojs/io.js/issues/comments/71883160","html_url":"https://github.com/iojs/io.js/pull/633#issuecomment-71883160","issue_url":"https://api.github.com/repos/iojs/io.js/issues/633","id":71883160,"user":{"login":"chrisdickinson","id":37303,"avatar_url":"https://avatars.githubusercontent.com/u/37303?v=3","gravatar_id":"","url":"https://api.github.com/users/chrisdickinson","html_url":"https://github.com/chrisdickinson","followers_url":"https://api.github.com/users/chrisdickinson/followers","following_url":"https://api.github.com/users/chrisdickinson/following{/other_user}","gists_url":"https://api.github.com/users/chrisdickinson/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisdickinson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisdickinson/subscriptions","organizations_url":"https://api.github.com/users/chrisdickinson/orgs","repos_url":"https://api.github.com/users/chrisdickinson/repos","events_url":"https://api.github.com/users/chrisdickinson/events{/privacy}","received_events_url":"https://api.github.com/users/chrisdickinson/received_events","type":"User","site_admin":false},"created_at":"2015-01-28T18:01:19Z","updated_at":"2015-01-28T18:01:19Z","body":"I'm kind of loathe to drop the \"locked\" / \"frozen\" stability levels. The answer for \"why can't we change them\" is *almost* always because it's easy for unintentional consequences to break user code badly. Even if they're not 100% true all of the time (what things are, in programming?) they convey the severity of changing those APIs very well.\r\n\r\nThat said, in the past we've talked about \"ratcheting\" up APIs to frozen/locked over time – which implies that the ultimate goal of any API is to eventually be locked. I disagree with that approach.\r\n\r\nRe: modules: the modules likely won't change, but a new system may land adjacent to the existing module loader. We can't eliminate `require` as soon as the import syntax lands.\r\n\r\nRe: events: that points more at changing the definition of \"locked\" than getting rid of the concept entirely – maybe \"locked\" means \"non-security-related backwards incompatible changes will not be accepted.\""}}