Repository: camaraproject/DeviceSwap
Pull request #41: Spring25 - M4 Milestone - Prepare r2.2
Author: login: jgarciahospital
Labels: name: Spring25
Created: 2025-02-27T21:31:39Z | Merged: 2025-03-13T07:57:03Z

#### What type of PR is this?

* documentation
* subproject management


#### What this PR does / why we need it:

Create public release with r2.2 version of Device Swap API for spring25 meta-release


#### Which issue(s) this PR fixes:

<!-- Automatically closes linked issue when PR is merged.
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`. -->

Fixes #40


Linked issue #40: Create public release of version 0.2
After RC period, confirm device swap v0.2.0-rc1 to evolve to public version.

Diff:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5a695d1..e9c0ebe 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,12 +2,51 @@
 
 ## Table of Contents
 
+- **[r2.2](#r22)**
 - [r2.1](#r21)
 - **[r1.2](#r12)**
 - [r1.1](#r11)
 
 **Please be aware that the project will have frequent updates to the main branch. There are no compatibility guarantees associated with code in any branch, including main, until it has been released. For example, changes may be reverted before a release is published. For the best results, use the latest published release.**
 
+# r2.2
+## Release Notes
+
+This public release contains the definition and documentation of
+* device-swap v0.2.0
+
+The API definition(s) are based on
+* Commonalities v0.5.0
+* Identity and Consent Management v0.3.0
+
+## device-swap v0.2.0
+
+**device-swap v0.2.0 is the public release of the Device Swap API**
+
+- 0.2.0 Device Swap API definition **with inline documentation**:
+  - OpenAPI [YAML spec file](https://github.com/camaraproject/DeviceSwap/blob/r2.2/code/API_definitions/device-swap.yaml)
+  - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceSwap/r2.2/code/API_definitions/device-swap.yaml&nocors)
+  - [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/DeviceSwap/r2.2/code/API_definitions/device-swap.yaml)
+    
+Changes included in v0.2.0 compared to v0.1.0:
+### Added
+* Include MonitoredPeriod for Device Swap 0.2.0 by @jgarciahospital in https://github.com/camaraproject/DeviceSwap/pull/33
+* Add a pattern for x-correlator by @bigludo7 in https://github.com/camaraproject/DeviceSwap/pull/36
+
+### Changed
+* Align commonalities v0.5 by @jgarciahospital in https://github.com/camaraproject/DeviceSwap/pull/34
+* Align Test cases related to the device identifier accordingly to Comm. by @bigludo7 in https://github.com/camaraproject/DeviceSwap/pull/39
+
+### Fixed
+N/A
+### Removed
+N/A
+
+## New Contributors
+N/A
+
+**Full Changelog**: https://github.com/camaraproject/DeviceSwap/compare/r1.2...r2.2
+
 # r2.1
 ## Release Notes
 
diff --git a/README.md b/README.md
index aea2adc..832379f 100644
--- a/README.md
+++ b/README.md
@@ -6,24 +6,23 @@
 <a href="https://github.com/camaraproject/DeviceSwap/blob/main/LICENSE" title="License"><img src="https://img.shields.io/badge/License-Apache%202.0-green.svg?style=plastic"></a>
 <a href="https://github.com/camaraproject/DeviceSwap/releases/latest" title="Latest Release"><img src="https://img.shields.io/github/release/camaraproject/DeviceSwap?style=plastic"></a>
 # DeviceSwap
-Repository to describe, develop, document and test the Device Swap API family
+Repository to describe, develop, document and test the Device Swap APIs
 
 ## Scope
 * Service APIs for “Device Swap” (see APIBacklog.md)  
-* It provides the customer with the ability to:  
+* It provides the API consumer with the ability to:  
   * understand if the MSISDN has had a change of device in the last 30 days.
-  * NOTE: The scope of this API family should be limited (at least at a first stage) to 4G and 5G.  
+  * NOTE: The scope of these APIs should be limited (at least at a first stage) to 4G and 5G.  
 * Describe, develop, document and test the APIs (with 1-2 Telcos)  
 * Started: July  2024
-* Location: virtually
 
 ## Release Information
 * Note: Please be aware that the project will have frequent updates to the main branch. There are no compatibility guarantees associated with code in any branch, including main, until a new release is created. For example, changes may be reverted before a release is created. **For best results, use the latest available release**.
-* The pre-release r2.1 contains the version 0.2.0-rc.1 of the Device Swap API. The release tag is [r2.1](https://github.com/camaraproject/DeviceSwap/tree/r2.1).
-- 0.2.0-rc.1 Device Swap API definition **with inline documentation**:
-  - OpenAPI [YAML spec file](https://github.com/camaraproject/DeviceSwap/blob/r2.1/code/API_definitions/device-swap.yaml)
-  - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceSwap/r2.1/code/API_definitions/device-swap.yaml&nocors)
-  - [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/DeviceSwap/r2.1/code/API_definitions/device-swap.yaml)
+* The public release r2.2 contains the version 0.2.0 of the Device Swap API. The release tag is [r2.2](https://github.com/camaraproject/DeviceSwap/tree/r2.2).
+- 0.2.0 Device Swap API definition **with inline documentation**:
+  - OpenAPI [YAML spec file](https://github.com/camaraproject/DeviceSwap/blob/r2.2/code/API_definitions/device-swap.yaml)
+  - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceSwap/r2.2/code/API_definitions/device-swap.yaml&nocors)
+  - [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/DeviceSwap/r2.2/code/API_definitions/device-swap.yaml)
 * The latest public release is available here: https://github.com/camaraproject/DeviceSwap/releases/latest
 * Other releases of this sub project are available in https://github.com/camaraproject/DeviceSwap/releases
 * For changes see [CHANGELOG.md](https://github.com/camaraproject/DeviceSwap/blob/main/CHANGELOG.md)
diff --git a/code/API_definitions/device-swap.yaml b/code/API_definitions/device-swap.yaml
index fdfe5c0..2002ecb 100644
--- a/code/API_definitions/device-swap.yaml
+++ b/code/API_definitions/device-swap.yaml
@@ -55,10 +55,10 @@ info:
   license:
     name: Apache 2.0
     url: https://www.apache.org/licenses/LICENSE-2.0.html
-  version: 0.2.0-rc.1
+  version: 0.2.0
   x-camara-commonalities: 0.5
 servers:
-  - url: '{apiRoot}/device-swap/v0.2rc1'
+  - url: '{apiRoot}/device-swap/v0.2'
     variables:
       apiRoot:
         default: http://localhost:9091
diff --git a/code/Test_definitions/device-swap-check.feature b/code/Test_definitions/device-swap-check.feature
index 8105786..ffa3fe3 100644
--- a/code/Test_definitions/device-swap-check.feature
+++ b/code/Test_definitions/device-swap-check.feature
@@ -1,16 +1,16 @@
-Feature: CAMARA Device Swap API, 0.2.0-rc.1 - Operation checkDeviceSwap
+Feature: CAMARA Device Swap API, 0.2.0 - Operation checkDeviceSwap
 
   # Input to be provided by the implementation to the tester
   #
   # Testing assets:
   #
-  # References to OAS spec schemas refer to schemas specifies in device-swap.yaml, version 0.2.0-rc.1
+  # References to OAS spec schemas refer to schemas specifies in device-swap.yaml, version 0.2.0
   #
   # Check if device swap has been performed during a past period
 
 
     Background: Common checkDeviceSwap setup
-        Given the resource "device-swap/v0.2rc1/check"
+        Given the resource "device-swap/v0.2/check"
         And the header "Content-Type" is set to "application/json"
         And the header "Authorization" is set to a valid access token
         And the header "x-correlator" is set to a UUID value
diff --git a/code/Test_definitions/device-swap-retrieve-date.feature b/code/Test_definitions/device-swap-retrieve-date.feature
index bdc09a3..3477024 100644
--- a/code/Test_definitions/device-swap-retrieve-date.feature
+++ b/code/Test_definitions/device-swap-retrieve-date.feature
@@ -1,15 +1,15 @@
-Feature: CAMARA Device Swap API, 0.2.0-rc.1 - Operation retrieveDeviceSwapDate
+Feature: CAMARA Device Swap API, 0.2.0 - Operation retrieveDeviceSwapDate
 
   # Input to be provided by the implementation to the tester
   #
   # Testing assets:
   #
-  # References to OAS spec schemas refer to schemas specifies in device-swap.yaml, version 0.2.0-rc.1
+  # References to OAS spec schemas refer to schemas specifies in device-swap.yaml, version 0.2.0
   #
   # Get timestamp of last device swap for a mobile user account provided with phone number.
 
     Background: Common retrieveDeviceSwapDate setup
-        Given the resource "device-swap/v0.2rc1/retrieve-date"
+        Given the resource "device-swap/v0.2/retrieve-date"
         And the header "Content-Type" is set to "application/json"
         And the header "Authorization" is set to a valid access token
         And the header "x-correlator" is set to a UUID value
diff --git a/documentation/API_documentation/device-swap-API-Readiness-Checklist.md b/documentation/API_documentation/device-swap-API-Readiness-Checklist.md
index 5a26a54..3ca4269 100644
--- a/documentation/API_documentation/device-swap-API-Readiness-Checklist.md
+++ b/documentation/API_documentation/device-swap-API-Readiness-Checklist.md
@@ -1,14 +1,14 @@
 # API Readiness Checklist
 
-Checklist for device-swap 0.2.0-rc.1 in r2.1
+Checklist for device-swap 0.2.0 in r2.2
 
 | Nr | API release assets  | alpha | release-candidate |  initial<br>public | stable<br> public | Status | Reference information  |
 |----|----------------------------------------------|:-----:|:-----------------:|:-------:|:------:|:----:|:----:|
 |  1 | API definition                               |   M   |         M         |    M    |    M   |   Y  | [link](code/API_definitions/device-swap.yaml) |
-|  2 | Design guidelines from Commonalities applied |   O   |         M         |    M    |    M   |   Y  |  r2.2    |
-|  3 | Guidelines from ICM applied                  |   O   |         M         |    M    |    M   |   Y  |  r2.2    |
+|  2 | Design guidelines from Commonalities applied |   O   |         M         |    M    |    M   |   Y  |  [r2.3](https://github.com/camaraproject/Commonalities/releases/tag/r2.3)    |
+|  3 | Guidelines from ICM applied                  |   O   |         M         |    M    |    M   |   Y  |  [r2.3](https://github.com/camaraproject/IdentityAndConsentManagement/releases/tag/r2.3)    |
 |  4 | API versioning convention applied            |   M   |         M         |    M    |    M   |   Y  |      |
-|  5 | API documentation                            |   M   |         M         |    M    |    M   |   Y  | Embed documentation into API spec - [link](/code/API_definitions/device-swap.yaml) |
+|  5 | API documentation                            |   M   |         M         |    M    |    M   |   Y  | Embedded documentation into API spec - [link](/code/API_definitions/device-swap.yaml) |
 |  6 | User stories                                 |   O   |         O         |    O    |    M   |   Y  | [check](/documentation/API_documentation/device-swap_check_User_Story.md) [retrieve](/documentation/API_documentation/device-swap_retrieve_User_Story.md) |
 |  7 | Basic API test cases & documentation         |   O   |         M         |    M    |    M   |   Y  | [check](/code/Test_definitions/device-swap-check.feature) [retrieve](/code/Test_definitions/device-swap-retrieve-date.feature) |
 |  8 | Enhanced API test cases & documentation      |   O   |         O         |    O    |    M   |   Y  | [check](/code/Test_definitions/device-swap-check.feature) [retrieve](/code/Test_definitions/device-swap-retrieve-date.feature) |


Reviews:
user: login: jlurien
body: Review on behalf of Release Management

* Some small suggestions
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T18:51:46Z
user: login: jgarciahospital
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-10T09:00:09Z
user: login: jlurien
body: LGTM
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-10T11:51:47Z
user: login: tanjadegroot
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-11T01:33:22Z
user: login: tanjadegroot
body: added one additional request for some small text changes in the README.
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-11T01:34:47Z
user: login: jgarciahospital
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-11T08:14:31Z
user: login: bigludo7
body: LGTM
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-03-13T07:22:26Z

Review comments:
diff_hunk: @@ -1,6 +1,6 @@
 # API Readiness Checklist
 
-Checklist for device-swap 0.2.0-rc.1 in r2.1
+Checklist for device-swap 0.2.0 in r2.2
path: documentation/API_documentation/device-swap-API-Readiness-Checklist.md
user: login: jlurien
body: Update links to r2.3 of commonalities and ICM:
2: `[r2.3](https://github.com/camaraproject/Commonalities/releases/tag/r2.3)`
3: `[r2.3](https://github.com/camaraproject/IdentityAndConsentManagement/releases/tag/r2.3)`

5: Embed -> Embedded
created_at: 2025-03-05T18:47:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -2,12 +2,51 @@
 
 ## Table of Contents
 
+- **[r2.2](#r22)**
 - [r2.1](#r21)
 - **[r1.2](#r12)**
 - [r1.1](#r11)
 
 **Please be aware that the project will have frequent updates to the main branch. There are no compatibility guarantees associated with code in any branch, including main, until it has been released. For example, changes may be reverted before a release is published. For the best results, use the latest published release.**
 
+# r2.2
+## Release Notes
+
+This release contains the definition and documentation of
path: CHANGELOG.md
user: login: jlurien
body: ```suggestion
This public release contains the definition and documentation of
```
created_at: 2025-03-05T18:49:53Z
author_association: CONTRIBUTOR
diff_hunk: @@ -19,11 +19,11 @@ Repository to describe, develop, document and test the Device Swap API family
 
 ## Release Information
 * Note: Please be aware that the project will have frequent updates to the main branch. There are no compatibility guarantees associated with code in any branch, including main, until a new release is created. For example, changes may be reverted before a release is created. **For best results, use the latest available release**.
-* The pre-release r2.1 contains the version 0.2.0-rc.1 of the Device Swap API. The release tag is [r2.1](https://github.com/camaraproject/DeviceSwap/tree/r2.1).
-- 0.2.0-rc.1 Device Swap API definition **with inline documentation**:
-  - OpenAPI [YAML spec file](https://github.com/camaraproject/DeviceSwap/blob/r2.1/code/API_definitions/device-swap.yaml)
-  - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceSwap/r2.1/code/API_definitions/device-swap.yaml&nocors)
-  - [View it on Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/camaraproject/DeviceSwap/r2.1/code/API_definitions/device-swap.yaml)
+* The release r2.2 contains the version 0.2.0 of the Device Swap API. The release tag is [r2.2](https://github.com/camaraproject/DeviceSwap/tree/r2.2).
path: README.md
user: login: jlurien
body: ```suggestion
* The public release r2.2 contains the version 0.2.0 of the Device Swap API. The release tag is [r2.2](https://github.com/camaraproject/DeviceSwap/tree/r2.2).
```
created_at: 2025-03-05T18:50:38Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,6 +1,6 @@
 # API Readiness Checklist
 
-Checklist for device-swap 0.2.0-rc.1 in r2.1
+Checklist for device-swap 0.2.0 in r2.2
path: documentation/API_documentation/device-swap-API-Readiness-Checklist.md
user: login: jgarciahospital
body: fixed
created_at: 2025-03-10T09:00:09Z
author_association: CONTRIBUTOR
path: README.md
user: login: tanjadegroot
body: in README: a few updates please:
- line 9: replace "API family" by "APIs"  (family is deprecated)
- line 13 : replace "customer" by "API provider"
- line 15: replace "the API family" by "these APIs"  (family is deprecated)
- line 18: remove the line (info is in meeting section below)
created_at: 2025-03-11T01:33:22Z
author_association: CONTRIBUTOR
path: README.md
user: login: jgarciahospital
body: Solved. Line 13 IMHo it should be "API consumer" instead of "API provider", right?
created_at: 2025-03-11T08:14:31Z
author_association: CONTRIBUTOR

PR comments:
user: login: jgarciahospital
created_at: 2025-03-10T09:00:44Z
body: Thanks for the review @jlurien, changes commited
author_association: CONTRIBUTOR
user: login: jlurien
created_at: 2025-03-12T19:53:27Z
body: @tanjadegroot please check. We need and additional approval by a code owner as well cc @bigludo7  @krishvenkatachalam 
author_association: CONTRIBUTOR