Skip to content
This repository has been archived by the owner on Oct 7, 2020. It is now read-only.

docs: Add deprecation policy #12

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

docs: Add deprecation policy #12

wants to merge 4 commits into from

Conversation

geek
Copy link
Member

@geek geek commented May 18, 2015

jasnell and others added 2 commits May 14, 2015 20:07
Update the repository README file to accurately reflect
the intent and nature of this repository. The original
io.js README is preserved as iojs_README.md.

This is temporary just while the convergence process
gets underway. Once the repository moves over to
the official organization, this can be reverted back to
an actual project README that accurately reflects the
combined projects.

Reviewed-By: @jasnell James M Snell <jasnell@gmail.com>
Reviewed-By: @Fishrock123 Jeremiah Senkpiel
PR-URL: nodejs#4
@chrisdickinson
Copy link
Contributor

-1 on this. Breaking end-user code at the end of a pre-determined 3-month cycle without any idea of the downstream impact is not acceptable.

# Deprecation Policy

Any undocumented API or function is subject to change at any time. Only documented APIs are subject to the following
policy.
Copy link
Contributor

Choose a reason for hiding this comment

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

This goes against what we've defined previously in the dev-policy, with regards to "implicit" and "explicit" public APIs, IIRC.

@geek
Copy link
Member Author

geek commented May 18, 2015

@chrisdickinson how long of a period do you need, 5 months, a year?

@chrisdickinson
Copy link
Contributor

"Until we've determined breakage is below a given threshold, on a per-feature basis" would be my preference.

@geek
Copy link
Member Author

geek commented May 18, 2015

@chrisdickinson I think that has a solid spirit and goal to it. You are, however, tying yourself to legacy code and future code that chooses to use the API you want to delete.

Instead, lets have a hard and fast policy and do our best to keep people on board with changes. We can build a much cleaner framework if we are allowed to clean it :)

@rlidwka
Copy link
Contributor

rlidwka commented May 19, 2015

Why are we putting a 5th document into the root of the project that's not used by any of the tools? It's getting a bit crowded there.

@geek
Copy link
Member Author

geek commented May 19, 2015

@rlidwka you can put it wherever you want... the point is to establish a policy.

@jasnell
Copy link
Member

jasnell commented May 19, 2015

This will likely need to come up on the tsc-agenda. /cc @nodejs/tsc

@Fishrock123
Copy link
Member

This still need more discussion. Also, it should probably be PR'd to the io.js repo for now.

@sam-github
Copy link
Contributor

If deprecated APIs are never deleted, people come to ignore the deprecation warnings, because they are effectively meaningless, leading to a situation where you can never delete them because nobody stopped using them, and deleting them is high-impact.

But 3 months seems pretty arbitrary to me, too.

Introducing a deprecation in a semver-major release, and then deleting in the next semver-major release might be more predictable. Depending on how predictable semver-major releases are.

@geek
Copy link
Member Author

geek commented May 19, 2015

@sam-github 3 months is entirely arbitrary... I am more trying to get the conversation started and provide a basic set of ideas. I think your suggestion makes more sense, let the major version dictate the deletion.

@sam-github
Copy link
Contributor

@geek its a good conversation to start having, thanks for kicking it forward.

@mikeal
Copy link
Contributor

mikeal commented May 19, 2015

Why are we putting a 5th document into the root of the project that's not used by any of the tools? It's getting a bit crowded there.

Because every time we add one someone says "why another file in the root?" and then nobody creates a directory and we end up putting it in the root anyway :)

Someone should send a PR moving all but LICENSE and CONTRIBUTING to a directory.

@jasnell
Copy link
Member

jasnell commented May 19, 2015

Or move those to a separate repo entirely. We do have dev-policy available for use. The deprecation policy document really ought to live there.

@Fishrock123
Copy link
Member

Imo dev-policy should eventually live in-tree, because then people will actually see it and it seems more official.

@mikeal
Copy link
Contributor

mikeal commented May 19, 2015

Ya, also the dev policy is specific to nodejs/io.js and nodejs/node. Once we are down to just nodejs/node it would be a little strange for the policy to live in a separate repo. We should keep the repo around indefinitely though just to reference all the conversations we had there.

@chrisdickinson
Copy link
Contributor

Ideally these docs would live in doc/internal – I've been collecting documents in that direction, but I have yet to make the requisite internal doc sprint.

@Fishrock123
Copy link
Member

doc/internal may not be visible enough though.

@chrisdickinson
Copy link
Contributor

There are ways we can mitigate that – huge-big links on the README to appropriate docs, making sure there are decent "landing page" indexes for internal docs, hosting on the main site.

@mikeal
Copy link
Contributor

mikeal commented May 20, 2015

Another thing I just thought about: we're doing RC builds for major releases now and have pulled breaking changes from those once we realized their impact was larger than originally estimated. We may want to standardize a timeframe that we hold majors in RC when there are deprecations so we can continue to understand their impact.

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

Successfully merging this pull request may close these issues.

Deprecation Policy
7 participants