-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Roadmap
Our plans with fog have gotten a bit lost amongst issues and comments on them.
This is going to be a consolidated roadmap / work in progress document to keep track of things.
It covers fog (the project and library) and it's component parts (fog-core, fog-json/xml, fog-providers).
Remember fog uses Semantic Versioning so this covers the MAJOR bumps mostly mainly because they WILL break things by definition.
Notes:
-
FaaL - fog as a Library; related to using
require "fog"
-
FaaC - fog as a Console; related to using
fog
from a shell, entering IRB
Objective: To resolve critical issues before we start redeveloping
- Making the Roadmap public...
- Encourage users to track
~> 1.x.0
in their applications and be ready for testing
- Resolve
require "fog"
slowdown - #3430
Objective: Remove 1.8.7 support and existing deprecations
On some tickets this appears to be the solution to everything. Apologies for that. The "2.0" branding isn't really useful for a series of major changes coordinated across numerous modules.
- Create a public list of providers and their maintainers
- Deprecate providers lacking maintainers (in documentation)
- Declare scheduled release dates (code freezes, release candidates and monthly release on a known date)
- Remove support for Ruby 1.8.7
- Remove and document any existing deprecations in fog
- Remove and document any existing deprecations in providers (where possible)
- Remove dependency lock on nokogiri #3099
- Document existing ENV settings (FOG_RC, FOG_DEBUG, FOG_CREDENTIAL, FOG_MOCK) for FaaC users
- Map ENV settings to settable, internal configuration - setting an ENV variable should not be required to trigger an effect in FaaL
- No more gems added to
fog
but should await/use provider registry
- [fog] Loosen dependencies to minimum
- Split "console" behaviour into cleaner classes separate from
Fog
so FaaC does not interfere with FaaL - [fog-core] Finalise "specs" for providers to test with
- Clearer service definitions and specs #1252
- Compute
- Storage
- Load Balancers
- DNS Services
- CDN
- Clearer service definitions and specs #1252
- [fog-core] Internal provider registry - allow a
require
d provider declare services separately from fog in separate gem - [fog-generator] Tool to generate provider skeletons
- MiniSpec tests to replace all low level unit tests
- Add ENV["FOG_INSECURE"] to set internal configuration to allow HTTPS to services with invalid SSL certs (i.e. development systems)
Objective: Really start to clean up the codebase
- Document provider requirements strictly and accurately
- Remove provider testing from main gem, up to provider maintainers to fully test their code
- Remove providers without maintainers from the main gem
- All providers use new registry to load themselves
- Isolate requests from underlying providers
- "Connection" should be fully wrapped with mocks #1418
- Fog.mock! proposal to allow experimenting with Excon Stubs #2629
- Homogenize error handling #3190
- Remove "Mock" functionality as a core feature. If providers wish to implement it they may but no need for a duplicate code path
- fog should allow a pluggable http access layer #19
- Provider gem layout
- Idiomatic gem layout
- Idiomatic namespacing
- How to organize raw request files? #22
Objective: Make fog
a standalone tool and it's libraries available for reuse
- Make current behaviour of
fog
accessible asfog console
- Enable
fog
to accept subcommands to build a cloud independent -
gem install fog
gets you the CLI/console andfog-core
- fog will warn/raise when no providers are installed separately