diff --git a/.rubocop.yml b/.rubocop.yml index cfcdf8f..fa715c9 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -10,6 +10,7 @@ # See https://docs.rubocop.org/rubocop/configuration AllCops: NewCops: enable + SuggestExtensions: false Exclude: - vendor/bundle/**/** diff --git a/Gemfile.lock b/Gemfile.lock index daa2386..2c01d11 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -17,7 +17,7 @@ GIT PATH remote: . specs: - use_packs (0.0.10) + use_packs (0.0.11) code_ownership colorize packwerk @@ -78,7 +78,7 @@ GEM mini_portile2 (~> 2.8.0) racc (~> 1.4) parallel (1.22.1) - parse_packwerk (0.17.0) + parse_packwerk (0.18.0) sorbet-runtime parser (3.1.2.0) ast (~> 2.4.1) diff --git a/lib/use_packs.rb b/lib/use_packs.rb index 5da10f4..402b4d1 100644 --- a/lib/use_packs.rb +++ b/lib/use_packs.rb @@ -290,7 +290,8 @@ def self.lint_package_yml_files!(packs) enforce_privacy: p.enforce_privacy, enforce_dependencies: p.enforce_dependencies, dependencies: p.dependencies.uniq.sort, - metadata: p.metadata + metadata: p.metadata, + config: p.config ) ParsePackwerk.write_package_yml!(new_package) end diff --git a/lib/use_packs/private.rb b/lib/use_packs/private.rb index eea32a9..baba3fe 100644 --- a/lib/use_packs/private.rb +++ b/lib/use_packs/private.rb @@ -170,7 +170,8 @@ def self.move_to_parent!( enforce_privacy: package.enforce_dependencies, enforce_dependencies: package.enforce_dependencies, dependencies: package.dependencies, - metadata: package.metadata + metadata: package.metadata, + config: package.config ) ParsePackwerk.write_package_yml!(new_package) ParsePackwerk.bust_cache! @@ -200,7 +201,8 @@ def self.move_to_parent!( enforce_privacy: other_package.enforce_privacy, enforce_dependencies: other_package.enforce_dependencies, dependencies: new_dependencies.uniq.sort, - metadata: other_package.metadata + metadata: other_package.metadata, + config: other_package.config ) ParsePackwerk.write_package_yml!(new_other_package) @@ -289,7 +291,8 @@ def self.add_dependency!(pack_name:, dependency_name:) dependencies: (package.dependencies + [dependency_name]).uniq.sort, enforce_privacy: package.enforce_privacy, enforce_dependencies: package.enforce_dependencies, - metadata: package.metadata + metadata: package.metadata, + config: package.config ) ParsePackwerk.write_package_yml!(new_package) PackwerkWrapper.validate! @@ -370,7 +373,8 @@ def self.create_pack_if_not_exists!(pack_name:, enforce_privacy:, enforce_depend metadata: { 'owner' => team.nil? ? 'MyTeam' : team.name }, - name: pack_name + name: pack_name, + config: {} ) ParsePackwerk.write_package_yml!(package) diff --git a/sorbet/rbi/gems/parse_packwerk@0.16.0.rbi b/sorbet/rbi/gems/parse_packwerk@0.18.0.rbi similarity index 94% rename from sorbet/rbi/gems/parse_packwerk@0.16.0.rbi rename to sorbet/rbi/gems/parse_packwerk@0.18.0.rbi index bf115f0..a50bbea 100644 --- a/sorbet/rbi/gems/parse_packwerk@0.16.0.rbi +++ b/sorbet/rbi/gems/parse_packwerk@0.18.0.rbi @@ -71,9 +71,10 @@ ParsePackwerk::PRIVACY_VIOLATION_TYPE = T.let(T.unsafe(nil), String) ParsePackwerk::PUBLIC_PATH = T.let(T.unsafe(nil), String) class ParsePackwerk::Package < ::T::Struct + const :config, T::Hash[T.untyped, T.untyped] const :dependencies, T::Array[::String] - const :enforce_dependencies, T::Boolean - const :enforce_privacy, T::Boolean + const :enforce_dependencies, T.any(::String, T::Boolean) + const :enforce_privacy, T.any(::String, T::Boolean) const :metadata, T::Hash[T.untyped, T.untyped] const :name, ::String const :public_path, ::String, default: T.unsafe(nil) @@ -81,10 +82,10 @@ class ParsePackwerk::Package < ::T::Struct sig { returns(::Pathname) } def directory; end - sig { returns(T::Boolean) } + sig { returns(T.any(::String, T::Boolean)) } def enforces_dependencies?; end - sig { returns(T::Boolean) } + sig { returns(T.any(::String, T::Boolean)) } def enforces_privacy?; end sig { returns(::Pathname) } diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 08c4f6a..c1e5f57 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -69,7 +69,8 @@ def write_package_yml( dependencies: dependencies, enforce_dependencies: enforce_dependencies, enforce_privacy: enforce_privacy, - metadata: metadata + metadata: metadata, + config: {} ) ParsePackwerk.write_package_yml!(package) diff --git a/spec/use_packs_spec.rb b/spec/use_packs_spec.rb index c0bfbda..268d871 100644 --- a/spec/use_packs_spec.rb +++ b/spec/use_packs_spec.rb @@ -72,7 +72,8 @@ def expect_files_to_not_exist(files) enforce_privacy: true, enforce_dependencies: false, dependencies: [], - metadata: { 'owner' => 'MyTeam' } + metadata: { 'owner' => 'MyTeam' }, + config: {} ) ParsePackwerk.bust_cache! @@ -1335,7 +1336,7 @@ def expect_files_to_not_exist(files) it 'exits in a failure' do write_file('packs/my_pack/package.yml', <<~CONTENTS) enforce_privacy: true - enforce_dependnecy: true + enforce_dependencies: true CONTENTS write_file('packs/my_pack/package_todo.yml', <<~CONTENTS) @@ -1395,7 +1396,7 @@ def expect_files_to_not_exist(files) end write_file('packs/my_pack/package.yml', <<~CONTENTS) enforce_privacy: true - enforce_dependnecy: true + enforce_dependencies: true CONTENTS write_file('packs/my_pack/package_todo.yml', <<~CONTENTS) diff --git a/use_packs.gemspec b/use_packs.gemspec index 07b757d..c24d3d4 100644 --- a/use_packs.gemspec +++ b/use_packs.gemspec @@ -1,6 +1,6 @@ Gem::Specification.new do |spec| spec.name = 'use_packs' - spec.version = '0.0.10' + spec.version = '0.0.11' spec.authors = ['Gusto Engineers'] spec.email = ['dev@gusto.com']