diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1d2c13da7e0f..507e3660fb23 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,6 +60,8 @@ jobs: run: hack/verify-swagger-docs.sh - name: verify lifted docs run: hack/verify-lifted.sh + - name: verify changelogs + run: hack/verify-doctoc.sh build: name: compile needs: codegen # rely on codegen successful completion diff --git a/docs/CHANGELOG/CHANGELOG-0.10.md b/docs/CHANGELOG/CHANGELOG-0.10.md index b0969522f91e..e71fdfb0d42c 100644 --- a/docs/CHANGELOG/CHANGELOG-0.10.md +++ b/docs/CHANGELOG/CHANGELOG-0.10.md @@ -1,3 +1,15 @@ + + +**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* + +- [What's New](#whats-new) + - [Resource Interpreter Webhook](#resource-interpreter-webhook) + - [Significant Scheduling Enhancement](#significant-scheduling-enhancement) + - [Workloads Observation from Karmada Control Plane](#workloads-observation-from-karmada-control-plane) +- [Other Notable Changes](#other-notable-changes) + + + # What's New ## Resource Interpreter Webhook The newly introduced Resource Interpreter Webhook framework allows users to implement their own CRD plugins that will be diff --git a/docs/CHANGELOG/CHANGELOG-0.9.md b/docs/CHANGELOG/CHANGELOG-0.9.md index 20a5c93844f5..8aaaf4ae0b5f 100644 --- a/docs/CHANGELOG/CHANGELOG-0.9.md +++ b/docs/CHANGELOG/CHANGELOG-0.9.md @@ -1,3 +1,15 @@ + + +**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* + +- [What's New](#whats-new) + - [Upgrading support](#upgrading-support) + - [Introduced karmada-scheduler-estimator to facilitate end-to-end scheduling accuracy](#introduced-karmada-scheduler-estimator-to-facilitate-end-to-end-scheduling-accuracy) + - [Maintainability improvements](#maintainability-improvements) +- [Other Notable Changes](#other-notable-changes) + + + # What's New ## Upgrading support Users are now able to upgrade from the previous version smoothly. With the diff --git a/docs/CHANGELOG/CHANGELOG-1.0.md b/docs/CHANGELOG/CHANGELOG-1.0.md index 9fa343a3706d..b4eb45a6ba7e 100644 --- a/docs/CHANGELOG/CHANGELOG-1.0.md +++ b/docs/CHANGELOG/CHANGELOG-1.0.md @@ -1,3 +1,23 @@ + + +**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* + +- [What's New](#whats-new) + - [Aggregated Kubernetes API Endpoint](#aggregated-kubernetes-api-endpoint) + - [Promoting Workloads from Legacy Clusters to Karmada](#promoting-workloads-from-legacy-clusters-to-karmada) + - [Verified Integration with Ecosystem](#verified-integration-with-ecosystem) + - [OverridePolicy Improvements](#overridepolicy-improvements) + - [Karmada Installation Improvements](#karmada-installation-improvements) + - [Configuring Karmada Controllers](#configuring-karmada-controllers) + - [Resource Interpreter Webhook Enhancement](#resource-interpreter-webhook-enhancement) +- [Other Notable Changes](#other-notable-changes) + - [Bug Fixes](#bug-fixes) + - [Features & Enhancements](#features--enhancements) + - [Instrumentation (Metrics and Events)](#instrumentation-metrics-and-events) + - [Deprecation](#deprecation) + + + # What's New ## Aggregated Kubernetes API Endpoint The newly introduced `karmada-aggregated-apiserver` component aggregates all registered clusters and allows users to diff --git a/docs/CHANGELOG/CHANGELOG-1.1.md b/docs/CHANGELOG/CHANGELOG-1.1.md index f72be5a93cbd..24551a8fca5f 100644 --- a/docs/CHANGELOG/CHANGELOG-1.1.md +++ b/docs/CHANGELOG/CHANGELOG-1.1.md @@ -1,3 +1,20 @@ + + +**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* + +- [What's New](#whats-new) + - [Multi-Cluster Ingress](#multi-cluster-ingress) + - [Federated ResourceQuota](#federated-resourcequota) + - [Configurability improvement for performance tuning](#configurability-improvement-for-performance-tuning) + - [Resource Interpreter Webhook Enhancement](#resource-interpreter-webhook-enhancement) +- [Other Notable Changes](#other-notable-changes) + - [Bug Fixes](#bug-fixes) + - [Features & Enhancements](#features--enhancements) + - [Instrumentation (Metrics and Events)](#instrumentation-metrics-and-events) + - [Deprecation](#deprecation) + + + # What's New ## Multi-Cluster Ingress The newly introduced [MultiClusterIngress](https://github.com/karmada-io/karmada/blob/d6355ec85296daa46ed344cade6ef10a9bee58dc/pkg/apis/networking/v1alpha1/ingress_types.go#L16) diff --git a/docs/CHANGELOG/CHANGELOG-1.2.md b/docs/CHANGELOG/CHANGELOG-1.2.md index 261610f7e060..123f8abdf611 100644 --- a/docs/CHANGELOG/CHANGELOG-1.2.md +++ b/docs/CHANGELOG/CHANGELOG-1.2.md @@ -1,9 +1,25 @@ - -* [v1.2.0](#v120) - * [Downloads for v1.2.0](#downloads-for-v120) - * [Karmada v1.2 Release Notes](#karmada-v12-release-notes) - * [1.2 What's New](#whats-new) - * [Other Notable Changes](#other-notable-changes) + + +**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* + +- [v1.2.0](#v120) + - [Downloads for v1.2.0](#downloads-for-v120) + - [Karmada v1.2 Release Notes](#karmada-v12-release-notes) + - [What's New](#whats-new) + - [Significant improvement on scheduling capability and scalability](#significant-improvement-on-scheduling-capability-and-scalability) + - [1. Karmada Descheduler](#1-karmada-descheduler) + - [2. Multi region HA support](#2-multi-region-ha-support) + - [Fully adopted aggregated API](#fully-adopted-aggregated-api) + - [Distributed search and analytics engine for Kubernetes resources (`alpha`)](#distributed-search-and-analytics-engine-for-kubernetes-resources-alpha) + - [Resource Interpreter Webhook enhancement](#resource-interpreter-webhook-enhancement) + - [Integrating verification with the ecosystem](#integrating-verification-with-the-ecosystem) + - [Other Notable Changes](#other-notable-changes) + - [Bug Fixes](#bug-fixes) + - [Features & Enhancements](#features--enhancements) + - [Other (Dependencies)](#other-dependencies) + - [Deprecation](#deprecation) + + # v1.2.0 diff --git a/docs/CHANGELOG/CHANGELOG-1.3.md b/docs/CHANGELOG/CHANGELOG-1.3.md index ac739664fd7d..3c66f60a5f33 100644 --- a/docs/CHANGELOG/CHANGELOG-1.3.md +++ b/docs/CHANGELOG/CHANGELOG-1.3.md @@ -1,8 +1,26 @@ -* [v1.3.0](#v130) - * [Downloads for v1.3.0](#downloads-for-v130) - * [Karmada v1.3 Release Notes](#karmada-v13-release-notes) - * [1.3 What's New](#whats-new) - * [Other Notable Changes](#other-notable-changes) + + +**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* + +- [v1.3.0](#v130) + - [Downloads for v1.3.0](#downloads-for-v130) + - [Karmada v1.3 Release Notes](#karmada-v13-release-notes) + - [What's New](#whats-new) + - [Taint-based eviction in graceful way](#taint-based-eviction-in-graceful-way) + - [Global proxy for resources across multi-clusters](#global-proxy-for-resources-across-multi-clusters) + - [Cluster resource modeling](#cluster-resource-modeling) + - [Bootstrap token-based cluster registration](#bootstrap-token-based-cluster-registration) + - [Significant improvement in system scalability](#significant-improvement-in-system-scalability) + - [Other Notable Changes](#other-notable-changes) + - [API changes](#api-changes) + - [Bug Fixes](#bug-fixes) + - [Features & Enhancements](#features--enhancements) + - [Other](#other) + - [Helm Chart](#helm-chart) + - [Dependencies](#dependencies) + - [Deprecation](#deprecation) + + # v1.3.0 diff --git a/hack/update-all.sh b/hack/update-all.sh index bf9b27963d89..6a9b4c29e034 100755 --- a/hack/update-all.sh +++ b/hack/update-all.sh @@ -30,3 +30,4 @@ bash "$REPO_ROOT/hack/update-swagger-docs.sh" bash "$REPO_ROOT/hack/update-lifted.sh" bash "$REPO_ROOT/hack/update-mocks.sh" bash "$REPO_ROOT/hack/update-gofmt.sh" +bash "$REPO_ROOT/hack/update-doctoc.sh" diff --git a/hack/update-doctoc.sh b/hack/update-doctoc.sh new file mode 100755 index 000000000000..d2938d473209 --- /dev/null +++ b/hack/update-doctoc.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +# Copyright 2024 The Karmada Authors. +# +# Licensed 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. + + +set -o errexit +set -o nounset +set -o pipefail + +SCRIPT_ROOT=$(dirname "${BASH_SOURCE[0]}")/.. + +DIFFDOCTOCDIR="${SCRIPT_ROOT}/docs/CHANGELOG" + +# check if doctoc is installed. +if ! command -v doctoc &> /dev/null +then + echo "doctoc is not installed, downloading now..." + npm install -g doctoc + + if [ $? -ne 0 ]; then + echo "doctoc installation failed, check your network connection or npm configuration." + exit 1 + fi + + echo "doctoc has been successfully installed." +fi + +# updating all relevant CHANGELOG files using doctoc. +doctoc ${DIFFDOCTOCDIR} diff --git a/hack/verify-all.sh b/hack/verify-all.sh index c7ff22b4785c..9d475752c9fa 100755 --- a/hack/verify-all.sh +++ b/hack/verify-all.sh @@ -36,3 +36,4 @@ bash "$REPO_ROOT/hack/verify-swagger-docs.sh" bash "$REPO_ROOT/hack/verify-crdgen.sh" bash "$REPO_ROOT/hack/verify-codegen.sh" bash "$REPO_ROOT/hack/verify-license.sh" +bash "$REPO_ROOT/hack/verify-doctoc.sh" diff --git a/hack/verify-doctoc.sh b/hack/verify-doctoc.sh new file mode 100755 index 000000000000..2fed89c33d87 --- /dev/null +++ b/hack/verify-doctoc.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +# Copyright 2024 The Karmada Authors. +# +# Licensed 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. + + +set -o errexit +set -o nounset +set -o pipefail + +SCRIPT_ROOT=$(dirname "${BASH_SOURCE[0]}")/.. + +DIFFDOCTOCDIR="${SCRIPT_ROOT}/docs/CHANGELOG" +TMP_DIFFDOCTOCDIR="${SCRIPT_ROOT}/_tmp/docs/CHANGELOG" +_tmp="${SCRIPT_ROOT}/_tmp" + +cleanup() { + rm -rf "${_tmp}" +} +trap "cleanup" EXIT SIGINT + +cleanup + +mkdir -p "${TMP_DIFFDOCTOCDIR}" +cp -a "${DIFFDOCTOCDIR}"/* "${TMP_DIFFDOCTOCDIR}" + +bash "${SCRIPT_ROOT}/hack/update-doctoc.sh" +echo "diffing ${DIFFDOCTOCDIR} against freshly generated files" + +ret=0 + +diff -Naupr "${DIFFDOCTOCDIR}" "${TMP_DIFFDOCTOCDIR}" || ret=$? +cp -a "${TMP_DIFFDOCTOCDIR}"/* "${DIFFDOCTOCDIR}" +if [[ $ret -eq 0 ]] +then + echo "${DIFFDOCTOCDIR} up to date." +else + echo "${DIFFDOCTOCDIR} is out of date. Please run hack/update-doctoc.sh" + exit 1 +fi