graphwerk 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7af64b8123b10c0d175ca2b59b321cd0a5140ce3216dfc1d2bd5851f362b5642
4
- data.tar.gz: 05c51382e40bc20ebf51deb955a2bf6b715ee3992f7ceb379d638233cfe998c9
3
+ metadata.gz: 4740933529aec75ed8570637a356ed28477b4490fe7276980dc26a58ae87c563
4
+ data.tar.gz: 2ccabcdeaaedd6fce1488658fb3642459db87ff72e8dcd6768c33032a684fa70
5
5
  SHA512:
6
- metadata.gz: 1cef57b21fe954604e46777f4a35a8200c0bf33f4b0b7a36345faf6a38eb1af2ddbe86462cb79a9bd3ddf90fa3fc7845168b317f59fbd717f1f54e1cda5e88e8
7
- data.tar.gz: fdd4b9b472b4ea595f0e13929448459a7524d10e2edf9efa2f5ef77afc77df2c61e1fe99af2f6bb66b2178974c954e9a823d02301fa71beacaaec8c1228f9bff
6
+ metadata.gz: 46ca8349efe1370511c43b1375184646295dcaea7ff5b16d9ea24b5b165afa1aad20feb5c0055fa5179ce00f47299e1429799be8fcc08b4a1e5c40863819fa5a
7
+ data.tar.gz: bca7bc7aa9393eedd5122ce7c6e4e836eb06a458dbca2751a2b51d11cd63ea7540baecf3449369e0ae08bcbfa25a05075480328e33bca7736905216aea100e24
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: Continuous Integration
3
+ env:
4
+ SLACK_CHANNEL_ID: C0317P7C9C2
5
+ on:
6
+ push:
7
+ branches-ignore:
8
+ - refs/tags/*_staging
9
+ - refs/tags/*_production
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-18.04
13
+ steps:
14
+ - name: Checkout branch
15
+ uses: actions/checkout@v2
16
+ - name: Extract branch name
17
+ shell: bash
18
+ run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
19
+ id: extract_branch
20
+ - name: Cache gems
21
+ uses: actions/cache@v2
22
+ with:
23
+ path: vendor/bundle
24
+ key: "${{ runner.OS }}-gem-cache-${{ hashFiles('**/*.gemspec')
25
+ }}"
26
+ restore-keys: "${{ runner.OS }}-gem-cache-\n"
27
+ - uses: "cachix/install-nix-action@8d6d5e949675fbadb765c6b1a975047fa5f09b27"
28
+ with:
29
+ extra_nix_config: |
30
+ post-build-hook = /etc/nix/upload-to-cache.sh
31
+ substituters = https://cache.nixos.org/
32
+ trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
33
+ nix_path: nixpkgs=channel:nixos-21.05
34
+ - name: Run CI through nix-shell
35
+ env:
36
+ GEMFURY_DEPLOY_TOKEN: ${{ secrets.GEMFURY_DEPLOY_TOKEN }}
37
+ run: nix-shell --run "chmod 755 ./run_ci.sh && ./run_ci.sh"
38
+ - name: Post to Slack if build fails
39
+ if: failure() && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main'
40
+ || github.ref == 'refs/heads/stable')
41
+ uses: pullreminders/slack-action@a5a262c896a1cc80dcbae59ba95513e2dfb21439
42
+ env:
43
+ SLACK_BOT_TOKEN: "${{ secrets.BELLROY_SLACK_TOKEN }}"
44
+ with:
45
+ args: '{\"channel\":\"{{ env.SLACK_CHANNEL_ID }}\",\"text\":\"* ${{ github.repository }} BUILD
46
+ FAILURE*\", \"attachments\": [{ \"fallback\": \"Failure summary\", \"color\":
47
+ \"#ff0000\", \"fields\": [{\"title\": \"Branch\", \"value\":\"${{ steps.extract_branch.outputs.branch
48
+ }}\"}, {\"title\": \"Who broke it\", \"value\":\"${{ github.actor }}\"},
49
+ { \"title\": \"Build output\", \"value\": \"https://github.com/${{ github.repository
50
+ }}/commit/${{ github.sha }}/checks\", \"short\": false }]}]}'
data/.gitignore CHANGED
@@ -13,10 +13,11 @@
13
13
  # rspec failure tracking
