Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1002 commits
Select commit Hold shift + click to select a range
d67294b
Restore
apiology Oct 26, 2025
9aa5861
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Oct 26, 2025
4781523
Fix merge issue
apiology Oct 26, 2025
e15c04d
Fix issue with &.
apiology Oct 26, 2025
1ea7e1e
Merge branch 'flow_sensitive_typing_2_0' into union_type_enforcement_…
apiology Oct 26, 2025
cc324f8
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Oct 26, 2025
59a3bec
Fix merge
apiology Oct 26, 2025
c03d238
Fix merge
apiology Oct 26, 2025
ffb264d
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Oct 26, 2025
7a60720
Drop debugging code
apiology Oct 26, 2025
cf9a72a
Drop accidental file add
apiology Oct 26, 2025
bcb65dd
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Oct 26, 2025
f699970
Standardize on Ruby 3.4 for typechecking
apiology Oct 26, 2025
3f47113
Standardize on Ruby 3.4 for typechecking
apiology Oct 26, 2025
c56f26d
Standardize on Ruby 3.4 for typechecking
apiology Oct 26, 2025
6ff7332
Remove @sg-ignore
apiology Oct 26, 2025
08816d8
Drop unused file
apiology Oct 26, 2025
911970d
Merge branch 'flow_sensitive_typing_2_0' into union_type_enforcement_…
apiology Oct 26, 2025
da2506d
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Oct 26, 2025
bb6265f
Remove Pin::If
apiology Oct 26, 2025
9cbd11e
Handle removing a type in a downcast if
apiology Oct 26, 2025
4139eca
Fix RuboCop issue
apiology Oct 26, 2025
aaa2e78
Add spec for change
apiology Oct 26, 2025
4e73d5d
Drop unneeded .rooted_tags
apiology Oct 26, 2025
6f31d68
Drop unneeded change
apiology Oct 26, 2025
12691f0
Drop unneeded change
apiology Oct 26, 2025
174076a
Drop unneeded code
apiology Oct 26, 2025
664613b
Drop unneeded code
apiology Oct 26, 2025
27cd225
Ensure nullable? is on both UniqueType and ComplexType
apiology Oct 26, 2025
57883f6
Merge branch 'local_variable_probiing' into union_type_enforcement_base
apiology Oct 26, 2025
23180de
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Oct 26, 2025
168880d
Drop unneeded code
apiology Oct 26, 2025
77d72f3
Drop unneeded change
apiology Oct 26, 2025
89cd8b9
Refactor
apiology Oct 31, 2025
6b2afc9
Fix comment style
apiology Oct 31, 2025
3d39026
Update Gemfile.lock in solargraph-rspec
apiology Oct 31, 2025
bd075c5
Drop @sg-ignore
apiology Oct 31, 2025
6319630
Update Gemfile.lock in solargraph-rspec
apiology Oct 31, 2025
1b12f8f
Update Gemfile.lock in solargraph-rspec
apiology Oct 31, 2025
8c5c5fb
Better handling of 'return if'
apiology Oct 31, 2025
aff5fbf
Better handling of 'case when'
apiology Oct 31, 2025
04c61ff
Merge branch 'flow_sensitive_typing_2_0' into union_type_enforcement_…
apiology Oct 31, 2025
9bc22d4
Drop @sg-ignore
apiology Nov 1, 2025
cdfcb93
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 1, 2025
ba66987
Support intersection types
apiology Nov 1, 2025
ec07372
Merge branch 'intersection_types' into union_type_enforcement_base
apiology Nov 1, 2025
e584d33
Fix up param type
apiology Nov 1, 2025
077ddd9
Fix merge
apiology Nov 1, 2025
b508f26
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 1, 2025
95b3cc0
Update metrics
apiology Nov 1, 2025
d021086
RuboCop fixes
apiology Nov 1, 2025
c409c9a
Clean up diff
apiology Nov 1, 2025
b8cf7a5
Drop return_type_minus_exclusions
apiology Nov 1, 2025
af70c09
Drop use of presence_certain?
apiology Nov 1, 2025
5108fa1
Merge branch 'intersection_types' into flow_sensitive_typing_2_0
apiology Nov 1, 2025
bfe7f4e
Add downcast method, another falsey type
apiology Nov 1, 2025
19a81fe
Fix types
apiology Nov 1, 2025
090099b
Fix types
apiology Nov 1, 2025
89c0b4e
Merge branch 'flow_sensitive_typing_2_0' into union_type_enforcement_…
apiology Nov 2, 2025
a2cffcc
Fix tags
apiology Nov 2, 2025
8e4c28e
Merge branch 'flow_sensitive_typing_2_0' into union_type_enforcement_…
apiology Nov 2, 2025
df511dd
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 2, 2025
b78965b
Don't set binder to avoid trigger solargraph-rspec bug
apiology Nov 3, 2025
4ef2dc6
Merge branch 'local_variable_probiing' into union_type_enforcement_base
apiology Nov 3, 2025
ed23813
Reproduce solargraph-rspec rspec failure
apiology Nov 3, 2025
769041b
Add set -x to debug
apiology Nov 3, 2025
a4ad163
Use a Ruby version tested by solargraph-rspec
apiology Nov 3, 2025
e6dcf09
Mark item fixed
apiology Nov 3, 2025
340f11c
Merge branch 'reduce_num_of_buid_jobs' into local_variable_probiing
apiology Nov 3, 2025
c5df696
Add appraisal workaround
apiology Nov 3, 2025
7cefc1c
Add resgression spec
apiology Nov 3, 2025
cccd47a
Fix solargraph-rspec specs
apiology Nov 12, 2025
d8ef859
Fix RuboCop issues
apiology Nov 12, 2025
f7bc624
Use dev branch for solargraph-rspec for now
apiology Nov 12, 2025
461ab2d
Fix GHA
apiology Nov 12, 2025
b71a184
Fix linting issues
apiology Nov 12, 2025
9a4b889
Add solargraph update
apiology Nov 12, 2025
069ce93
Fix appraisal in plugins.yml
apiology Nov 12, 2025
fae78ad
Catch Gem::Requirement::BadRequirementError
apiology Nov 12, 2025
cb4e7ac
Merge branch 'method_pin' into local_variable_probiing
apiology Nov 12, 2025
0d877a4
Bump Ruy versioin for solargraph-rspec
apiology Nov 12, 2025
f886fed
Fix build failure via rubygems update
apiology Nov 12, 2025
331f56b
Bump rspec-rails just as solargraph-rails' GHA does
apiology Nov 12, 2025
7021433
Fix merge
apiology Nov 12, 2025
3161f91
Clarify expectation of instance variable lookup from context, but
apiology Nov 12, 2025
a3fc979
Remove unneeded changes
apiology Nov 13, 2025
54b65b8
Drop Block's binder param
apiology Nov 14, 2025
dc5237b
Drop Method's binder param
apiology Nov 14, 2025
cdc6de7
Drop binder
apiology Nov 14, 2025
f2db365
Drop binder
apiology Nov 14, 2025
786375e
Drop closure rebinding
apiology Nov 14, 2025
17b120b
Drop reset_generated!
apiology Nov 14, 2025
62a447c
Drop binder
apiology Nov 14, 2025
379daf2
Document logic
apiology Nov 14, 2025
fc4f00f
Use reset_generated! instead, so future cases are handled
apiology Nov 14, 2025
7be2cd1
Revert refactor
apiology Nov 14, 2025
401b3e6
Reformat
apiology Nov 14, 2025
a7cc436
Fix solargraph-rspec specs
apiology Nov 15, 2025
fd463fe
Try rubygems: latest
apiology Nov 15, 2025
8bbd6f5
Fix new Ruby 4.x issue
apiology Nov 15, 2025
cd2fd9a
Fix new Ruby 4.x issue
apiology Nov 15, 2025
ce65d5f
Separate out possible bug reproduction from original purpose of spec
apiology Nov 15, 2025
c6dbe4d
Trigger build
apiology Nov 15, 2025
9d26863
Fix new bundler issue
apiology Nov 15, 2025
87ec9b3
Debug
apiology Nov 15, 2025
6a14bd7
Turn off warning diagnostics in CLI
apiology Nov 15, 2025
5348f70
Merge branch 'method_pin' into solargraph_rspec_failure
apiology Nov 15, 2025
7e7604b
Debug
apiology Nov 15, 2025
91d3cd4
Fix pin merging bug
apiology Nov 15, 2025
479d9d1
Show parameters
apiology Nov 15, 2025
652fcd2
Add @sg-ignore
apiology Nov 15, 2025
74c3ec1
Merge branch 'solargraph_rspec_failure' into intersection_types
apiology Nov 15, 2025
fd7dc70
Add @sg-ignores
apiology Nov 15, 2025
b80f846
Merge branch 'solargraph_rspec_failure' into union_type_enforcement_base
apiology Nov 15, 2025
8359d06
Merge branch 'solargraph_rspec_failure' into run_strict_typechecking_…
apiology Nov 15, 2025
a066a8b
Merge branch 'local_variable_probiing' into union_type_enforcement_base
apiology Nov 16, 2025
fe06cf3
Add @sg-ignore
apiology Nov 16, 2025
9b6aa30
Pull in solargraph-rspec fixes from another branch
apiology Nov 16, 2025
19eae82
Drop @sg-ignores
apiology Nov 16, 2025
482671b
Add @sg-ignore
apiology Nov 16, 2025
82c5680
Merge branch 'annotations_2025' into run_strict_typechecking_in_ci
apiology Nov 16, 2025
1af7057
Merge branch 'solargraph_rspec_failure' into annotations_2025
apiology Nov 16, 2025
b1d0b21
Drop @sg-ignore
apiology Nov 16, 2025
973b512
Use consistent ruby versions for typechecking
apiology Nov 16, 2025
52894d9
Merge branch 'intersection_types' into union_type_enforcement_base
apiology Nov 16, 2025
5b7c980
Merge branch 'run_strict_typechecking_in_ci' into union_type_enforcem…
apiology Nov 16, 2025
390d68a
Remove @sg-ignores
apiology Nov 16, 2025
f9114dc
Add @sg-ignores
apiology Nov 16, 2025
680638d
Adjust @sg-ignores
apiology Nov 16, 2025
6f2e8bb
Restore @sg-ignores
apiology Nov 16, 2025
4f94ef8
Fix issue revealed by this PR's change
apiology Nov 16, 2025
35d8cfb
Merge branch 'local_variable_probiing' into union_type_enforcement_base
apiology Nov 16, 2025
c7028dc
Mark spec as pending
apiology Nov 16, 2025
0d854cd
Mark spec as pending
apiology Nov 16, 2025
f8ded08
Add @sg-ignores
apiology Nov 16, 2025
ab0a6b5
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 16, 2025
ec29b25
Drop dead code
apiology Nov 16, 2025
8590b21
Merge branch 'intersection_types' into union_type_enforcement_base
apiology Nov 16, 2025
046a7a6
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 16, 2025
57a0cf8
Fix merge
apiology Nov 16, 2025
6fb550c
Fix merge
apiology Nov 16, 2025
8c1f056
Add @sg-ignore
apiology Nov 16, 2025
4d0366b
Use latest rubygems
apiology Nov 16, 2025
963c135
Remove unused file
apiology Nov 16, 2025
3e2a67c
Merge branch 'solargraph_rspec_failure' into remove_dead_file
apiology Nov 16, 2025
86f3ca2
Merge branch 'remove_dead_file' into union_type_enforcement_base
apiology Nov 16, 2025
bd6b567
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 16, 2025
2df9fb5
Merge branch 'solargraph_rspec_failure' into flow_sensitive_typing_2_0
apiology Nov 16, 2025
5b63c53
Merge branch 'stricter_unions' into or_support_in_flow_sensitive_typing
apiology Nov 16, 2025
a12d959
Add failing spec
apiology Nov 16, 2025
71f0e74
Add implementation
apiology Nov 16, 2025
a0b3b62
Merge branch 'or_support_in_flow_sensitive_typing' into union_type_en…
apiology Nov 16, 2025
0fae127
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 16, 2025
7bb3e34
Merge branch 'local_variable_probiing' into or_support_in_flow_sensit…
apiology Nov 16, 2025
a7b7833
Fix @sg-ignore issues
apiology Nov 16, 2025
b524eec
Fix solargraph-rails specs issue
apiology Nov 16, 2025
5e5b6e5
Drop workaround
apiology Nov 16, 2025
72a57a0
Merge branch 'local_variable_probiing' into or_support_in_flow_sensit…
apiology Nov 16, 2025
1d7106e
Use is_a? in a simple if() with a union to refine types
apiology Nov 16, 2025
ef9f25e
Merge branch 'or_support_in_flow_sensitive_typing' into union_type_en…
apiology Nov 16, 2025
2547145
Fix specs
apiology Nov 16, 2025
7a742df
Merge branch 'overcommit_yardoc_bundle_fix' into or_support_in_flow_s…
apiology Nov 16, 2025
5c18f4b
Merge branch 'or_support_in_flow_sensitive_typing' into union_type_en…
apiology Nov 16, 2025
9c6a9f2
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 16, 2025
c411211
Use same ruby version for all typechecking for consistency
apiology Nov 16, 2025
9c8ed51
Rename rule to match future PR
apiology Nov 16, 2025
5e03ba9
Merge branch 'solargraph_rspec_failure' into stricter_unions
apiology Nov 16, 2025
b5c656d
Merge branch 'stricter_unions' into union_type_enforcement_base
apiology Nov 16, 2025
c05b600
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 16, 2025
7ea7bfd
Fix polarity
apiology Nov 16, 2025
c300b4b
Merge branch 'stricter_unions' into union_type_enforcement_base
apiology Nov 16, 2025
5c206ed
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 16, 2025
e26572c
Update metrics
apiology Nov 16, 2025
8aef08b
Accounting fixes
apiology Nov 20, 2025
adf9142
Drop unneeded presence validation
apiology Nov 20, 2025
125511e
Add ivar support to flow sensitive typing
apiology Nov 20, 2025
092199e
Initial plan
Copilot Nov 20, 2025
ee3aba7
Fix typo in comment and add instance variable test
Copilot Nov 20, 2025
a976d8b
Merge pull request #20 from apiology/copilot/sub-pr-19
apiology Nov 22, 2025
1bb9e21
Drop change I can't prove I need
apiology Nov 24, 2025
41adab4
Fix type issue combining directives
apiology Nov 24, 2025
f9ec724
Pull in additional build fix
apiology Nov 24, 2025
b32ee88
Merge branch 'solargraph_rspec_failure' into fix_directive_combinatio…
apiology Nov 24, 2025
5609ca9
Merge branch 'fix_directive_combination_issue' into union_type_enforc…
apiology Nov 24, 2025
098b067
Allow levels to be changed for typechecking rules in .solargraph.yml
apiology Nov 27, 2025
b56c25e
Merge branch 'solargraph_rspec_failure' into allow_level_overrides_fo…
apiology Nov 27, 2025
b4f1169
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 27, 2025
08626af
Push logic up to BaseVariable for future expansion
apiology Nov 27, 2025
803974b
Merge branch 'local_variable_probiing' into union_type_enforcement_base
apiology Nov 27, 2025
c199dbc
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 27, 2025
9ec6433
Merge fix
apiology Nov 27, 2025
8e2a094
Fix merge
apiology Nov 27, 2025
804d179
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 27, 2025
0f3362f
Smooth out merge
apiology Nov 27, 2025
38a6d71
Smooth out merge
apiology Nov 27, 2025
50dc53d
RuboCop fix
apiology Nov 27, 2025
9dda14e
Finalize todo
apiology Nov 27, 2025
559cd7c
Update lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb
apiology Nov 27, 2025
6e558b7
Avoid ignoring valid pins in typechecking
apiology Nov 28, 2025
7ed9e03
Merge branch 'solargraph_rspec_failure' into ignored_pins_issue
apiology Nov 28, 2025
890d638
Fix newly found type issue
apiology Nov 28, 2025
40f547f
Annotations needed after https://github.com/castwide/solargraph/pull/…
apiology Nov 28, 2025
62d44c9
Merge branch 'annotations_2025' into run_strict_typechecking_in_ci
apiology Nov 28, 2025
70cc611
Merge branch 'ignored_pins_issue' into run_strict_typechecking_in_ci
apiology Nov 28, 2025
1594b95
Annotations needed after https://github.com/castwide/solargraph/pull/…
apiology Nov 28, 2025
1b1b69e
Merge branch 'annotations_2025' into run_strict_typechecking_in_ci
apiology Nov 28, 2025
ce40539
Merge branch 'run_strict_typechecking_in_ci' into union_type_enforcem…
apiology Nov 28, 2025
405d9be
Handle a self resolution case
apiology Nov 28, 2025
a1836e8
Merge branch 'intersection_types' into union_type_enforcement_base
apiology Nov 28, 2025
5a4aae2
Drop @sg-ignores
apiology Nov 29, 2025
f74a49d
Add missing spec after experiencing subtle merge error
apiology Nov 29, 2025
b289374
Merge branch 'or_support_in_flow_sensitive_typing' into union_type_en…
apiology Nov 29, 2025
1401373
Fix type
apiology Nov 29, 2025
9bd0ebe
Merge branch 'annotations_2025' into union_type_enforcement_base
apiology Nov 29, 2025
d27a522
Fix annotations
apiology Nov 29, 2025
8701af7
Handle an issue brought out by future merge
apiology Nov 29, 2025
f4e2b3e
Merge branch 'intersection_types' into union_type_enforcement_base
apiology Nov 29, 2025
08024bd
Fixes based on future branch type checking
apiology Nov 29, 2025
7fba8bb
Merge branch 'intersection_types' into union_type_enforcement_base
apiology Nov 29, 2025
6001589
Merge branch 'union_type_enforcement_base' into union_type_enforcement
apiology Nov 29, 2025
64c272c
Merge branch 'union_type_enforcement' into union_type_enforcement_ivars
apiology Nov 30, 2025
fc550aa
Merge branch 'union_type_enforcement_ivars' of apiology.github.com:ap…
apiology Nov 30, 2025
bf4a799
Adjust accounting
apiology Nov 30, 2025
f17c889
Merge branch 'allow_level_overrides_for_type_checking_rules' into 202…
apiology Dec 1, 2025
3ccaaea
Merge branch 'method_alias_assertions' into 2025-12-01
apiology Dec 1, 2025
b8eea0f
Add @sg-ignore
apiology Dec 1, 2025
7e036be
Merge branch 'method_pin' into 2025-12-01
apiology Dec 1, 2025
5bcb7d4
Add annotations
apiology Dec 1, 2025
480548c
Merge branch 'add_regression_specs' into 2025-12-01
apiology Dec 1, 2025
523b2e6
Merge branch 'handle_gemspec_bad_gemdir' into 2025-12-01
apiology Dec 1, 2025
abfc570
Merge branch 'fix_resolution_of_another_ambiguous_type' into 2025-12-01
apiology Dec 1, 2025
c9e0c6e
Merge branch 'message_spies_linting' into 2025-12-01
apiology Dec 1, 2025
f26ff2e
Merge branch 'extract_gemspecs_logic_from_doc_map' into 2025-12-01
apiology Dec 1, 2025
76c6d7f
Add fix that this PR revealed on future branch
apiology Dec 1, 2025
58d5c1d
Merge branch 'extract_gemspecs_logic_from_doc_map' into 2025-12-01
apiology Dec 1, 2025
892630c
Add fix that this PR revealed on future branch
apiology Dec 1, 2025
dd016bf
Merge branch 'solargraph_rspec_failure' into extract_gemspecs_logic_f…
apiology Dec 1, 2025
f879eb2
Add @sg-ignore
apiology Dec 1, 2025
5600ee1
Remove @sg-ignores
apiology Dec 1, 2025
939786e
Remove @sg-ignores
apiology Dec 1, 2025
d87f222
Use consistent Ruby versions for typechecking
apiology Dec 1, 2025
7d29664
Merge branch 'extract_gemspecs_logic_from_doc_map' into 2025-12-01
apiology Dec 1, 2025
8f185f6
Fix merge
apiology Dec 1, 2025
adadae5
Merge branch 'keep_workspaces_as_absolute_paths' into 2025-12-01
apiology Dec 2, 2025
315f067
Update spec
apiology Dec 2, 2025
f545256
Merge branch 'reference-handling' into 2025-12-01
apiology Dec 2, 2025
ae2c53d
Fix to preferred style
apiology Dec 2, 2025
b3b34d6
Merge branch 'pin_infer_assertion' into 2025-12-01
apiology Dec 2, 2025
ea3dda3
Merge branch 'cache_uncache_gem' into 2025-12-01
apiology Dec 2, 2025
7d22617
Fix merge
apiology Dec 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# current git branch
SOLARGRAPH_FORCE_VERSION=0.0.1.dev-$(git rev-parse --abbrev-ref HEAD | tr -d '\n' | tr -d '/' | tr -d '-'| tr -d '_')
export SOLARGRAPH_FORCE_VERSION
4 changes: 2 additions & 2 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ name: Linting
on:
workflow_dispatch: {}
pull_request:
branches: [ master ]
branches: ['*']
push:
branches:
- 'main'
Expand All @@ -33,7 +33,7 @@ jobs:
ruby-version: 3.4
bundler: latest
bundler-cache: true
cache-version: 2025-06-06
cache-version: 2025-10-25

