#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to you under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

****
Release Notes - Apache YuniKorn - Version 1.2.0

** Sub-task
    * [YUNIKORN-1035] - Add how to add a new language document translation by docusaurus i18n
    * [YUNIKORN-1196] - Upgrade K8s shim build dependency to 1.23.12
    * [YUNIKORN-1279] - create design document
    * [YUNIKORN-1295] - document new annotations and how to use them
    * [YUNIKORN-1307] - Create design document
    * [YUNIKORN-1315] - Document how to use MaxApplication enforcement feature 
    * [YUNIKORN-1320] - [shim] Handle new userInfo annotation
    * [YUNIKORN-1321] - [site] Update documentation about user/group resolution
    * [YUNIKORN-1322] - [admission] add new config value handling and allow/deny label if defined
    * [YUNIKORN-1323] - [shim] Add e2e tests for group handling
    * [YUNIKORN-1326] - [core] Develop tracker module
    * [YUNIKORN-1328] - [core] Handle application state changes and trigger tracker interfaces
    * [YUNIKORN-1330] - [core] Expose REST API's
    * [YUNIKORN-1332] - [website] Design doc changes in Yunikorn Website
    * [YUNIKORN-1334] - [admission] look up user & group and add annotation if necessary
    * [YUNIKORN-1338] - [admission] support different kind of workloads other than pods
    * [YUNIKORN-1349] - Update supported K8s versions in documentation
    * [YUNIKORN-1365] - Add config watching to k8shim
    * [YUNIKORN-1366] - Read core configuration from shim instead of filesystem
    * [YUNIKORN-1369] - Shim: Read configuration from configmap and deprecate legacy configs
    * [YUNIKORN-1370] - AC: Read configuration from configmap and deprecate legacy configs
    * [YUNIKORN-1371] - Helm: Implement config migration from legacy configuration
    * [YUNIKORN-1375] - [shim] pass group info from the shim to the core
    * [YUNIKORN-1376] - [release] update values and deployment helm chart of the admission controller
    * [YUNIKORN-1386] - Adding Chinese translation of deployment modes
    * [YUNIKORN-1394] - SI: Pass non-queue configuration variables to core
    * [YUNIKORN-1405] - Shim: Remove obsolete configs
    * [YUNIKORN-1406] - Document new configuration system
    * [YUNIKORN-1410] - Update user/group regex values in the defaults & test code
    * [YUNIKORN-1419] - Fix documentation of admission controller default values
    * [YUNIKORN-1428] - Add unit tests to ensure multiple users belongs to single group and vice versa cases
    * [YUNIKORN-1454] - Add new queue configuration options
    * [YUNIKORN-1455] - Track dynamic priority of applications
    * [YUNIKORN-1456] - Track dynamic priority of queues
    * [YUNIKORN-1457] - Add design document to website
    * [YUNIKORN-1458] - Update queue sorting policies to take into account priorities
    * [YUNIKORN-1459] - Update application sorting policies to consider priority
    * [YUNIKORN-1460] - SI: PreemptionPolicy support
    * [YUNIKORN-1463] - Add PriorityClass informer
    * [YUNIKORN-1464] - Add new queue configuration options
    * [YUNIKORN-1465] - Track dynamic preemption priority of applications
    * [YUNIKORN-1466] - Track dynamic preemption priority for queues
    * [YUNIKORN-1470] - Helm: Add permission to read priority classes
    * [YUNIKORN-1473] - Add e2e tests for priority scheduling
    * [YUNIKORN-1475] - Document priority feature
    * [YUNIKORN-1486] - Ensure dynamic queues are initialized with priority fields
    * [YUNIKORN-1492] - Add gang scheduling test suites
    * [YUNIKORN-1528] - Add gang scheduling test suites - Phase 2
    * [YUNIKORN-1534] - Add binpacking test suites



