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

Outdated CONTRIBUTING.adoc? #11668

Closed
ch4mpy opened this issue Aug 7, 2022 · 5 comments
Closed

Outdated CONTRIBUTING.adoc? #11668

ch4mpy opened this issue Aug 7, 2022 · 5 comments
Assignees
Labels
status: duplicate A duplicate of another issue type: enhancement A general enhancement

Comments

@ch4mpy
Copy link
Contributor

ch4mpy commented Aug 7, 2022

Describe the bug
Following CONTRIBUTING.adoc is not enough to get an IDE ready to run unit-tests and contribute.

I could not get porject build and unit-tests run from Spring Too Suite 4 for Eclipse.

It seems that Kotlin resources were added and that referenced Groovy plugin version does not evolve with Eclipse releases.

Is Spring team is using only IntelliJ? Wouldn't pointing contributors to IntelliJ community edition be easier?

Also resources to configure IDEs with required code-formatting and import oredering rules would be of great help.

To Reproduce

Here is what I did

Here are some of the reported errors:

Description	Resource	Path	Location	Type
One or more cycles were detected in the build path of project 'spring-security-config'. The paths towards the cycle and cycle are:
spring-security-config->{spring-security-ldap, spring-security-test}
->{spring-security-config, spring-security-ldap, spring-security-test}	spring-security-config		Build path	Build Path Problem
One or more cycles were detected in the build path of project 'spring-security-itest-context'. The paths towards the cycle and cycle are:
spring-security-itest-context->{spring-security-config, spring-security-ldap, spring-security-test}	spring-security-itest-context		Build path	Build Path Problem
One or more cycles were detected in the build path of project 'spring-security-itest-ldap-embedded-apacheds-default'. The paths towards the cycle and cycle are:
spring-security-itest-ldap-embedded-apacheds-default->{spring-security-ldap, spring-security-test}
spring-security-itest-ldap-embedded-apacheds-default->{spring-security-config, spring-security-ldap, spring-security-test}	spring-security-itest-ldap-embedded-apacheds-default		Build path	Build Path Problem
One or more cycles were detected in the build path of project 'spring-security-itest-ldap-embedded-mode-apacheds'. The paths towards the cycle and cycle are:
spring-security-itest-ldap-embedded-mode-apacheds->{spring-security-ldap, spring-security-test}
spring-security-itest-ldap-embedded-mode-apacheds->{spring-security-config, spring-security-ldap, spring-security-test}	spring-security-itest-ldap-embedded-mode-apacheds		Build path	Build Path Problem
One or more cycles were detected in the build path of project 'spring-security-itest-ldap-embedded-mode-unboundid'. The paths towards the cycle and cycle are:
spring-security-itest-ldap-embedded-mode-unboundid->{spring-security-ldap, spring-security-test}
spring-security-itest-ldap-embedded-mode-unboundid->{spring-security-config, spring-security-ldap, spring-security-test}	spring-security-itest-ldap-embedded-mode-unboundid		Build path	Build Path Problem
One or more cycles were detected in the build path of project 'spring-security-itest-ldap-embedded-none'. The paths towards the cycle and cycle are:
spring-security-itest-ldap-embedded-none->{spring-security-ldap, spring-security-test}
spring-security-itest-ldap-embedded-none->{spring-security-config, spring-security-ldap, spring-security-test}	spring-security-itest-ldap-embedded-none		Build path	Build Path Problem
One or more cycles were detected in the build path of project 'spring-security-itest-ldap-embedded-unboundid-default'. The paths towards the cycle and cycle are:
spring-security-itest-ldap-embedded-unboundid-default->{spring-security-ldap, spring-security-test}
spring-security-itest-ldap-embedded-unboundid-default->{spring-security-config, spring-security-ldap, spring-security-test}	spring-security-itest-ldap-embedded-unboundid-default		Build path	Build Path Problem
One or more cycles were detected in the build path of project 'spring-security-itest-web'. The paths towards the cycle and cycle are:
spring-security-itest-web->{spring-security-ldap, spring-security-test}
spring-security-itest-web->{spring-security-config, spring-security-ldap, spring-security-test}	spring-security-itest-web		Build path	Build Path Problem
One or more cycles were detected in the build path of project 'spring-security-ldap'. The paths towards the cycle and cycle are:
->{spring-security-ldap, spring-security-test}
->{spring-security-config, spring-security-ldap, spring-security-test}	spring-security-ldap		Build path	Build Path Problem
One or more cycles were detected in the build path of project 'spring-security-test'. The paths towards the cycle and cycle are:
->{spring-security-ldap, spring-security-test}
->{spring-security-config, spring-security-ldap, spring-security-test}	spring-security-test		Build path	Build Path Problem