- name: Update to best available RBS
run: |
Expand Down
94 changes: 63 additions & 31 deletions .github/workflows/plugins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
push:
branches: [master]
pull_request:
branches: [master]
branches: ['*']

permissions:
contents: read
Expand All @@ -23,7 +23,7 @@ jobs:
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
ruby-version: 3.4 # keep same as typecheck.yml
bundler-cache: true
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
Expand All @@ -43,7 +43,7 @@ jobs:
- name: Install gem types
run: bundle exec rbs collection update
- name: Ensure typechecking still works
run: bundle exec solargraph typecheck --level typed
run: bundle exec solargraph typecheck --level strong
- name: Ensure specs still run
run: bundle exec rake spec
rails:
Expand All @@ -54,7 +54,7 @@ jobs:
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
ruby-version: 3.4 # keep same as typecheck.yml
bundler-cache: false
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
Expand All @@ -72,7 +72,7 @@ jobs:
- name: Install gem types
run: bundle exec rbs collection update
- name: Ensure typechecking still works
run: bundle exec solargraph typecheck --level typed
run: bundle exec solargraph typecheck --level strong
- name: Ensure specs still run
run: bundle exec rake spec
rspec:
Expand All @@ -83,7 +83,7 @@ jobs:
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
ruby-version: 3.4 # keep same as typecheck.yml
bundler-cache: false
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
Expand All @@ -101,34 +101,64 @@ jobs:
- name: Install gem types
run: bundle exec rbs collection update
- name: Ensure typechecking still works
run: bundle exec solargraph typecheck --level typed
run: bundle exec solargraph typecheck --level strong
- name: Ensure specs still run
run: bundle exec rake spec