14
14
  .rspec_status
15
15
 
16
- /shell.nix
17
16
  /tags
18
17
 
19
18
  *.log
20
19
  .DS_Store
21
20
 
22
21
  .ruby-gemset
22
+ .direnv
23
+ .envrc
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ 1.3.0
2
+
3
+ * Draw package_todo.yml dependencies
4
+ * Add configuration option to hide todo edges on the graph
5
+
6
+ 1.2.1
7
+
8
+ * Add some nicer error messages when dependencies are not found
9
+ * Use Tapioca for RBI generation
10
+ * Use Nix for development environment and CI (Bellroy standard)
11
+
1
12
  1.2.0
2
13
 
3
14
  * Deprecated references are now drawn on the output graph.
data/Gemfile CHANGED
@@ -10,5 +10,4 @@ group :development, :test do
10
10
  gem 'rb-fsevent', require: false
11
11
  gem 'rb-readline'
12
12
  gem 'rspec'
13
- gem 'shoulda-matchers', require: false
14
13
  end
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ![graphwerk-logo](https://user-images.githubusercontent.com/2643026/95463568-cfaada80-0970-11eb-8305-aea01a0d77a9.png)
2
2
 
3
- # Graphwerk [![Gem Version](https://badge.fury.io/rb/graphwerk.svg)](https://badge.fury.io/rb/graphwerk) ![CI Badge](https://github.com/tricycle/graphwerk/workflows/RSpec%20Test%20Suite/badge.svg)
3
+ # Graphwerk [![Gem Version](https://badge.fury.io/rb/graphwerk.svg)](https://badge.fury.io/rb/graphwerk) [![Continuous Integration](https://github.com/bellroy/graphwerk/actions/workflows/ci.yml/badge.svg)](https://github.com/bellroy/graphwerk/actions/workflows/ci.yml)
4
4
 
5
5
  Graphwerk is a small Ruby gem that can generate a diagram of dependencies between packages within an application that's using Packwerk to enforce boundaries.
6
6
 
@@ -41,6 +41,7 @@ graph = Graphwerk::Builders::Graph.new(
41
41
  options: {
42
42
  layout: Graphwerk::Layout::Twopi,
43
43
  deprecated_references_color: 'yellow',
44
+ package_todo_color: 'yellow',
44
45
  graph: { overlap: true },
45
46
  node: { fillcolor: '#000000' },
46
47
  edges: { len: '3.0' }
data/bin/tapioca ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'tapioca' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("tapioca", "tapioca")
data/graphwerk.gemspec CHANGED
@@ -33,4 +33,5 @@ Gem::Specification.new do |spec|
33
33
  spec.add_development_dependency 'rspec', '~> 3.0'
34
34
  spec.add_development_dependency 'sorbet'
35
35
  spec.add_development_dependency 'rspec-sorbet'
36
+ spec.add_development_dependency 'tapioca'
36
37
  end
@@ -10,6 +10,8 @@ module Graphwerk
10
10
  {
11
11
  layout: Graphwerk::Layout,
12
12
  deprecated_references_color: String,
13
+ package_todo_color: String,
14
+ hide_todo: T::Boolean,
13
15
  application: T::Hash[Symbol, Object],
14
16
  graph: T::Hash[Symbol, Object],
15
17
  node: T::Hash[Symbol, Object],
@@ -20,6 +22,8 @@ module Graphwerk
20
22
  DEFAULT_OPTIONS = T.let({
21
23
  layout: Graphwerk::Layout::Dot,
22
24
  deprecated_references_color: 'red',
25
+ package_todo_color: 'red',
26
+ hide_todo: false,
23
27
  application: {
24
28
  style: 'filled',
25
29
  fillcolor: '#333333',
@@ -90,7 +94,10 @@ module Graphwerk
90
94
  def add_package_dependencies_to_graph
91
95
  packages.each do |package|
92
96
  draw_dependencies(package)
97
+ next if @options[:hide_todo]
98
+
93
99
  draw_deprecated_references(package)
100
+ draw_package_todos(package)
94
101
  end
95
102
  end
96
103
 
@@ -104,6 +111,9 @@ module Graphwerk
104
111
  sig { params(package: Presenters::Package).void }
105
112
  def draw_dependencies(package)
106
113
  package.dependencies.each do |dependency|
114
+ unless @nodes[dependency]
115
+ abort "Unable to add edge `#{package.name}`->`#{dependency}`"
116
+ end
107
117
  @graph.add_edges(@nodes[package.name], @nodes[dependency], color: package.color)
108
118
  end
109
119
  end
@@ -119,6 +129,17 @@ module Graphwerk
119
129
  end
120
130
  end
121
131
 
132
+ sig { params(package: Presenters::Package).void }
133
+ def draw_package_todos(package)
134
+ package.package_todos.each do |todo|
135
+ @graph.add_edges(
136
+ @nodes[package.name],
137
+ @nodes[todo],
138
+ color: @options[:package_todo_color]
139
+ )
140
+ end
141
+ end
142
+
122
143
  sig { returns(T::Array[Presenters::Package]) }
123
144
  def packages
124
145
  @packages = T.let(@packages, T.nilable(T::Array[Presenters::Package]))
@@ -0,0 +1,31 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module Graphwerk
5
+ class PackageTodoLoader
6
+ extend T::Sig
7
+
8
+ sig { params(package: Packwerk::Package, root_path: Pathname).void }
9
+ def initialize(package, root_path)
10
+ @package = package
11
+ @root_path = root_path
12
+ end
13
+
14
+ sig { returns(T::Array[String]) }
15
+ def load
16
+ return [] if !package_todo_file.exist?
17
+
18
+ (YAML.load_file(package_todo_file) || {}).keys
19
+ end
20
+
21
+ private
22
+
23
+ PACKAGE_TODO_FILENAME = 'package_todo.yml'
24
+
25
+ sig { returns(Pathname) }
26
+ def package_todo_file
27
+ @package_todo_file = T.let(@package_todo_file, T.nilable(Pathname))
28
+ @package_todo_file ||= @root_path.join(@package.name, PACKAGE_TODO_FILENAME)
29
+ end
30
+ end
31
+ end
@@ -29,6 +29,13 @@ module Graphwerk
29
29
  end
30
30
  end
31
31
 
32
+ sig { returns(T::Array[String]) }
33
+ def package_todos
34
+ PackageTodoLoader.new(@package, @root_path).load.map do |todo|
35
+ Name.new(todo).node_name
36
+ end
37
+ end
38
+
32
39
  ROOT_COLOR = 'black'
33
40
  COMPONENT_COLOR = 'azure4'
34
41
 
@@ -1,4 +1,4 @@
1
- # typed: false
1
+ # typed: ignore
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Graphwerk
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Graphwerk
5
- VERSION = '1.2.0'
5
+ VERSION = '1.3.0'
6
6
  end
data/lib/graphwerk.rb CHANGED
@@ -9,6 +9,7 @@ require 'graphwerk/version'
9
9
  require 'graphwerk/constants'
10
10
  require 'graphwerk/layout'
11
11
  require 'graphwerk/deprecated_references_loader'
12
+ require 'graphwerk/package_todo_loader'
12
13
  require 'graphwerk/presenters/package'
13
14
  require 'graphwerk/builders/graph'
14
15
  require 'graphwerk/railtie' if defined?(Rails)
data/nix/sources.json ADDED
@@ -0,0 +1,14 @@
1
+ {
2
+ "nixpkgs": {
3
+ "branch": "nixos-21.05",
4
+ "description": "Nix packages collection",
5
+ "homepage": "https://github.com/NixOS/nixpkgs",
6
+ "owner": "NixOS",
7
+ "repo": "nixpkgs",
8
+ "rev": "e85f0175e3effe9ba191d66c09e8f1b7d6362d5e",
9
+ "sha256": "1qr2hmymbzwj8jrz6smcgc04scgwp2v5070x22k4fvh261g1n4zw",
10
+ "type": "tarball",
11
+ "url": "https://github.com/NixOS/nixpkgs/archive/e85f0175e3effe9ba191d66c09e8f1b7d6362d5e.tar.gz",
12
+ "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
13
+ }
14
+ }
data/nix/sources.nix ADDED
@@ -0,0 +1,174 @@
1
+ # This file has been generated by Niv.
2
+
3
+ let
4
+
5
+ #
6
+ # The fetchers. fetch_<type> fetches specs of type <type>.
7
+ #
8
+
9
+ fetch_file = pkgs: name: spec:
10
+ let
11
+ name' = sanitizeName name + "-src";
12
+ in
13
+ if spec.builtin or true then
14
+ builtins_fetchurl { inherit (spec) url sha256; name = name'; }
15
+ else
16
+ pkgs.fetchurl { inherit (spec) url sha256; name = name'; };
17
+
18
+ fetch_tarball = pkgs: name: spec:
19
+ let
20
+ name' = sanitizeName name + "-src";
21
+ in
22
+ if spec.builtin or true then
23
+ builtins_fetchTarball { name = name'; inherit (spec) url sha256; }
24
+ else
25
+ pkgs.fetchzip { name = name'; inherit (spec) url sha256; };
26
+
27
+ fetch_git = name: spec:
28
+ let
29
+ ref =
30
+ if spec ? ref then spec.ref else
31
+ if spec ? branch then "refs/heads/${spec.branch}" else
32
+ if spec ? tag then "refs/tags/${spec.tag}" else
33
+ abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!";
34
+ in
35
+ builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; };
36
+
37
+ fetch_local = spec: spec.path;
38
+
39
+ fetch_builtin-tarball = name: throw
40
+ ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`.
41
+ $ niv modify ${name} -a type=tarball -a builtin=true'';
42
+
43
+ fetch_builtin-url = name: throw
44
+ ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`.
45
+ $ niv modify ${name} -a type=file -a builtin=true'';
46
+
47
+ #
48
+ # Various helpers
49
+ #
50
+
51
+ # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695
52
+ sanitizeName = name:
53
+ (
54
+ concatMapStrings (s: if builtins.isList s then "-" else s)
55
+ (
56
+ builtins.split "[^[:alnum:]+._?=-]+"
57
+ ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name)
58
+ )
59
+ );
60
+
61
+ # The set of packages used when specs are fetched using non-builtins.
62
+ mkPkgs = sources: system:
63
+ let
64
+ sourcesNixpkgs =
65
+ import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; };
66
+ hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath;
67
+ hasThisAsNixpkgsPath = <nixpkgs> == ./.;
68
+ in
69
+ if builtins.hasAttr "nixpkgs" sources
70
+ then sourcesNixpkgs
71
+ else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then
72
+ import <nixpkgs> {}
73
+ else
74
+ abort
75
+ ''
76
+ Please specify either <nixpkgs> (through -I or NIX_PATH=nixpkgs=...) or
77
+ add a package called "nixpkgs" to your sources.json.
78
+ '';
79
+
80
+ # The actual fetching function.
81
+ fetch = pkgs: name: spec:
82
+
83
+ if ! builtins.hasAttr "type" spec then
84
+ abort "ERROR: niv spec ${name} does not have a 'type' attribute"
85
+ else if spec.type == "file" then fetch_file pkgs name spec
86
+ else if spec.type == "tarball" then fetch_tarball pkgs name spec
87
+ else if spec.type == "git" then fetch_git name spec
88
+ else if spec.type == "local" then fetch_local spec
89
+ else if spec.type == "builtin-tarball" then fetch_builtin-tarball name
90
+ else if spec.type == "builtin-url" then fetch_builtin-url name
91
+ else
92
+ abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}";
93
+
94
+ # If the environment variable NIV_OVERRIDE_${name} is set, then use
95
+ # the path directly as opposed to the fetched source.
96
+ replace = name: drv:
97
+ let
98
+ saneName = stringAsChars (c: if isNull (builtins.match "[a-zA-Z0-9]" c) then "_" else c) name;
99
+ ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}";
100
+ in
101
+ if ersatz == "" then drv else
102
+ # this turns the string into an actual Nix path (for both absolute and
103
+ # relative paths)
104
+ if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}";
105
+
106
+ # Ports of functions for older nix versions
107
+
108
+ # a Nix version of mapAttrs if the built-in doesn't exist
109
+ mapAttrs = builtins.mapAttrs or (
110
+ f: set: with builtins;
111
+ listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set))
112
+ );
113
+
114
+ # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
115
+ range = first: last: if first > last then [] else builtins.genList (n: first + n) (last - first + 1);
116
+
117
+ # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257
118
+ stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1));
119
+
120
+ # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269
121
+ stringAsChars = f: s: concatStrings (map f (stringToCharacters s));
122
+ concatMapStrings = f: list: concatStrings (map f list);
123
+ concatStrings = builtins.concatStringsSep "";
124
+
125
+ # https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331
126
+ optionalAttrs = cond: as: if cond then as else {};
127
+
128
+ # fetchTarball version that is compatible between all the versions of Nix
129
+ builtins_fetchTarball = { url, name ? null, sha256 }@attrs:
130
+ let
131
+ inherit (builtins) lessThan nixVersion fetchTarball;
132
+ in
133
+ if lessThan nixVersion "1.12" then
134
+ fetchTarball ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; }))
135
+ else
136
+ fetchTarball attrs;
137
+
138
+ # fetchurl version that is compatible between all the versions of Nix
139
+ builtins_fetchurl = { url, name ? null, sha256 }@attrs:
140
+ let
141
+ inherit (builtins) lessThan nixVersion fetchurl;
142
+ in
143
+ if lessThan nixVersion "1.12" then
144
+ fetchurl ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; }))
145
+ else
146
+ fetchurl attrs;
147
+
148
+ # Create the final "sources" from the config
149
+ mkSources = config:
150
+ mapAttrs (
151
+ name: spec:
152
+ if builtins.hasAttr "outPath" spec
153
+ then abort
154
+ "The values in sources.json should not have an 'outPath' attribute"
155
+ else
156
+ spec // { outPath = replace name (fetch config.pkgs name spec); }
157
+ ) config.sources;
158
+
159
+ # The "config" used by the fetchers
160
+ mkConfig =
161
+ { sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null
162
+ , sources ? if isNull sourcesFile then {} else builtins.fromJSON (builtins.readFile sourcesFile)
163
+ , system ? builtins.currentSystem
164
+ , pkgs ? mkPkgs sources system
165
+ }: rec {
166
+ # The sources, i.e. the attribute set of spec name to spec
167
+ inherit sources;
168
+
169
+ # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers
170
+ inherit pkgs;
171
+ };
172
+
173
+ in
174
+ mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); }
data/run_ci.sh ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+ rm -f Gemfile.lock
4
+ bundle install
5
+ bundle exec srb tc
6
+ bundle exec rspec spec
data/shell.nix ADDED
@@ -0,0 +1,20 @@
1
+ { sources ? import ./nix/sources.nix }:
2
+ let
3
+ nixpkgs = import sources.nixpkgs { };
4
+ in
5
+ nixpkgs.mkShell {
6
+ name = "bellroy-gem-env";
7
+ buildInputs = with nixpkgs; [
8
+ bundler
9
+ libnotify
10
+ niv
11
+ pkg-config
12
+ readline
13
+ ruby_2_7
14
+ zlib
15
+ ]
16
+ ++ (if stdenv.hostPlatform.isDarwin then [ libiconv darwin.apple_sdk.frameworks.CoreServices ] else [ ]);
17
+ shellHook = ''
18
+ bundle config --local path "$PWD/vendor/bundle"
19
+ '';
20
+ }
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphwerk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Giles
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2020-12-10 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activesupport
@@ -150,17 +149,29 @@ dependencies:
150
149
  - - ">="
