SteeltoeOSS / Samples

Steeltoe samples and reference application collection
https://steeltoe.io/
Apache License 2.0
643 stars 252 forks source link

Sync versions.props in project folders #238

Closed korser1 closed 2 years ago

korser1 commented 2 years ago

Proposal, for review only

https://github.com/SteeltoeOSS/Samples/issues/136

TimHess commented 2 years ago

Thanks for getting this work started @korser1.

Rather than a collection of versions.props files that need to be imported into every single project file, I think we should eliminate the need for project file updates by using a convention that is recognized by MSBuild - Directory.Build.props should work now, or else Directory.Packages.props may work now but could be an even better solution at some point.

The other portion of the issue, which you have taken a stab at is updating of the .props copies. I suppose a brute force process/script that duplicates a root properties file into any folder that contains a .sln should work, but it would be more elegant if we selectively updated versions and had targeted version properties so the files themselves could be smaller... but that could also be done in the future if the brute force process causes issues so I think I'm ok with the current approach

korser1 commented 2 years ago

Thanks for getting this work started @korser1.

Rather than a collection of versions.props files that need to be imported into every single project file, I think we should eliminate the need for project file updates by using a convention that is recognized by MSBuild - Directory.Build.props should work now, or else Directory.Packages.props may work now but could be an even better solution at some point.

The other portion of the issue, which you have taken a stab at is updating of the .props copies. I suppose a brute force process/script that duplicates a root properties file into any folder that contains a .sln should work, but it would be more elegant if we selectively updated versions and had targeted version properties so the files themselves could be smaller... but that could also be done in the future if the brute force process causes issues so I think I'm ok with the current approach

@Tim, thank you for your reply. I looked into Directory.Build.props, but decided no to touch them, as this file could be introduced inside the specific project and sync script will override it. Ok, will try to replace versions.props

Regarding the packages props, I agree with you, but the feature is in the review, And should see how it will work with Dockerfile with accessing, for example.

korser1 commented 2 years ago

Just checked, Directory.Build.props should also be within csproj (not sln) folder to be built in docker

korser1 commented 2 years ago

Looks good. I've requested some mods to the copy_props.ps1 script. Specifics in it's feedback.

  • rename to configure.ps
  • convert comments to help comments
  • (optional) make script executable on Linux

Done