# run_solargraph_rspec_specs:
# # check out solargraph-rspec as well as this project, and point the former to use the latter as a local gem
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# - name: clone https://github.com/lekemula/solargraph-rspec/
# run: |
# cd ..
# git clone https://github.com/lekemula/solargraph-rspec.git
# cd solargraph-rspec
# - name: Set up Ruby
# uses: ruby/setup-ruby@v1
# with:
# ruby-version: '3.0'
# bundler-cache: false
# - name: Install gems
# run: |
# cd ../solargraph-rspec
# echo "gem 'solargraph', path: '../solargraph'" >> Gemfile
# bundle install
# - name: Run specs
# run: |
# cd ../solargraph-rspec
# bundle exec rake spec
run_solargraph_rspec_specs:
# check out solargraph-rspec as well as this project, and point the former to use the latter as a local gem
runs-on: ubuntu-latest
env:
SOLARGRAPH_CACHE: ${{ github.workspace }}/../solargraph-rspec/vendor/solargraph/cache
BUNDLE_PATH: ${{ github.workspace }}/../solargraph-rspec/vendor/bundle
steps:
- uses: actions/checkout@v3
- name: clone https://github.com/lekemula/solargraph-rspec/
run: |
cd ..
git clone https://github.com/lekemula/solargraph-rspec.git
cd solargraph-rspec
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1'
rubygems: latest
bundler-cache: false
- name: Install gems
run: |
set -x