** Bug
    * [YUNIKORN-1253] - PVCs won't get past WaitForFirstConsumer with Apache Yunikorn
    * [YUNIKORN-1261] - Helm upgrade does not detect changes in ConfigMap
    * [YUNIKORN-1290] - DOCKER_ARCH is empty when executing command "make image" on arm64 architecture 
    * [YUNIKORN-1297] - constants missing after scheduler-interface build
    * [YUNIKORN-1308] - validate_cluster.sh should auto-detect DOCKER_ARCH
    * [YUNIKORN-1316] - The value of userLabelKey in scheduler is empty when yunikorn is deployed by helm.
    * [YUNIKORN-1324] - YuniKorn Plugin Mode doesn't schedule pods on K8s 1.25
    * [YUNIKORN-1337] - Application state stuck in "Accepted" when placeholders are running and the job is deleted
    * [YUNIKORN-1344] - Unable to create placeholders if container registry requires secrets
    * [YUNIKORN-1380] - Multiple pages URL were broken for website
    * [YUNIKORN-1391] - Node resources in shim are not locked consistenly
    * [YUNIKORN-1395] - Account for preempted placeholder in the placeholder data
    * [YUNIKORN-1434] - Mark allocation as being preempted
    * [YUNIKORN-1440] - Completed applications are indefinitely retained in-memory
    * [YUNIKORN-1441] - Data race in TestTimeoutPlaceholderAllocReleased
    * [YUNIKORN-1442] - Data race in TestRejectApplications
    * [YUNIKORN-1449] - Fix CVE issues detected in golang.org/x/ modules
    * [YUNIKORN-1451] - required node preemptor should use IsPreempted field
    * [YUNIKORN-1468] - Remove completed apps from queue object
    * [YUNIKORN-1474] - Add LF to the end of Chart.yaml
    * [YUNIKORN-1476] - The nodes with negative resources health check prints partitions instead of nodes
    * [YUNIKORN-1479] - Yunikorn Dashboard fa-question link got broken
    * [YUNIKORN-1480] - Scheduler crashes if debug logging is enabled on startup
    * [YUNIKORN-1522] - Add Chinese translation for release announcement 1.1
    * [YUNIKORN-1524] - remove blacklist from e2e tests
    * [YUNIKORN-1525] - data race: TestTryReserve
    * [YUNIKORN-1529] - Data race in TestTimeoutPlaceholderAllocReleased
    * [YUNIKORN-1539] - Add KubeConf talk info to events page
    * [YUNIKORN-1541] - AM won't restart on upgrade single node cluster with hostNetwork=true
    * [YUNIKORN-1547] - Plugin mode shouldn't use nonstandard QuotaApproved status


** New Feature
    * [YUNIKORN-1] - [Umbrella] Support priority aware scheduling
    * [YUNIKORN-790] - Implement MaxApplications enforcement
    * [YUNIKORN-1275] - Support arbitrary resources in namespace annotation
    * [YUNIKORN-1306] - [Umbrella] Enhanced user and group handling


** Improvement
    * [YUNIKORN-271] - Provide state change details for an the application
    * [YUNIKORN-1075] - Upgrade Prometheus version
    * [YUNIKORN-1086] - expose reservation information in the node rest response
    * [YUNIKORN-1213] - The interval of the background health checker needs to be configurable
    * [YUNIKORN-1221] - [Umbrella] Configuration V2
    * [YUNIKORN-1238] - Setting fair node policy instead of nil is in NewNodeCollection
    * [YUNIKORN-1296] - do not run e2e-tests unless build passes
    * [YUNIKORN-1298] - fail PR build when generated code files are changed
    * [YUNIKORN-1304] - add pre-commit workflow for yunikorn-site
    * [YUNIKORN-1305] - Fix *_SHA substitution in Makefiles
    * [YUNIKORN-1309] - Add Kubernetes 1.25 to e2e test matrix
    * [YUNIKORN-1314] - The current UserkeyLabel is showed in log when user name couldn't be found in pod's labels. 
    * [YUNIKORN-1319] - expose reservation information in the application rest response
    * [YUNIKORN-1335] - Write yunikorn-web error logs to stderr
    * [YUNIKORN-1336] - check git python install in release documentation
    * [YUNIKORN-1339] - Adding time slicing GPU to Tensorflow example
    * [YUNIKORN-1340] - Improving coverage in utils.go
    * [YUNIKORN-1341] - Move admission controller code out of the "plugins" directory
    * [YUNIKORN-1343] - Adopting the table-driven style for some unit tests in resource.go
    * [YUNIKORN-1345] - Updating the Spark tutorial in yunikorn website
    * [YUNIKORN-1346] - Mistake in online sample code
    * [YUNIKORN-1348] - [UMBRELLA] Build YuniKorn against Kubernetes 1.23
    * [YUNIKORN-1353] - refactor annotation and label processing
    * [YUNIKORN-1356] - expose pending resources for a queue in REST
    * [YUNIKORN-1363] - Dividing TestResourceProto to TestToProto and TestNewResourceFromProto
    * [YUNIKORN-1382] - Update nginx tag in example yaml
    * [YUNIKORN-1392] - Checking length of resource type when using NewResourceFromMap in UT
    * [YUNIKORN-1397] - expose pendingResources for the application object
    * [YUNIKORN-1398] - Remove non daemonset reservation from node before allocating daemonset pod
    * [YUNIKORN-1402] - add unit test for nil safety of NewResourceFromProto
    * [YUNIKORN-1411] - Upgrade Kubernetes dependency to v1.23.14
    * [YUNIKORN-1412] - fix render issue in Scheduler cache removal design doc 
    * [YUNIKORN-1413] - Update the Features page of the docs
    * [YUNIKORN-1417] - Create "archived" section in design docs
    * [YUNIKORN-1418] - Add scheduler state dump to Trouble Shooting page 
    * [YUNIKORN-1421] - Update the "Build and Run" page of the docs
    * [YUNIKORN-1425] - remove TaskGroupInstanceCountMap
    * [YUNIKORN-1426] - Increase linter timeout to 10m
    * [YUNIKORN-1427] - change to revive linter
    * [YUNIKORN-1429] - Support k8s ingress on helm chart for yunikorn ui
    * [YUNIKORN-1435] - Allow shim to participate in full state dump
    * [YUNIKORN-1436] - rename SimplePreemptor
    * [YUNIKORN-1437] - Expose queue running app details in REST
    * [YUNIKORN-1445] - partition cleanup: code refactor
    * [YUNIKORN-1446] - Adopting table-driven style in the acl unit test
    * [YUNIKORN-1448] - partition: remove reservation count
    * [YUNIKORN-1450] - Update golang.org/x/net for CVE-2022-41717
    * [YUNIKORN-1453] - Remove asks from completed applications
    * [YUNIKORN-1484] - Update theme-search-algolia version
    * [YUNIKORN-1485] - Add Kubernetes 1.26 to e2e test matrix
    * [YUNIKORN-1496] - update golangci-lint
    * [YUNIKORN-1498] - fix formatting issue in schedulerconf_test.go
    * [YUNIKORN-1499] - Use fine-grained K8s access control in example deployments 
    * [YUNIKORN-1520] - TestApplyConf: poor unit test coverage 
    * [YUNIKORN-1545] - update nginx to latest version for webapp