151
150
  - !ruby/object:Gem::Version
152
151
  version: '0'
153
- description:
152
+ - !ruby/object:Gem::Dependency
153
+ name: tapioca
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ type: :development
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
154
166
  email:
155
167
  - samuel.giles@bellroy.com
156
168
  executables: []
157
169
  extensions: []
158
170
  extra_rdoc_files: []
159
171
  files:
160
- - ".github/workflows/rspec.yml"
172
+ - ".github/workflows/ci.yml"
161
173
  - ".gitignore"
162
174
  - ".rspec"
163
- - ".ruby-version"
164
175
  - CHANGELOG.md
165
176
  - Gemfile
166
177
  - LICENSE.txt
@@ -168,21 +179,26 @@ files:
168
179
  - Rakefile
169
180
  - bin/console
170
181
  - bin/setup
182
+ - bin/tapioca
171
183
  - graphwerk.gemspec
172
184
  - lib/graphwerk.rb
173
185
  - lib/graphwerk/builders/graph.rb
174
186
  - lib/graphwerk/constants.rb
175
187
  - lib/graphwerk/deprecated_references_loader.rb
176
188
  - lib/graphwerk/layout.rb
189
+ - lib/graphwerk/package_todo_loader.rb
177
190
  - lib/graphwerk/presenters/package.rb
