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

[Epic] Improve test matrix to include all supported spring versions #2

Open
3 of 4 tasks
saragluna opened this issue May 9, 2022 · 1 comment
Open
3 of 4 tasks
Milestone

Comments

@saragluna
Copy link
Member

saragluna commented May 9, 2022

Context:

Currently Spring Cloud Azure supports multi Spring Boot and Spring Cloud versions, but those versions are not actively tested.
we need to figure out how to enable a testing matrix to actively test all support spring versions and Spring Cloud Azure libraries.

  • Spring projects release monthly.
  • Several types of libraries can be released from Spring projects, snapshot, prerelease, and GA.
  • We use multiple Spring projects in Spring Cloud Azure: Spring Framework, Spring Boot, Spring Data, Spring Integration, Spring Cloud Stream, etc.

Strong has a poc for how to get dependency versions: https://github.com/Azure/spring-cloud-azure-tools/tree/t1/src/main/java/com/azure/spring/dev/tools/dependency

Goal:

The Spring Cloud Azure dev branch should align with Spring Boot on the current Spring Boot version.

The Spring Cloud Azure dev branch should maintain a test matrix for dependent Spring projects. -- UT

The Spring Cloud Azure should have integration tests, containing all Spring Cloud Azure libraries, to run against each version. -- IT

Solutions

  • The Spring Cloud versions, should be parsed from API like curl -G https://start.spring.io/pom.xml -d packaging=war -o pom.xml and retrieved automatically
  • The version matrix should be persistent somewhere, such as spring-cloud-azure-tools repo.

Originally posted by @saragluna in microsoft/spring-cloud-azure#930 (comment)

@saragluna saragluna moved this to Todo in Spring Cloud Azure May 9, 2022
@saragluna saragluna added this to the [2022] June milestone May 9, 2022
@Netyyyy Netyyyy moved this from Todo to In Progress in Spring Cloud Azure May 9, 2022
@saragluna
Copy link
Member Author

saragluna commented May 19, 2022

  1. The structure of (spring-cloud-azure-supported-spring.json) (temporary name)
    tools repo project produce a json file:
[
  {
	"current":  "true"  (unique in the list, should equal spring cloud azure source code)
	"spring-boot-version": "2.6.8"
	"spring-cloud-version": "2021.0.2"
	"releaseStatus": "SNAPSHOT",
	"snapshot": "true"
	"supportStatus": "endoflife | supported | todo" (our support information need manual maintenance)
										      (new entry is default to todo, and we can use another pipeline to test the supportability)
										      (spring metadata removes one version, we can try to create an issue to suggest/query whether we should mark the version to EoL(end of life))
  },
  {
	"current":  "true" 
	"spring-boot-version": "2.6.7"
	"spring-cloud-version": "2021.0.1"
	"releaseStatus": "SNAPSHOT",
	"snapshot": "true"
	"supportStatus": "endoflife | supported | todo"
  }
]
  1. What's the JSON file should consist of?
    [history Spring project metadata] = [spring cloud azure json].

  2. What will happen if a version is EoL but still returned from the Spring metadata?
    For example, 2.3.13 is end of life; we need to set its EOL manually.

  3. If the tools output a JSON file, should the sdk pull the file, or should the tools create a PR to the sdk repo?
    tools: output a JSON

    • sdk pipeline pulls JSON from tools

      - It's easy, it only requires an HTTP call
      - this need the tools repo to be a public repo
      
    • tools push JSON to the sdk repo,

      - To create a PR to the SDK repo
      - The JSON represents our supportability
      - Spring Cloud Azure's supportability is traceable through PR
      - It's how azure-core Jackson does
      
  4. If we detect a change in the value of current: true, what should we do?
    we need to create a PR to the sdk repo:

    • upgrade version_txt
    • upgrade versions

@hui1110 hui1110 modified the milestones: [2022] June, j Jun 6, 2022
@saragluna saragluna added this to the [2022] July milestone Jun 6, 2022
@Netyyyy Netyyyy modified the milestones: 2022-07, 2022-08 Jul 4, 2022
@Netyyyy Netyyyy changed the title [FEATURE-REQ] Improve test matrix to include all supported spring versions [Epic] Improve test matrix to include all supported spring versions Jul 5, 2022
@Netyyyy Netyyyy modified the milestones: 2022-08, 2022-09 Aug 9, 2022
@Netyyyy Netyyyy moved this from In Progress to Blocked in Spring Cloud Azure Aug 11, 2022
@saragluna saragluna modified the milestones: 2022-09, 2022-07, 2022-10, Backlog Sep 6, 2022
@Netyyyy Netyyyy removed their assignment Dec 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Blocked
Development

No branches or pull requests

3 participants