Repository: opensearch-project/opensearch-build

Issue:
Add release meta issue template for 1.1.1
Signed-off-by: Peter Zhu <zhujiaxi@amazon.com>

### Description
Add release meta issue template for 1.1.1
 
### Issues Resolved
[List any issues this PR will resolve]
 
### Check List
- [x] Commits are signed per the DCO using --signoff 

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check [here](https://github.com/opensearch-project/OpenSearch/blob/main/CONTRIBUTING.md#developer-certificate-of-origin).



Discussion:
# [Codecov](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) Report
> Merging [#1100](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) (3742545) into [main](https://codecov.io/gh/opensearch-project/opensearch-build/commit/1ea1896f1979cfa9471ad7cb74eb9008173ab562?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) (1ea1896) will **decrease** coverage by `21.77%`.
> The diff coverage is `n/a`.

[![Impacted file tree graph](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100/graphs/tree.svg?width=650&height=150&src=pr&token=03S5XZ80UI&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None)](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None)

```diff
@@              Coverage Diff              @@
##               main    #1100       +/-   ##
=============================================
- Coverage     93.92%   72.15%   -21.78%     
  Complexity       11       11               
=============================================
  Files           127       16      -111     
  Lines          2863       79     -2784     
  Branches         10       10               
=============================================
- Hits           2689       57     -2632     
+ Misses          164       12      -152     
  Partials         10       10               
```


| [Impacted Files](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) | Coverage Δ | |
|---|---|---|
| [src/build\_workflow/builders.py](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-c3JjL2J1aWxkX3dvcmtmbG93L2J1aWxkZXJzLnB5) | | |
| [src/ci\_workflow/ci\_check\_lists.py](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-c3JjL2NpX3dvcmtmbG93L2NpX2NoZWNrX2xpc3RzLnB5) | | |
| [src/git/git\_repository.py](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-c3JjL2dpdC9naXRfcmVwb3NpdG9yeS5weQ==) | | |
| [src/manifests/build/build\_manifest\_1\_0.py](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-c3JjL21hbmlmZXN0cy9idWlsZC9idWlsZF9tYW5pZmVzdF8xXzAucHk=) | | |
| [src/manifests/build/build\_manifest\_1\_1.py](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-c3JjL21hbmlmZXN0cy9idWlsZC9idWlsZF9tYW5pZmVzdF8xXzEucHk=) | | |
| [src/manifests/build\_manifest.py](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-c3JjL21hbmlmZXN0cy9idWlsZF9tYW5pZmVzdC5weQ==) | | |
| [src/manifests/bundle/bundle\_manifest\_1\_0.py](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-c3JjL21hbmlmZXN0cy9idW5kbGUvYnVuZGxlX21hbmlmZXN0XzFfMC5weQ==) | | |
| [src/manifests/bundle\_manifest.py](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-c3JjL21hbmlmZXN0cy9idW5kbGVfbWFuaWZlc3QucHk=) | | |
| [src/manifests/component\_manifest.py](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-c3JjL21hbmlmZXN0cy9jb21wb25lbnRfbWFuaWZlc3QucHk=) | | |
| [src/manifests/input\_manifest.py](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#diff-c3JjL21hbmlmZXN0cy9pbnB1dF9tYW5pZmVzdC5weQ==) | | |
| ... and [101 more](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None). Last update [1ea1896...3742545](https://codecov.io/gh/opensearch-project/opensearch-build/pull/1100?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None).

We're not going to run this for all repos right? Just on those included in 1.1.1?
> We're not going to run this for all repos right? Just on those included in 1.1.1?

Yes.
Hi @dblock @peternied could you take another look at this?
I have addressed your comments with commits.

Thanks.

Is it ready to merge? Convert from draft?
Looks like all kinds of merging happened on this PR that have it messed up, I'd recommend cherry-picking into a fresh branch

Resolving patch:
diff --git a/src/ci_workflow/ci_check_manifest_component.py b/src/ci_workflow/ci_check_manifest_component.py
--- a/src/ci_workflow/ci_check_manifest_component.py
+++ b/src/ci_workflow/ci_check_manifest_component.py
@@ -18,7 +18,9 @@ def __init__(self, component, url):
 
     def check(self):
         for architecture in BuildArgs.SUPPORTED_ARCHITECTURES:
-            url = "/".join([self.component.dist, architecture, "manifest.yml"])
+            # Since we only have 'linux' builds now we hard code it to 'linux'
+            # Once we have all platform builds on S3 we can then add a second loop for 'BuildArgs.SUPPORTED_PLATFORMS'
+            url = "/".join([self.component.dist, "linux", architecture, "builds", self.target.name, "manifest.yml"])
             self.build_manifest = BuildManifest.from_url(url)
             if self.component.name in self.build_manifest.components:
                 logging.info(f"Found {self.component.name} in {url}.")
diff --git a/src/ci_workflow/ci_input_manifest.py b/src/ci_workflow/ci_input_manifest.py
--- a/src/ci_workflow/ci_input_manifest.py
+++ b/src/ci_workflow/ci_input_manifest.py
@@ -19,7 +19,7 @@ def __init__(self, file, args):
 
     def __check__(self):
 
-        target = CiTarget(version=self.manifest.build.version, snapshot=self.args.snapshot)
+        target = CiTarget(version=self.manifest.build.version, name=self.manifest.build.filename, snapshot=self.args.snapshot)
 
         with TemporaryDirectory(keep=self.args.keep, chdir=True) as work_dir:
             logging.info(f"Sanity-testing in {work_dir.name}")
diff --git a/src/ci_workflow/ci_target.py b/src/ci_workflow/ci_target.py
--- a/src/ci_workflow/ci_target.py
+++ b/src/ci_workflow/ci_target.py
@@ -7,10 +7,12 @@
 
 class CiTarget:
     version: str
+    name: str
     snapshot: bool
 
-    def __init__(self, version, snapshot=True):
+    def __init__(self, version, name, snapshot=True):
         self.version = version
+        self.name = name
         self.snapshot = snapshot
 
     @property


Test patch:
diff --git a/tests/tests_ci_workflow/test_ci_check_gradle_dependencies.py b/tests/tests_ci_workflow/test_ci_check_gradle_dependencies.py
--- a/tests/tests_ci_workflow/test_ci_check_gradle_dependencies.py
+++ b/tests/tests_ci_workflow/test_ci_check_gradle_dependencies.py
@@ -24,7 +24,7 @@ def __mock_dependencies(self, props="", snapshot=False, gradle_project=None):
         return TestCiCheckGradleDependencies.DummyDependencies(
             component=MagicMock(),
             git_repo=git_repo,
-            target=CiTarget(version="1.1.0", snapshot=snapshot),
+            target=CiTarget(version="1.1.0", name="opensearch", snapshot=snapshot),
             args=gradle_project,
         )
 
diff --git a/tests/tests_ci_workflow/test_ci_check_gradle_dependencies_opensearch.py b/tests/tests_ci_workflow/test_ci_check_gradle_dependencies_opensearch.py
--- a/tests/tests_ci_workflow/test_ci_check_gradle_dependencies_opensearch.py
+++ b/tests/tests_ci_workflow/test_ci_check_gradle_dependencies_opensearch.py
@@ -22,7 +22,7 @@ def __mock_check(self, props=None):
             return CiCheckGradleDependenciesOpenSearchVersion(
                 component=MagicMock(),
                 git_repo=MagicMock(),
-                target=CiTarget(version="1.1.0", snapshot=True),
+                target=CiTarget(version="1.1.0", name="opensearch", snapshot=True),
                 args=None,
             )
 
@@ -52,7 +52,7 @@ def test_executes_gradle_command(self):
         check = CiCheckGradleDependenciesOpenSearchVersion(
             component=MagicMock(),
             git_repo=MagicMock(),
-            target=CiTarget(version="1.1.0", snapshot=True),
+            target=CiTarget(version="1.1.0", name="opensearch", snapshot=True),
             args=None,
         )
         check.git_repo.output.assert_called_once_with(
@@ -63,7 +63,7 @@ def test_executes_gradle_command_with_arg(self):
         check = CiCheckGradleDependenciesOpenSearchVersion(
             component=MagicMock(),
             git_repo=MagicMock(),
-            target=CiTarget(version="1.1.0", snapshot=True),
+            target=CiTarget(version="1.1.0", name="opensearch", snapshot=True),
             args="plugin",
         )
         check.git_repo.output.assert_called_once_with(
diff --git a/tests/tests_ci_workflow/test_ci_check_gradle_properties.py b/tests/tests_ci_workflow/test_ci_check_gradle_properties.py
--- a/tests/tests_ci_workflow/test_ci_check_gradle_properties.py
+++ b/tests/tests_ci_workflow/test_ci_check_gradle_properties.py
@@ -23,7 +23,7 @@ def test_executes_gradle_properties(self):
         TestCiCheckGradleProperties.DummyProperties(
             component=MagicMock(),
             git_repo=git_repo,
-            target=CiTarget(version="1.1.0", snapshot=False),
+            target=CiTarget(version="1.1.0", name="opensearch", snapshot=False),
         )
 
         git_repo.output.assert_called_once_with("./gradlew properties -Dopensearch.version=1.1.0 -Dbuild.snapshot=false")
@@ -35,7 +35,7 @@ def test_executes_gradle_properties_snapshot(self):
         TestCiCheckGradleProperties.DummyProperties(
             component=MagicMock(),
             git_repo=git_repo,
-            target=CiTarget(version="1.1.0", snapshot=True),
+            target=CiTarget(version="1.1.0", name="opensearch", snapshot=True),
         )
 
         git_repo.output.assert_called_once_with("./gradlew properties -Dopensearch.version=1.1.0-SNAPSHOT -Dbuild.snapshot=true")
diff --git a/tests/tests_ci_workflow/test_ci_check_gradle_properties_version.py b/tests/tests_ci_workflow/test_ci_check_gradle_properties_version.py
--- a/tests/tests_ci_workflow/test_ci_check_gradle_properties_version.py
+++ b/tests/tests_ci_workflow/test_ci_check_gradle_properties_version.py
@@ -20,7 +20,7 @@ def __mock_check(self, props=None, component=None, snapshot=True):
             return CiCheckGradlePropertiesVersion(
                 component=component or MagicMock(),
                 git_repo=MagicMock(),
-                target=CiTarget(version="1.1.0", snapshot=snapshot),
+                target=CiTarget(version="1.1.0", name="opensearch", snapshot=snapshot),
             )
 
     def test_has_version(self):
diff --git a/tests/tests_ci_workflow/test_ci_check_gradle_publish_to_maven_local.py b/tests/tests_ci_workflow/test_ci_check_gradle_publish_to_maven_local.py
--- a/tests/tests_ci_workflow/test_ci_check_gradle_publish_to_maven_local.py
+++ b/tests/tests_ci_workflow/test_ci_check_gradle_publish_to_maven_local.py
@@ -16,7 +16,7 @@ def test_executes_gradle_command(self):
         check = CiCheckGradlePublishToMavenLocal(
             component=MagicMock(),
             git_repo=MagicMock(),
-            target=CiTarget(version="1.1.0", snapshot=False),
+            target=CiTarget(version="1.1.0", name="opensearch", snapshot=False),
         )
         check.check()
         check.git_repo.execute.assert_called_once_with("./gradlew publishToMavenLocal -Dopensearch.version=1.1.0 -Dbuild.snapshot=false")
@@ -25,7 +25,7 @@ def test_executes_gradle_command_snapshot(self):
         check = CiCheckGradlePublishToMavenLocal(
             component=MagicMock(),
             git_repo=MagicMock(),
-            target=CiTarget(version="1.1.0", snapshot=True),
+            target=CiTarget(version="1.1.0", name="opensearch", snapshot=True),
         )
         check.check()
         check.git_repo.execute.assert_called_once_with("./gradlew publishToMavenLocal -Dopensearch.version=1.1.0-SNAPSHOT -Dbuild.snapshot=true")
diff --git a/tests/tests_ci_workflow/test_ci_check_lists_dist.py b/tests/tests_ci_workflow/test_ci_check_lists_dist.py
--- a/tests/tests_ci_workflow/test_ci_check_lists_dist.py
+++ b/tests/tests_ci_workflow/test_ci_check_lists_dist.py
@@ -6,9 +6,10 @@
 
 import os
 import unittest
-from unittest.mock import MagicMock, patch
+from unittest.mock import patch
 
 from ci_workflow.ci_check_list_dist import CiCheckListDist
+from ci_workflow.ci_target import CiTarget
 from manifests.build_manifest import BuildManifest
 from manifests.input_manifest import InputComponentFromDist
 
@@ -25,7 +26,7 @@ def test_check(self, mock_manifest, *mocks):
             "dist": "url",
             "checks": ["manifest:component"]
         })
-        list = CiCheckListDist(component, MagicMock())
+        list = CiCheckListDist(component, CiTarget(version="1.1.0", name="opensearch", snapshot=True))
         list.check()
         mock_manifest.assert_called()
 
@@ -35,7 +36,7 @@ def test_invalid_check(self, *mocks):
             "dist": "url",
             "checks": ["invalid:check"]
         })
-        list = CiCheckListDist(component, MagicMock())
+        list = CiCheckListDist(component, CiTarget(version="1.1.0", name="opensearch", snapshot=True))
         list.checkout("path")
         with self.assertRaises(CiCheckListDist.InvalidCheckError) as ctx:
             list.check()
diff --git a/tests/tests_ci_workflow/test_ci_check_manifest_component.py b/tests/tests_ci_workflow/test_ci_check_manifest_component.py
--- a/tests/tests_ci_workflow/test_ci_check_manifest_component.py
+++ b/tests/tests_ci_workflow/test_ci_check_manifest_component.py
@@ -6,9 +6,10 @@
 
 import os
 import unittest
-from unittest.mock import MagicMock, call, patch
+from unittest.mock import call, patch
 
 from ci_workflow.ci_check_manifest_component import CiCheckManifestComponent
+from ci_workflow.ci_target import CiTarget
 from manifests.build_manifest import BuildManifest
 from manifests.input_manifest import InputComponentFromDist
 
@@ -22,14 +23,14 @@ def test_retrieves_manifests(self, mock_manifest):
         check = CiCheckManifestComponent(InputComponentFromDist({
             "name": "common-utils",
             "dist": "url"
-        }), MagicMock())
+        }), CiTarget(version="1.1.0", name="opensearch", snapshot=True))
 
         mock_manifest.from_url.return_value = BuildManifest.from_path(self.BUILD_MANIFEST)
 
         check.check()
         mock_manifest.from_url.assert_has_calls([
-            call("url/x64/manifest.yml"),
-            call("url/arm64/manifest.yml")
+            call("url/linux/x64/builds/opensearch/manifest.yml"),
+            call("url/linux/arm64/builds/opensearch/manifest.yml"),
         ])
 
     @patch("ci_workflow.ci_check_manifest_component.BuildManifest")