178
191
  - lib/graphwerk/railtie.rb
179
192
  - lib/graphwerk/tasks/rails.rake
180
193
  - lib/graphwerk/version.rb
194
+ - nix/sources.json
195
+ - nix/sources.nix
196
+ - run_ci.sh
197
+ - shell.nix
181
198
  homepage: https://github.com/tricycle/graphwerk
182
199
  licenses:
183
200
  - MIT
184
201
  metadata: {}
185
- post_install_message:
186
202
  rdoc_options: []
187
203
  require_paths:
188
204
  - lib
@@ -197,8 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
197
213
  - !ruby/object:Gem::Version
198
214
  version: '0'
199
215
  requirements: []
200
- rubygems_version: 3.0.3
201
- signing_key:
216
+ rubygems_version: 3.6.9
202
217
  specification_version: 4
203
218
  summary: Visualise dependencies between your application and it's Packwerk packages
204
219
  using Graphviz.
@@ -1,23 +0,0 @@
1
- name: RSpec Test Suite
2
-
3
- on: [push]
4
-
5
- jobs:
6
- build:
7
- runs-on: ubuntu-latest
8
- steps:
9
- - name: Checkout branch
10
- uses: actions/checkout@v1
11
- - name: Set up Ruby
12
- uses: actions/setup-ruby@v1
13
- with:
14
- ruby-version: 2.6.6
15
- - name: Install latest bundler
16
- run: |
17
- command -v bundler || gem install bundler
18
- - name: Install gems
19
- run: bundle install --jobs $(nproc) --retry 3
20
- - name: Typecheck with Sorbet
21
- run: bundle exec srb tc . --ignore=/vendor
22
- - name: Run RSpec test suite
23
- run: bundle exec rspec spec
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.6.6