cd ../solargraph-rspec
echo "gem 'solargraph', path: '../solargraph'" >> Gemfile
bundle config path ${{ env.BUNDLE_PATH }}
bundle install --jobs 4 --retry 3
bundle exec appraisal install
# @todo some kind of appraisal/bundle conflict?
# https://github.com/castwide/solargraph/actions/runs/19038710934/job/54369767122?pr=1116
# /home/runner/work/solargraph/solargraph-rspec/vendor/bundle/ruby/3.1.0/gems/bundler-2.6.9/lib/bundler/runtime.rb:317:in
# `check_for_activated_spec!': You have already activated date
# 3.5.0, but your Gemfile requires date 3.4.1. Prepending
# `bundle exec` to your command may solve
# this. (Gem::LoadError)
bundle exec appraisal update date
# For some reason on ruby 3.1 it defaults to an old version: 1.3.2
# https://github.com/lekemula/solargraph-rspec/actions/runs/17814581205/job/50645370316?pr=22
# We update manually to the latest
bundle exec appraisal update rspec-rails
- name: Configure .solargraph.yml
run: |
cd ../solargraph-rspec
cp .solargraph.yml.example .solargraph.yml
- name: Solargraph generate RSpec gems YARD and RBS pins
run: |
cd ../solargraph-rspec
bundle exec appraisal rbs collection update
rspec_gems=$(bundle exec appraisal ruby -r './lib/solargraph-rspec' -e 'puts Solargraph::Rspec::Gems.gem_names.join(" ")' 2>/dev/null | tail -n1)
bundle exec appraisal solargraph gems $rspec_gems
- name: Run specs
run: |
cd ../solargraph-rspec
bundle exec appraisal rspec --format progress