@@ -37,11 +38,11 @@ def test_missing_component(self, mock_manifest):
         check = CiCheckManifestComponent(InputComponentFromDist({
             "name": "does-not-exist",
             "dist": "url"
-        }), MagicMock())
+        }), CiTarget(version="1.1.0", name="opensearch", snapshot=True))
 
         mock_manifest.from_url.return_value = BuildManifest.from_path(self.BUILD_MANIFEST)
 
         with self.assertRaises(CiCheckManifestComponent.MissingComponentError) as ctx:
             check.check()
 
-        self.assertEqual(str(ctx.exception), "Missing does-not-exist in url/x64/manifest.yml.")
+        self.assertEqual(str(ctx.exception), "Missing does-not-exist in url/linux/x64/builds/opensearch/manifest.yml.")
diff --git a/tests/tests_ci_workflow/test_ci_target.py b/tests/tests_ci_workflow/test_ci_target.py
--- a/tests/tests_ci_workflow/test_ci_target.py
+++ b/tests/tests_ci_workflow/test_ci_target.py
@@ -11,19 +11,19 @@
 
 class TestCiTarget(unittest.TestCase):
     def test_opensearch_version(self):
-        self.assertEqual(CiTarget(version="1.1.0", snapshot=False).opensearch_version, "1.1.0")
+        self.assertEqual(CiTarget(version="1.1.0", name="opensearch", snapshot=False).opensearch_version, "1.1.0")
 
     def test_opensearch_version_snapshot(self):
         self.assertEqual(
-            CiTarget(version="1.1.0", snapshot=True).opensearch_version,
+            CiTarget(version="1.1.0", name="opensearch", snapshot=True).opensearch_version,
             "1.1.0-SNAPSHOT",
         )
 
     def test_component_version(self):
-        self.assertEqual(CiTarget(version="1.1.0", snapshot=False).component_version, "1.1.0.0")
+        self.assertEqual(CiTarget(version="1.1.0", name="opensearch", snapshot=False).component_version, "1.1.0.0")
 
     def test_component_version_snapshot(self):
         self.assertEqual(
-            CiTarget(version="1.1.0", snapshot=True).component_version,
+            CiTarget(version="1.1.0", name="opensearch", snapshot=True).component_version,
             "1.1.0.0-SNAPSHOT",
         )