** Test
    * [YUNIKORN-1301] - Enable state-aware app sorting e2e test
    * [YUNIKORN-1487] - Add test for NewConfiguredQueue()


** Task
    * [YUNIKORN-156] - Setup asf.yaml and license checks for release repo
    * [YUNIKORN-1171] - Use new asf.yaml features on all repos
    * [YUNIKORN-1266] - Add some examples related to app placement rules
    * [YUNIKORN-1284] - upgrade zap logger to a recent version 
    * [YUNIKORN-1287] - fix go.mod references from YUNIKORN-1122
    * [YUNIKORN-1288] - Add check for pseudo version
    * [YUNIKORN-1294] - add gh-pages update to the release procedure
    * [YUNIKORN-1299] - update dev guide on web page
    * [YUNIKORN-1300] - typo in sample limits entry 
    * [YUNIKORN-1302] - fix build badge on k8shim
    * [YUNIKORN-1303] - clarify version update and format in the release procedure
    * [YUNIKORN-1317] - update roadmap for 1.2 and later
    * [YUNIKORN-1318] - Change sha256 to sha512 on download page
    * [YUNIKORN-1354] - update events page with meetup
    * [YUNIKORN-1358] - Change queue name examples for submitting spark jobs in doc.
    * [YUNIKORN-1379] - update meeting links on the community page
    * [YUNIKORN-1381] - scheduler plugin should set status to UnschedulableAndUnresolvable
    * [YUNIKORN-1387] - Adding Chinese translation of partition and queue configuration
    * [YUNIKORN-1389] - Pass node labels from shim to core.
    * [YUNIKORN-1396] - Add a missing newline in Tag Rule section
    * [YUNIKORN-1407] - Adding Chinese translation of App Placement Rules
    * [YUNIKORN-1408] - Adding Chinese translation of workload/Overview
    * [YUNIKORN-1409] - Adding Chinese translation of User and Group Resolution
    * [YUNIKORN-1422] - Adding Chinese translations of Run TensorFlow Jobs
    * [YUNIKORN-1430] - change go version check in Makefile
    * [YUNIKORN-1431] - "Run Flink Jobs" unresolved link
    * [YUNIKORN-1433] - Data race in TestRejectApplications (Application.postAppAccepted vs Application.addTask)
    * [YUNIKORN-1438] - remove deprecated linters
    * [YUNIKORN-1489] - upgrade docusaurus to v2.2.0
    * [YUNIKORN-1500] - Remove periodic state dump support
    * [YUNIKORN-1501] - Update Helm chart README to reflect K8s 1.26 support
    * [YUNIKORN-1521] - fix release announcement jira links
    * [YUNIKORN-1540] - Fix default placeholder image in documentation
****
