opendevstack / ods-quickstarters

Contains project quickstarters (boilerplates) for Nginx, Go, Java (Spring Boot), Python (Flask), Rust (Axum), Scala (Play), TypeScript (Express), Angular, Ionic, Jupyter, RShiny - all including CI/CD integration & Jenkins build agents
Apache License 2.0
27 stars 39 forks source link

release manager documentation should explain need for repository-type #101

Open tbugfinder opened 4 years ago

tbugfinder commented 4 years ago

Describe the bug The release manager documentation explains different settings for repository-type. However the impact of the setting is not obvious to a user. Why is it important to set it correctly and what's the impact of setting it incorrectly?

To Reproduce Steps to reproduce the behavior:

  1. Go to https://github.com/opendevstack/ods-quickstarters/blob/master/docs/modules/ROOT/pages/release-manager.adoc#repository-type-ods

Expected behavior A clear explanation why repository-type is there and which decisions are made of it.

Affected version (please complete the following information):

Log Output (ensure to remove any confidential information like tokens, project names, etc.

N/A

Additional context N/A

metmajer commented 4 years ago

@tbugfinder Here's from the documentation (see here), which is followed by an explanation of each repository type. What's missing?

"The library supports the following repository types: ods, ods-service, and ods-test. Setting a repository type is required so the orchestrator can make correct assumptions based on the nature of the component at hand."

tbugfinder commented 4 years ago

Hi @metmajer ! I'm wondering what changes if this setting is e.g. incorrect. Which decisions are made based on the repo-type? Let's assume I'm creating repo my-gowebserver based on the quickstarter be-golang-plain and build a simple gowebserver. I'd flag this repo with repo-type ods in release-manager. The same repo my-gowebserver could be built based on quickstarter docker-plain. Based on the given prefix-ruleset I'd choose repo-type ods-service. What's the difference now, what changes exactly?

metmajer commented 4 years ago

@tbugfinder not everything you find is a bug :) I have changed the label to improving the documentation.

Here is a bit more thorough explanation for now: ods is for everything where writing custom code is involved. This is opposed to ods-service, which denotes a component whose code has been packaged for you by a 3rd-party vendor (you use it as a COTS). Therefore, in both your examples, ods would be correct, as it doesn't matter if you're based on be-golang-plain or on docker-plain in your case. The good news: you don't have to provide ods, as it's the default type (mentioned in the documentation).

In the near future, these types will also help determine which compliance reports have to be generated. Naturally, those will be more exhaustive in number if you create a custom code component vs. a component that simply tests your live application.

Thanks for the feedback! I'll make sure to improve the documentation soon where needed. Let me know if my above explanation helps, or not.

clemensutschig commented 4 years ago

with master, the type is now in metadata.yml - so no need for a user to set or figure out if std ods components are used.,

michaelsauter commented 4 years ago

@metmajer Let me know if you need help updating the docs. I guess it is still valuable to put what you wrote above in the docs, even if the user doesn't need to set it explicitly anymore ...

michaelsauter commented 4 years ago

Taking this off from v3 as it is not required for a working release.