mono_repo_deps 0.2.0 → 0.2.1
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 +4 -4
- data/lib/mono_repo_deps/package/dependency_bypasser.rb +1 -1
- data/lib/mono_repo_deps/package/repo.rb +9 -1
- data/lib/mono_repo_deps/package.rb +4 -5
- data/lib/mono_repo_deps/task/manager.rb +4 -23
- data/lib/mono_repo_deps/version.rb +1 -1
- data/mono_repo_deps.gemspec +70 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95e49884e5cf67ed63ea7575df321c0166b5ac505b602d99facf24b866dff026
|
4
|
+
data.tar.gz: e9ce0647794d26570f0e45af5346e27778bc7bc67edce058b801c20250055513
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f8e7acfd621406055e2091119857f595d6ba1899f90b5e6c164210f6c81dcb635359942f91cc1797197e4ab83bc89eae6db7837bdeafcd8491d3a1cc93d3d8a
|
7
|
+
data.tar.gz: c04cef773cdb54ca0357d827f9594767203f291c4416d1f5a1557d03f9febeaf86524ef7f1ae39e5b7e8f3a84a417cf74e56e8d60cedbfbc2599fdc8e460fbda
|
@@ -16,7 +16,15 @@ class MonoRepoDeps::Package::Repo
|
|
16
16
|
|
17
17
|
sig do
|
18
18
|
params(
|
19
|
-
name: T.nilable(
|
19
|
+
name: T.nilable(
|
20
|
+
T.any(
|
21
|
+
String,
|
22
|
+
Symbol,
|
23
|
+
T::Array[
|
24
|
+
T.any(String, Symbol)
|
25
|
+
]
|
26
|
+
)
|
27
|
+
),
|
20
28
|
)
|
21
29
|
.returns(T::Array[MonoRepoDeps::Package])
|
22
30
|
end
|
@@ -33,11 +33,6 @@ class MonoRepoDeps::Package
|
|
33
33
|
default_deps | env_deps
|
34
34
|
end
|
35
35
|
|
36
|
-
def get_bc
|
37
|
-
# /app/bounded_contexts/jobs/microservices/jobs_app
|
38
|
-
@root_path.split('/')[3]
|
39
|
-
end
|
40
|
-
|
41
36
|
def get_dependency_envs
|
42
37
|
@dependencies.keys
|
43
38
|
end
|
@@ -49,4 +44,8 @@ class MonoRepoDeps::Package
|
|
49
44
|
def entrypoint_file
|
50
45
|
File.join( self.workdir_path, "#{name}.rb" )
|
51
46
|
end
|
47
|
+
|
48
|
+
def specs_path
|
49
|
+
File.join( self.root_path, '/spec/' )
|
50
|
+
end
|
52
51
|
end
|
@@ -13,7 +13,7 @@ class MonoRepoDeps::Task::Manager
|
|
13
13
|
args: T.anything,
|
14
14
|
kwargs: T.anything
|
15
15
|
)
|
16
|
-
.
|
16
|
+
.returns(T::Boolean)
|
17
17
|
end
|
18
18
|
def method_missing(method_name, *args, **kwargs)
|
19
19
|
task = MonoRepoDeps.current_project.tasks.detect { _1.name == method_name } || (raise StandardError.new("task '#{method_name}' not found for project"))
|
@@ -22,34 +22,15 @@ class MonoRepoDeps::Task::Manager
|
|
22
22
|
when :package
|
23
23
|
statuses = kwargs[:packages].inject({}) do |result, package_name|
|
24
24
|
package = packages_repo.find!(package_name.to_sym)
|
25
|
-
result[package.name] =
|
25
|
+
result[package.name] = task.block.call(package, kwargs[:args])
|
26
26
|
result
|
27
27
|
end
|
28
28
|
|
29
|
-
failed_packages = statuses.reject {|package_name, exitstatus| exitstatus
|
29
|
+
failed_packages = statuses.reject {|package_name, exitstatus| exitstatus == 0}
|
30
30
|
|
31
|
-
|
32
|
-
puts failed_packages.keys
|
33
|
-
exit 1
|
34
|
-
end
|
31
|
+
failed_packages.any? ? false : true
|
35
32
|
else
|
36
33
|
raise StandardError.new("unsupported task subject: #{task.on}")
|
37
34
|
end
|
38
35
|
end
|
39
|
-
|
40
|
-
private
|
41
|
-
|
42
|
-
def do_in_child(block, *args)
|
43
|
-
read, write = IO.pipe
|
44
|
-
|
45
|
-
pid = fork do
|
46
|
-
read.close
|
47
|
-
block.call(*args)
|
48
|
-
end
|
49
|
-
|
50
|
-
write.close
|
51
|
-
Process.wait(pid)
|
52
|
-
|
53
|
-
exit($?.exitstatus)
|
54
|
-
end
|
55
36
|
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/mono_repo_deps/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "mono_repo_deps"
|
7
|
+
spec.version = MonoRepoDeps::VERSION
|
8
|
+
spec.authors = ["Nikita Kononov"]
|
9
|
+
spec.email = ["vocrsz@gmail.com"]
|
10
|
+
|
11
|
+
spec.summary = "A Ruby gem for efficiently managing dependencies within a monorepo."
|
12
|
+
spec.description = <<-DESC
|
13
|
+
MonoRepoDeps is a powerful tool designed to streamline the process of splitting code into separate packages
|
14
|
+
within a monorepository. It provides a flexible and easy-to-use solution for managing dependencies between
|
15
|
+
packages, making it ideal for large-scale projects with complex codebases.
|
16
|
+
|
17
|
+
Key Features:
|
18
|
+
- Simplifies the organization of code in a monorepo structure.
|
19
|
+
- Manages dependencies seamlessly between different packages.
|
20
|
+
- Enhances collaboration and code sharing among teams working on interconnected components.
|
21
|
+
- Offers a straightforward and customizable configuration for your monorepo setup.
|
22
|
+
|
23
|
+
How to Use:
|
24
|
+
- Install the gem using `gem install MonoRepoDeps`.
|
25
|
+
- Configure MonoRepoDeps with your monorepo specifications.
|
26
|
+
- Enjoy a more efficient and organized development workflow.
|
27
|
+
|
28
|
+
Visit the official documentation for detailed instructions and examples.
|
29
|
+
|
30
|
+
GitHub Repository: https://github.com/droidlabs/MonoRepoDeps
|
31
|
+
DESC
|
32
|
+
spec.homepage = "https://github.com/droidlabs/mono_repo_deps"
|
33
|
+
spec.license = "MIT"
|
34
|
+
spec.required_ruby_version = ">= 2.7.0"
|
35
|
+
|
36
|
+
# spec.metadata["allowed_push_host"] = "Set to your gem server 'https://example.com'"
|
37
|
+
|
38
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
39
|
+
spec.metadata["source_code_uri"] = "https://github.com/droidlabs/mono_repo_deps"
|
40
|
+
spec.metadata["changelog_uri"] = "https://github.com/droidlabs/mono_repo_deps"
|
41
|
+
|
42
|
+
# Specify which files should be added to the gem when it is released.
|
43
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
44
|
+
spec.files = Dir.chdir(__dir__) do
|
45
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
46
|
+
(File.expand_path(f) == __FILE__) ||
|
47
|
+
f.start_with?(*%w[bin/ test/ spec/ features/ .git .circleci appveyor Gemfile])
|
48
|
+
end
|
49
|
+
end
|
50
|
+
spec.bindir = "exe"
|
51
|
+
spec.executables = spec.files.grep(/\Aexe\//) { |f| File.basename(f) }
|
52
|
+
spec.require_paths = ["lib"]
|
53
|
+
|
54
|
+
spec.add_dependency 'sorbet-runtime', "~> 0.5.11164"
|
55
|
+
|
56
|
+
spec.add_dependency "dry-auto_inject", "~> 1.0.1"
|
57
|
+
spec.add_dependency "dry-core", "~> 1.0.0"
|
58
|
+
spec.add_dependency "dry-configurable", "~> 1.0.1"
|
59
|
+
spec.add_dependency "dry-container", "~> 0.11.0"
|
60
|
+
spec.add_dependency "dry-system", "~> 1.0.1"
|
61
|
+
|
62
|
+
spec.add_dependency "zeitwerk", "~> 2.6.12"
|
63
|
+
|
64
|
+
spec.add_dependency "thor"
|
65
|
+
|
66
|
+
spec.add_development_dependency "bundler", "~> 2.2"
|
67
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
68
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
69
|
+
spec.add_development_dependency "pry"
|
70
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mono_repo_deps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nikita Kononov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sorbet-runtime
|
@@ -284,6 +284,7 @@ files:
|
|
284
284
|
- lib/mono_repo_deps/task.rb
|
285
285
|
- lib/mono_repo_deps/task/manager.rb
|
286
286
|
- lib/mono_repo_deps/version.rb
|
287
|
+
- mono_repo_deps.gemspec
|
287
288
|
- sig/mono_repo_deps.rbs
|
288
289
|
homepage: https://github.com/droidlabs/mono_repo_deps
|
289
290
|
licenses:
|