Skip to content

Conversation

@fabiodomingues
Copy link
Owner

@fabiodomingues fabiodomingues commented Jun 23, 2025

This pull request introduces a new severity level configuration (:level) for violations, updates the analyzer logic to include this level in violation results, and adjusts tests to account for the new functionality. Additionally, it removes unused code and simplifies namespace dependencies logic.

Features and Configuration Updates:

  • docs/config.md: Added documentation for the new :level configuration, which defines the severity of violations (:error by default).
  • src/clj_depend/config.clj: Updated the default configuration to include the :level key with a default value of :error.

Analyzer Logic Enhancements:

  • src/clj_depend/internal_api.clj: Modified the violation analysis logic to associate each violation with its severity level (:level) and updated the result code logic to depend on the presence of :error level violations.

Codebase Simplification:

Test Updates:

Checklist

  • I created an issue to discuss the problem I am trying to solve or an open issue already exists.
  • I added a new entry to CHANGELOG.md
  • I updated documentation if applicable (docs folder)

@fabiodomingues fabiodomingues requested a review from Copilot June 23, 2025 19:29
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds a violation level mechanism to the dependency analyzer along with corresponding tests and documentation updates. Key changes include:

  • Updating tests (in api_integration_test.clj) to expect a new violation level field.
  • Modifying the internal API to attach the violation level from the configuration.
  • Documenting the new :level configuration option.

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
test/clj_depend/api_integration_test.clj Updated tests to include the new :level field in violations.
src/clj_depend/internal_api.clj Modified violation processing to associate a level from config.
src/clj_depend/config.clj Added default :level configuration.
src/clj_depend/analyzers/layer.clj Removed unused helper function.
docs/config.md Documented the :level configuration option.
Comments suppressed due to low confidence (1)

src/clj_depend/internal_api.clj:94

  • The violation maps' :level field is unconditionally overridden with the config value. Verify that this behavior is intentional, particularly if individual violations might already specify a level.
          violations (->> (snapshot/without-violations-present-in-snapshot-file! violations options)

:violations [{:namespace 'sample.controller.foo
:dependency-namespace 'sample.logic.foo
:message "Circular dependency between \"sample.controller.foo\" and \"sample.logic.foo\""}
:message "Circular dependency between \"sample.controller.foo\" and \"sample.logic.foo\""
Copy link

Copilot AI Jun 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Duplicate violation message strings appear across tests; consider extracting them into a shared constant to ease maintenance in case the message needs updating.

Suggested change
:message "Circular dependency between \"sample.controller.foo\" and \"sample.logic.foo\""
:message circular-dependency-message

Copilot uses AI. Check for mistakes.
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.

2 participants