File tree Expand file tree Collapse file tree 19 files changed +226
-941
lines changed Expand file tree Collapse file tree 19 files changed +226
-941
lines changed Original file line number Diff line number Diff line change 1111 steps : &steps
1212 - run : *prepare
1313 - checkout
14- - run : make
1514 - run : shards install
15+ - run : make
1616 - run : make test
1717
1818jobs :
@@ -34,7 +34,7 @@ workflows:
3434 nightly :
3535 triggers :
3636 - schedule :
37- cron : " 0 2 * * *"
37+ cron : ' 0 2 * * *'
3838 filters :
3939 branches :
4040 only :
Original file line number Diff line number Diff line change 22/.shards
33/lib
44/bin /shards
5+ /bin /shards.dwarf
56/test /.repositories
67/test /.shards
78/test /.lib
Original file line number Diff line number Diff line change 22
33CRYSTAL = crystal
44CRFLAGS =
5- SOURCES = src/*.cr src/**/*.cr
5+ SOURCES = src/*.cr src/**/*.cr lib/molinillo/**/*.cr
66TEMPLATES = src/templates/*.ecr
77
88DESTDIR =
Original file line number Diff line number Diff line change 44 github: ysbaddaden/minitest.cr
55 version: 0.5.0
66
7+ molinillo:
8+ github: crystal-lang/crystal-molinillo
9+ commit: 00fbe6c5ef9492d56cc7ec7b9a8b9cf2fe1a36ea
10+
Original file line number Diff line number Diff line change @@ -4,6 +4,10 @@ version: 0.9.0
44authors :
55 - Julien Portalier <julien@portalier.com>
66
7+ dependencies :
8+ molinillo :
9+ github : crystal-lang/crystal-molinillo
10+
711development_dependencies :
812 minitest :
913 github : ysbaddaden/minitest.cr
Original file line number Diff line number Diff line change @@ -55,5 +55,12 @@ module Shards
5555 Shards .logger.info { " Writing #{ LOCK_FILENAME } " }
5656 Shards ::Lock .write(packages, LOCK_FILENAME )
5757 end
58+
59+ def handle_resolver_errors
60+ yield
61+ rescue e : Molinillo ::ResolverError
62+ Shards .logger.error e.message
63+ raise Shards ::Error .new(" Failed to resolve dependencies" )
64+ end
5865 end
5966end
Original file line number Diff line number Diff line change 11require " ./command"
2- require " ../solver "
2+ require " ../molinillo_solver "
33
44module Shards
55 module Commands
66 class Install < Command
77 def run
88 Shards .logger.info { " Resolving dependencies" }
99
10- solver = Solver .new(spec)
10+ solver = MolinilloSolver .new(spec)
1111
1212 if lockfile?
1313 # install must be as conservative as possible:
@@ -16,23 +16,17 @@ module Shards
1616
1717 solver.prepare(development: ! Shards .production?)
1818
19- if packages = solver.solve
20- return if packages.empty?
19+ packages = handle_resolver_errors { solver.solve }
20+ return if packages.empty?
2121
22- if lockfile?
23- validate(packages)
24- end
22+ if lockfile?
23+ validate(packages)
24+ end
2525
26- install(packages)
26+ install(packages)
2727
28- if generate_lockfile?(packages)
29- write_lockfile(packages)
30- end
31- else
32- solver.each_conflict do |message |
33- Shards .logger.warn { " Conflict #{ message } " }
34- end
35- raise Shards ::Error .new(" Failed to resolve dependencies" )
28+ if generate_lockfile?(packages)
29+ write_lockfile(packages)
3630 end
3731 end
3832
Original file line number Diff line number Diff line change 11require " ./command"
2- require " ../solver "
2+ require " ../molinillo_solver "
33
44module Shards
55 module Commands
66 class Lock < Command
77 def run (shards : Array (String ), print = false , update = false )
88 Shards .logger.info { " Resolving dependencies" }
99
10- solver = Solver .new(spec)
10+ solver = MolinilloSolver .new(spec)
1111
1212 if lockfile?
1313 if update
@@ -24,19 +24,13 @@ module Shards
2424
2525 solver.prepare(development: ! Shards .production?)
2626
27- if packages = solver.solve
28- return if packages.empty?
27+ packages = handle_resolver_errors { solver.solve }
28+ return if packages.empty?
2929
30- if print
31- Shards ::Lock .write(packages, STDOUT )
32- else
33- write_lockfile(packages)
34- end
30+ if print
31+ Shards ::Lock .write(packages, STDOUT )
3532 else
36- solver.each_conflict do |message |
37- Shards .logger.warn { " Conflict #{ message } " }
38- end
39- raise Shards ::Error .new(" Failed to resolve dependencies" )
33+ write_lockfile(packages)
4034 end
4135 end
4236
Original file line number Diff line number Diff line change @@ -13,24 +13,18 @@ module Shards
1313
1414 Shards .logger.info { " Resolving dependencies" }
1515
16- solver = Solver .new(spec, @prereleases )
16+ solver = MolinilloSolver .new(spec, @prereleases )
1717 solver.prepare(development: ! Shards .production?)
1818
19- if packages = solver.solve
20- packages.each { |package | analyze(package) }
19+ packages = handle_resolver_errors { solver.solve }
20+ packages.each { |package | analyze(package) }
2121
22- if @up_to_date
23- Shards .logger.info " Dependencies are up to date!"
24- else
25- @output .rewind
26- Shards .logger.warn " Outdated dependencies:"
27- puts @output .to_s
28- end
22+ if @up_to_date
23+ Shards .logger.info " Dependencies are up to date!"
2924 else
30- solver.each_conflict do |message |
31- Shards .logger.warn { " Conflict #{ message } " }
32- end
33- raise Shards ::Error .new(" Failed to resolve dependencies" )
25+ @output .rewind
26+ Shards .logger.warn " Outdated dependencies:"
27+ puts @output .to_s
3428 end
3529 end
3630
Original file line number Diff line number Diff line change 11require " ./command"
2- require " ../solver "
2+ require " ../molinillo_solver "
33
44module Shards
55 module Commands
66 class Update < Command
77 def run (shards : Array (String ))
88 Shards .logger.info { " Resolving dependencies" }
99
10- solver = Solver .new(spec)
10+ solver = MolinilloSolver .new(spec)
1111
1212 if lockfile? && ! shards.empty?
1313 # update selected dependencies to latest possible versions, but
@@ -17,17 +17,11 @@ module Shards
1717
1818 solver.prepare(development: ! Shards .production?)
1919
20- if packages = solver.solve
21- install(packages)
22-
23- if generate_lockfile?(packages)
24- write_lockfile(packages)
25- end
26- else
27- solver.each_conflict do |message |
28- Shards .logger.warn { " Conflict #{ message } " }
29- end
30- raise Shards ::Error .new(" Failed to resolve dependencies" )
20+ packages = handle_resolver_errors { solver.solve }
21+ install(packages)
22+
23+ if generate_lockfile?(packages)
24+ write_lockfile(packages)
3125 end
3226 end
3327
You can’t perform that action at this time.
0 commit comments