puppet-community-rangefinder 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7986044b95869bd79c6a178eaca3144fd1e51ee9a3b03ade69f6d35defea98c1
4
- data.tar.gz: 9dd7301b92a27c9e10ac645e07bbbfc4729c46389338072511ea9f2ded204ecf
3
+ metadata.gz: 1ca220be6aa4a132ea5446370c2be2e02fa5d4d391026eea586e24636f6010c8
4
+ data.tar.gz: 3aa913744e8abc0a9425ebe22e3dea4a32c957e1382df8eedda2c4241d055bbb
5
5
  SHA512:
6
- metadata.gz: 693ebb9f951938e2da629f8d6cf85e5843bcdea5d2a11a69de0f93a23641fed57cd92dfe7c31e1ccbd11ec745898bdf840639ef4e77dffa617067ef607bccdf4
7
- data.tar.gz: a74f95290fe024d045548783d8293cae30d2e25e7dd73d7f428ef3752f00a17635e53a57082e4f78090313347035ea676b1d7f3c3ae46e80c36d96a333208374
6
+ metadata.gz: 865fc5f2c07268fb2dcb18e23b1ac56eb9b700008fde3cdadf663470c9410a4fc85faa61242adb9c46b1c19c6c2977390216b18140636694070b8158f6d07ed2
7
+ data.tar.gz: d65542c4505d25adee4058818240870cdce74a0dd1a2ef04bb5178cf673a476a6f2870a07c68cd3afc834ce4b051cb3ec3f0de00976b4d8166b7fd5a4b5ea61c
@@ -1,3 +1,9 @@
1
+ # v0.0.2
2
+
3
+ * better identification of WILL impact and MAY impact lists
4
+ * eliminate edge cases which might lead to minor duplicate results
5
+
6
+
1
7
  # v0.0.1
2
8
 
3
9
  * Initial release.
data/README.md CHANGED
@@ -5,12 +5,17 @@ Predicts downstream impact of breaking file changes
5
5
 
6
6
  Rangefinder provides a command that can infer what a file defines and then tell
7
7
  you what Forge modules use it. In other words, if you change the interface
8
- provided by that file -- this will tell you what Forge modules must adapt to it.
8
+ provided by that file -- this will tell you what Forge modules must adapt to
9
+ that change.
10
+
11
+ If the file being evaluated is part of a Puppet module, then Rangefinder will
12
+ use that module's `metadata.json` to identify the name, and then use it to
13
+ fine-tune the way the results are presented.
9
14
 
10
15
  It will separate output by the modules that we *know* will be impacted and those
11
16
  which we can only *guess* that will be impacted. We can tell the difference based
12
- on whether the impacted module has properly described dependencies in their
13
- `metadata.json`.
17
+ on whether the impacted module has properly described dependencies in their own
18
+ `metadata.json` and whether `rangefinder` can figure out a dependency match.
14
19
 
15
20
  This currently knows how to interpret and look up:
16
21
 
@@ -41,9 +46,9 @@ Contact [me](mailto:ben.ford@puppet.com) for credentials.
41
46
 
42
47
  ## Running
43
48
 
44
- Just run the `rangefinder` command with a list of files in a Puppet module. If
45
- it knows what the file is, then it will print out a list of Forge modules that
46
- use the thing defined by that file.
49
+ Just run the `rangefinder` command with a list of files. If it knows what the
50
+ file defines, then it will print out a list of Forge modules that use the thing
51
+ defined by that file.
47
52
 
48
53
  You can also `--render-as` either `json` or `yaml`.
49
54
 
@@ -17,7 +17,7 @@ class Rangefinder::Bigquery
17
17
  end
18
18
 
19
19
  def find(namespace, kind, name)
20
- sql = "SELECT module, i.source, m.source AS repo
20
+ sql = "SELECT DISTINCT module, i.source, m.source AS repo
21
21
  FROM `bto-dataops-datalake-prod.community.forge_itemized` AS i
22
22
  JOIN `bto-dataops-datalake-prod.community.forge_modules` AS m
23
23
  ON m.slug = i.module
@@ -25,11 +25,13 @@ class Rangefinder::Bigquery
25
25
 
26
26
  data = @dataset.query(sql, params: {kind: kind.to_s, name: name})
27
27
 
28
+ exact, near = data.partition {|row| row[:source] == namespace and not namespace.nil?}
29
+
28
30
  {
29
- :kind => kind,
30
- :name => name,
31
- :exact => data.select {|row| row[:source] == namespace},
32
- :near => data.reject {|row| row[:source]},
31
+ :kind => kind,
32
+ :name => name,
33
+ :exact => exact,
34
+ :near => near,
33
35
  }
34
36
  end
35
37
  end
@@ -1,3 +1,3 @@
1
1
  class Rangefinder
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
metadata CHANGED
@@ -1,41 +1,47 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-community-rangefinder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Ford
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-30 00:00:00.000000000 Z
11
+ date: 2018-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: puppet
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '5.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '7.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - ">"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '5.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '7.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: google-cloud-bigquery
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - ">"
37
+ - - "~>"
32
38
  - !ruby/object:Gem::Version
33
39
  version: '1.0'
34
40
  type: :runtime
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
- - - ">"
44
+ - - "~>"
39
45
  - !ruby/object:Gem::Version
40
46
  version: '1.0'
41
47
  description: |2