run_solargraph_rails_specs:
# check out solargraph-rails as well as this project, and point the former to use the latter as a local gem
Expand All @@ -146,6 +176,8 @@ jobs:
# solargraph-rails supports Ruby 3.0+
ruby-version: '3.0'
bundler-cache: false
# https://github.com/apiology/solargraph/actions/runs/19400815835/job/55508092473?pr=17
rubygems: latest
bundler: latest
env:
MATRIX_RAILS_VERSION: "7.0"
Expand Down
40 changes: 37 additions & 3 deletions .github/workflows/rspec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
branches: ['*']

permissions:
contents: read
Expand All @@ -23,18 +23,47 @@ jobs:
matrix:
ruby-version: ['3.0', '3.1', '3.2', '3.3', '3.4', 'head']
rbs-version: ['3.6.1', '3.9.4', '4.0.0.dev.4']
# Ruby 3.0 doesn't work with RBS 3.9.4 or 4.0.0.dev.4
exclude:
# Ruby 3.0 doesn't work with RBS 3.9.4 or 4.0.0.dev.4
- ruby-version: '3.0'
rbs-version: '3.9.4'
- ruby-version: '3.0'
rbs-version: '4.0.0.dev.4'
# only include the 3.1 variants we include later
- ruby-version: '3.1'
# only include the 3.2 variants we include later
- ruby-version: '3.2'
# only include the 3.3 variants we include later
- ruby-version: '3.3'
# only include the 3.4 variants we include later
- ruby-version: '3.4'
# Missing require in 'rbs collection update' - hopefully
# fixed in next RBS release
- ruby-version: 'head'
rbs-version: '4.0.0.dev.4'
- ruby-version: 'head'
rbs-version: '3.9.4'
- ruby-version: 'head'
rbs-version: '3.6.1'
include:
- ruby-version: '3.1'
rbs-version: '3.6.1'
- ruby-version: '3.2'
rbs-version: '3.9.4'
- ruby-version: '3.3'
rbs-version: '4.0.0.dev.4'
- ruby-version: '3.4'
rbs-version: '4.0.0.dev.4'
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
# see https://github.com/castwide/solargraph/actions/runs/19391419903/job/55485410493?pr=1119
#
# match version in Gemfile.lock and use same version below
bundler: 2.5.23
bundler-cache: false
- name: Set rbs version
run: echo "gem 'rbs', '${{ matrix.rbs-version }}'" >> .Gemfile
Expand All @@ -46,8 +75,13 @@ jobs:
run: echo "gem 'tsort'" >> .Gemfile
- name: Install gems
run: |
bundle install
bundle _2.5.23_ install
bundle update rbs # use latest available for this Ruby version
bundle list
bundle exec solargraph pin 'Bundler::Dsl#source'
- name: Update types
run: |
bundle exec rbs collection update
- name: Run tests
run: bundle exec rake spec
undercover:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/typecheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
branches: ['*']

permissions:
contents: read

jobs:
solargraph_typed:
name: Solargraph / typed
name: Solargraph / strong

runs-on: ubuntu-latest

Expand All @@ -36,4 +36,4 @@ jobs:
- name: Install gem types
run: bundle exec rbs collection install
- name: Typecheck self
run: SOLARGRAPH_ASSERTS=on bundle exec solargraph typecheck --level typed
run: SOLARGRAPH_ASSERTS=on bundle exec solargraph typecheck --level strong
Loading
Loading