Expected behavior
Project imported and build, unit-tests ready to run from IDE.

Code format and import order rules configured correctly.

@ch4mpy ch4mpy added status: waiting-for-triage An issue we've not yet triaged type: bug A general bug labels Aug 7, 2022
@sjohnr
Copy link
Member

sjohnr commented Aug 22, 2022

Hi @ch4mpy! Thanks for looking into this. I agree that there's probably some room for improvement in that document.

Is Spring team is using only IntelliJ? Wouldn't pointing contributors to IntelliJ community edition be easier?

I do believe the entire team is currently using IntelliJ, so that would be a good adjustment to mention.

Also resources to configure IDEs with required code-formatting and import oredering rules would be of great help.

This is something that's been on the To Do list for some time, but hasn't made it to the top of the list. I think the main thing that needs addressed is a consistent way to configure imports. Code formatting is handled by ./gradlew format, which would be good to mention as well.

Please see gh-11157. Since that issue was opened earlier, I'm going to close this as a duplicate. Feel free to add additional comments on that issue or to volunteer to take the issue and make a few updates to the doc based on your experience.

@sjohnr sjohnr closed this as completed Aug 22, 2022
@sjohnr sjohnr added status: duplicate A duplicate of another issue type: enhancement A general enhancement and removed status: waiting-for-triage An issue we've not yet triaged type: bug A general bug labels Aug 22, 2022
@sjohnr sjohnr self-assigned this Aug 22, 2022
@ch4mpy
Copy link
Contributor Author

ch4mpy commented Aug 22, 2022

@sjohnr , yes, ./gradlew format applies expected formatting but does not organize imports and IntelliJ community applies different formatting and import order than what is expeted from spring => each minor edit requires to manually organize imports and then run gradle format, which is quite time consuming (and cumbersome).

Having IntelliJ editor configuration files in Spring repos would be very handy (with the usage of Kotlin in projects, using other IDEs than Idea ones seams compromised)

@darkedges
Copy link

This is what I am getting in Spring STS 4.17
image
Any ideas on how to fix all the reference issues?

@ch4mpy
Copy link
Contributor Author

ch4mpy commented Dec 17, 2022

If you want the project to build, use Intellij (community edition is free) .

Using STS for any other Maven / Gradle project, I can understand your frustration, but I couldn't figure a way to have Kotlin modules build correctly.

@darkedges
Copy link

thanks @ch4mpy . The problem I have with Intellij is that I dont know how to link the various projects togethor so that I can develop in a cohesive manner. For example I am trying to develop an extension for Spring Authorization Server and it needs Spring Security to be there so that when I run my app it picks up the version I am developing as opposed to the version being dictacted by Spring Authorization Server.

I am already struggling, and the closest I have gotten is to publish jars locally from both projects and create a third project that uses them. This is not a nice development experience.

I know Eclispe, IntelliJ is a new learning curve that I don;t need ecspicially when there is a version of Eclipse developed by Spring that no Spring Developer uses. I have asked for help, as I am trying to help them with my extension, but so far tumbleweeds. Yes I appreciated it is the silly season and people are busy, but there needs to be a guide for how to develop the interdependencies so that we can make this a better prooduct,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: duplicate A duplicate of another issue type: enhancement A general enhancement
Projects
None yet
Development

No branches or pull requests

3 participants