Skip to content

Instantly share code, notes, and snippets.

@ingydotnet
Created January 28, 2014 19:31
Show Gist options
  • Select an option

  • Save ingydotnet/8674477 to your computer and use it in GitHub Desktop.

Select an option

Save ingydotnet/8674477 to your computer and use it in GitHub Desktop.
Alt-IO-All-2014
Releasing a popular module like IO::All under the dist Alt-IO-All-<tag> allows people to install a version of IO::All with a new experimental API, without worrying about introducing something that becomes a compatibility liability.
Alt-IO-All-2014 contains a placeholder no-op module called Alt::IO::All::2014 and also all the new IO::All modules. People can opt in to using it, but IO::All does not index to it.
This allows for a time period of real world testing/vetting.
With IO::All we want to break backwards compatibility. I want to reduce this as much as possible by making two usage forms:
use IO::All; # Make defaults as close to old as possible, and also subject to a deprecation schedule.
use IO::All -AnyOption; # Since we don't use (many at least) options now, an option means that you opt in to the new API.
I want to get IO::All refactored for a few things, before we allow/demand the new -Options. So we can make it available under Alt-.
We can continue releasing IO-All during this time for fixes that do not affect the API.
Also there are a few IO::All plugins that need to be moved forward in parallel.
Once everything seems stable and modern, we can delete the Alt- and release as IO-All.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment