Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement build server discovery #407

Merged
merged 3 commits into from Dec 14, 2018

Conversation

olafurpg
Copy link
Member

@olafurpg olafurpg commented Dec 13, 2018

This commit makes it possible for Metals to communicate with other build
tools than Bloop. New build tools need to implement "BSP connection protocol" documented here:
https://github.com/scalacenter/bsp/blob/master/docs/bsp.md#bsp-connection-protocol

The "Integrating a new build tool" docs have been updated to explain the
steps to implement server discovery.

The long-term plan is to communicate with Bloop via server discovery,
instead of the current custom integration in Metals.

This commit implements a new build tool called "Bill" that implements
BSP server discovery. Bill is used internally to test server discovery.
However, Bill can also be used an inspiration for other 3rd party build
server implementations.

When there are multiple build servers installed on the computer, users
are asked to select which server to connect to. The user choice is
persisted for each unique combination of server names. To override a
persisted server choice, users can run the "Switch build server"
command.

This commit makes it possible for Metals to communicate with other build
tools than Bloop. New build tools need to implement "BSP server
discovery", documented here:
https://github.com/scalacenter/bsp/blob/master/docs/bsp.md#bsp-connection-protocol

The "Integrating a new build tool" docs have been updated to explain the
steps to implement server discovery.

The long-term plan is to communicate with Bloop via server discovery,
instead of the current custom integration in Metals.

This commit implements a new build tool called "Bill" that implements
BSP server discovery. Bill is used internally to test server discovery.
However, Bill can also be used an inspiration for other 3rd party build
server implementations.

When there are multiple build servers installed on the computer, users
are asked to select which server to connect to. The user choice is
persisted for each unique combination of server names. To override a
persisted server choice, users can run the "Switch build server"
command.
@olafurpg
Copy link
Member Author

Familiar flaky tests on windows

X tests.SbtSlowSuite.supported-scala 463196ms 
X tests.SbtSlowSuite.fatal-warnings 303789ms 

@olafurpg
Copy link
Member Author

Familiar flaky windows tests

+ tests.SbtSlowSuite.fatal-warnings 51660ms  

Interestingly, it's only SbtSlowSuite that is flaky, the other tests work fine. Might be worth looking into if we can improve the sbt integration to make the tests less flaky.

@olafurpg olafurpg merged commit e0149ac into scalameta:master Dec 14, 2018
@olafurpg olafurpg deleted the server-discovery branch December 14, 2018 08:34
@olafurpg olafurpg added this to the Metals v0.3.2 milestone Dec 14, 2018
olafurpg added a commit that referenced this pull request Feb 14, 2019
Implement build server discovery
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant