Skip to content

minor(cider): Support jack-in of dependencies #179

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

Merged
merged 1 commit into from
Jul 30, 2022
Merged

minor(cider): Support jack-in of dependencies #179

merged 1 commit into from
Jul 30, 2022

Conversation

ajoberstar
Copy link
Member

@ajoberstar ajoberstar commented Jul 30, 2022

Editor integrations, such as Cider and Calva (maybe others), rely on being able to inject dependencies when starting nREPL in order to ensure they have all of the capabilities their editors use.

Eventually, this could be supported natively by Gradle via [1], but this has been a long-nagging issue with Gradle that made for a poorer user experience than Leiningen, Boot, tools.deps, etc.

Since this is just a Gradle property, it can be provided by editors even if the project isn't using Clojurephant (or the right version of Clojurephant), meaning a graceful degradation to the old experience of requiring the user to have put the right deps on the nREPL classpath.

[1] gradle/gradle#17251

This fixes Clojurephant's side of #78.

Related issues:

Contributor Checklist

  • Review Contributing Guidelines.
  • Commits contain discrete changes, messages include context about why the change was made and reference the relevant issues.
  • Commit messages should be prefixed with one of the following (these are used to determine the next version we release):
    • patch: if the change added no new functionality and is backwards compatible
    • minor: if the change added new functionality and is backwards compatible
    • major: if the change is not backwards compatible
    • chore: if the change doesn't affect plugin logic/behavior at all (and obviously still backwards compatible)
    • Any of these can optionally specify an area of the plugin they affected in parentheses (e.g. patch(clojurescript): )
      • build
      • docs
      • clojure
      • clojurescript
      • common
      • repl
  • Provide functional tests. (under clojurephant-plugin/src/compatTest)
  • Update documentation for user-facing changes. (under docs/)
  • Ensure all verification tasks pass locally. (./gradlew check)
  • Ensure CI builds pass on all Java versions. (watch the checks tab once the PR is opened)

TIP: If troubleshooting a CI failure, look for the build scan URL in the workflow run summary.

Editor integrations, such as Cider and Calva (maybe others), rely on
being able to inject dependencies when starting nREPL in order to ensure
they have all of the capabilities their editors use.

Eventually, this could be supported natively by Gradle via [1], but this
has been a long-nagging issue with Gradle that made for a poorer user
experience than Leiningen, Boot, tools.deps, etc.

Since this is just a Gradle property, it can be provided by editors even
if the project isn't using Clojurephant (or the right version of
Clojurephant), meaning a graceful degradation to the old experience of
requiring the user to have put the right deps on the nREPL classpath.

[1] gradle/gradle#17251

This fixes Clojurephant's side of #78.
@ajoberstar ajoberstar marked this pull request as ready for review July 30, 2022 23:55
@ajoberstar ajoberstar merged commit 240618f into main Jul 30, 2022
@ajoberstar ajoberstar deleted the jack-in branch July 30, 2022 23:55
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.

1 participant