Skip to content

Require fog-aws vs. fog#377

Merged
btm merged 1 commit into
chef:masterfrom
tas50:speed_up_requires
Nov 10, 2015
Merged

Require fog-aws vs. fog#377
btm merged 1 commit into
chef:masterfrom
tas50:speed_up_requires

Conversation

@tas50

@tas50 tas50 commented Nov 9, 2015

Copy link
Copy Markdown
Contributor

Fog started out as a monolithic project and is slowly being broken out into smaller libraries. Fog rolls up all of the individual libraries to provide the same behavior in a backwards compatible form. Since we're only interacting with AWS all we really need is fog-aws which depends on fog-core, fog-json, and fog-xml. Here's the positive results of this change:

Gems we will no longer be depending on:

Using inflecto 0.0.2
Using fog-brightbox 0.9.0
Using fog-ecloud 0.3.0
Using fog-local 0.2.1
Using fog-powerdns 0.1.1
Using fog-profitbricks 0.0.5
Using fog-radosgw 0.0.4
Using fog-riakcs 0.1.0
Using fog-sakuracloud 1.3.3
Using fog-serverlove 0.1.2
Using fog-softlayer 1.0.2
Using fog-storm_on_demand 0.1.1
Using fog-terremark 0.1.0
Using fog-vmfusion 0.1.0
Using fog-voxel 0.1.0
Using fog 1.29.0
Using fog-atmos 0.1.0
Using fission 0.5.0
Using CFPropertyList 2.3.2

Load time of the requires:

fog: 0m1.758s
fog-aws: 0m0.682s

So we speed up our load time by a second and we remove 19 dependencies. Also since we're no longer depending directly on fog, we won't pin fog in a way that breaks people that use other knife cloud plugins as we've done in the past.

Fog started out as a monolithic project and is slowly being broken out into smaller libraries.  Fog rolls up all of the individual libraries to provide the same behavior in a backwards compatible form. Since we're only interacting with AWS all we really need is fog-aws which depends on fog-core, fog-json, and fog-xml.  Here's the positive results of this change:

Gems we're no longer be depending on:

Using inflecto 0.0.2
Using fog-brightbox 0.9.0
Using fog-ecloud 0.3.0
Using fog-local 0.2.1
Using fog-powerdns 0.1.1
Using fog-profitbricks 0.0.5
Using fog-radosgw 0.0.4
Using fog-riakcs 0.1.0
Using fog-sakuracloud 1.3.3
Using fog-serverlove 0.1.2
Using fog-softlayer 1.0.2
Using fog-storm_on_demand 0.1.1
Using fog-terremark 0.1.0
Using fog-vmfusion 0.1.0
Using fog-voxel 0.1.0
Using fog 1.29.0
Using fog-atmos 0.1.0
Using fission 0.5.0
Using CFPropertyList 2.3.2

Load time of the requires:

fog: 0m1.758s
fog-aws: 0m0.682s

So we speed up our load time by a second and we remove 19 dependencies.  Also since we're no longer depending directly on fog, we won't pin fog in a way that breaks people that use other knife cloud plugins as we've done in the past.
@gaffneyc

gaffneyc commented Nov 9, 2015

Copy link
Copy Markdown

Change looks good to me. Getting this integrated would be great.

@btm

btm commented Nov 10, 2015

Copy link
Copy Markdown
Contributor

👍

btm added a commit that referenced this pull request Nov 10, 2015
@btm btm merged commit c6c4139 into chef:master Nov 10, 2015
@tas50 tas50 deleted the speed_up_requires branch November 10, 2015 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants