spring-cloud / spring-cloud-commons

Common classes used in different Spring Cloud implementations
Apache License 2.0
707 stars 704 forks source link

Add Devcontainer Support #1373

Closed samuelj90 closed 2 months ago

samuelj90 commented 2 months ago

Is your feature request related to a problem? Please describe. I would like to propose adding devcontainer support to the Spring Cloud Commons repository. Currently, setting up the development environment can be cumbersome for new contributors, leading to inconsistencies and potential issues across different machines.

Describe the solution you'd like I propose adding a devcontainer.json configuration file to enable developers to easily set up a consistent development environment using Visual Studio Code's Remote Development feature. Here is a basic example of what the devcontainer.json file

Describe alternatives you've considered I don't find any alternative solutions but with this setting up and running the project will be quick and easy.

Additional context Adding devcontainer support would simplify the onboarding experience for new developers and ensure a consistent development environment. I believe this enhancement would be beneficial for both current contributors and future ones.

ryanjbaxter commented 2 months ago

Can you elaborate on what you struggled with in getting a development environment setup to make contributions?

samuelj90 commented 2 months ago

In setting up a development environment to contribute to the Spring Cloud Commons project. I faced few challenges Here are some of those

Incomplete Documentation The README file does not generated properly https://github.com/spring-cloud/spring-cloud-commons

Test Setup Understanding how to run tests effectively and interpret the results

Environment Configuration / dependency I don't find any idea on how to configure the environment and tools required mostly related to first point

Tools Version changes With change of java version / other tools and compatibility it will be easier to switch if we using this approach

ryanjbaxter commented 2 months ago

The README file does not generated properly https://github.com/spring-cloud/spring-cloud-commons

We can fix this that.

Understanding how to run tests effectively and interpret the results

These will be run as part of the maven build.

I don't find any idea on how to configure the environment and tools required mostly related to first point

That should be made clean once the README is fixed https://github.com/spring-cloud/spring-cloud-build/blob/main/docs/modules/ROOT/partials/contributing.adoc

With change of java version / other tools and compatibility it will be easier to switch if we using this approach

Meaning you need to change Java versions on your machine? `

samuelj90 commented 2 months ago

I agree that improving the documentation around setting up the environment and tools is crucial. However, I propose a two-pronged approach:

1. Dev Containers for Streamlined Setup:

2. Streamlined README:

Benefits of this Approach:

Additional Considerations:

By combining Dev Containers with a concise README, we can create a user-friendly and efficient development experience for Spring Cloud Commons.

Addressing Java Version Switching

This approach provides a balance between streamlining the setup process with Dev Containers and maintaining some essential information in the README.

ryanjbaxter commented 2 months ago

I have fixed the readme that that should make things easier.

I don't think we are going to use dev containers. If the instructions in the readme are not clear please open a separate issue so we can address it.

samuelj90 commented 1 month ago

@ryanjbaxter

I understand that this is not currently a priority or part of the roadmap, but I believe it could bring significant value to our ecosystem. May I start working on this during my available time while also learning more about the project?

ryanjbaxter commented 1 month ago

You can submit a PR but like I said above and I can discuss with the team if it is something we would like to incorporate, but I would not count on us merging it if we feel like supporting it and maintaining it adds more work in the long run.